Quartus II的实例化的操作

目录

文章目录

前言

一、概述

二、实例化的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、利用实例化的语句也可以波形成功显示




总结

         希望可以帮到大家!

  • 19
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值