原创 Modelsim ae 仿真

2010-4-29 09:21 3950 5 5 分类: FPGA/CPLD

http://cpld-fpga.spaces.live.com/blog/cns!703E7ADBB8F98B40!336.entry


仿真验证是CPLD/FPGA设计中的重要一环,QuartusII软件本身带有仿真功能,但是无法使用testbench,而且功能相对简单,对于复杂的设计,画波形图显然不是明智的选择,一般选择Mentor Graphics Corporation的modelsim作为仿真工具。

仿真一般分为功能仿真,前仿真与后仿真。根据设计需要,编写完代码(Verilog hdl,Vhdl,system Verilog )后,首先进行功能仿真,验证所写代码是否能完成设计功能;前仿真又称为综合后仿真,即在QuartusII完成综合后,验证设计的功能;后仿真又称为时序仿真活布局布线后仿真,是加入延时后的仿真。对于编译时间较短的小规模设计,一般只进行功能仿真与后仿真。

modelsim有很多版本,ae,pe,le,xe,se等,其中se功能最为强大,见下图:

点击看大图

其中ae版本是altera的定制版本,已经包含了altera元器件的编译库,对于altera公司的器件仿真,使用比较简单。

下面以一个设计实例介绍modelsim的仿真过程,工具版本:QuartusII8.1,Modelsim Altera6.1g p1,设计语言使用verilog。

NativeLink 技术在 Quartus II 软件和其它 EDA 工具之间无缝地传送信息,并允许在 Quartus II 软件中自动运行 EDA 工具,所以有两种方式进行QuartusII 与 modelsim的联合设计仿真:QuartusII 软件直接调用modelsim仿真,这种方式步骤简单,但是不方便调试;QuartusII产生modelsim仿真所需要的.vo,.sdo文件,运用modelsim仿真,这种方式比较麻烦,但是便于调试过程中程序,testbench的更改,一般推荐采用这种方式。


1. QuartusII 软件直接调用modelsim仿真


设置NativeLink

1). QuartusII工具栏,Tools->Options

2). 选择EDA Tool Options

3). 指定Modelsim-Altera的路径,例如:c:\<ModelSim-Altera installation path>\win32aloem (此时如果装在D盘下,会出错,暂时还未解决,不知为何)

4). OK

点击看大图

进行RTL仿真

1). QuartusII工具栏,Assignments->EDA Tool Settings->Setting->Simulation

2). Tool name 选择 Modelsim-Altera,选择 Run gate-level simulation automatically compilation,语言选择Verilog

3).  More Setting,Generate netlist for funtion simulation only 设置为ON 或者OFF,如果进行Function simulation,则选择ON,如果是Timing Simulation则选择OFF。

4). 设置testbench








(1). 前提是已经编辑好了testbench文件,注意QuartusII中testbench文件的后缀是.vt,这个的模板可以通过Start->Start Test Bench Template Writer实现,产生的模板文件只是包含了端口映射,端口声明等,具体的功能还是需要设计者自己编写。

(2). 选择Compile test bench,设置testbench的路径及名称等

(3). OK




点击看大图

点击看大图

设置完成,现在进行全编译或者EDA RTL Simulation就可以完成功能仿真,运行全编译就可以完成时序仿真,具体是功能还是时序仿真取决于Generate netlist for funtion simulation only 的设置。

功能仿真,无延迟信息

点击看大图

时序仿真,加入布局布线延迟

点击看大图

需要注意的是,对于这种方式,只有结束了仿真,才算完成了一次全编译过程。

2. modelsim单独完成仿真

由于这篇文章是基于Altera-Modelsim的,Altera工具库已经编译好了,这里不再赘述Modelsim SE如何编译Altera工具库,网络上有很多这方面的文章,不过还是推荐参考QuartusII手册,因为网络上的版本众多,有很多内容陈旧,甚至包含错误。

下面的图表示了基于ModelSim-Altera and Quartus II Software的设计流程,其中的综合后仿真我们不进行。

点击看大图

1). 功能仿真

在Modelsim中进行功能仿真需要testbench(.v)、设计文件(.v)与功能仿真库,对于前两者没有什么特别的,关键是功能仿真库。普通的设计,只是需要testbench与设计文件,不需要设置仿真库等。使用LPM(Library Parameterized Modules)的设计,需要加载lpm Simulation Models(220model.v,for Verilog HDL:<ModelSim-Altera installation directory>\altera\<HDL>\220model\);使用Altera megafunctions的设计,需要加载Altera Megafunction Simulation Models(altera_mf.v,for Verilog HDL:<ModelSim-Altera installation directory>\Altera\<HDL>\altera_mf\),而对于下面的Altera megafunctions还需要atom libraries:










■ altclkbuf
■ altclkctrl
■ altdqs
■ altdq
■ altddio_in
■ altddio_out
■ altddio_bidir
■ altufm_none
■ altufm_parallel
■ altufm_spi
■ altmemmult
■ altremote_update

atom library位置:<Quartus II installation directory>/eda/sim_lib

使用Low-Level Primitive Simulation Models的设计,需要加载altera_primitives.v(for Verilog HDL:<ModelSim-Altera installation directory>\altera\<HDL>\altera)。

功能仿真流程:

(1). 新建一个Project,设置工程名称,路径等;

(2). 添加设计文件与testbench;

(3). 全编译;

(4). 装载文件,点击Simulate->Simulate…,选定顶层文件(testbench),根据设计选择需要加载的库文件;

(5). 仿真,观察波形。

2). 时序仿真

时序仿真中需要用到.vo与.sdo文件,这两个文件需要设置QuartusII软件的Simulation选项,可以参考QuartusII 软件直接调用modelsim仿真,注意设置时,不要选择Run gate-level simulation automatically compilation。对于Altera-Modelsim,仿真库已经编译好了,时序仿真的仿真库位于<ModelSim-Altera installation directory>\altera\verilog\,然后根据使用的不同device选择不同的仿真库。

时序仿真流程:

(1). 新建一个Project,设置工程名称,路径等;

(2). 添加.vo与testbench;

(3). 全编译;

(4). 装载文件,点击Simulate->Simulate…,选定顶层文件(testbench),选择时序仿真库,加载sdo文件;

(5). 仿真,观察波形。










相关链接:http://hi.baidu.com/acai2556/blog/item/0b8f200749c506c47b89478a.html

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条