lljlljlzh1

数据类型

0
阅读(2865)

wire型

wire型数据类型常用来表示用以assign关键字指定的组合逻辑信号

reg型

reg类型数据类型的默认初始值为不定值,在always模块中被赋值的每一个都必须定义为reg型。

对于reg型数据,其赋值语句的作用就如同改变一组触发器的存储单元的值。reg型数据类型可以赋正直,也可以赋负值,但当一个reg型数据是一个表达式的操作数时,它的值被当作是无符号值,即正直。例如,当一个4位的寄存器用做表达式中的操作数时,如果开始寄存器被赋以值-1,则在表达式中进行运算时,其值被认为是+15.

注意:

reg型只表示被定义的信号将用在always模块内,并不是说reg型信号一定是寄存器或触发器的输出,虽然reg型信号常常是寄存器或触发器的输出,但并不一定总是这样。

 

memory型

在verilog中没有多维数组存在。memory型数据类型是通过扩展reg型数据的地址范围来生成的。

reg[n-1:0]存储器[m-1:0];      注意:对存储器进行地址索引的表达式必须是常量表达式

 

reg[n-1:0]rega;   //一个n位的寄存器

reg mema [n-1:0];    //一个由n个1位寄存器构成的存储器组

 

一个n位的寄存器可以在一条赋值语句里进行赋值,而一个完整的存储器则不行

rega = 0;//ok

mema = 0;//error

 

如果想对memory中的存储单元进行读写操作,必须指定该单元在存储器中的地址

mema[3] = 1;//ok