System Verilog LRM 学习笔记 — 字面常量
1. 整数型字面常量
1.1 整数型字面常量表示方法有两种:
- 数字直接表示:会被系统识别为32bit宽的有符号数。
- 指定size和进制,如12‘hDBA, 有可选的宽度,(’), s/S有符号数指示,和数字组成。 默认是无符号数,只有含s/s符号数指示时被识别为有符号数, 如12‘shDBA.
1.2 负数是二进制补码的形式表示
1.3 整数型字面常量的补齐和截断,padded to left, truncated:
对于无符号数,如果向size小的数赋值,则需要将左侧多余的bit截断后赋值。如果向size大的数赋值,则将其左侧填0后赋值,但如果其左侧是x/z,则将其左侧补x/z,之后再进行赋值操作。
1.4 所有bit设置成0/1/x/z的表示方法:
‘0, ‘1, ‘X, ‘x, ‘Z, ‘z // sets all bits to specified value
2. 实数型字面常量
在SV中,实数型字面常量代表的是双精度浮点数,有普通表示法(如12.73),和科学表示法(如32e6)两种形式。
3. 时间常量
用整数或小数+时间单位(fs,ps,ns,us,ms,s)来表示,如2.1ns,49ps;
4. 字符串常量
本质是byte类型的可变数组,用“”来表示一个字符串。可以将字符串赋给整数变量,如
左侧变量应该和字符串长度一致,是8bit的整数倍,否则需要进行补0或截断的操作。