ModelSim的前后仿真(Quartus)
Quartus 中设置modelsim 仿真
目录Quartus中设置modelsim仿真 (1)一、运行环境 (1)2.1、在Quartus中设置仿真环境 (1)2.2在Quartus中设置仿真参数 (3)2.3仿真 (5)Quartus中设置modelsim仿真一、运行环境1.1软件环境:Quartus V11.1Modelsim10.0.Cwindows7.01.2硬件环境芯片:MAXII EPM1270T144二、设置过程2.1、在Quartus中设置仿真环境点上图中的【Launch Simulation Library Compiler】,处在上图中我们按数字顺序设置:①仿真工具路径及我们安装的modelsim的路径,记住是modelsim.exe所在文件位置。
②选择我们要使用的仿真库,我们现在用的是maxII系列的,所以选择它,如你还要其它的,可以自己选择③选择仿真语言,你用verilog编写的测选择verilog④设置编译后的输处路径⑤选择是否将设置加到工程中设置好后点【StartCompilation】开始编译编译完成后会出现以下窗口点OK后,我们会看到一些信息如上的信息则表示没有问题2.2在Quartus中设置仿真参数回到主窗口,按下图中步骤打开设置窗口设置窗口如下,在category中点【EDA Tool Settings】中的【Simulation】按上图中的,先选择Tool Name再一步一步设置设置完1,2,3步后开始设置第4步,设置quartus与modelsim的链接按下图操作先选择Compile test bench,再点击【Test benches】按钮,打开设置窗口按上图1、2、3、4设置好后,开始添加仿真驱动文件(此驱动文件就是modelsim仿真文件了,要自己编写,但不需要加到工程中。
我写的是一个sim.v文件,sim.v中的模块名也为sim.2.3仿真做完以上操作就可以进行仿真了仿真前先编译一下工程文件,如没有任何问题则可以进行以下操作点击仿真按钮后,Quartus就会自动调用modelsim了。
QuartusII调用modelsim无缝仿真
QuartusII调⽤modelsim⽆缝仿真本篇⽂章为转载,写的不错,最近在学modelsim仿真,⽹上的教程很乱,把⾃⼰认为不错的整理贴出来,后⾯有机会会写个详细点的。
Quartus 中调⽤modelsim的流程1. 设定仿真⼯具assignmentèsettingèEDA tool settingèsimulation选择你需要的⼯具。
2. ⾃动产⽣测试激励⽂件模板:processingèstartèStart test bench template writer我们点击之后系统会⾃动在⽬录:当前⽂件夹è simulation è modelsim (这个⽂件夹名字跟你选的仿真⼯具有关) 中产⽣⼀个测试激励⽂件xxx.vt(Verilog test bench) 或者 xxx.vht(VHDL test bench), ⽂件名跟你⼯程中的Top module 的名字⼀样,后缀为.vt或者.vht。
3. 编辑⾛动⽣成的test bench⽂件我们加⼊⾃⼰需要的激励以及初始化语句,这⾥我们还要修改test bench的模块名字为tb(我们会看到这个名字和后⾯的设定有联系)。
4. 连接test bench,我们需要从Quartus中⾃动调⽤仿真⼯具,所以需要设定Native Link选项。
a) 还是在simulation的设置页⾯⾥,设定 Native Link对话框中的设定。
我们这⾥因为需要⼯具⾃动调⽤激励所以选中b) 点击右边的Test Benches, 我们需要在这⾥设定⼀个相关联的test bench.这⾥会弹出⼀个让你指定test bench的对话框,因为我们之前没有指定任何的test bench,所以这⾥是空⽩的。
c) 指定test bench因为我们是第⼀次产⽣test bench,点击new.点击New之后会产⽣⼀个New Test bench setting的对话框,在这⾥你将test bench和你的相应的test bench file进⾏绑定。
Quartus调用ModelSim仿真教程
选择 Specify Design Unit 工作库下的目标文件,点 Next,出现下面对话框
可以指定 Testbench 的名称以及要编译到的库等, 此处我们使用默认设置直接点 Finish。 这时在 Testbench 内会出现对目标文件的各个端口的定义和调用函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5.4 编译待测文件
9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @ 珠联璧合 xlzhu xlzhu@
调用 Model Sim 仿真教程 Quartus Quartus调用 调用Model ModelSim Sim仿真教程
2.3 破解详解 (1)产生 License 运行安装文件夹的 crack 目录下的 keygen.exe 文件,点击 generate
生成 license.dat 文件
(2)拷贝 License 文件到安装目录 将生成的 license 文件复制到 modelsel se 的安装目录 D:\Modeltech_6.0\win32 下。 (3)建立环境变量 右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。按下图所示 内 容 填 写 , 变 量 值 内 如 果 已 经 有 别 的 路 径 了 , 请 用 “;” 将 其 与 要 填 的 路 径 分 开 。 \license.dat LM_LICENSE_FILE = D:\Modeltech_6.0\win32 D:\Modeltech_6.0\win32\license.dat
安装目录下有安装文件 mti60se 和破解文件夹 crack。 破解文件夹内存放 keygen 和安装 说明。
quartus与modelsim联合仿真步骤总结自己
1.首先安装好quartus和modelsim2.复制altera quartus eda sim_lib 中对应芯片的.v文件到modelsim文件夹内3.打开quartus新建工程在第四步eda tool setting 中simulation选项中选择modelsim 语言默认为veillog 后面不打勾4.assignments settings eda stimulation工具选择modelsim 路径选择modelsim安装的路径写到win32这一步点击确定至此准备工作全部完成5.写veillog 程序然后保存编译编译后会在我们的工程目录下生成simulation文件夹,里面又有一个modelsim文件夹。
6.创建或者是编写testbench引导文件简单的可以创建复杂的需要自己编写quartus自己创建不了这是一个端口引导文件目的是建立modelsim和quartus之间的桥梁能够让modelsim创建出我们需要的与quartus中相匹配的端口并且执行相同的功能这些功能执行信息都存放在了testbench引导文件当中7.创建testbench文件过程:Processing->Start->Start Test Bench Template Write这时创建的testbench文件存放在4中所说的modelsim文件夹中以.vt为后缀名以工程名命名8.添加该文件:Assignments->EDA Tool Settings选择Simulation设置仿真环境在NativeLink settings中选择Compile test bench并点击后面的Test Benches 在Test Benches中点击New设置Test Bench属性在Test bench entity栏一定要填写刚刚我们创建的testbench文件的实体名即module top_vlg_tst();中的top_vlg_tst。
quartus的modesim仿真过程
1.撰写testbench激励文件:单击Quartus中的菜单‘Processing’->‘start’->‘Start Test Bench Template Writer’,如图一所示,自动生成激励模板(*.vt)。
打开该模板,并填写完整,保存,编译。
Testbench 常用语:●clk<= not clk after 10 ns;●process beginwait for 10 ns; clk<='1';wait for 10 ns; clk<='0';end process;●en <= '0' after 0 ns,'1' after 50 ns,'0' after 850 ns,'1' after 900 ns;2. Modelsim和Quartus的连接。
单击Quartus中的菜单‘Tools’->‘options’,如图二所示。
随后出现图三所示的窗口,点击左边菜单树下的‘Eda Tool Options’,再将原先modelsim的启动路径拷贝到‘Modelsim’的空白处,或单击右侧的‘。
’选择启动路径。
最后点击Ok,连接生效。
图二图三3. 设置编译信息。
单击Quartus中的菜单‘Assignment’->‘Settings’,如图四所示。
随后进入图五所示的Settings 界面,点击左侧菜单树‘EDA Tool Settings’下的‘Simulation’,右边的窗口出现Simulation 界面,并进行如图五的设置。
其中点中‘Compile test bench’左边的圈圈后,再点击右侧的按钮‘Test Benches。
’进入图六所示的界面,点击右上按钮‘New’进入图七所示的‘New Test Bench Settings’界面,填入相关信息:激励文件名(1),激励文件实体名(2),激励文件中的例化名(3),最大仿真时间(4),和激励文件的具体路劲(5)。
Quartus II 直接调用 modelsim se 进行前仿真和后仿真
Quartus II 直接调用modelsim se 进行前仿真和后仿真Modelsim的独立版本仿真速度比Quartus自带的Modelsim-Altera快,且Modelsim的独立版本支持Verilog和VHDL语言的混合仿真,因此Modelsim-Altera尽管可以直接从Quartus 官方下载,但不少人仍然会选用独立版本的Modelsim进行设计仿真。
使用Modelsim-Altera非常方便,安装后Quartus已经做好了与Modelsim-Altera的链接。
如果使用独立版本的Modelsim,则需要自己手动配置才能将独立版本Modelsim与Quartus 链接使用。
以下以使用Quartus II 11.1sp2和modelsim se 10.0a进行工程的前仿真后后仿真为例进行介绍。
即在Quartus进行设置,直接通过Quartus II的菜单调用modelsim se运行前仿真和后仿真。
当然也可参照网上的介绍,编译modelsim的Altera库,在modelsim se中直接建立工程并运行仿真。
本文介绍通过在Quartus中进行设置,通过Quartus菜单直接调用运行modelsim se的仿真,配置好后就如同Altera官方的Modelsim-Altera版本一样使用简便。
第一步:配置modelsim se路径Tools->Options打开Options对话框,选General->EDA Tool Options,设置Modelsim路径,可直接填入或浏览Modelsim路径,如下图所示:第二步:设置testbenchAssignments->Settings,打开Settings对话框,EDA Tool Settings->Simulation设置Tool name选Modelsim,Format for output netlist选择所用语言,Time scale需仿真时间精度。
Modelsim仿真方法总结
Modelsim仿真方法总结第一篇:Modelsim 仿真方法总结Modelsim 仿真方法总结Modeling 仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真。
Modelsim各版本的使用方法大体一致,Modelsim仿真主要分为前仿真和后仿真。
下面来具体介绍modelsim 的仿真方法,涉及quartus-modelsim联合(使用)仿真的差异会特别提示。
前仿真与后仿真说明 1.1 前仿真前仿真也称为功能仿真、行为仿真。
旨在验证电路的功能是否符合设计要求,其特点是不考虑延迟(包括门延迟与线延迟),主要验证电路与理想情况是否一致。
前仿真需要用到RTL级代码(由源代码经过综合后产生)与T estbench。
1.2)后仿真后仿真也称为时序仿真或者布局布线仿真。
是指在电路已经映射到特定的工艺环境以后,综合考虑门延迟与线延迟的影响,验证电路在一定的时序条件下是否存在时序违规以及能否满足设计构想的过程。
需要用到的文件是——从布局布线结果中抽象出来的门级网表、testbench和后缀名为sdo或者sdf的标准时延文件。
注:扩展名为sdo和sdf的标准时延文件包含门延迟与实际布线延迟,能较好的反应芯片的实际工作情况。
二)modelsim仿真主要有以下几个步骤:(1)建立库并映射库到物理目录;(2)编译源代码(包括Testbench);(3)执行仿真;解释:①库:modelsim中有两类仿真库。
一种是工作库,默认名为work;另一种是资源库。
Work库中存放当前工程下所有已经编译过的文件,所以编译前一定要建立一个work库。
资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被存放在不同的资源库内。
(例如要想对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。
)映射库用于将已经预编译好的文件所在目录映射为一个modelsim可识别的库。
如何从QuartusII中调用Modelsim进行仿真
如何从Quartus II中调用Modelsim进行仿真--穆永强版本说明:Quartus II 11.0版本;ModelSim-Altera 6.6d版本。
一、设置第三方EDA工具在Tools -> Options中设置ModelSim的安装路径,注意要设置到win32文件夹(64位软件对应的就是win64)。
在Assignments -> Settings中设置仿真工具为ModelSim。
这样Quartus就能无缝调用ModelSim了。
..二、编写Testbench我们可以通过Quartus自动生成一个Testbench的模板,选择Processing -> Start -> Start Test Bench Template Writer,等待完成后打开刚才生成的Testbench,默认是保存在simulation\modelsim文件夹下的.vt格式文件。
..打开vt文件后可以看到Quartus已经为我们完成了一些基本工作,包括端口部分的代码和接口变量的声明,我们要做的就是在这个做好的模具里添加我们需要的测试代码。
一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。
‘timescale 1ns/ 1ps表示仿真的单位时间为1ns,精度为1ps。
想要进行仿真首先要规定时间单位,而且最好在Testbench里面统一规定时间单位,而不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题,而timescale本身对综合也就是实际电路没有影响。
..其实Testbench本身可以看做一个模块或者设备(本例中的模块名为add_vlg_tst),和你自己编写的模块进行通信。
通过Testbench模块向待测模块输出信号作为激励,同时接收从待测模块输出的信号来查看结果。
因此,在待测模块中的reg型信号在Testbench中就变成了wire,待测模块中的wire型信号在Testbench 中则对应为reg型。
ModelSim仿真Quartus
执行以下步骤的环境是,计算机上安装了Quartus II 7.1及ModelSim。
其中由于Quartus II 7.1软件不支持中文,空格的安装路径,所以其他各软件的安装路径也不能包含中文与空格,否则会导致Quartus II 7.1不能和各软件相关联。
一.首先得使Quartus生成用于ModelSim仿真的文件。
如果在Quartus下新建工程时就决定以后要用ModelSim仿真了,则在新建工程向导页EDA Tool Settings [page 4 of 5]下的EDA simulation tool下选择ModelSim。
二.如果想对已经存在的Quartus程序使用ModelSim仿真,则打开Assignments下的EDA Tool Settings…菜单,选择EDA Tool Settings…选项下的Simulation,Tool name选择ModelSim,对于其他的选项可以根据自己的需要进行选择,如选择输出网表文件的格式,时间精度,输出文件的位置等。
对于选项中的“Run gate-level simulation automatically after compilation”最好不钩选,因为我现在的软件环境好像还没有能够在Quartus编译完成后直接调用ModelSim的能力。
三.设置好以后,则进行编译时会发现本来进行Analysis & Sunthesis、Fitter、Assembler以及Classic Timing Analyzer编译过程下会出现新的EDA Netlist Writer编译过程。
编译完成后会在相应工程的目录下生成simulation\modelsim文件夹(该文件夹即根据在EDA Tool Settings…选项下输出文件位置来确定),里边有用于ModelSim仿真的*.vo文件(如果输出的是VHDL文件形式,则后缀为vho)。
其它文件的怎么让ModelSim用还没有搞清楚(由于潘松的那本《EDA技术实用教程》里讲的ModelSim版本好像与我用的不一样。
ModelSim的前后仿真(Quartus)
利用Quartus5.0实现功能仿真1)打开一个工程文件。
2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。
在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。
(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。
最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。
编译的报告里也会分别列出最快和最慢的时序报告。
)3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。
4)新建一个波形仿真文件,文件后缀名为.vwf。
选择File菜单下的New->Other Files->V ectorWaveform File。
如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。
波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。
将新建的波形仿真文件保存下来。
5)将需要仿真的信号加入波形编辑窗口。
在列表区任一位置双击或者点击右键选择“InsertNode or Bus…”,弹出的对话框点击“Node Finder”按钮。
在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。
如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。
用modelsim仿真
使用ModleSim 进行前仿真和后仿真前言由于Quartus 9.1SP1已经说明在Quartus的后续版本不再支持内置的仿真工具,而且Quartus自带的波形仿真工具实在很差,且不能加载testbench,所以使用ModelSim-Altera进行仿真。
本文使用工具的版本是,Quartus II 9.1 sp1, ModelSim Altera 6.4a。
皆以全部破解。
本文的例程是基于特权的《深入浅出玩转FPGA》lesson9,无符号16位乘法器。
要使用Quartus中的Tools -> Run EDA Simulatin Tools -> EDA RTL Simulatio,直接调用ModleSim则需要在Tools -> Options 里设置ModelSim的路径。
如图:使用ModelSim进行前仿真前仿真既功能仿真,在特权配套的lesson9讲解视频中已经做过讲解。
1:在Quartus中选择Assignments -> Settings。
在EDA Tool Settings 选择Simulation,设置Tool name为ModelSim-Altera,Format for output netlist选择Verilog(会生成.vo的Verilog输出文件,若选择VHDL则会生成.vho的VHDL输出文件),其它的可以默认就行。
如图12:添加testbench文件。
点击上图中的TestBenches,选择New新建一个,Test bench name和Top level module in test bench中填入测试文件的模块名,Design instance name in test bench 填入测试文件中例化的源文件模块的例化模块名。
在Testbench files 里点Add,添加已经写好的TestBench测试文件。
如图2:点OK返回。
3,点击Tools -> Run EDA Simulatin Tools -> EDA RTL Simulatio,Quartus会直接调用ModleSim,且vtf_test中的信号已经加入wave中,点RUN all,会运行显示波形。
modelsim后仿步骤
Modelsim 后仿真操作步骤后仿就是时序仿真,因为时序仿真是在综合之后故称后仿真。
现将综合到后仿的简单步骤细列如下(并附图):一,综合(所用工具是quartus)1,建立工程,其他不变,只是在选择仿真工具时留意下图红圈处。
(图1)2,设置仿真工具:assignments->settings...->EDA Tool Settings->Simulation 的Toll name 选择modelsim,其他默认设置即可,3,综合,综合成功后,可以看到再工程目录的simulateion->modelsim下面有两个文件.sdo和.vo文件,前者是加了标准延时的时序反标注文件,后者是综合出来的网标文件。
(图2)那么后仿时就是对.vo文件进行仿真,且仿真文件(testbench)就是前仿真时的文件。
只是还要加入库文件,和延时文件(.sdo)。
二,时序方针(所用工具是modelsim)1.首先编译altera 库文件: 在modelsim新建工程,在工程的library下新建一个库命名为sim;(图3)再加入文件,浏览到altera/quartus的安装目录再找eda->sim_lib,(图4)我的是:D:\altera\80\quartus\eda\sim_lib,选择所有.vhdl文件或者.verilog文件(根据自己设计所采用的语言,选择相应的文件,如果阁下是两种语言联合编程,那就把所有的文件全部编译,肯定错不了,我试过了。
),全部编译后,可以在libraray->sim中看到编译后的文件了。
2,在modelsim下建立新的工程,将在quartusII下生成的.vo文件和测试文件testbench加入工程中,(图5)全部编译,通过后,选择状态栏中start simulation打开一个仿真对话框,(图6)选择仿真对象为work->testbench,(图7)再选择library添加库sim,(图8)再选择SDF,添加延时文件.sdo,注意这里在Apply to Region文本框中填上所选择延时文件的作用域,即您老在testbench里面所实例化的顶层文件的实例化名(红色圈出)。
Quartus与Modelsim之间仿真-fft实例演示
如何在modelsim中对quartus中产生的核进行仿真
1.使用lpm生成文件,其中要选择modelsim的testbench仿真文件要选择
2.工程文件所在的目录不可以使用汉字或带有空格的目录名
3.打开modelsim,将目录选在工程所在目录
4.在modelsim中的FILE中点击load,选中tcl批处理文件,点击即可。
5.仿真结束后,即可使用matlab对各输入输出文件进行信号生成、分析,具体实例见FFT文件夹
6.在FFT文件中生成的数据是帧结构的,也就是说,在做fft显示时,要注意与fft的点数相结合,这样显示的才是一个完整的周期,具体操作如下
a)打开quartus,建立工程,生成FFT核
b)
c)点击step3
d)
e)
f)
g)
h)
i)
j)输入数据产生
k)经过FPGA的FFT程序后数据的检验
(L)分析结果显示。
quartus软件下的modesim仿真方法
一、Quartus 2中仿真环境设置1、设置仿真软件modelsim-altera路径:tools->options->general->eda tool options,弹出对话框:Modelsim-altera:C:\altera\11.0\modelsim_ase\win32aloem(说明:C:\altera\11.0\modelsim_ase\win32aloem为modelsim安装路径)点击:ok2、Assignments->settings->EDA tools settings->simulation,弹出对话框:Tool name:modelsim—altera;Format for output netlist:verilog hdl;设置好后,点击apply和ok;3.测试平台设计(自动生成测试平台模板文件)先将Con_Motor.v文件设置为顶层文件;Processing->start->start test bench template writer,如图:生成的testbench文件路径:项目\simulation\modelsim\顶层文件名.vt,即testbench文件与顶层文件名相同;该例为Con_Motor.vt。
(1)向设计工程添加测试平台文件Con_Motor.vt;(2)打开Con_Motor.vt文件后:先用双斜杠//屏蔽掉@eachvec语句,即//屏蔽掉@eachvec语句;(把@eachvec注释掉才能得到一段很长的波形,不然仿真时间就非常短,如果在它之前有在这个always过程块里规定时钟信号的翻转的话,这个时钟信号也不会翻转。
总之,注释掉它。
)添加激励信号clk和command,修改后的测试平台文件如下:`timescale 1ns/ 1nsmodule Con_Motor_vlg_tst();// constants// general purpose registersreg eachvec;// test vector input registersreg CLK;reg Command;// wireswire CP;// assign statements (if any)Con_Motor i1 (// port map - connection between master ports and signals/registers.CLK(CLK),.CP(CP),.Command(Command));initialbegin// code that executes only once// insert code here --> beginCLK =0;Command =0;#5 Command =1;// --> end$display("Running testbench");endalways// optional sensitivity list// @(event1 or event2 or .... eventn)begin// code executes for every event on sensitivity list// insert code here --> begin#1 CLK <= ~CLK;//@eachvec;// --> endendendmodule(1)向仿真工程添加测试平台文件:Assignments->settings->simulation->compile test bench ,如图:单击“test benches..”,如图:单击“new”,如图:Test bench name:测试平台名,即.vt的文件名;Top level module in test bench:test bench中顶层模块名,即testbench中的待测模块名;注意:Top level module in test bench 必须和testbench中的待测模块名一致;Test bench files栏的File name项:测试平台文件名,和Test bench name相同,即.vt的文件名,单击...进行浏览,找到.vt文件,该.vt文件的浏览图:单击open打开;单击ADD添加后,图:单击ok后,如图:单击“ok”后,如图:单击apply,再单击ok,完成测试平台向仿真工程的添加。
用quartusII再带的modelsim进行后仿真(时序仿真)的操作步骤
⽤quartusII再带的modelsim进⾏后仿真(时序仿真)的操作步
骤
在实际的项⽬⼯程中,基本上都是在Modelsim进⾏功能仿真后,直接进⾏板级调试(⽤signaltap调试),但是中规中矩的后仿真也不能不会。
操作步骤如下:
1.将quartus II与其⾃带的Modelsim-Altera进⾏关联,quartus II软件中【Tools】--->【Options】,按图1进⾏操作
图1
2.在quartus II软件中进⾏全编译,这时会在⼯程⽂件夹产⽣“simulation”⽂件夹,打开并接着打开“modelsim⽂件夹”,这时⾥⾯会出现10个⽂件,其中“.vo”和“.sdo”是时序仿真需要的⽂件,将他们粘贴到modelsim的⼯程⽂件夹中。
图2
图3
3.接下来还需要Altera的器件库
其中Altera的器件库⽂件在:D:\altera\13.0sp1\modelsim_ase\altera\verilog\altera
D:\altera\13.0sp1\modelsim_ase\altera\verilog\cycloneive
图4
4.将testbench⽂件和“.vo”⽂件加到⼯程上,然后编译,然后右键选择【Add to project】-->【Simulation Configuration】,选择【Work】中的"xxx_tb"⽂件,然后选择【Libraries】中加载刚在粘贴的2个Altera器件库,然后在【SDF】中加载刚才粘贴的“xx.sdo”⽂件,然后点【Save】,最后点击“Simulation”即可进⾏时序仿真。
如图5 、6、7所⽰:
图5
图6
图7 。
Quartus II 与 ModelSim 功能仿真与后仿真扫盲
Quartus II 与 ModelSim 功能仿真与后仿真扫盲本文主要描述了如何在QUARTUS II 中输入程序文件,生成网表及标准延时文件,然后通过MODELSIM进行功能仿真与后仿真的过程,主要为图解,含全部代码及仿真波形。
工具:Quartus II 5.0 sp1ModelSim SE 6.1b芯片:MAX II :EMP570T100I5语言:Verilog HDL程序功能:太简单了,自己看源程序吧源程序:module sim(reset,clk_in,clk_o1,clk_o2);input reset,clk_in;output clk_o1,clk_o2;clk_o2;regassign clk_o1 = clk_in;reset or posedge clk_in) //always @(negedgebeginif(!reset)0;=clk_o2else~clk_o2;clk_o2=endendmodule测试程序:`timescale 1ns/1nsmodule testsim;reset,clk_in;regwire clk_o1,clk_o2;simaa(.reset(reset),.clk_in(clk_in),.clk_o1(clk_o1), .clk_o2(clk_o2));aa(reset,clk_in,clk_o1,clk_o2);//simalways~clk_in;=#5000 clk_ininitialbeginclk_in0;=reset = 0;#10000;reset = 1;$stop;#1000000endendmodule测试程序注意:例化时,最好用名称关联的方法进行例化,我曾试过用位置关联的方法,但后仿真不正常。
不知道是不是Modelsim在语法上的要求。
一、 程序输入与网表、延时文件的生成,相关库文件的拷贝在建立QII源文件时,选择modelsim作为仿真工具,这个不详说了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用Quartus5.0实现功能仿真1)打开一个工程文件。
2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。
在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。
(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。
最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。
编译的报告里也会分别列出最快和最慢的时序报告。
)3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。
4)新建一个波形仿真文件,文件后缀名为.vwf。
选择File菜单下的New->Other Files->VectorWaveform File。
如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。
波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。
将新建的波形仿真文件保存下来。
5)将需要仿真的信号加入波形编辑窗口。
在列表区任一位置双击或者点击右键选择“InsertNode or Bus…”,弹出的对话框点击“Node Finder”按钮。
在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。
如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。
界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。
如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。
下图显示了仿真信号加入波形编辑窗口的情况。
对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。
在列表中对应信号点击右键选择“Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。
6)编辑仿真信号激励源。
在需要加入激励的信号上右键点击“Value”,子菜单下会有多种设置。
比如说时钟、固定电平、三态等等。
也可以点击在节点列表区旁边对应的图标完成激励的设置,鼠标放在图标上滞留一段时间会出现即时帮助。
有两个地方需要说明一下:○1“Value”下选择“Count V alue”,生成自加的信号激励,可以设置的选项包括自加的起始和步进长度,自加起始及终止的时间位置。
多用于设定地址或是数据信号的激励。
○2设置一些使能、读写等信号或者串行数据信号需要使用自定义的功能,可以选择对应的信号,点击“Waveform Editing Tool”图标,鼠标会变成图标显示的样子。
在需要变化的时域内拖动鼠标,即可以改变信号的高低电平。
如下图中显示的“rst”信号的设置。
7)从Tools菜单或快捷图标打开simulation tools, 在点击按钮前,注意检查两点:第一,确认simulation mode 是功能仿真(function mode),用户作function 仿真,和timing 仿真需要QuartusII 产生不同的netlist , 缺省情况下,QII产生的是timing netlist, 往往很多错误就是以为function 仿真就是在simulation tools 下选择function mode,客户必需注意要提前在“Processing”菜单下的“Generate Functional Simulation Netlist“产生好仿真网表文件。
第二,调整不同的*.vwf 文件,缺省时,所指向的激励向量文件就是顶层的,如果用户在设计中对各个底层的模块或关键模块仿真,需要注意切换向量文件。
8)所有信号激励设置完成之后,点击“Start Simulation”按钮,提示保存之后可以看到功能仿真的时序图。
9)最后,QII提供向量文件vwf 和语言vt 之间的转换。
即可以把VWF 文件转换成VT 的文件。
(verilog testbench),但这个vt 文件不能当作modelsim 的testbench 用,只能在QII 中用。
利用Quartus5.0实现时序仿真步骤与功能仿真基本一样,只要在第二步“Simulation Mode”下拉菜单选择“Timing”。
另外在开始仿真之前要完成工程的布线工作,选择“Processing”菜单下的“Start->Start Fitting”或者直接点击“Start Compilation”按钮。
因为是后仿,功能仿真中的第三步骤“Generate Functional Netlist”就不需要了。
利用ModelSim SE6.0C实现时序仿真1)打开一个工程文件。
2)打开Settings设置栏,选择EDA Tools Settings下的Simulation栏。
在右边出现的设置栏中将“Tool name”的下拉菜单选择“ModelSim(Verilog)”(如果工程用VHDL语言实现,则可以选择“ModelSim(VHDL)”;如果ModelSim使用的是for Altera的专用版本,则可以选择“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。
另外在设置栏中还有其他的核选框。
○1如果选中“Maintain hierarchy”,则表示在做时序仿真时就能看到像在功能仿真的工程文件层次结构,可以找到定义的内部信号。
因为在做后仿时,源文件中的信号名称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。
这个设置与ISE 里综合右键属性的Keep Hierarchy选择YES的功能是一样的。
○2如果选中“Generate netlist for functional simulation only”,则表示只能做功能仿真。
3)点击“Start Compilation”按钮编译工程,完成之后在当前的工程目录下可以看到一个名为“Simulation”的新文件夹,下面的“ModelSim”文件夹下包括仿真需要的.vo网表文件和包含延迟信息的.sdo文件。
4)打开ModelSim软件(或者在Quartus下“Settings->EDA Tools Setting->Simulation”出现的设置栏中选中“Run this tool automatically after compilation”,直接从Quartus下调用ModelSim软件),可以在当前工程目录下新建一个Project。
在Project标签栏内点击右键,出现在快捷菜单中选择“Add to Project->Existing File…”。
加入当前工程目录的“\Simulation\ModelSim\”路径下的.vo文件、TestBench文件和对应当前工程所选择器件的网表文件。
比如:当前工程选择的器件是Cyclone系列,Quartus安装目录在“C:\altera”路径下。
因此需要在“C:\altera\quartus50\eda\sim_lib”路径下找到“cyclone_atom.v”的网表文件导入到ModelSim下的Project。
如果是其他器件亦是如此,只要在此目录下找到对应有“_atom”后缀的.v文件。
当然整个大前提是ModelSim SE版本已经加入了Alterta的仿真库,不过ModelSim-Altera版本就不会存在这样的问题。
5)在出现的Project标签栏的快捷菜单中选择“Add to Project->Simulation Configuration”,会出现如上图所示的名为“Simulation1”的仿真配置。
右键点击选择“Properties”,弹出的“Simulation Properties”对话框中有几个标签栏。
在“Design”标签栏内需要选择仿真的文件,也就是TestBench文件。
在“SDF”标签栏内需要选择包含延迟信息的文件,即Quartus下生成的.sdo文件。
这里建议将.sdo文件与ModelSim的工程文件(.mpf文件)放在同一个目录下,不然ModelSim会报类似无法读取.sdo文件的错误。
当加入.sdo文件时,需要在如下图所示的“Apply to Region”的编辑框内填写延迟信息文件作用的区域。
举个例子来说明:○1TestBench文件中定义了测试文件的Module名称为ConvEncdTestBnch。
○2TestBench文件中调用待测顶层文件的实例名为top_encode_1。
(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);这是TestBench文件中调用顶层的语句)○3所以在作用区域内需要填写“/ConvEncdTestBnch/top_encode_1”。
6)右键点击名为“Simulation1”的仿真配置,快捷菜单中选择“Execute”命令,执行仿真。
7)指定延时文件sdo 路径时,特别注意“域”的指定,否则用户会在timing 仿真中报loaderror “can’t find instance file”. 指定的域可以从sim标签页查看sim 的top 层,或要仿真的对象。
另外,时序仿真时,一定要记住要把顶层top.v 用top.vo 替换。
同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone 的device 库必需命名为cycclone, maxii 的device命名为maxii, flex10Ke 和acex1K 都命名为flex10Ke,详细查看文档附件。
Simulation.pdf8)提供一个testbench 的模板。
功能仿真流程比较简单,一般不会出现什么问题,这里不再多述。