如何能从Quartus II中调用Modelsim进行仿真
Quartus-II调用modelsim仿真方法

方法1:在quartus ii 11.0环境下,编辑生成并修改quartus生成的test bench文件,采用手动设置激励形成波形(有很多缺陷)。
具体步骤:1.新建工程在test目录下创建工程fulladder然后直接finish;2.编写VHDL:New一个VHDL FILE,输入代码:library ieee;use ieee.std_logic_1164.all;ENTITY fulladder IS PORT( a,b,cin : IN STD_LOGIC;s,cout: OUT STD_LOGIC);END fulladder;ARCHITECTURE fulladder OF fulladder ISBEGIN s<= a XOR b XOR cin;cout <=(a AND b) OR (a AND cin) OR (b AND cin);END fulladder;保存在test目录下,文件名为默认fulladder。
3. 在Quartes II 11.0界面菜单栏中选择 Tools-->options选项卡中选中EDA tool options,在该选项卡中下面的ModelSim-Altera一项指定安装路径为(如d:/Altera/11.0/modelsim_ae/win32aloem)4.在Quartes II 11.0界面菜单栏中选择Assignments->Settings。
选中该界面下EDA Tool settings中的Simulation一项;Tool name中选择ModelSim-Altera;Format for output netlist中选择开发语言的类型VHDL或其它,如图:然后点击APPLY应用和OK。
5.设置完成后,编译工程:在Quartus II 11.0界面菜单栏中选择菜单栏选择Processing-->start Compilation,等待编译,无错后会在test目录下生成simulation目录,执行下一步。
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仿真

quartus 中调用modelsim仿真
在quartus中调用modelsim仿真,不需要调用额外的库,因为一直以来没有完完整整的好好认真的学习altera fpga,所以一直是旁门左道的折腾,导致学到的,一段时间后又忘记了,所以现在做点笔记,下次忘记的时候能不走弯路。
1.打开quartus,在setting中选择modelsim-altera,配置如下图1,
,
1
2.选择nativelink setting的test benches....,跳出test benches对话框,选择new。
3.在edit test bench settings中,填写test bench name ,top level module in test benchy
以及design instance name in test bench,其中前两个名字可以一样,即顶层文件名,最后一个随便。
4.填写end simulation at时间,即停止仿真时间。
5.file name中添加仿真文件,点add,点OK,即可
6.重新编译
7.tools ,run eda simulate tool,rtl eda simulation.
8.结束,直接进入modelsim altera界面仿真。
2014-06-24--------------------------------------------------------------------angry_kua_max。
Quartus II调用ModelsimSE进行功能仿真

Quartus II调用ModelsimSE进行功能仿真笔记中主要介绍基于工程流程的功能仿真流程示例1:简单的计数器设计并利用ModelsimSE仿真Step1 新建一个工程1.在Quartus II菜单栏中通过File下拉菜单New Project Wizard建立工程。
a.第一页:Directory,Name,Top-Level Entity[page 1 of 5]主要完成以下功能:设置工程路径(Directory)、设置工程名称(Name of Project)、设置工程中顶层实体名称(Name of Top-Level Entity)。
b.第二页:Add Files[page 2 of 5]主要完成以下工能:向工程中添加已存在的设计文件。
c.第三页:Family&Device Settings[page 3 of 5]主要实现完成功能:选择自己所使用的FPGA芯片。
d.第四页:EDA Tool Settings[page 4 of 5]主要完成功能:根据需要选择使用哪种EDA工具Design Entry/Synthesis:设计输入/综合工具Simulation:仿真工具Timing Analysis:时序分析工具Format Verification:格式验证工具Board –Level:板级工具e.第五页:Summary[page 5 of 5]主要完成功能:生成建立工程的总结报告,包含了前面设置的内容。
根据报告查看新建工程是否与自己要建立的工程要求一致,如果不一致返回(<Back)上一层或多层进行修改,直到满足要求为止。
f.Finish:通过工程向导完成新建工程。
2.向新建工程中添加设计文件。
根据自己使用的HDL语言添加设计文件,Finish完成。
本示例中设计文件代码如下所示:完成一个简单的计数器,使计数器计数满128后重新计数。
module count_128(clk,rst_n,count);//工程模块及端口声明input clk,rst_n;//输入信号:时钟信号和复位output reg[7:0] count;//定义count位宽和数据类型always@(posedge clk or negedge rst_n)if(!rst_n)count<=8'd0;//复位置零else if(count[7])//当count最高位为1,也就是计数到128时,count置0count<=1'd0;else //否则继续计数count<=count+1'd1;endmodule/*计数模块实现128计数,当coun计数满128重新计数*/3.将设计文件保存在工程目录下并对设计文件进行语法分析。
在quartusII中用modelsim-altera仿真

