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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM