用Modelsim SE进行前仿真和后仿真——之一

文章来源:

http://bbs.ednchina.com/BLOG_ARTICLE_271038.HTM

一、前仿真

 

       也就是纯粹的功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟。

 

二、后仿真

 

       也就是综合后的功能仿真和布局布线后的时序仿真。是指电路已经映射到特定的工艺环境下,综合考虑电路的路径延迟与门延迟的影响,验证电路是否在一定时序条件下满足设计构想的过程,是否存在时序违规。(必做)

 

三、实例

 

实现在QII中利用原理图输入法设计一个移位寄存器,命名为lpm_shift,并以lpm_shift.v为顶层文件输出,再写一个名为top_tb.v的testbench文件。

 

(一)纯粹的功能仿真

 

           进行功能仿真必须的输入文件有:HDL文件;Testbench文件;仿真原型文件(此时添加)或者预编译库文件(仿真后制定)。

 

1、modelsim se--file--project,输入工程么为func_test,指定工程保存路径为...\func。在文件夹下又建立了source的文件夹专门用来存放输入文件。

 

2、将lpm_shift.v 和testbench.v拷贝到...\func\source里。

 

3、add existing file添加source下的文件及仿真原型文件220model.v。

 

4、在workspace里面选一个文件右键compile-->compile all。

 

5、启动仿真器,指定顶层设计单元。simulate-->start simulation... 。展开work库,指定testbench确定。

 

6、查看波形 view-->debug window-->wave,将要观察的信号拖入窗口(或者右击信号add-->add to wave)。

 

7、在transcript中运行:run 1 ms。查看结果,放大后发现完全没有延时。

 

(二)综合后功能仿真

 

            进行综合后功能仿真必须的输入文件有:在QII中生成的网表文件;Testbench文件;仿真原型文件(此时添加)或者预编译库文件(仿真后制定)。

 

  1、新建一个工程,将路径保存到...\simulation\psyth,命名为psyth_test。

 

  2、添加所需输入文件到工程(同上)。

 

在QII中生成网表的方法:device-->eda tools settings-->simulation对话框,toolname:modelsim;output directery:...\psyth\source。

more settings-->generate netlist for functional simulation only--->on,点OK保存,进行全编译。检查...\psyth\source,发现生成一个*.vo文件(网表文件)。(VHDL的输出网表文件时*.vho后缀)

 

  3、Testbench文件继续用top_tb.v。库文件在start simulation对话框下的libraries添加cycloneii_ver

 

  4、查看波形

 

(三)布局布线后时序仿真

 

            进行布局布线后时序仿真必须的输入文件有:在QII中生成的布局布线后网表文件;延时文件*_v.sdo(verilog)或*_vhd.sdo(vhdl);Testbench文件;仿真原型文件(此时添加)或者预编译库文件(仿真后制定)。

 

在QII中生成布局布线后网表的方法:重新把generate netlist for functional simulation only改回off。全编译后除了生成网表文件以为还会生成标准延时文件SDF文件。

 

与综合后功能仿真的不同时需要制定延时文件start simulation\sdf添加*_v.sdo。再选中*_v.sdo点modify....指定apply to region里面,还要写testbench里的例化顶层文件

posted @ 2013-01-17 20:52  天马行空W  阅读(2678)  评论(0编辑  收藏  举报