Quartus ii与Modelsim-altera 6.5b联调前仿真

本实例使用的是Quartus ii9.1版本,Modelsim-altera版本是  Quartus ii9.1版本  对应的6.5b版本。
本实例使用的是格雷码计数器(Gray)
=============================================================================
首先打开Quatus ii,File->New Project Wizard.操作如下。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
之后出现如下界面,单击Next按钮.
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
出现如下对话框,输入工程位置:G:\GrayCounter,工程名为:GrayCounter,设置顶层文件:GrayCounter,此次试验比较简单,顶层文件和工程名就命名为一样的。之后单击 Next,  
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
有以下对话框:再单击Next。
 
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
在对话框中设置FPGA为Cyclone II家族的,EP2C8Q208C8,单击Next.
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
对话框中都默认,然后单击Next,
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
有以下对话框,单击Finish。
     Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
Quartus中有以下界面:可以看到工程文件为:GrayCounter
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
 之后要新建一个verilog文件,File->New
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
选择以下:verilog HDL File,单击OK按钮。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
在verilog 文件中输入:以下代码:
`timescale 1ps/1ps

module GrayCounter  
#(parameter N=5 )
(
input clk,
input rst_n,
output reg [N-1:0] gray
);

reg [N-1:0] cnt;
reg [N-1:0] temp;
integer i;

always @ (posedge clk ,negedge rst_n)
begin
if(!rst_n)
cnt <= 1'b0;
else
cnt <= cnt +1'b1;
end

always @(cnt)
begin
temp[N-1] = cnt[N-1];
for(i=1; i<=N-1;i=i+1)
temp[i-1] = cnt[i-1]^cnt[i];
end

always @ (posedge clk, negedge rst_n)
begin  
if(!rst_n)
gray<=1'b0;
else  
begin
gray<=temp;
$display("gray=%b",gray);
       end
end 
endmodule
窗口如下:
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
然后保存verilog文件:Ctrl+S快捷键:出现以下对话框,文件名为GrayCounter,类型选择Verilog文件类型,单击保存。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
保存之后原来的verilog1文件变为: GrayCounter.v文件。
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
   之后编译工程,Processing->Start Compilation,编译工程。
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客 .
编译成功出现如下界面: 
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
接下来设置Modelsim的设置。
Tools->Option.
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
 
 在General->EDA tool options->Modelsim-Altera,设置   Modelsim-Altera 的安装路径:G:\altera\91\modelsim_ae\win32aloem(选你自己的安装路径)
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
开始设置testbench的相关设置项。Processing->start test bench template writer,
生成的文件位置在这里:G:\GrayCounter\simulation\modelsim\ GrayCounter.vt
GrayCounter.vt是testbench文件,在modelsim6.5中也可以使用.v文件作为testbench文件,都是可行的。
这里顺便说一下:为什么使用Modelsim-altera呢,因为 modelsim6.5 每次都要写实例化文件,要要自己建立modelsim的工程,相对来说麻烦,而 Modelsim-altera每次打开Quartus工程,设置一次就可以使用 Modelsim-altera,实例化等基本内容已经写好,省去很多时间。

GrayCounter.vttestbench文件内容如下代码:
这一步是建立一个仿真模板文件,模板文件提供了基本的写法,具体的testbench文件内容还要自己写。
===============================================================
// Copyright (C) 1991-2009 Altera Corporation
// Your use of Altera Corporation's design tools, logic functions 
// and other software and tools, and its AMPP partner logic 
// functions, and any output files from any of the foregoing 
// (including device programming or simulation files), and any 
// associated documentation or information are expressly subject 
// to the terms and conditions of the Altera Program License 
// Subscription Agreement, Altera MegaCore Function License 
// Agreement, or other applicable license agreement, including, 
// without limitation, that your use is for the sole purpose of 
// programming logic devices manufactured by Altera and sold by 
// Altera or its authorized distributors.  Please refer to the 
// applicable agreement for further details.

// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to  
// suit user's needs .Comments are provided in each section to help the user    
// fill out necessary details.                                                  
// *****************************************************************************
// Generated on "05/29/2012 13:41:48"
                                                                                
// Verilog Test Bench template for design : GrayCounter
// 
// Simulation tool : ModelSim-Altera (Verilog)
// 

`timescale 1 ps/ 1 ps
module GrayCounter_vlg_tst();
// constants                                           
// general purpose registers
reg eachvec;
// test vector input registers
reg clk;
reg rst_n;
// wires                                               
wire [4:0]  gray;