在quartusII中用modelsim_altera做功能仿真1.设置modelsim_altera的执行路径(即其安装路径中的可执行文件的路径)(1)Tool→Options(2)打开如下图:(3)选择general →EDA Tool Options,在右侧的窗口中选择Modelsim_Altera,在Location of Executable中单击,用浏览的方式找到该软件的安装路径中的可执行文件路径,单击确定。
到此仿真软件的设置基本完成了。
2.项目仿真当我们建立一个新的项目时是需要对其中代码进行仿真的,整个过程需要三步:2.1首先,要预先设置仿真软件;下面介绍如何预设仿真软件。
1.Assignments→Settings…2.打开如下界面3选择“Simulation”,右侧设置按上图设置。
2.2其次,仿真之前需要编写测试平台,测试平台有两种的方法:●直接建立XX.v文件●在quartusII中自动生成测试平台模板文件,文件为XX.vt文件下面介绍如何自动生成测试平台模板文件。
1.Processing→Start→Start Test Bench Template Writer注意:要生成testbench模板的前提条件是为项目选择预用的仿真软件,然后模块必须编译成功。
Testbench模板生成后的默认路径为:项目目录\simulation\modelsim\项目名.vt(因为刚才在预设置仿真软件时的“Output Directory”选择的是默认的值simulation\modelsim)。
2.对于自动生成的测试平台模版需要打开修改测试激励信号,这里不做介绍,很简单的。
2.3改写完后要在项目里添加测试平台文件到项目里。
1.Assignments→Settings…2.在打开界面做如下操作:(1)选择“Compile test bench”,然后单击“Test Benches…”(2)打开下面的窗口(3)单击“New”打开下面的窗口,且按图中填写相关信息这个窗口是用来输入testbench的资料和选择testbench的路径的。
QuartusII和Modelsim的联合仿真(详细)

QuartusII和Modelsim的联合仿真(详细)这篇⽂章不需要在modelsim中建库、映射、建⼯程等⼀些繁琐的步骤,直接使⽤modelsim中的默认work库。
使⽤quartus+modelsim联合仿真。
⾸先推荐⼀篇⽂章⾸先,根据上⼀篇⽂章,建⽴⼀个testbench模板;第⼀次⽤modelsim+quartus的时候需要在quartus中设置modelsim的路径,quartus->tools->general->EDA tool options ,在右边选择modelsim的安装路径,如下图:然后在Quartus->setting->simulation中设置仿真⼯具(选择modelsim),输出netlist语⾔(选择 VHDL or Verilog),然后在下⾯添加testbench;如下图:到edit test settings这个步骤的时候需要说明⼀下,其中test bench name可以⾃⼰定,下⾯两个的内容根据test bench⽂件中的内容⽽定。
⽐如说我⽤verilog写的test bench如下:那么我下⾯两个的名字就为分别为 Counter_tb和counter 如下图:如果是⽤VHDL写的test bench,如下图那么我们下⾯两个的内容就是ADC_vhd_tst和i1,如同下图这样设置了之后,就可以从quartus中直接进⾏RTL仿真和门极(时序)仿真了,(上图打勾就代表使⽤时序仿真);具体为什么要这么设置请看如果不这么设置的话,可以进⾏RTL仿真,但是不能进⾏门级(时序)仿真,门级(时序)仿真的时候会报 Failed to find INSTANCE 错误。
做到上⼀部可以编写程序,然后编译,接着运⾏RTL simulation,这个时候modelsim会⾃⼰启动,然后⾃⼰编译,接着在work library中会有两个单元,其中⼀个是testbench⽣成的,我们仿真的话是⽤这个。
QUARTUS II 与 MODELSIM联合仿真设置方法_经验总结

