估計很多人買了CB哥的書來看吧,他們在學習modelsim仿真的過程中可能遇到過明明是按照書上的步驟添加器件庫的了,但還是出現如下的錯誤:
首先,我想說的是CB哥書上的modelsim-altera10.1d是隨QuartusII一起安裝的,它已經編譯了altera的器件庫。它是一個免費版的仿真工具,不需要破解,當然它的功能不是最強大的,仿真速度也不是最快的,但已經可以滿足我們一般的仿真了。有些人可能裝了速度較快的SE版本的不帶altera器件庫的modelsim,這時器件庫的問題就來了,尤其是那些新手。為了搞定上圖的錯誤,在這里給出了一種解決辦法,希望對大家有所幫助。
(1)在我們的設計中經常會用到宏定義模塊,這是就需要我們添加altera器件庫,其中必要的編譯資源文件有quartusII安裝目錄/eda/sim_lib下的220model.v和altera_mf.v(以Verilog描述電路),另外還常用到PLL,因此還要目標器件庫,如quartusII安裝目錄/eda/sim_lib下的cycloneive_atoms.v等。接下來,讓我們開始編譯我們指定的器件庫。以上一篇博文安裝的modelsim se 6.5g來進行庫的編譯,首先在modelsim的安裝目錄下新建altera文件。
(2)啟動modelsim仿真軟件,點擊“File”--->“Change Directory…”,在彈出的對話框中選擇剛剛在modelsim安裝目錄下新建的altera文件,點擊“確定”。
(3)點擊“File”--->“New”--->”Library…”,輸入庫的名字:220model以新建一個庫,點擊“OK”。
(4)點擊“Compile”--->”Compile…”,在彈出的對話框中,選Library為剛剛新建的220model,查找范圍為quartusII安裝目錄/eda/sim_lib,選擇220model.v,然后點擊“Compile”,“Done”。
(5)同理,在altera文件下新建庫文件altera_mf和cycloneive_atoms,然后將quartusII安裝目錄/eda/sim_lib下的編譯資源文件altera_mf.v和cycloneive_atoms.v編譯到相應的庫文件。
(6)接着將上面編譯的庫添加到modelsim.ini文件中。右擊modelsim安裝目錄下的modelsim.ini文件,選擇“屬性”,去掉只讀。
(7)打開modelsim.ini文件,添加如下內容,然后關閉文件,並加上只讀屬性。
(8)以后打開modelsim,都可以看到我們添加的庫。
(9)接下來,以CB哥的Sobel邊緣檢測例程為例進行仿真,看是否還出現之前的錯誤。打開modelsim工程,點擊“Compile”--->”Compile All”,結果出現以下問題:
(10)根據錯誤提示可知,找不到源文件,原因是我改變了modelsim工程的路徑,從而無法找到源文件。解決方法是將工程中的源文件刪掉(切不可勾選從磁盤中刪除),重新加載源文件。
(11)從新全編譯源文件,發現編譯都通過。
(12)點擊“Simulate”--->”Start Simulation…”,由於本設計中使用了Shift_RAM和PLL,需在Libraries選項卡下添加搜索庫220model、altera_mf和cycloneive_atoms。
(13)切換到Design選項卡,展開庫work,選中Video_Image_Processor_TB,點擊“OK”開始仿真。
(14)結果發現沒有信號出來,由編譯信息可以設計被優化了。
(15)解決的辦法是將modelsim.ini文件的“VoptFlow = 1”改為“VoptFlow = 0”(修改之前記得把modelsim.ini屬性去掉,修改完后把只讀改回來)。
(16)有時還會出現下面的問題,我個人的解決方法是重新建立工程,不知大家是否有更好的辦法(希望互相告知)。
(17)重建工程后,再進行仿真就大功告成了。
我暈,現在已經凌晨2:30了,今早8:30還要實習呢!該睡了,88,晚安*^_^*
補充:如果第(15)點改的是當前工程下的modelsim.ini文件,就不會出現第(16)點的問題;或者通過菜單Simulate——>Start Simulate,然后將“Enable Optimization”的鈎鈎去掉也可解決該問題。
轉載至http://blog.chinaaet.com/crazybird/p/39702#