[转帖]ModelSim+Debussy仿真(Verilog)
ModelSim+Debussy仿真(Verilog)
2009-09-24 17:52:26| 分类: 默认分类 | 标签: |字号大中小订阅
利用ModelSim进行仿真,用Debussy查看仿真波形。Debussy进行debug的优点网上已有论述。下面说明仿真步骤:
1.Debussy可以直接使用fsdb文件显示仿真波形。因此,在写Testbench时,加入以下语句来生成fsdb文件,并将ModelSim仿真结果存入该文件。
initial begin $fsdbDumpfile("wave_out.fsdb");//生成fsdb文件 $fsdbDumpvars(1,sdr);//sdr为需要记录仿真信息的模块实例名,1表示只记录sdr模块内部信号.
//类推,2表示记录sdr模块及其模块内部一层实例化的模块信号
$fsdbDumpvars(1,out.sig);//记录out模块内部sig信号 end
2.由于$fsdbDumpfile和$fsdbDumpvars是Debussy的命令,ModelSim并不认识,为了让ModelSim认识并调用该命令,作如下操作:在Debussy安装目录下找到novas.dll文件(C:\novas\share\PLI\modelsim_pli54\WINNT\novas.dll),将该文件拷到ModelSim安装目录下(C:\ModelSim6.3a\win32)
3.编写run.do文件
if [file exists work] { vdel -all } vlib work vlog *.v #编译源文件 vsim -pli novas.dll work.Testbench #调用dll,加载仿真 run 2ms #仿真时间控制 quit #退出ModelSim
4 编写sim.bat文件
cd E:\verilog\demo #当前仿真目录 vsim -c -do run.do #启动ModelSim命令行,并运行run.do
5.双击sim.bat文件,进行仿真,仿真完毕后,使用Debussy打开wave_out.fsdb即可。
来源:http://wenku.baidu.com/view/663d10c1d5bbfd0a795673fb.html这篇写得详细多了!
posted @ 2011-07-10 23:10 zlh840 阅读(171) 评论(0) 编辑
[转帖]Quartus II,modelsim,ISE结合应用
posted @ 2011-07-10 20:44 zlh840 阅读(989) 评论(0) 编辑
[转帖]ModelSim+Synplify+Quartus的Altera FPGA的仿真与验证
来源:http://keendawn.blog.163.com/blog/static/88880743200981555632273/
这个人也喜欢海贼王,跟我一样哈,呵呵....
软件要求: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打勾。
步骤四:综合(Synthesis)。 ※点选RUN→Synthesize,最后出现Done!就是已经综合完毕。
步骤五:检查综合后的电路。 ※先点选HDLAnalyst,再点选RTL,最后点选HierarchalView,画面会出现综合后的电路Netlist。
以上就是使用Synplify将HDL程序合成为电路Netlist的基本流程,值得注意的是,当你针对不同要求而设定的Constraints不同时,你就会得到不同的电路Netlist,所要付出的硬件代价也不同,这就需要大家多花点心思来了解其中的奥妙之处。
3、自动布局布线(APR)
步骤一:开启QuartusII,然后建立一个Project。 ※先点选File,再点选NewProjectWizard…。 ※设定WorkDirectory,ProjectName与Top-LevelEntityName,再按Next。
步骤二:加入设计文件。 ※点选Add…,将Synplify合成出来的xxx.vqm加入,再按Next。
步骤三:设定相关的EDATools。 ※在ToolType点选Simulation,ToolName点选ModelSim。
※点选Settings,将TimeScale设定为1ns。
步骤四:设定Family。 ※设定Family为Stratix,再按Next。
步骤五:设定Device。 ※设定Device为EP1S10F780C6,再按Finish,即可完成Project的设定。
步骤六:编译。 ※点选Processing→StartCompilation,即可开始编译。
步骤七:完成编译。 ※弹出下面窗口即代表编译完毕。
以上就是使用QuartusII对电路Netlist做APR的基本流程,并且利用设定仿真工具所产生的xxx.vo(VerilogOutputFile)与xxx.sdo(StandardDelayOutputFile)做后仿真。
4、后仿真(Post-Sim)
步骤一:启动ModelSim,然后建立一个Project。
※建立Project的方式为点选File→New→Project…。 ※设定ProjectName与Projectlocation,按OK即可建立Project。
步骤二:加入设计文档。
※将xxx.vo更改为xxx.v,然后加入。
步骤三:加入组件库文件。
※由于我们是采用Altera的CellLibrary来合成电路,所以合成后的电Netlist里所包括的那些LogicGates与Flip-Flop都是出自于CellLibrary,所以模拟时要将此CellLibrary加入。 ※我们所选用的Family是Stratix,所以到QuartusII edasim_lib里将Stratix的CellLibrary(stratix_atoms.v)加入。
步骤四:加入测试平台。
※加入Pre-Sim的测试平台,并在测试平台里加上`timescale1ns/100ps。
步骤五:编译。
※编译档案的方式为点选Compile→CompileAll,即可编译所有的档案。 ※如果编译时发生错误,在显示错误的地方(红字)点两下,即可跳到错误。
步骤六:仿真。
※仿真文件的方式为点选Simulate→Simulate…。
步骤七:加入要观察的信号。
※在窗口上按右键,然后点选Add→AddtoWave。
步骤八:观察波形。
※慢慢看波形吧,没有波形就没有真相!
步骤九:比对Pre-Sim与Post-Sim。
※很明显地,Post-Sim的输出有不稳定的信号,并且受到延迟时间的影响。
posted @ 2011-07-10 20:27 zlh840 阅读(137) 评论(0) 编辑
[转帖]如何在Quartus II 里使用Modelsim(从Quartus中导出testbench为modelsim用)
来源:http://apps.hi.baidu.com/share/detail/31238266
百度文库:http://wenku.baidu.com/view/9b20ceb069dc5022aaea00df.html
1. 目的 当我们使用QuartusII,但是大多数朋友都习惯用Modelsim SE来做仿真,由于Quaruts有很多本身器件的特色,所以造成了在仿真上的麻烦,当然网路上也有一些讲解,但是都是不太系统,特别是对初学者来说,使用的时候还是感到一头雾水。 本文的目的就是一个如何在Quartus 使用Quartus 和Modelsim 仿真的例子。2.建立QuartusII 工程。 这里目的只是建立一个很简单很简单的QuartusII 的工程,逻辑采用原理图方式绘制。