Verilog使用相对路径时应注意的问题

在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则以工程的上一级文件夹作为参考。

上一篇:Maven打jar发布包的常用配置


下一篇:C#.NET vs2010中使用IrisSkin4.dll轻松实现WinForm窗体换肤功能