目录
文章目录
前言
一、概述
二、实例化的QuestII操作
1.添加.v文件
2、 编写xuehao.v和testbench
3、testbench—SMG.vt的添加
前言
本博客介绍如何在QuestusII在一个工程中调用其他工程中已经写好的.v文件,也就是实例化语句。需要博客和参考书籍只是讲解了实例化语句的使用方法,关系如何在QuestusII中调用相关文件的实际操作介绍甚少。
本人也是在实际和摸索中找到了正确的方法,被卡了很久。此时,即是一个学习记录,也希望帮助到遇到同样问题的EDA初学者。
一、概述
本文以一个实例为例进行数码管的一个实例进行实例化语句的讲解。
首先是创建并编写一个"SMG"的工程文件。
.v文件如下:
module SMG(number,smg);
input number;
output smg;
wire[3:0] number;
reg[6:0] smg;
always @*
begin
case(number)
4'h0:smg[6:0]=7'b1000000;
4'h1:smg[6:0]=7'b1111001;
4'h2:smg[6:0]=7'b0100100;
4'h3:smg[6:0]=7'b0110000;
4'h4:smg[6:0]=7'b0011001;
4'h5:smg[6:0]=7'b0010010;
4'h6:smg[6:0]=7'b0000010;
4'h7:smg[6:0]=7'b1111000;
4'h8:smg[6:0]=7'b0000000;
4'h9:smg[6:0]=7'b0010000;
default://在操作时赋值给number=4'h15=4'b1111再赋给数码管即为全灭
smg[6:0]=7'b1111111;
endcase
end
endmodule
testbench如下:
`timescale 1 ns/1 ps
`include "SMG.v"
module SMG_tb;
reg[3:0] number;
wire[6:0] smg;
initial
begin
number=0;
#10 number=1;
#10 number=2;
#10 number=3;
#10 number=4;
#10 number=5;
#10 number=6;
#10 number=7;
#10 number=8;
#10 number=9;
#10 number=8;
#10 number=7;
#10 number=6;
#10 number=5;
#10 number=4;
#10 number=3;
#10 number=2;
#10 number=1;
#10 number=0;
#10 $stop;
end
SMG u1(.number(number),.smg(smg));
endmodule
运行结果如图:
可以看到,运行结果是正确的!
下一步我们就要在一个名称为“xuehao”的工程中,用实例化的语句调用这个.v文件。
二、实例化的QuestII操作
1.添加.v文件
新建了“xuehao”工程,因为我们需要调用上面说的SMG.v的文件,所以,第一步就是将“SMG.v”添加到“xuehao”工程中。
1、点击Assignments——>Settings
2、找到对应的存储位置,添加SMG.v文件
3、点击apply->ok后,成功标识:显示如下图所示则表示成功添加
2、 编写xuehao.v和testbench
在编写xuehao.v时用到了实例化语句
xuehao.v:
module xuehao(number,smg);
input number;
output smg;
wire[3:0] number;
wire[6:0] smg;//注意:例化语句时不是在alwags中也是用wire类型
SMG u1(.number(number),.smg(smg));
endmodule
testbench:
`timescale 1 ns/1 ps
`include "xuehao.v"
module xuehao_tb;
reg[3:0] number;
wire[6:0] smg;
initial
begin
number=1;
#10 number=2;
#10 number=3;
#10 number=4;
#10 number=5;
#10 number=15;
#10 number=15;
#10 number=15;
#10 number=0;
#10 number=0;
#10 number=0;
#10 $stop;
end
xuehao u1(.number(number),.smg(smg));
endmodule
3、testbench—SMG.vt的添加
注意:这是非常容易遗漏的一个环节,也是容易配置错的一个环节!!!!!
1、点击Assignments——>Settings
2、进行testbench的添加
3、 添加主文件的testbench
4、添加所调用文件的testbench
因为后来添加的是被调用的testbench,所以黑色圈出的地方名称不变,还是主文件testbench的名称。这里需要注意一下
5、利用实例化的语句也可以波形成功显示
文章来源:https://www.toymoban.com/news/detail-435623.html
总结
希望可以帮到大家!文章来源地址https://www.toymoban.com/news/detail-435623.html
到了这里,关于Quartus II的实例化的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!