Verilog include 使用相对路径

在Quartus编译环境下,使用include, fopen等文件操作指令时,会涉及到文件路径问题。

以 E:\quartus_project\sd_card_controller\rtl\sd_wb_driver\sd_defines.vh 参数定义文件为例,

 

       1. 使用绝对路径,可用以下写法,需要注意:verilog路径符为斜杠“/”,而windows资源管理器的路径符为反斜杠“\”。

       `include "E:/quartus_project/sd_card_controller/rtl/sd_wb_driver/sd_defines.vh

      

       2. 使用相对路径时,以工程路径为参考,这里工程路径为 E:\quartus_project\sd_card_controller ,此时相对路径可以有两种写法:

       `include "rtl/sd_wb_driver/sd_defines.vh"  或者

       `include "../rtl/sd_wb_driver/sd_defines.vh"

 

在ModelSim的编译环境下,绝对路径的使用方式和Quartus相同,但是相对路径的定义和Quartus就有一些差别。

以fopen函数为例

       1. 当用右侧语句读取sd_model.log文件时:sdModel_file_desc = $fopen("log/sd_model.log");

       modelsim仿真工程文件夹结构须为:

      

       -- modelsim_prj

              -- test1 :仿真工程

                     -- log

                     -- work : work库

                            -- bench : testbench和model文件夹

                            -- dut : 待测试文件

                    

       此时log文件夹和work库在应在同一级,否则modelsim会提示找不到文件

      

       2. 当用右侧语句读取sd_model.log文件时:sdModel_file_desc = $fopen("../log/sd_model.log");

       modelsim仿真工程文件夹结构须为:

       -- modelsim_prj

              -- log

              -- test1 :仿真工程

                     -- work : work库

                            -- bench : testbench和model文件夹

                            -- dut : 待测试文件夹

             

       此时log文件夹和仿真工程test1应在同一级,否则modelsim会提示找不到文件

 

总结:通过上述分析可以看出,当使用没有“../”的相对路径时,Quartus和Modelsim的用法相同,都是以工程路径作为参考;

   当使用有“../”的相对路径时,modelsim则以工程的上一级文件夹作为参考。

 

posted @ 2019-02-27 11:58  米兰de小铁匠  阅读(5162)  评论(0编辑  收藏  举报