原创 (多图) ModelSim+Synplify+Quartus的Altera FPGA的仿真与验证(1)

2015-3-24 13:34 1154 18 18 分类: PCB

软件要求:ModelSimSE、SynplifyPro、QuartusII
适用人群:初学者
源代码:mux4_to_1.v

  工作内容:

1、设计一个多路选择器,利用ModelSimSE做功能仿真;
2、利用SynplifyPro进行综合,生成xxx.vqm文件;
3、利用QuartusII导入xxx.vqm进行自动布局布线,并生成xxx.vo(Verilog
4、利用ModelSimSE做后仿真,看是否满足要求。

  注:

1.仿真器(Simulator)是用来仿真电路的波形。
2.综合工具(Synthesizer)的功能是将HDL转换成由电路所组成的Netlist。
3.一般而言,在电路设计的仿真上可分为Pre-Sim和Post-Sim。Pre-Sim是针而Post-Sim则是针对综合过且做完成了AutoPlaceandRoute(APR)的电路进行仿真,以确保所设计的电路实现在FPGA上时,与Pre-Sim的功能一样。

  1、前仿真(Pre-Sim)

  步骤一:打开ModelSimSE,然后建立一个Project;
※建立Project的方式为点选File→New→Project…;
※设定ProjectName与Projectlocation,按OK即可建立Project。

前仿真

  步骤二:新增设计文档或加入文档。
※新增文档的方式为点选File→New→Source→Verilog,然后对文档进行编辑并储存为xxx.v;
※加入文档的方式为点选File→AddtoProject→File...,然后点选xxx.v;

新增设计文档或加入文档

  步骤三:编译(Compile)。
※编译文档的方式为点选Compile→CompileAll,即可编译所有的文档。
※如果编译时发生错误,在显示错误的地方(红字)点两下,即可跳到错误。

编译文档

  步骤四:新增或加入测试平台(Testbench)。
※当设计完电路后,为了确定所设计的电路是否符合要求,我们会写一个测试平台(Testbench);
※新增或加入测试平台,然后编译它。

  步骤五:仿真(Simulate)。
※仿真的方式为点选Simulate→Simulate…;
※打开Design里面的work,然后点选mux_4_to_1_tb并Add它,最后按Load即可跳到仿真窗口。

仿真的方式

  步骤六:加入信号线。
※在窗口上按右键,然后点选Add→AddtoWave;

加入信号线

  步骤七:看波形。
※在工具列上按Run,然后就会显示波形;
※慢慢看波形吧,没有波形就没有真相!

看波形

  以上就是使用ModelSim做Pre-Sim的基本流程,在此要特别强调的是,ModelSim所有的功能并不仅仅于此,如果你想要了解更多的话,一切都要靠自己花时间去问去试,只有努力的人才能有丰富的收获,加油!

  2、综合(Synthesis)

  步骤一:打开SynplifyPro,然后建立一个Project。
※先点选File,再点选New;
※选择ProjectFile,并设定FileName与FileLocation;

综合

   步骤二:加入设计文件。
※点选欲加入的xxx.v,然后按Add,再按OK后就可以将档案加入。

加入设计文件

  步骤三:选择FPGA的Device与其它相关设定。
※先点选Project,再点选ImplementationOptions。
※在Device的设定如下:Technology为AlteraStratix,Part为EP1S10,Speed为-6,Package为FC780。
※在Options的设定是将FSMCompiler与ResourceSharing打勾。
※在Constraints的设定是将Frequency设定至100Mhz。
※在ImplementationResults的设定是将ResultFileName填入与电路模块相同的名称,而xxx.vgm这个文件会在QuartusII做APR时被使用。然后将下列两个选项打勾(WriteVendorConstraintFile与WriteMappedVerilogNetlist)。
※在TimingReport的设定是将NumberofCriticalPaths与NumberofStart/EndPoints都设为11。
※在Verilog里是将TOPLevelModule填入与电路模块相同的名称,然后将UseVerilog2001打勾。

选择FPGA的Device 与其它相关设定

  步骤四:综合(Synthesis)。
※点选RUN→Synthesize,最后出现Done!就是已经综合完毕。

  步骤五:检查综合后的电路。
※先点选HDLAnalyst,再点选RTL,最后点选HierarchalView,画面会出现综合后的电路Netlist。

综合后的电路

  以上就是使用Synplify将HDL程序合成为电路Netlist的基本流程,值得注意的是,当你针对不同要求而设定的Constraints不同时,你就会得到不同的电路Netlist,所要付出的硬件代价也不同,这就需要大家多花点心思来了解其中的奥妙之处。

PARTNER CONTENT

文章评论0条评论)

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