最近練習vcs時,發現一個以前沒有注意的問題,就是利用vcs編譯時,多個模塊的擺放順序會對timescale產生影響。
第一張圖里面我對多個模塊的.v文件進行編譯,順序是aref_cunter.v sdram_aref.v sdram_init.v sdram_rd_wr.v master.v sdram_control_top.v sdram_model_plus.v tb_sdram_control_top.v,timescale 只在tb_sdram_control_top.v文件中寫了,其他都沒有寫,然后發現vcs編譯報錯,報告的錯誤為
Module "tb_sdram_control_top" has `timescale but previous
module(s)/package(s) do not.
這表示除了這個模塊寫了timescale,其他模塊都沒有寫 之后我重新調整了順序 順序為tb_sdram_control_top.v aref_cunter.v sdram_aref.v sdram_init.v sdram_rd_wr.v master.v sdram_control_top.v sdram_model_plus.v 發現VCS沒有再報錯,這說明VCS必須在編譯的第一個模塊中見到timescale指令。結果如下圖所示
本人比較菜,喜歡將自己遇到的問題記錄下來,希望幫到和我一樣的新手