使用Modelsim仿真的原因
由于diamond自帶的仿真軟件Active-HDL需要另一套Lisence,所以我們使用第三方仿真軟件Modelsim來進行仿真。
Modelsim10.5下載鏈接如下:https://pan.baidu.com/s/1G9699ocWm1UTqK2yS2igyQ 提取碼:lewa
一、Lattice仿真文件
1)庫文件路徑
LATTICE仿真模型文件位于安裝目錄下simulation文件夾
X盤:\diamond\3.13\cae_library\simulation
在編譯以前,一定要確認需要仿真的頂層文件是verilog還是VHDL。如果是verilog文件,那么需要編譯的庫文件的路徑為:X:…\cae_library\simulation\verilog
?Verilog文件夾中是Verolig 器件庫文件
?blackbox文件夾中是PCS, JTAG, systemBUS等黑盒子的庫文件,已經是編譯好的庫了,需要使用的話?直接在modelsim中映射到新建庫即可。
2)?庫文件說明
在這verilog文件夾下,分別有不同的芯片庫文件和pmi庫文件。
pmi文件夾中的文件,主要為一些ip core的仿真庫,如PLL、FIFO、RAM等,這些都是直接能看到IP仿真庫內部如何調用底層原語的。
由于我的使用環境都是以verilog為主,生成IP核時都是用的verilog格式,所以以下內容都是只以verilog文件夾為例。
二、編譯Modelsim庫
1)?新建編譯后的庫文件夾
2) 更改Modelsim工作路徑
打開Modelsim軟件
點擊“file ‐‐>Change Directory” 然后設置好需要建 真庫的路 立仿真庫的路徑。比如“X:\modelsim\Simulation_Lib\Lattice” .然后確定。
3) 建立新的仿真庫
File->NEW->library 新建一個仿真庫填你建的仿真庫名稱
由于我使用的是Lattice ECP3的芯片,所以偷懶直接命名為“ecp3&pmi”,
新建仿真庫后會在該路徑下生成ecp3&pmi文件夾。
4) 編譯特定的仿真庫
點擊工具欄上的“Compile” ,然后在打開的對話框中設置目標庫以及需要編譯的仿真模型文件。
由于我使用的芯片是ECP3,所以只需要編譯verilog文件夾下ecp3(基本元器件庫)即可。
6) 設置初始化文件
安裝好后,打開Modelsim安裝目錄,在modelsim根目錄下找到“modelsim.ini”文件,右鍵點擊屬性,然后去掉只讀屬性,確定并退出。
7) 設置路徑庫路徑
打開modelsim.ini文件,會發現有一行:ecp3&pmi =?ecp3&pmi,修改這一行為:
ovi_ecp3 = X:/X/modelsim/Simulation_Lib/Lattice/ecp3&pmi
其功能為指定仿真庫的路徑。修改完成后保存退出,并添加modelsim.ini的只讀屬性,防止錯誤修改。
PS:為什么名稱是ovi_ecp3 ?
為了和Diamond軟件中調用的庫名統一,后續調用更方便
三、通過Modelsim仿真PLL工程
1)新建工程(略)
module pll_test(
input sys_clk,
input rst_n
);pll_125 pll_125 (.CLK(sys_clk ), .CLKOP(clk_50), .LOCK( )
);endmodule
`timescale 1ns / 1psmodule pll_test_tb();reg sys_clk ;reg rst_n ;
GSR GSR_INST(.GSR(1'b1));
PUR PUR_INST(.PUR(1'b1));initialbegin#2 rst_n = 0 ; sys_clk = 0 ; #10 rst_n = 1 ; end parameter CLK_FREQ = 125;//Mhz always # ( 1000/CLK_FREQ/2 ) sys_clk = ~sys_clk ; pll_test u_pll_test(.sys_clk(sys_clk), .rst_n(rst_n)
);endmodule
2)設置PLL IP核
3)在Modelsim中建立仿真工程
4)觀察仿真波形
PS:在編寫testbench的時候需要添加一下兩段代碼:
GSR GSR_INST(.GSR(1'b1));
PUR PUR_INST(.PUR(1'b1));
這是因為有些LATTICE 的PMI IP核中使用了DIAMOND的全局GSR_INST 變量 ,其實還有一個PUR_INST變量。這時由于仿真不具有這個全局變量 我們就在頂層文件的模塊中添加上面兩段代碼。
四、Diamond聯合Modelsim仿真(略)
有空再寫
五、仿真PCS(略)
對于ECP2M,ECP3這幾個系列的器件來說PCS的仿真庫都是已經編譯好的,庫文件形式存在于“x\cae_library\simulation\blackbox\pcsd_work”這個文件夾中,只需要將對應的庫映射到想要的庫文件存放地址,然后在modelsim.ini文件中設置好即可。如果您沒有可能用到ECP2M,ECP3,SC這些器件或者是這些器件的SERDES功能,那么需要做好庫的映射。
?
參考來源
以下內容主要參考自兩個來源
如何在 Modelsim SE中建立LATTICE仿真庫 PPT
作者 Jason Chen@weikeng.com.cn
以及
Lattice Diamond與modelsim聯合仿真環境設置 作者IceyP庚