赞
踩
通过一个很简单的计数器工程教给大家两个工具的常用使用方式。
1、首先就是写一个用quartus写一个计数器的程序,这个很简单这里附上代码
module counter(
input clk,
input rst_n,
output reg [3:0]cnt);
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)cnt <= 0;
else cnt <= cnt+1;
end
endmodule
2、接下来就是很重要的了,在调用Modelsim之前,我们需要编写一段测试激励,给待测模块输入测试激励。现编写测试代码如下:
`timescale 1ns/1ps module tb; reg clk; reg rst_n; wire [3:0]cnt; initial begin clk=0; rst_n=0; #10 rst_n=1; end always #20 clk = !clk; counter c1( .clk(clk), .rst_n(rst_n), .cnt(cnt)); endmodule
3、测试代码编写完毕之后,我们首先需要对软件进行一些设置。如下图所示,右键点击工程名称“counter”,
选择“Settings”,出现如下界面
点击选择“Compile test bench”
点击【Test Benchs…】
点击【New】
输入测试文件模块名称如下
在“File name”这一测点击【…】,选择tb.v文件,点击【Open】
点击【Add】
点击【OK】,退出设置即可。通过上面的步骤,Modelsim和Quartus级联的设置就完成了。返回Quartus界面,选择Tools->Run Simulation Tool->RTL Simulation
点击以后出现如下Modelsim界面,在“sim”工具栏选中并右键点击counter
接下来选择【Add Wave】(注:通过这种方式,我们可以在波形中看到所有的输入输出变量以及内部变量)
点击【ctrl+G】实行自动分组
右键选中信号的名称,在【Radix】选项中选择无符号类型数据,改变信号的显示进制(注:大家可以根据需要选择其他的显示进制
点击【ctrl+S】,保存波形
接下来,在命令窗口(Transcript)输入restart指令
点击“回车键”确认,弹出如下对话框
继续点击“回车键”,接着在命令窗口输入“run 0.1ms” (注:具体时间可以自定义)
通过以上过程,我们完成了Quartus和Modelsim的联合设计、调试过程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。