标识符
Verilog HDL 中的标识符可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。以下是标识符的几个例子:
Piero
PIERO / /与 Piero 不同。
_a1_b2
c00_68
ABC$
Verilog HDL 有两大类数据类型:
• 线网类型,表示 Verilog HDL 结构化
元件间的物理连线,它的值由驱动元件的值决定,例如连续赋值或门的输出,线网的缺省值为 z(高阻态);
• 寄存器类型,表示一个抽象的数据存储单元,它只能在 always 语句和 ini
tial 语句中被赋值,并且它的值被保存下来,缺省值为 x(未知状态)。
1.线网类型
线网数据类型包含下述不同种类的线网子类型:wire、tri、wor、trior、wand、triand、trireg、tri1、tri0、supply0、supply1。简单的线网类型说明语法为:
- net_kind [m***:l***] net1, net2, . . . , netN;
net_kind 是上述线网类型的一种。m*** 和 l*** 是用于定义线网范围的常量表达式,范围定义是可选的;如果没有定义范围,缺省的线网类型为 1 位。下面是一个线网类型说明实例。
wire Rdy, Start; //2 个 1 位的连线。
wand [2:0] Addr; //Addr 是 3 位线与。
2.寄存器类型
有 5 种不同的寄存器类型:reg、integer、time、real 和 realtime。寄存器数据类型 reg是最常见的数据类型。reg 类型使用保留字 reg 加以说明,形式如下:
- reg [m***: l***] reg1, reg2, . . . regN;
m*** 和 l*** 定义了范围,并且均为常数值表达式。范围定义是可选的,如果没有定义范围,缺省值为 1 位寄存器。例如:
reg [3:0] Sat; //Sat 为 4 位寄存器。
reg Cnt; //1 位寄存器。
reg [1:32] Kisp, Pisp, Lisp;