Verilog语法笔记(夏宇闻第三版)-简单的Verilog HDL模块

目录

简单的Verilog HDL程序介绍:

模块的结构 :

模块的端口定义:

模块内容:

I/O说明的格式:

内部信号说明:

功能定义:


简单的Verilog HDL程序介绍:

下面先介绍几个简单的Verilog HDL程序,然后从中分析Verilog HDL程序的特性。

这个例子通过连续赋值语句描述了一个名为adder的三位加法器可以根据两个三比特数a、b和进位 (cin)计算出和(sum)和进位(count)。 从例子中可以看出整个Verilog HDL程序是嵌套在module 和 endmodule 声明语句里的。


这个程序通过连续赋值语句描述了一个名为compare的比较器。对两比特数 a、b 进行比较,如a与b 相等,则输出equal为高电平,否则为低电平。在这个程序中,/*........*/和//.........表示注释 部分,注释只是为了方便程序员理解程序,对编译是不起作用的。


这个程序描述了一个名为trist2的三态驱动器。程序通过调用一个在Verilog语言库中现存的三态驱 动器实例元件bufif1来实现其功能。


 • Verilog HDL程序是由模块构成的。每个模块的内容都是嵌在module和endmodule两个 语句之间。每个模块实现特定的功能。模块是可以进行层次嵌套的。正因为如此,才可 以将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块 调用子模块来实现整体功能。

• 每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进行行为逻辑描述。

• Verilog HDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分写多行。

• 除了endmodule语句外,每个语句和数据定义的最后必须有分号。

• 可以用/*.....*/和//.......对Verilog HDL程序的任何部分作注释。一个好的,有使 用价值的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。


模块的结构 :

Verilog的基本设计单元是“模块”(block)。一个模块是由两部分组成的,一部分描述接口,另一部 分描述逻辑功能,即定义输入是如何影响输出的。下面举例说明:

Verilog结构完全嵌在module和endmodule声明语句之间,每个Verilog程序 包括四个主要部分:端口定义、I/O说明、内部信号声明、功能定义。


模块的端口定义:

模块的端口声明了模块的输入输出口。其格式如下:

module 模块名(口1,口2,口3,口4, ………);

模块内容:

模块的内容包括I/O说明、内部信号声明、功能定义。

I/O说明的格式:

输入口: input 端口名1,端口名2,………,端口名i; //(共有i个输入口)

输出口: output 端口名1,端口名2,………,端口名j; //(共有j个输出口)

 I/O说明也可以写在端口声明语句里。其格式如下:

module module_name(input port1,input port2,…

                                   output port1,output port2… );

内部信号说明:

在模块内用到的和与端口有关的wire 和 reg 变量的声明。

reg [width-1 : 0] R变量1,R变量2 。。。。;

wire [width-1 : 0] W变量1,W变量2 。。。。;

………..

功能定义:

模块中最重要的部分是逻辑功能定义部分。有三种方法可在模块中产生逻辑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Vizio<

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

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

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

打赏作者

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

抵扣说明:

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

余额充值