• 在Verilog中的数据类型被设计用来表示数字硬件电路中数据的存储和传输。其总共有两大类:线网类型(Net Type)和变量类型(Variable Type)。

线网类型(Net Type)体现了结构体之间的物理连接关系。线网的值有驱动元件的值决定,如连续赋值或是门的输出。若是没有驱动元件连接到线网,则其默认值为z(高阻)。不同种类的线网如下表所示:

在介绍上表的各种线网类型之前,先说说声明线网的语法:

net_kind [signed] [[msb:lsb]] net1,net2,…netN;

net_kind就是上表中的任一种线网类型;[signed]声明线网具有符号值,在缺省情况下,线网为无符号值;[msb:lsb]指定线网范围,是可选的,若没有指定范围,默认的线网位宽为1位。例如:

wire read_a; //位宽为1为的线网

wand signed [3:0] wdata; //具有符号值的位宽为4的线网

1. wire和tri线网

wire类型是最为常见的用于连接电路元件的线网类型,可以被单个的门级元件或连续赋值所驱动。tri类型与wire类型的具有相同语法和功能,其可用于描述由多个信号源驱动的线网,并没有其他特殊意义。若wire类型或tri类型的线网有多个源驱动,则线网的有效值由下表决定:

2. wor和trior线网

线或(wor)是指两个驱动源中若其中某一个为1,则线网的值为1。三态线或(trior)和线或(wor)有相同的语法和功能。若线网有多个源驱动,则线网的有效值由下表决定:

3. wand和triand线网

线与(wand)是指两个驱动源中若其中某一个为0,则线网的值为0。三态线或(triand)和线与(wand)有相同的语法和功能。若线网有多个源驱动,则线网的有效值由下表决定:

4. tri0和tri1线网

这两类线网可以用于线逻辑线网的建模,即有多个驱动源的线网。tri0(tri1)的特征是,若无驱动源驱动该线网,其值为0(1)。若线网有多个源驱动,则线网的有效值由下表决定:

alt

5. supply0和supply1线网

supply0线网用于对“地”建模,即低电平0;supply1线网用于对电源线网建模,即高电平1.

6. trireg线网

这种线网能储存数值,类似于变量,可用于电容节点的建模。当三态变量的所有驱动源都处于高阻态,也就是说,所有驱动源的输出值均为z时,三态变量类型的线网保存作用在该线网上的最后一个值。此外三态变量线网的缺省初始值为x。

线网类型先说到这里,变量类型请见下回分解!