DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 129|回复: 0
打印 上一主题 下一主题

ModelSim+Synplify+Quartus的Altera FPGA的仿真实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 23:57:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
工作内容: 1、设计一个多路选择器,利用ModelSimSE做功能仿真; 2、利用Synplify Pro进行综合,生成xxx.vqm文件; 3、利用Quartus II导入xxx.vqm进行自动布局布线,并生成xxx.vo(Verilog 4、利用ModelSimSE做后仿真,看是否满足要求。  注: 1. 仿真器(Simulator)是用来仿真电路的波形。 2. 综合工具(Synthesizer)的功能是将HDL转换成由电路所组成的Netlist。 3. 一般而言,在电路设计的仿真上可分为Pre-Sim 和Post-Sim。Pre-Sim 是针而Post-Sim则是针对综合过且做完成了Auto Place and Route(APR)的电路进行仿真,以确保所设计的电路实现在FPGA上时,与Pre-Sim 的功能一样。  1、前仿真(Pre-Sim) 步骤一:打开ModelSimSE,然后建立一个Project; ※建立Project的方式为点选File → New → Project…; ※设定Project Name 与Project location,按OK 即可建立Project。

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

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

步骤四:新增或加入测试平台(Testbench)。 ※当设计完电路后,为了确定所设计的电路是否符合要求,我们会写一个测 试平台(Testbench); ※ 新增或加入测试平台,然后编译它。  步骤五:仿真(Simulate)。 ※仿真的方式为点选Simulate → Simulate…; ※打开Design里面的work,然后点选mux_4_to_1_tb 并Add 它,最后按Load 即可跳到仿真窗口。  

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

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

以上就是使用ModelSim做Pre-Sim的基本流程,在此要特别强调的是,ModelSim所有的功能并不仅仅于此,如果你想要了解更多的话,一切都要靠自己花时间去问去试,只有努力的人才能有丰富的收获,加油! 2、综合(Synthesis) 步骤一:打开Synplify Pro,然后建立一个Project。 ※先点选File,再点选New; ※选择Project File,并设定File Name与File Location;  

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


                          
                       
                          
                                步骤三:选择FPGA的Device 与其它相关设定。 ※先点选Project,再点选Implementation Options。 ※在Device 的设定如下:Technology为Altera Stratix,Part为EP1S10,Speed 为-6,Package 为FC780。 ※在Options 的设定是将FSM Compiler与Resource Sharing打勾。 ※在Constraints的设定是将Frequency设定至100Mhz。 ※在Implementation Results的设定是将Result File Name填入与电路模块相同的名称,而xxx.vgm这个文件会在QuartusII做APR时被使用。然后将下列两个选项打勾(Write Vendor Constraint File与Write Mapped Verilog Netlist)。 ※在Timing Report的设定是将Number of Critical Paths与Number of Start/End Points都设为11。 ※在Verilog里是将TOP Level Module填入与电路模块相同的名称,然后将 Use Verilog 2001打勾。  

步骤四:综合(Synthesis)。 ※点选RUN → Synthesize,最后出现Done!就是已经综合完毕。  步骤五:检查综合后的电路。 ※先点选HDL Analyst,再点选RTL,最后点选Hierarchal View,画面会出现综合后的电路Netlist。   

以上就是使用Synplify将HDL程序合成为电路Netlist的基本流程,值得注意的是,当你针对不同要求而设定的Constraints不同时,你就会得到不同的电路Netlist,所要付出的硬件代价也不同,这就需要大家多花点心思来了解其中的奥妙之处。
3、自动布局布线(APR) 步骤一:开启Quartus II,然后建立一个Project。 ※先点选File,再点选New Project Wizard…。 ※设定Work Directory,Project Name与Top-Level Entity Name,再按Next。  

步骤二:加入设计文件。 ※ 点选Add…,将Synplify合成出来的xxx.vqm加入,再按Next。  

步骤三:设定相关的EDA Tools。 ※在Tool Type点选Simulation,Tool Name点选ModelSim。

※ 点选Settings,将Time Scale设定为1 ns。

   步骤四:设定Family。 ※ 设定Family为Stratix,再按Next。

  
                          
                       
                          
                                步骤五:设定Device。 ※ 设定Device 为EP1S10F780C6,再按Finish,即可完成Project的设定。

  步骤六:编译。 ※ 点选Processing → Start Compilation,即可开始编译。   

步骤七:完成编译。 ※ 弹出下面窗口即代表编译完毕。  

以上就是使用Quartus II对电路Netlist做APR的基本流程,并且利用设定仿真工具所产生的xxx.vo(Verilog Output File)与xxx.sdo(Standard Delay Output File)做后仿真。
4、后仿真(Post-Sim) 步骤一:启动ModelSim,然后建立一个Project。 ※建立Project的方式为点选File → New → Project…。 ※设定Project Name与Project location,按OK即可建立Project。

步骤二:加入设计文档。 ※将xxx.vo更改为xxx.v,然后加入。  步骤三:加入组件库文件。 ※由于我们是采用Altera的Cell Library来合成电路,所以合成后的电Netlist里所包括的那些Logic Gates与Flip-Flop 都是出自于Cell Library,所以模拟时要将此Cell Library加入。 ※我们所选用的Family是Stratix,所以到QuartusIIedasim_lib 里将Stratix的Cell Library(stratix_atoms.v)加入。  步骤四:加入测试平台。 ※加入Pre-Sim的测试平台,并在测试平台里加上`timescale 1ns/100ps。  步骤五:编译。 ※编译档案的方式为点选Compile → Compile All,即可编译所有的档案。 ※如果编译时发生错误,在显示错误的地方(红字)点两下,即可跳到错误。  步骤六:仿真。 ※仿真文件的方式为点选Simulate → Simulate…。  步骤七:加入要观察的信号。 ※在窗口上按右键,然后点选Add → Add to Wave。  步骤八:观察波形。  

※慢慢看波形吧,没有波形就没有真相!  步骤九:比对Pre-Sim 与Post-Sim。 ※ 很明显地,Post-Sim 的输出有不稳定的信号,并且受到延迟时间的影响。

  


                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-1 16:31 , 耗时 0.088275 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表