赞
踩
以下内容主要参考自两个来源
如何在 Modelsim SE中建立LATTICE仿真库 PPT
作者 Jason Chen@weikeng.com.cn
以及
Lattice Diamond与modelsim联合仿真环境设置 作者IceyP庚
diamond 3.11 + ModelSim SE-64 10.5
由于diamond自带的仿真软件Active-HDL需要另一套Lisence,所以我们使用第三方仿真软件Modelsim来进行仿真。
LATTICE仿真模型文件位于安装目录下simulation文件夹
D:\Coding\Diamond3.11\diamond\3.11_x64\cae_library\simulation
在编译以前,一定要确认需要仿真的顶层文件是verilog还是VHDL。如果是verilog文件,那么需要编译的库文件的路径为:X:…\cae_library\simulation\verilog
若顶层仿真文件为VHDL,那么路径为:X:…\cae_library\simulation\vhdl
在这两个文件夹下,分别有ecp3和pmi文件。pmi文件夹中的文件,主要为一些ip core的仿真库。
另外,如果选择其他family的device,在编译的时候,最好即编译family仿真库文件,也编译pmi文件。例如如果选择的时machxo2 family device,在编译的时候,既编译上面两个路径下的machxo2,也需要编译pmi。以防止出现不可预测的错误。
Verilog文件夹中是Verolig HDL器件库文件, VHDL文件夹中的则是VHDL的器件库文件, blackbox文件夹中是PCS, JTAG, systemBUS等黑盒子的库文件,已经是编译好的库了,需要的话 需要解压缩然后设置好路径即可 只需要解压缩然后设置好路径即可, 后面有讲到。
Modelsim10.5下载链接如下:https://pan.baidu.com/s/1G9699ocWm1UTqK2yS2igyQ 提取码:lewa
安装好后,打开Modelsim安装目录,在modelsim根目录下找到“modelsim.ini”文件,右键点击属性,然后去掉只读属性,确定并退出。
打开Modelsim软件
点击“file ‐‐>Change Directory” 然后设置好需要建 真库的路 立仿真库的路径。比如“X:\modelsim_10.5\sim_lib\Lattice” .然后确定。
File->NEW->library 新建一个仿真库填你建的仿真库名称
由于我使用的是Lattice ECP3的芯片,所以偷懒直接命名为“ECP3”,你可以按照自己的想法来命名。
点击工具栏上的“Compile” ,然后在打开的对话框中设置目标库以及需要编译的仿真模型文件。
由于我使用的芯片是ECP3,所以只需要编译verilog文件夹下ecp3(基本库)即可。
在LATTICE的设计中,如果您的设置用到了和器件特性相关的一些模块,如PLL,RAM,FIFO等,在进行仿真的时候需要pmi库,pmi库的建立和其他库的建立步骤一直,需要编译的文件存在于
“diamond\3.11_x64\cae_library\simulation\verilog\pmi” 这个文件夹中,将这个文件夹内的所有.v文件都编译到pmi 库中即可。
打开modelsim.ini文件(推荐使用UE打开),在[Library]部分的最后,[vcom]的上方,会发现有一行:ECP3 = ECP3,修改这一行为:ECP3 = D:\Coding\modelsim\sim_lib\ECP3,其功能为指定仿真库的路径。修改完成后保存退出,并添加modelsim.ini的只读属性,防止错误修改。
在Diamond中选择 Tools > Options > Environment > Directories,在Simulation的Modelsim/QuestaSim选择modelsim的安装路径:D:\Coding\modelsim\win64
Diamond中的File List中的Input Files,右键选择Add > New File > Verilog Files.在新建的verilog中编写testbench
在Diamond的菜单栏中选择Tools > Simulation Wizard. 输入仿真工程名以及路径,选择仿真工具Modelsim.在点击Finish后会自动启动modelsim,并跳转到project栏,出现如下画面:
编译全部文件,在这个过程中如果出错,请修改。
在modelsim的菜单栏中选择Simulate > Start Simulate
在Libraries中选择需要添加的仿真库,这个仿真库必须与所选用的器件是同一Family的,并点击OK
然后再点击Design选项卡,选择work中的start_up_tb.v文件,点击OK,开始仿真。
需要查看的信号添加到wave窗口。退出仿真工程的时候,可以在Transcript中输入quit -sim退出。
注意,在编写testbench的时候需要添加一下两段代码:
GSR GSR_INST(.GSR(1’b1));
PUR PUR_INST(.PUR(1’b1));
这是因为有些LATTICE 的 FIFO_DC IP核这个IP核的子模块中使用了DIAMOND的全局GSR_INST 变量 ,其实还有一个PUR_INST变量。这时由于仿真不具有这个全局变量 我们就在顶层文件的模块中添加上面两段代码。
对于ECP2M,ECP3这几个系列的器件来说PCS的仿真库都是已经编译好的,库文件形式存在于“diamond\3.11_x64\cae_library\simulation\blackbox\pcsd_work”这个文件夹中,只需要将对应的库映射到您想要的库文件存放地址,然后在modelsim.ini文件中设置好即可。如果您没有可能用到ECP2M,ECP3,SC这些器件或者是这些器件的SERDES功能,那么您需要做好库的映射。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。