Verilog HDL中的数据类型

Verilog HDL有两大类数据类型:线网类型和寄存器类型

线网类型(nets type)表示Verilog结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z。

寄存器类型(register type)表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。寄存器类型的变量具有x的缺省值。

(1)线网类型(nets type)

线网类型包含多种类的线网子类型,其中wire是最常用的连线型变量,这里主要对其进行介绍。wire型数据常量用来表示以assign语句赋值的组合逻辑信号。

Verilong HDL 模块中的输入/输出信号类型缺省时自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以用做“assign”语句和实例元件的输出。对于综合而言,其取值为0,1,X,Z。

wire 型变量的定义格式如下:

wire数据名1,数据名2,数据名3,……,数据名n;

例如:

wire a,b;        
//定义了两个wire型变量a,b

wire型向量可按以下方式使用:

wire[7:0]in,out;     
//定义了两个8位wire型向量in,out
assign out =in;

若只使用其中某几位,可直接指明,但应注意宽度要一致。如:

wire[7:0]out;
wire[3:0]in
assign out[5:2]=in;  
//out向量的第2到第5位与in向量相等

即等效于:Assign out[5]=in[3]
     Assign out[4]=in[2];
     Assign out[3]=in[1];
     Assign out[2]=in[0]。
     
(2)寄存器类型(register type)

寄存器数据类型的reg是最常见的数据类型。reg类型使用保留字reg加以说明,形式如下:

Reg 数据名1,数据名2,……,数据名n;

例如:

reg a,b;        
//定义了两个reg型变量a,b
reg[7:0]data;     
//定义data 为8位宽的reg型向量

(3)存储器

存储器是一个寄存器数组,若干个相同宽度的向量构成数组,reg型数组变量即为memory型变量,既可定义存储器型数据,如:

reg[7:0]mymem[1023:0]; 
//定义了一个宽度为8位、1024个存储单元的存储器,该存储器的名字是 mymem。

你可能感兴趣的:(数字电路,fpga开发,开发语言)