你知道Verilog HDL程序是如何构成的吗

本节经过硬件描述语言Verilog HDL对二十进制编码器的描述,介绍Verilog HDL程序的基本结构及特色。html

二十进制编码器及Verilog HDL描述

二十进制编码器是数字电路中经常使用的电路单元,它的输入是表明0~9这10个输入端的状态信息。输入信号为高电平时,输出相应的BCD码,所以也称为10线4线编码器。其功能表及电路符号如图3-1所示。编码

 

图3-1 二十进制编码器设计

【例3-1】利用Verilog HDL对二十进制编码器进行设计。htm

 

Verilog HDL程序的基本构成

从例3-1能够看出,一个完整的Verilog HDL程序由3个基本部分构成,分别是:模块端口定义部分、信号类型说明部分和逻辑功能描述语句部分。其结构图如3-2所示。接口

 

图3-2 Verilog HDL程序基本结构get

模块端口定义部分

对于硬件描述语言来讲,一个程序表明了一个具备某种逻辑功能的电路,模块端口定义部分描述了该电路的接口部分的信息,即输入输出信号的信息。input

模块端口定义部分的语法结构以下:it

module模块名(端口信号1,端口信号2,端口信号3,端口信号4,……);io

input[width:0]端口信号1,端口信号3,……;社区

output[width:0]端口信号2,端口信号4,……;

程序以关键词module引导,模块名是设计者对于设计的电路所取的名字,在模块端口定义的第1行列出了全部进出该电路模块的端口信号,在第2行和第3行中定义了各端口信号流动方向。流动方向包括输入(input)、输出(output)和双向(inout),[width:0]表示信号的位宽,若是位宽没有特别说明,则系统默认为1位宽度。

【例3-2】模块端口定义举例。

 

信号类型说明部分

在Verilog HDL语法中,信号共有两种数据类型,分别为:网线类型(net型)和寄存器类型(register型)。在信号类型说明部分除了要对输入/输出端口的信号类型进行说明以外,还要对程序中定义的中间量的数据类型进行说明。

信号类型说明部分的语法结构以下:

wire[width:0]信号1,信号2,……;

reg[width:0]信号3,信号4,……;

【例3-3】信号类型说明举例。

 

 

 

逻辑功能描述语句部分

逻辑功能描述语句部分对输入/输出信号之间的逻辑关系进行了描述,是Verilog HDL程序设计中最主要的部分,在电路上至关于器件的内部电路结构。在Verilog HDL语言中,经常使用的逻辑功能描述语句能够分为如下3种:

例化语句:调用已进行元件化封装的程序。这种语句常应用于层次化设计的顶层文件设计中。

【例3-4】例化语句举例。

 

该语句分别调用了一个非门和与门电路模块。

连续赋值语句:描述信号之间简单的赋值关系。在连续赋值语句中,右边表达式使用的操做数不管什么时候发生变化,右边表达式都从新计算。这类描述一般以关键词assign引导。

【例3-5】连续赋值语句举例。

 

该语句描述了输出信号与输入信号的赋值关系。

过程语句:以关键词always、initial等关键词引导的语句,描述了必定条件下信号之间的赋值关系。这种变量数据被赋值后,其值保持不变,直到下一次条件具有时对它们从新赋值。

【例3-6】过程语句举例。

 

与连续赋值语句同样,always和initial也描述了输出信号与输入信号的赋值关系,可是这种赋值每每是一种比较复杂的条件赋值,例如,例3-6就用了if……else语句描述了输出信号与输入信号的条件关系。

 

本文转自小平头电子技术社区:https://www.xiaopingtou.cn/article-104211.html 嵌入式,物联网,硬件PCB,电子技术尽在小平头

相关文章
相关标签/搜索