在Quartus编译环境下,使用include, fopen等文件操做指令时,会涉及到文件路径问题。windows
以 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.vhspa
2. 使用相对路径时,以工程路径为参考,这里工程路径为 E:\quartus_project\sd_card_controller ,此时相对路径能够有两种写法:资源
`include "rtl/sd_wb_driver/sd_defines.vh" 或者编译
`include "../rtl/sd_wb_driver/sd_defines.vh"test
在ModelSim的编译环境下,绝对路径的使用方式和Quartus相同,可是相对路径的定义和Quartus就有一些差异。file
以fopen函数为例model
1. 当用右侧语句读取sd_model.log文件时:sdModel_file_desc = $fopen("log/sd_model.log");im
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则以工程的上一级文件夹做为参考。