1.数值表示
整数文本和逻辑文本可以是带位宽的,也可以是不带位宽的。对于值的符号,截短和向左扩展,SystemVerilog与Verilog-2001遵循相同的规则。
指定位宽:
4'b1001 //固 定 长 度 的 4 比 特 的 二 进 制 表 示
16'habcd //固 定 长 度 的 16 比 特 的 十 六 进 制 表 示
不指定位宽:
1234 //整型
'b0101 //二进制
SystemVerilog 可以使用撇号( ')作为前缀 ,来说明一个文本的所有位可使用相同的数值来填充 , 如 '0,'1,'z,'x。此时,在撇号( ')与值之间没有基数限定符。这使得任何长度的向量不用显式地指定位宽就可以整体赋值,例如:
bit[63:0] data;
data = '1 //设置数据所有位为1
2.字符串表示
字符串文本由引号(“”)包围并且拥有自己的数据类型。对字符串文本的长度没有预定义的限制,一个字符串文本必须存在一个单行中,除非新的行紧跟着一个反斜杠(\)。在这种情况下,反斜杠和新行字符会被忽略。非打印字符或其他特殊字符都使用一个反斜杠(\),也就是转义符作为开始。一个字符串文本可以赋值给一个字符数组,就如C语言的用法一样在末尾会插入null结束符,若字符串长度与数组的大小不一致,则向左调整。例如:
char foo [0:12] = "hello world\n";
SystemVerilog 加入了下表中的特殊字符串字符: