[英]Adding variable to a string in 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
方法1:使用$ sformat
$sformat(fname,"wave_mon[%0d]_ch%0d_dat.out",i,i);
$display("Filename created is %s \n",fname);
方法2:使用$ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.