ModelSim中Altera模擬庫的新增
最近,做一個IP核的除錯,但是裡面呼叫了Altera的syncram,這樣ModelSim就不能直接進行模擬,而QuartusII又不支援Tesbbench的模擬,所以為了在ModelSim中模擬就必須將Altera的這些模擬庫新增到ModelSim中。
通常,在ModelSim中進行模擬需要加入Quartus提供的模擬庫,原因是下面三個方面:
·Quartus不支援Testbench;
·呼叫了megafunction或者lpm庫之類的Altera的函式;
·時序模擬要在Modelsim下做模擬。
下面以Altera器件為例,介紹如何在ModelSim中加入Altera的模擬庫,Quartus II軟體中自帶有Altera的模擬庫,只要把它拿到
ModelSim中去編譯一下就可以了,具體步驟如下:
1.設定模擬庫路徑
開啟ModelSim安裝目錄(我用的是ModelSim SE 6.2版本,安裝在D:\ModelSim\Installfiles目錄下),新建資料夾altera,我們就在該目錄下存放預編譯的各種Altera庫。
啟動ModelSim SE 6.2,在主視窗執行【File】/【Change Directory】命令將路徑轉到altera資料夾。或在命令列中執行cd D:/ModelSim/Installfiles/altera。
2.新建庫
Quartus II中提供的模擬庫檔案存放的路徑是...\altera\80\quartus\eda\sim_lib,每個庫檔案提供了兩種形式:.v(Verilog)
格式和.vhd(VHDL)格式兩種,根據你所用的語言選擇使用。用於編譯資源庫的檔案有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd檔案。網上的很多教程都是把這些檔案一起編譯,這樣適用於Verilog和VHDL混合模擬,但如果只用一種語言,如Verilog則完全沒必要全部編譯。下面以該目錄下的altera_mf.v為例介紹建立預編譯庫的方法。
注:ModelSim中模擬庫可以分為兩大類:第一類是工作庫(working),預設值為“work”目錄,work目錄中包含當前工程下所有被編譯的設計單元,編譯前必須建立一個work庫,並且每個編譯有且僅有一個work庫;第二類是資源庫(resource),儲存能被當前編譯引用的設計單元,在編譯期間允許有多個resource庫。
在主視窗中選擇【File】/【New】/【Library】命令,新建一個名為altera_mf的庫。
3.編譯庫
方便起見在altera資料夾下新建目錄src,把用於編譯資源庫的檔案複製到src資料夾中。
在主選單中選【Compile】/【Compile】命令,彈出Compile Source Files對話方塊,library中選擇你剛才建立的庫名
altera_mf,查詢範圍你選擇altera_mf.v檔案,剛才你已經把它複製到了...\altera\src目錄下。執行編譯命令。
繼續按照步驟2和3中介紹的方法新增剩下的幾個庫。新增完成後如下圖所示。
4.配置modelsim.ini檔案
這一步是為了將前面建立的庫新增進系統庫,以後就不用再重複添加了。
ModelSim安裝根目錄下的配置檔案modelsim.ini的只讀屬性去掉,用記事本或其他文字編輯程式開啟。在[Library]下修改前面
新增的庫的路徑。注意修改後關閉並改回只讀屬性。
注:第1步設定的模擬庫路徑必須在ModelSim的安裝目錄下才能事業能夠此相對路徑。
altera_primitives = $MODEL_TECH/../altera/altera_primitives
220model = $MODEL_TECH/../altera/220model
altera_mf = $MODEL_TECH/../altera/altera_mf
5.新增Altera底層硬體原語模擬庫(ATOM)
在時序模擬時,必須載入所使用到的對應於具體Altera器件的底層硬體原語的模擬庫(ATOM)。
上面編譯了Altera三個資源庫檔案:220model.v,altera_mf.v,altera_primitives.v,編譯通過之後。根據我們選用的具體器件型號繼續編譯我們所需要的器件底層原語模擬庫檔案,比如我們選擇使用的是cycloneii,所以編譯cycloneii_atoms.v。
另外,在進行模擬的時候,還要注意將上述已經編譯的相關庫新增到當前的工程中,以便相關lpm之類的核的呼叫,操作如下:在Start Simulation視窗的libraries一欄下進行新增,如圖:
然後再選擇work目錄中當前工程的頂層實體進行模擬即可。
若是要進行時序模擬,則還應在SDF一欄進行.sdo延時檔案的新增。