问一个systemverilog 字符串串联的问题
时间:10-02
整理:3721RD
点击:
各位:
想在一个字符串后面加上数字变量,比如tmp变成tmp01,这样就可以根据数字变量的变化得到不同的字符串。我使用 {}进行串联,结果不成功,不知道该如何实现呢?
另外,logic变量可以通过赋值隐转换为string类型的么?
想在一个字符串后面加上数字变量,比如tmp变成tmp01,这样就可以根据数字变量的变化得到不同的字符串。我使用 {}进行串联,结果不成功,不知道该如何实现呢?
另外,logic变量可以通过赋值隐转换为string类型的么?
貌似可以使用:$sformat/$sprintf,你去查查
查什么呢?我查了systemverilog3.1a的LRM,没找到啊。
二楼是正解,tmp使用字符串,然后在字符串里面加入%h或者%d之类的,在字符串外写数据。类似$psprintf("string%8h", 8'hab)这样。通过该系统函数就可转为stringab。
问题解决了。不过不是用$psprintf 与$sformat。用的是string自带的itoa。
int i = 7;
string s=“tmp”,
string t;
int i=7;
t.itoa(i);
s={s,t};
$display("%s",s);
出来结果就是tmp7了。
这样就是多几个表达式而已。用习惯的话,你会觉得$psprintf很好用的。
