三、4【Verilog HDL】基础知识之模块和端口

参考书籍:《Verilog HDL 数字设计与综合》第二版,本文档为第四章的学习笔记。

目录

学习目标

4.1 模块

 4.2 端口

4.2.1 端口列表

4.2.2 端口声明

4.2.3 端口连接规则

 4.2.4 端口与外部信号的连接

1、顺序端口连接

2、命名端口连接

4.3 层次命名


学习目标

  • 清楚模块中的组成部分
  • 模块的端口列表声明
  • 模块实例化及其端口信号连接
  • 标识符层次

4.1 模块

module开始,endmodule结束。模块内部5个组成部分:变量声明、数据流语句、低层模块实例、行为语句、任务和函数。

例子说明:通过模块实现SR锁存器

输入输出真值表:

端口信号信息
信号位宽类型功能描述
Sbar1bitinput输入信号1
Rbar1bitinput输入信号2
Q1bitoutput输出信号1
Qbar1bitoutput输出信号2
端口真值表
输入(input)输出(output)
SbarRbarQ(n)Qbar(n)
0011
0110
1001
11Q(n-1)Qbar(n-1)

数据流(assign)语句和行为语句(always和initial)

module SR_latch(Q, Qbar, Sbar, Rbar);

//端口说明
    input Sbar, Rbar;
    output Q, Qbar;
    
    nand n1(Q, Sbar, Qbar);
    nand n2(Qbar, Rbar, Q);
endmodule



///*************激励块
module tb_SR_latch();
    reg set, reset;
    wire q, qbar;
    
    always #10 set <= {$random} % 2;
    always #10 reset <= {$random} % 2;
    
 
    SR_latch SR1(q, qbar, ~set, ~reset);
    
    initial begin
        $timeformat(-12, 0, "ps", 6);
        $monitor($time, "set=%b, reset=%b, q=%b\n" , set, reset, q);
    end
endmodule

 4.2 端口

即模块与外界环境交互的接口,又可以成为终端。

4.2.1 端口列表

module fulladd4(sum, c_out, a, b, c_in);  //()内即模块的端口列表

module Top;    //由于Top是激励模块,所以没有端口列表

4.2.2 端口声明

 input:输入端口;output:输出端口;inout:输入输出双向端口

module fulladd4(sum, c_out, a, b, c_in);

//端口声明
input [3:0] a,b;
input c_in;
output [3:0] sum;
output c_out;

endmodule


//ANSI C风格的端口声明
module fulladd4(
    //端口声明
    input wire [3:0] a,b,
    input wire c_in,
    output reg [3:0] sum,
    output reg c_out
    );

endmodule

4.2.3 端口连接规则

 4.2.4 端口与外部信号的连接

1、顺序端口连接

在模块实例化时,对于端口列表,按照顺序一次对应。

    module SR_latch(Q, Qbar, Sbar, Rbar);
    SR_latch   SR1(q, qbar, ~set, ~reset);

2、命名端口连接

    SR_latch    SR2(.Q(q),  .Qbar(qbar),  .Sbar(sbar),  .Rbar(reset));

4.3 层次命名

层次名由一连串使用“ . ”分隔的标识符组成,每个标识符代表一个层次,这样可以通过指定层次名对每个标识符进行访问。

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐者-桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值