DMM :QUARTUS II 与MODELSIM联合仿真设置方法1.在QUARTUS II里新建工程和verilog 源文件,确保verilog文件添加到该工程,且工程名、文件名和文件内的模块名称最好一致;2.编译源文件,确保无错误;3.在QUARTUS II中的TOOL—>options里选中EDA tool options 右边的选项;4.在QUARTUS II的Assignments->Setting,出现的对话框选中EDA tool setting ->simulation,在右边的tool name 选择modelsim(verilog);5.新建.vwf仿真文件,添加端口节点到该文件,并保存(添加节点前应先分配好引脚,再编译,否则无法加入节点);6.选中.vwf文件,导出为.v文件;7.打开modelsim软件,新建工程,添加先前自己编写的.v文件和导出的.v文件到该工程(如果是调用文件中的模块(即层次设计),则应将测试文件,测试中被调用的模块文件和刚导出的.vt文件全部调入),编译这些文件,通过后,在下一选项卡的work里选中某个文件(如果包含有测试文件,则应选中测试文件),右键选simulation,在右边框里出现的信号中选中需要观察的信号,右键add to wave-》select signels(可按住ctrl按键进行多选);8.在modelsim 主框架里设置仿真的时间,点击开始仿真按钮。
注意:verilog文件模块应该有输出或输入端口,否则QUARTUS II编译不能通过;实验发现,如果verilog文件里只有输出,没有输入端口,择从vwf文件导出为.v文件在modelsim里编译通不过;//****************************************************************************注意:1.在用quartus ii编写程序时,比如测试模块名为test_and;被调用的模块名为and;则如果将两个模块文件都添加到了当前工程里,就不用再在test_and.v文件里用`include “./and”去包含该and.v文件,否则编译时会出现重复包含文件的错误。
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需仿真时间精度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何从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型。
那么inout怎么办呢,inout型信号也要设成wire,同时要用一个reg型信号作为输出寄存器,同时设置一个三态门,由一个使能信号控制,如:assign inout_sig = out_en ? out_reg : 1’bz;
处理完接口和声明之后,需要自己设置一些激励信号,激励信号的容就是肯能会输
入到待测模块中的波形。
下面我们就来写一个简单的测试程序。
【复位信号】
initial
begin
rst = 0;
#100 rst = 1;
end
initial开头的这个过程在Testbench中只执行一次,#100表示延时了100个时
间单位,我们之前已经通过timescale进行了设置,这里延时了100ns。
这就有点类
似于C语言了,代码通过延时被顺序执行,rst在0时刻为低电平(也就是逻辑0),
100ns后变成高电平,从而形成了一个上电复位。
【时钟】
initial
begin
clk = 0;
while(1)
#10 clk = ~clk;
always模块中的代码会不断重复执行,利用这个特点,每10ns翻转一次clk,只是这样还不行,还要给clk一个初值,就是上面的initial语句。
如此便可以生成一个周期为20ns,频率50MHz的方波信号,作为本例的系统时钟。
【输入信号】
initial
begin
a = 1;
b = 3;
#200 a = 2;
b = 0;
#200 a = 3;
b = 3;
end
注意这里a = 1和b = 3是同时发生的,也就是并行的,之后延时200ns,a = 2同时b = 0,如前面所说,想要实现顺序操作,就需要使用延时,如果两个语句间没有延时,就表示同时执行。
还有一点,这个initial语句块和负责复位的initial语句块也是并行的,并且都是从0时刻开始。
也就是说,0时刻后经过100ns rst_n复位,再经过100ns(从0时刻起),a = 2被执行。
至此,测试程序也完成了,让我们开始仿真吧
【输出信号】
initial
begin
$display($time,"clk=%d rst =%d led =%d", clk, rst, led);
例如:
`timescale 1ns/1ns //单位时间为1ns/精度为1ns module LED_FLOW;
reg CLOCK_50M;
reg RST_n;
wire [9:0] LED;
led led_inst
(
.clk_50M(CLOCK_50M),
.reset_n(RST_n),
.led(LED)
);
initial
begin
CLOCK_50M = 0;
while (1)
#10 CLOCK_50M = ~CLOCK_50M; end
initial
RST_n = 0;
while (1)
#10 RST_n = 1;
end
initial
begin
$display($time,"CLOCK_50M=%d RST_n=%d LED =%d", CLOCK_50M, RST_n, LED); end
endmodule
三、设置Quartus并调用仿真工具
运行仿真之前,还要设置一下。
在Simulation选项卡中配置仿真选项,可以配置仿真语言、仿真时间的格式以及输出目录。
选中mpile test bench,点击Test Benches 打开Test Benches对话框。
点击New新建一个Test BenchSetting,填入Testbench模块的名称(这里是Collect_VisitFrame.vt),酌情设置仿真运行的时间(这里设为800ns,只是进入ModelSim后仿真自动执行的时间,不设或随意设置也行),并将刚才编写的Testbench 添加进来。
一路OK后,然后再进行一次全编译。
四、调用Modelsim软件
选择Tools -> Run EDA Simulation Tools,有两个选项,RTL Simulation是RTL 行为级仿真,只验证功能是否正确,与在哪个芯片上运行无关,仿真前至少需要执行一次Analysis&Synthesis;Gate Level Simulation是门级仿真,涉及到具体的芯片,并且仿真前需要编译工程,在门级仿真中ModelSim会将布局布线后的门级延时体现在波形中,在测试一个具体的工程模块时,应当先进行RTL仿真,之后还要进行门级仿真。
五、ModelSim工具的基本操作
运行RTL Simulation进入ModelSim界面。
在这里介绍几个比较重要的部分。
在view菜单中,可以显示和隐藏各种工具窗口。
其中Structure窗口显示了测试模块和待测模块的结构:
点击不同的模块,在Objects窗口中可以查看选中模块中的信号,因为除了端口(port)以外,还有很多部信号默认是不显示波形的,通过将需要的信号拖到Wave窗口中,就能够显示。
工具栏中的部分是用来控制仿真运行的,左侧红框中的是复位,在文本框里设置要执行的时间,点击右侧红框中的按钮就可以执行了。
其他的请自行摸索或参看Help文件。
如果面对一大堆0101感觉很晕,可以在信号列表里选号,右键选择要显示的数据格式。
而Wave窗口的左下角有几个小按钮,是用来设置游标的,通过添加游标,可以测量相应的时间,也可以在这里配置时间刻度的格式。
在Wave波形图中,使用滚轮和鼠标右键可以很方便的缩放或选择波形区域,下图
就是这个工程的波形图,在复位之后,相应结果在时钟上升沿输出。
至此,仿真结束!。