CrazyBingo

Quartus II+Modelsim各种仿真验证

0
阅读(4779)

Quartus II+Modelsim各种仿真验证

CrazyBingo

2012-3-2

参考无双oo前辈的博文:

http://www.cnblogs.com/oomusou/archive/2009/01/30/modelsim_pre_post_simulate.html

参考book:《Altera FPGA/CPLD设计 初级篇》第二版

一、FPGA的设计验证流程

wps_clip_image-20532

图1:FPGA/CPLD设计完整流程

wps_clip_image-20305

图2:FPGA/CPLD设计简要流程

wps_clip_image-2443

图3:Quartus II中编译步步为营

二、仿真步骤各种概念与步骤

1) 前仿真

前仿真,即功能仿真,用专用放着工具对设计进行功能仿真,验证电路功能是否符合设计要求。通过功能仿真能即使发现设计中的错误,加快设计进度,提高设计的可靠性。

2) 综合后的仿真

把综合生成的标准延时反标注到综合仿真模型去,可估计门延时带来的影响,但是只能估计门延时,不能估计线延时,仿真结果和部先后的实际情况还有一定的差距,并不十分准确。

由于目前综合工具比较成熟,一般省去此环节的仿真。而且在Quartus II中,直接进行下一步仿真。

3) 布局布线后的仿真

即时序仿真。布局布线后生成的仿真延时文件最全,不仅包括门延时,还包括布线延时,所以最为准确,能较好的反映芯片的实际工作情况。

一般来说,布局布线必须进行,以此确保设计的可靠性和稳定性,发现时序违规(Timing Violation)。

4) 板级仿真

在有些高速设计的情况下,还需要使用第三方板级验证工具进行仿真与测试,入MentorTau、Forte Design-Timing Designer、Mentor Hyperlynx、Mentor ICX、Cadence SPECCTRAQuest、Synopsys HSPICE。这些工具通过设计的IBIS和HSPICE等模型的仿真,能较好的分析高速设计信号的完整性、电磁干扰(EMI)等电路特性。

5) 在线仿真

在加载配置目标板之后,设计者在必要情况下要进行的一个步骤,就是在线仿真调试,利用Quartus II自带SignalTap II在线逻辑分析仪进行分析,通过JTAG口,在线、实时读取FPGA内部信号。

一般在我们的设计中但是在我们小型设计中,时序要求不是很严格的情况下,可以省略时序仿真,只进行功能仿真(综合后的仿真一般只在IC设计中用到,一般软件能胜任综合工作,全程编译直接综合→布局布线);大型设计或时序非常严谨的情况下,务必进行时序仿真,验证时序是否违规,进而用timequest进行约束(可以用Quartus II内嵌的静态时序分析(STA),或者第三方(Synopsys的Fprmality、PrimeTime),也可以用Quartus II内嵌的Chip Editor分析芯片内部的连接于配置情况。)。另外在高速电路设计时,为了保证设计的可靠性,务必在时序仿真之后,还要进行一些板级验证。

三、Quartus II 进行功能&时序仿真

(一)Quartus II仿真相关

就算不用第三方软件,Quartus II自个儿也能完成功能仿真和时序仿真,只是波形仿真器不适合庞大的时序,gui做的比较戳罢了。

在Quartus II两种仿真,软件分为“function”与“timing”,还有快速时序仿真模型,即功能仿真与时序仿真,可在Device中的Simulator Setting时钟设置。一般我们直接进行或者软件默认为Timing时序仿真。

wps_clip_image-15706

(二)功能仿真

(1)在Setting中设置Simulator为Functional功能仿真

wps_clip_image-7906

wps_clip_image-22044

(2)生成功能仿真网标文件

wps_clip_image-25836

(3)输入激励后进行功能仿真,如下图所示:

wps_clip_image-823

(三)时序仿真

(1)在Simulation Setting中选择Timing时序仿真

wps_clip_image-20371

(2)Start simulation,如下图,可以看到时序延时(门级延时与布线延时)

wps_clip_image-7795

四、Q2+Modelsim进行功能&时序仿真

(一)Modelsim仿真相关

Modelsim是业界最优秀的HDL语言仿真器,但是更专业更牛逼,对于庞大的工程,复杂的时序,如果想Quartus II那样输入激励,坐等蛋碎吧……

相对于Quartus II而言,Modelsim也有功能仿真与时序仿真,只不过功能仿真可以自给自足,而时序仿真需要Quartus II 综合后的网标文件.vo才能进行。

Altera为了用户方便,直接发布了altera版的modelsim,当然必须对应版本才能进行自动仿真。

wps_clip_image-22760

在满足软件版本要求的同时,需要在Quartus II Tool→Option中设置第三方软件路径,如下所述:

wps_clip_image-11133

对于小白(我是小白)而言,modelsim可以通过在Quartus II的设置自动运行,进行时序仿真或者功能仿真。不过Altera软件中称为RTL级仿真与Gate Level门级仿真,分别对应功能仿真、时序仿真。

wps_clip_image-2129

(二)功能仿真

(1)在Quartus EDA Tool Setting→Simulate中设置

如下图,在功能仿真的时候,不用选择在编译后进行门级(时序仿真)

wps_clip_image-9415

(2)设置自动生成功能仿真网标

wps_clip_image-25725

(3)添加testbench文件

wps_clip_image-7236

(4)编译,Run RTL Simulation,即功能仿真

wps_clip_image-11687

(5)Quartus II+Altera Modelsim会自动完成Modelsim各种各种设置,直到仿真结束,如下:

wps_clip_image-14092

(三)时序仿真

(1)如在一开始设置中,选中在编译后自动进行门级仿真(时序仿真),软件会在编译后自动进行仿真,知道仿真结束,设置如下图:

wps_clip_image-27427

(2)当然,也可以在功能仿真的基础上,直接Run gate level仿真即时序仿真

wps_clip_image-28256

(3)Quartus II + Modelsim自动加载,时序仿真结果如下图所示:

wps_clip_image-24938

(四)偷懒调试法

在完成功能仿真,或者时序仿真最后一步之后,Modelsim已经出现了仿真结果,此时还可以进行“深度”调试:

(1)run 500ns(你随意),用以增加仿真时间

wps_clip_image-16045

(2)Restart复位,重新来过wps_clip_image-18411

(3)修改testbench测试文件,重新编译testbench文件,继续进行调试

wps_clip_image-15504

(4)完了,对于庞大的工程,当然建议在Modelsim中建立工程,独立运行。预知结果如何,倾听下回分解!

wps_clip_image-4918