Verilog使用相對路徑時應注意的問題

在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則以工程的上一級文件夾做爲參考。

相關文章
相關標籤/搜索