Quartus与Modelsim的联合功能仿真
- 格式:pdf
- 大小:421.12 KB
- 文档页数:11
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中调用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型。
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。
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调用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.将设计文件保存在工程目录下并对设计文件进行语法分析。
VHDL ----- Quartus II(11.1版本)调用Modelsim进行仿真之前仿真一直是用Quartus II自带的“Vector Waveform File”,但因其功能有限,在老师的推荐下接触了Modelsim,捣腾了一段时间之后总算有所收获了。
在查资料的过程中,发现好多二者联合的讲解都是用Verilog语言写的例子,而VHDL很少。
以下是我总结的用VHDL 语言的具体步骤以及要注意的细节~~坎坷的路就略过了,直接展示成果。
例子是‘八位七段数码管的动态扫描显示’一.用Quartus II 进行VHDL语言编译1.首先建立工程File->New project Wizard(第三个图标)填入所建工程的目录以及名称,注意稍后的源程序中实体名必须和这里的名称相同。
填好后单击finish,然后单击yes。
2.新建VHDL源程序文件File->New->VHDL File->OK将程序写进去(这里只讲步骤,不讲源程序的写法)注意:程序中的实体名必须和之前建工程时所命名的文件名相同!然后保存一下,不用改动,直接单击保存。
3.编译快捷键按钮在界面中上方的红色倒三角,显示编译成功之后关闭编译报告。
4.设备设置具体的实验器件根据提供的实验板设定Assignment->Device4.引脚分配Assignment->Pin Planner在Location下的方格中填入对应的硬件引脚,也是根据实验板而定6.引脚分配好之后再次编译一下,使分配的引脚起作用。
一、调用Modelsim1、设置仿真工具为Modelsim-alteraTool->Options->EDA Tool Options,在Modelsim-Altera后面的地址改为Modelsim-Altera.exe在你电脑中的位置,然后点击OK。
2、写TestBench文件,这里使用Quartus II生成的模板Processing->start->Start TestBench Template Writer,显示成功后关闭生成报告。
例子为简单分频时序逻辑电路设计
1.建立Quartus与ModelSim之间的联系
在tools>options>EDA Tool Options里,找到你的modelsim的安装路径
2.创建工程File<new project wizard
(1)设置工程的路径和工程名,点击next
(2)第二个界面中会有会有add的选项,对于新手来说暂时用不上,直接点next
(3)选择芯片类型(芯片类型以后深入学习会有区别选择的),如图所示为我的选择
(4)选择联合仿真工具和语言
(5)工程建立完成
3.建立综合模块程序,file<new<verilog HDL File
4.输入程序,点击保存,之后点击start compilation
在processing<start<start test bench template writer,会在你的工程中生成一个half_clk.vt 的文件(simulation文件夹中)。
5.打开half_clk.vt文件,修改test bench程序,点击保存之后编译
6.设置联合仿真,assignment<setting<EDA Tool Setting<simulation,按图所示配置
点击test bench<new,输入按图所示,file name找到之前生成的half_clk.vt文件,点击add 添加
7.进行联合仿真
8.自动启动modelsim进行仿真,得到波形图(tips:通过Ctrl+鼠标的滑轮控制改变波形大
小)
如有不足之处望改进!!!。
如何从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\models im文件夹下的.vt格式文件。
打开vt文件后可以看到Quartus已经为我们完成了一些基本工作,包括端口部分的代码和接口变量的声明,我们要做的就是在这个做好的模具里添加我们需要的测试代码。
一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。
‘timescale 1ns/ 1ps表示仿真的单位时间为1ns,精度为1ps。
想要进行仿真首先要规定时间单位,而且最好在Testbench里面统一规定时间单位,而不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题,而timescale本身对综合也就是实际电路没有影响。
其实Testbench本身可以看做一个模块或者设备(本例中的模块名为add_vlg_tst),和你自己编写的模块进行通信。
通过Testbench模块向待测模块输出信号作为激励,同时接收从待测模块输出的信号来查看结果。
因此,在待测模块中的reg型信号在Testbench中就变成了wire,待测模块中的wire型信号在Testbench 中则对应为reg型。
VHDL —— Quartus 11(11.1版本调用Modelsim进行仿真之前仿真一直是用Quartus II自带的“ Vector Waveform File但因其功能有限, 在老师的推荐下接触了Modelsim,捣腾了一段时间之后总算有所收获了。
在查资料的过程中,发现好多二者联合的讲解都是用Verilog语言写的例子,而VHDL很少。
以下是我总结的用VHDL语言的具体步骤以及要注意的细节~~坎坷的路就略过了,直接展示成果。
例子是八位七段数码管的动态扫描显示’一.用Quartus II进行VHDL语言编译1. 首先建立工程File->New project Wizard(第三个图标IntroductionT»w WUartf hctw OMt* ■ new preyed preAwurr prwfM rdj^rvg the <oi> i —Cf New Pt eel WLurdDirectory, Nd ok?, f op I eve! t fit Hy [ 1 ol 5JWwt • fw B^grtany »«ClDr 簞 2 *W prqgKl?U r'^Ww FMhag 厚叫<™« 电「申mjrdjQ口»**#1 4 ** e* tw >a^4r-*l *rtir r g W p轉W TIM « *» «*"*«** *B«C*r ・W enfliv*M»W ** 華«*h^ru填入所建工程的目录以及名称,注意稍后的源程序中实体名必须和这里的名称相同。
填好后单击finish撚后单击yes。
新建VHDL源程序文件File->New->VHDL File->OK将程序写进去(这里只讲步骤,不讲源程序的写法电|脚弧{} ts ts e 代%处处 » n 创1鑼a l =*二二imlibrary ieee;use ieee .std_logic_1164.all;use ieee.std_logic_unsigned.all; □ entity hexx is日 port (clk:xn std_logic;―时神信号输入key:in std_logic_vector (3 downto 0) ;■-四位信号若入 ag : out std^logic^vector (6 downto 0);―7段值号辕出 • sei:out std_logic_vector (2 downto 0)) ;-■数码管送择 end;22 sel<«ql; end if;1C 11 12□ architecture a of hexx is 曰begnn□process (elk)variable ql :std logic vector (2 downto 0):■R 000R ; 1€ n19 2C 21 曰曰卜beginif elk*event and clk«thenif ql-w lll H then ql:"000”; else qls-ql*1!*; end if ; 24电i nend process; 细(} tFS / ® 口创圖2 I r = we 789 10library ieee;use ieee.std IoqIc 1164.all;use ieee.5td_logic_unaignedeall: Bentity hexx is曰 port (clk:in std_logic;一时神(8号辐入key: m std logic tor (3 downto 0) ;一Qfifll 号输入sg:ouc std_logic_vector (6 downs 0); -」段(B 号•出 sellout scd_logxc_vector (2 downto 0));■■数冯苣送择 end; 11 Barchitectuxe a of hexx is 12 Qtegin三曰卜曰□process (cllc)variable ql:std_lo^ic —vector (2 downto 0): beginif elk 'event and clJc**!* then If ql —ill- then ql : —000": else •000- end if ; sel<*ql; end if; end process;-HD —曰 6 7 8 2 2 2 ••X•■“ ■八1 2 3 q注意:程序中的实体名必须和之前建工程时所命名的文件名相同!然后保存一下,不用改动,直接单击保存。
如何从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型。
QuartusII与modelsim联调仿真软件版本:<QuartusII 11.0(64-Bit) >,<Modelsim SE-64 10.0c>
新建一个QuartusII项目或者打开现有项目,然后
在弹出的对话框里面进行如下设置:
然后就是用QuartusII生成testbench文件:
如果生成testbench成功的话,会在这个工程文件夹下面产生simulation/modelsim文件夹,里面有用于仿真的testbench文件,***.vt,可以对它进行修改,用于必要的参数初始化等,例如时钟的初始化,复位信号的初始化等等。
然后再次单击Settings,弹出对话框,进行如下设置:
在单击TestBenches后弹出对话框,如下所示:
然后单击new,弹出对话框如下所示:
单击确定后,有如下图示:
特别说明:如果testbench要修改就在联合调用之前进行修改,一般,简单的修改就是添加时钟和复位信号,参考下图:
修改好了则执行如下图所示的内容:
此时,QuartusII会调用Modelsim进行仿真,如果之前的时钟和复位是设置了的,即初始化是成功的,则仿真会在Modelsim启动过后立即执行。
执行结果如下图所示:
至此,即完成了QuartusII与Modelsim的联调仿真。
1.启动 QuartusII6.0,在 D:\exam 下新建工程 count。
2.执行 Project 菜单下的 Add/Remove Files in Project... 命令,将 D:\exam 下的 count.v 文件加到工程中来。
3.执行 Assignments 菜单下的 Device... 命令,启动器件设置对话框。
如果所用的实验板为 MC570 则选中 EPM570T100C5 器件,如果是 MC240 实验板,则选中 EPM240T100C5 器件。
4.点击对话框上的“Device & Pin Options...”按钮,在随后弹出的对话框上,进入 Unused Pins 页,将 Reserve all unused pins 设为 As input tri-stated,点击“确定”按钮。
5.在左侧的 Category 窗口里,展开 EDA Tool Setings 组,选中 Simulation 项,对话框的左侧将弹出有关于 Simulation 的设置项。
在 Tool name 一栏,选择 ModelSim;Format for output netlist 一栏,选择 Verilog;Time scale 一栏,选择 1ns。
点击“OK”按钮。
6.在 Assignments 菜单下,点击 Pins 命令。
在 Pin Planner 中,按下图所示,分配管脚。
7.在 Project Navigator 窗口中,将页面切换到文件管理页(中间的),选中 Device Design Files 组中的 count.v 文件,点击右键,在弹出菜单中点击 Set as Top-level Entity 命令,将该文件设为顶层设计文件。
在 Processing 菜单下,点击 Start Compilation 命令,待编译完成后,退出 QuartusII6.0。
将 D:\exam\simulation\modelsim 下的 count_v.sdo 文件复制到 D:\exam 下。
Verilog实验报告实验一Quartus及Modelsim软件的基本使用一、实验目的熟悉Quartus和Modelsim软件的基本使用方法和步骤,熟悉基本的Verilog语法,学会用Verilog语言编写简单的程序。
二、实验要求熟练掌握Quartus和Modelsim软件工程建立、添加文件、编译运行和仿真的方法,学会写程序文件和测试文件。
三、实验仪器和设备1、硬件:计算机2、软件:Quartus、Modelsim、(UE)四、实验内容1、运行Quartus软件建立工程并添加程序.v文件,编译运行,查看电路图。
2、运行Modelsim软件建立工程并添加测试.v文件,进行仿真,查看波形图。
五、实验方法和步骤(一)Quartus软件的使用1、启动Quartus软件:双击桌面的Quartus快捷图标,进入如图1所示的界面。
图1-1 启动界面2、建立工程:选择菜单栏的【File】→【New Project Wizard】命令,弹出图2所示新建工程向导。
图1-2 新建工程向导单击【Next】跳转至下一页。
为方便工程管理,在新建工程之前,先新建一个文件夹,把工程保存在新建的文件下,并对工程进行命名。
如图3所示。
图1-3 命名和存放单击【Next】跳转至下一页。
添加事先写好的.v文件。
如图4所示。
图1-4 添加文件(此处也可不添加,直接在建立好的工程中,选择【File】→【New】命令,新建一个Verilog HDL File,如图5所示。
图1-5 新建.v文件)单击【Next】跳转至下一页。
选择FPGA型号,如图6所示。
因为本次实验不在硬件上实现,因此此步跳过。
直接单击【Next】跳转至下一页。
图1-6 选择FPGA型号直到出现【Summary】界面,单击【Finish】。
如图7所示。
图1-7 结束3、编写程序:由按键控制led灯的亮灭。
如图8。
图1-8 编写程序4、编译程序:在【Task】栏中找到如图所示,编译程序。
QuartusII 10.0与ModelSim6.6c联合仿真及程序下载调试一、FPGA设计仿真验证简介FPGA设计验证包括功能仿真、时序仿真和电路验证,它们分别对应整个开发流程的每一个步骤。
仿真是指使用设计软件包对已实现的设计进行完整的测试,并模拟实际物理环境下的工作情况。
功能仿真是指仅对逻辑功能进行模拟测试,以了解其实现的功能是否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性等,因此又叫前仿真,它是对HDL硬件描述语言的功能实现情况进行仿真,以确保HDL语言描述能够满足设计者的最初意图。
时序仿真则是在HDL可以满足设计者功能要求的基础上,在布局布线后,提取有关的器件延迟、连线延时等时序参数信息,并在此基础上进行的仿真,也成为后仿真,它是接近于器件真实运行状态的一种仿真。
二、开发软件QuartusII及仿真软件ModelSim简介Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
HDL的仿真软件有很多种,如VCS、VSS、NC-Verilog、NC-VHDL、ModelSim 等,对于开发FPGA来说,一般是使用FPGA厂家提供的集成开发环境,他们都有自己的仿真器,如Xilinx公司的ISE,Altera公司的Quartus II等,但是这些厂家开发的仿真器的仿真功能往往比不上专业的EDA公司的仿真工具,如ModelSim AE(Altera Edition)、ModelSim XE(Xilinx Edition)等。
一、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,完成测试平台向仿真工程的添加。
Quartus II 与ModelSim联合仿真1.仿真工具ModelSim使用在option的EDA Tool中定位ModelSim的路径。
2.在ModelSim仿真中出现Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand,the result will be 'X'(es).这个解决方法是给程序里的信号赋初值。
3.Quartus II 5.1和ModelSim的联合仿真方法一:①设定仿真EDA工具为ModelSim②在Quartus II 5.1中,用自带工具建立仿真文件*.vmf,File->Export…,将导出文件保存在simulation/modelsim文件夹下。
③在Settings窗口中,点击Gate Level Simulation Settings …,如图1所示。
图1 Gate Level Simulation Settings …选择Test bench mode,Test bench file为刚刚导出的*.vht文件,Test bench name为*.vht 中的* _vhd_vec_tst,Design instance name in test bench为导出文件*.vht中的i1。
④上述步骤设置完成后,单击ok,回到Settings对话界面,单击ok完成设定。
设置TestBench完成之后,在Quartus II中执行菜单命令:Tools->EDA Simulation Tool->Run EDA Gate Level Simulation,即可启动ModelSim开始仿真。
但要使用testbench作仿真,单独Qaurtus II并无法做到,就得使用ModelSim了,这又牵涉到『前仿真』与『后仿真』。
使用Quartus与Modelsim联合仿真 本文档主要介绍如何在Quartus环境下直接调用出Modelsim进行设计验证。
首先检查Quartus菜单Tools->Options窗口中,EDA Tool Options->Modelsim-Altera 栏中已填入Modelsim的安装路径,如:C:/Altera/modelsim_ae/win32aloem。
其次这里认为,设计文件/模块(*.v)和testbench的编写已经完成,并且编译无误。
对于testbench的编写,可以直接在Quartus环境下新建verilogHDL/VHDL文件,编写完成后保存成*.v或*.vt的文件。
当然,也可以使用quartus自动生成testbench模板,改写其中内容,具体方法请自行查阅。
1.打开Quartus,打开使用的工程,然后检查仿真关联设置:
然后你会看到:
2.testbench的设置
设置完成后,全编译。
编译完成后,点击:
自动启动modelsim,你将看到:
你还可以查看Modelsim控制台:
编译完成后,点击:
自动启动modelsim,你将看到:
你还可以查看Modelsim控制台:
仔细观察,时序仿真和功能仿真还是有很大差别的哦~~。
Modelsim SE 10.0.c入门教程
小小龙
结合黑金FPGA开发板的所用的软件quartus 11.0与modelsim10.0c, 本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可在上下载!
大家知道,自从quartus 10以后,quartus就不自带的波形仿真软件,想要仿真需自己安装第三方软件(如modelsim等),闲话我就不多说,下面主要介绍如何在quartus 11.0中如何调用modelsim 10.0c以及testbench的编写。
下面就以一个计数器为例进行讲解(黑金开发板DB4CE平台),前提需安装quartus11.0 、modelsim10.0c,好了,切入正题。
新建工程时在出现的画面中按如下设置
根据仿真软件及语言进行选择,上图我们用到的软件为modelsim, 语言:Verilog HDL
下面我们编写一个计数器程序,在quartus中编写count128.v文件,
代码如下:
程序实现对clk的128分频
下一步告诉大家怎样编写仿真测试文件testbench,如下操作
至此,testbench模板已经OK!,生成的文件为.vt,位于工程文件夹simulation\modelsim中,如下
有了模板,但只是给了我们一个架构,还需要编写仿真文件,打开模板,来瞧瞧里面到底有些什么
注意:testbench中规定
a)输入一律为reg型变量,输出为wire型;
b)可以有不可综合的语句;for,while等;
根据count128.v,测试文件testbench为
只要给时钟clk和rst_n赋值变OK了
接下来对工程进行一些设置:
让quartus调用modelsim如下设置
上图以modelsim安装在D盘为例进行说明,请根据自己安装位置进行选择,至此modelsim调用完成。
进行仿真设置:
上图设置与下图testbench 文件中画红线的地方对应
接下来进行编译,仿真
可以看到,出现了仿真波形,要用到的几个波形按钮(放大、缩小,插入\删减光标等)用红色标出,童鞋们自己试试。
这样我们就完成
了modelsim功能仿真。