// assign statements (if any)                          
GrayCounter i1 (
// port map - connection between master ports and signals/registers   
.clk(clk),
.gray(gray),
.rst_n(rst_n)
);
initial                                                
begin                                                  
// code that executes only once                        
// insert code here --> begin                          
                                                       
// --> end                                             
$display("Running testbench");                       
end                                                    
always                                                 
// optional sensitivity list                           
// @(event1 or event2 or .... eventn)                  
begin                                                  
// code executes for every event on sensitivity list   
// insert code here --> begin                          
                                                       
@eachvec;                                              
// --> end                                             
end                                                    
endmodule
===================================================================================
可以看出文件中提供了模块的写法和实例化调用,做以下修改,以适合我的工程。
修改 GrayCounter.vt   testbench文件之后, GrayCounter.vt   testbench文件内容如下:
===================================================================================
`timescale 1 ps/ 1 ps
module GrayCounter_vlg_tst();
reg clk;
reg rst_n;                                             
wire [4:0]  gray;
                   
GrayCounter i1  (
.clk(clk),
.gray(gray),
.rst_n(rst_n)
);
 
initial 
 begin 
 $display("Running testbench");    
   clk =0;    
    rst_n = 0;
      #5 rst_n = 1;          
      #500000
      $stop;   
 end  
     
always#1 clk = ~clk;      
                                            
endmodule
===================================================================================
接下来设置工程
 
 设置GrayCounter工程:
在 工程上右键settings
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客

在EDA tool settings->simulation中设置tool name:modelsim-altera
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
输出文件格式选择为verilog HDL,NativeLink settings选择Compile testbench。
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
再单击Test Benches
 在这顺便说一句,最好不要勾选Run gate-level simulation automatically after compilation,我的Modelsim破解的不是特别好,因此不勾选这个选项。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
 
  再单击Test Benches
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
单击Test benches按钮之后出现如下对话框:选择New...
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
设置文件名:   GrayCounter_vlg_tst
模块名: GrayCounter  
实例名:   i1 
在File name中单击按钮: 
 弹出以下对话框:
选择: G:\GrayCounter\simulation\modelsim\ GrayCounter.vt,类型选择All files,否则看不到 GrayCounter.vt。
单击打开按钮
 对话框如下: 单击Add按钮。
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
对话框变在File name中变为: 设置完成之后Compile test bench文件为:GrayCounter_vlg_tst文件。最后单击OK。
 编译工程:
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
调用RTL仿真:Tools->Run EDA Simulation Tool -> EDA RTL Simulation
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
在modelsim窗口中有以下:常用的有Transcript:命令输出,包括display等的输出,wave是波形显示窗口,library是文件的列表
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
 标题如下:
对话框下面如下:
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
打开library标签: 最下面的work目录:有GrayCounter_vlg_tst文件
 在文件上右键Simulate without Optimization操作。
  Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
软件跳转到:sim页面中
  在GrayCounter_vlg_tst文件上右键,Add->To wave -> All items in region。
   Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
在wave标签页中有:
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
然后运行,执行run,
这时候波形看起来不是特清楚,需要调一下放大和缩小。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
调节到合适位置波形如下:
可以看一下Transcript标签页中有:display的输出。
Quartus ii与Modelsim-altera 6.5b联调前仿真 - yervant - yervant的博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值