1.wire型
wire型是指整数型,常用来表示用以assign关键字指定的组合逻辑信号。在Verilog程序模块中,输入、输出信号类型默认为wire型。wire型信号可以用做任何方程式的输入,也可以用做assign语句。
wire是wire型数据的确认符;[n-1:0]代表该数据的位宽,即该数据有几位,然后后面跟着数据的名字。若一次定义多个数据,可以用逗号隔开,但是最后一个数据名称不用跟逗号。
如wire a;/定义一个1位的wire型数据 a/
wire[3:0] b;/定义一个4位的wire型数据 b/
wire[5:1]c,d;/定义两个5位的wire型数据 c和d/
2.reg型
reg型是指实数型,是寄存器数据类型的关键字。reg型数据常用来表示always模块内的指定信号,长代表触发器。在设计中,通常以always模块通过使用行为描述语句来表达逻辑关系。reg型数据的格式与wire型一样。
如reg rega;/定义一个1位的名为rega的reg型数据/
reg [3:0] regb;/定义一个4位的名为regb的reg型数据/
reg [5:1]regc,regd;/定义两个5位的名为regc和regd的reg型数据/
reg型数据的默认是初始值是不定值,reg型数据可以赋正值也可以赋负值。但当一个reg型数据是一个表达式中的操作数时,它的值被当作无符号值,即正值。
3.memory型
memory型数据是通过扩展reg型数据的地址范围生成而来的,其格式如下:
reg[n-1:0] 存储器名[m-1:0],其中reg[n-1:0]定义了每一个存储单元的大小,即该存储单元是一个多少位的寄存器,[m-1:0]定义了该存储器有多少个存储单元。
如reg[4:0] mema[255:0];/定义了一个名为mema的存储器,该存储器有256个5位的存储器。
但是要注意一个n位的存储器是不同于一个由n个1位存储器所构成的存储器组
reg[n-1:0] rega;/一个n位的寄存器/
reg mema[n-1:0];/一个由n个1位寄存器所构成存储器组/
如果想对memory中的数据进行读写操作,必须指定该数据在存储器中的位置。
入mema[3]=0'/memory中第三个存储单元赋值为0/