string - 在systemverilog中将变量添加到字符串
问题描述
我需要生成名称中包含变量的文件名。例如。文件名需要是wave_mon[0]_ch0_dat.out
这个0
字符串中的 将根据 for 循环而变化。我的代码如下:
for (i=0; i<16; i=i+1) begin
fname = {"wave_mon[",i,"]_ch",i,"_dat.out"};
$display("Filename created is %s \n", fname);
#1us;
end
此代码的输出始终如下所示。我错过了什么,它无法i
在字符串名称中打印值?
Filename created is wave_mon[]_channel__data.out
Filename created is wave_mon[]_channel__data.out
Filename created is wave_mon[]_channel__data.out
解决方案
方法一:使用$sformat
$sformat(fname,"wave_mon[%0d]_ch%0d_dat.out",i,i);
$display("Filename created is %s \n",fname);
方法二:使用 $sformatf
fname={$sformatf("wave_mon[%0d]_ch%0d_dat.out",i,i)};
$display("Filename created is %s \n",fname);
我创建了代码片段供您尝试:https ://www.edaplayground.com/x/5uQD
如果您愿意,还有更多关于 SV 中的字符串操作的信息:https ://www.chipverify.com/systemverilog/systemverilog-strings
推荐阅读
- c - 在 C 中打印队列时丢失元素
- python - 如何在 Altair python 中突出显示多线图
- android - 错误:资源 android:attr/colorError 未找到
- numpy - numba 中的 numpy 数组高级索引
- c# - 从 .NET 4.5 迁移到 .NET Core 2.2 后如何“重新复数”数据库表?
- python - 为什么 if 语句在 ElementTree 解析中不起作用?
- python - 如何将所有时间戳值转换为数据框列 Python Pandas 中的数值
- machine-learning - LinearRegression().fit() 输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值
- r - 从两个不同长度和唯一的向量创建一个由上升和交替元素组成的向量
- django - JWT认证的设计?