VerilogHDL的主要数据类型:
net(线网):表示器件之间的物理连接,需要门和模块的驱动;没声明的net的缺省类型为1位(标量)wire类型。
register(寄存器):表示抽象的存储元件;
parameters(参数):运行时常数。
1.net和register声明
(1)net声明:<net_type> [range] [delay] <net_name> [,net_name];
net_type:net类型
range:矢量范围,以[MSB:LSB]
delay:定义与net相关的延时
net_name:net名称
(2)register声明:<reg_type> [range] <reg_name> [,reg_name];
reg_type:寄存器类型
range:矢量范围,以[MSB:LSB],只对reg类型有效
reg_name:reg名称
2.正确使用数据类型
输入端口可以由net或register驱动,但输入端口只能是net;
输入/输出双向端口只能是net类型;
输出端口可以是net或register类型,输出端口只能驱动net类型;
在过程块中只能给regster类型赋值
3。数据类型确定的方法
信号可以分为端口信号和内部信号。
出现在端口列表中的信号为端口信号,其他的信号为内部信号。
对于端口信号:输入端口、输入/输出双向端口只能是net类型。
输出端口可以是net类型,也可以是register类型,若输出端口在过程块中赋值则为register类型;若在过程块外(包括实例化语句)赋值,则为net类型。
内部信号类型与输出端口相同,可以是net或regiser类型。若在过程块中赋值,则为register类型;若在过程块外赋值则为net类型。
4。参数(parameters)
用参数声明一个可变常量,常用于定义延时及宽度等参数。
参数定义:parameter <list_of_assignment>;
参数的定义是局部的,只在当前模块中有效。参数定义可以使用以前定义的整数和实数参数。