FPGA 学习小组
直播中

alexdos

6年用户 804经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 模拟技术
私信 关注

【FPGA学习】Verilog HDL 语言的标识符和数据类型有哪些?

标识符

Verilog HDL 中的标识符可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。以下是标识符的几个例子:

  1. Piero

  2. PIERO / /与 Piero 不同。

  3. _a1_b2

  4. c00_68

  5. ABC$


Verilog HDL 有两大类数据类型:

• 线网类型,表示 Verilog HDL 结构化元件间的物理连线,它的值由驱动元件的值决定,例如连续赋值或门的输出,线网的缺省值为 z(高阻态);

• 寄存器类型,表示一个抽象的数据存储单元,它只能在 always 语句和 initial 语句中被赋值,并且它的值被保存下来,缺省值为 x(未知状态)。

1.线网类型

线网数据类型包含下述不同种类的线网子类型:wire、tri、wor、trior、wand、triand、trireg、tri1、tri0、supply0、supply1。简单的线网类型说明语法为:

  1. net_kind [m***:l***] net1, net2, . . . , netN;

net_kind 是上述线网类型的一种。m*** 和 l*** 是用于定义线网范围的常量表达式,范围定义是可选的;如果没有定义范围,缺省的线网类型为 1 位。下面是一个线网类型说明实例。

  1. wire Rdy, Start; //2 个 1 位的连线。

  2. wand [2:0] Addr; //Addr 是 3 位线与。


2.寄存器类型

有 5 种不同的寄存器类型:reg、integer、time、real 和 realtime。寄存器数据类型 reg是最常见的数据类型。reg 类型使用保留字 reg 加以说明,形式如下:

  1. reg [m***: l***] reg1, reg2, . . . regN;

m*** 和 l*** 定义了范围,并且均为常数值表达式。范围定义是可选的,如果没有定义范围,缺省值为 1 位寄存器。例如:

  1. reg [3:0] Sat; //Sat 为 4 位寄存器。

  2. reg Cnt; //1 位寄存器。

  3. reg [1:32] Kisp, Pisp, Lisp;



更多回帖

发帖
×
20
完善资料,
赚取积分