SystemVerilog引入了一个字符串类型(string),它是一个大小可变、动态分配的字节数组。在Verilog中,字符串文本为一个具有宽度为8的整数倍的压缩数组。当一个字符串文本被赋值到一个大小不同、整型压缩数组变量的时候,它或者被截短到变量的大小或者在左侧填补0。
在SystemVerilog中,字符串文本的表现行为与Verilog相同。然而,SystemVerilog还支持字符串类型,我们可以将一个字符串文本赋值到这种数据类型。当使用字符串类型来替代一个整型变量的时候,字符串可以具有任意的长度并且不会发生截短现象。当字符串文本赋值到一个字符串类型或者在一个使用字符串类型操作数的表达式中使用的时候,它会被隐式地转换成字符串类型。
字符串类型变量的声明语法如下:
string variable_name [=initial_value];
其中,variable_name是一个有效的标识符,可选的initial_value可以是一个字符串文本,也可以是一个空字符串(“”)。例如:
string myName = "john Smith";
如果在声明中没有指定初始值,变量会被初始化成空字符串(“”)。
SystemVerilog提供了一组操作符,这些操作符可以用来处理字符串变量和字符串文本。字符串类型的基本操作符在表1-1中给出,字符串类型的内置方法在表1-2中给出。