簡體   English   中英

在systemverilog中將變量添加到字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM