未指定位宽范围的net或reg声明应视为1位宽,称为标量(scalar)。多位net和reg据类型应通过指定范围来声明,这种数据类型称为矢量或向量(Vector)。
Verilog规范为多位net或reg中的各个比特位提供地址。Msb缩写指定的最高有效位是多位net或reg中的最左侧位,lsb 指定的最小有效位是多位net或reg中的最右侧位。msb 常量和 lsb 常量都应是整数。msb 和 lsb 常量可以是任何正、负或零整数值。lsb 值可以大于、等于或小于 msb 值。
矢量net和reg均默认为无符号量,除非它们被声明为有符号量或连接到声明为有符号量的端口。例如:
Vectored 和 scalared 是可选关键字,用于矢量net或 reg 声明。如果使用了这些关键字,对矢量的某些操作可能会受到限制。如果使用关键字 vectored,则可能不允许位选择、部分选择和强度规范,PLI 可能会认为对象未展开。如果使用了关键字 scalared,则应允许对对象进行位选择和部分选择,PLI 应将对象视为已展开对象。例如:
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!