原创 用Modelsim SE进行前仿真和后仿真

2009-10-12 15:47 4159 5 5 分类: FPGA/CPLD

一、前仿真


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


二、后仿真


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


三、实例


实现在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 windou--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里的例化顶层文件

PARTNER CONTENT

文章评论0条评论)

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