7-字符串與$sformatf,$sformat,$psprintf


資料來源:

(1)公眾號-傑瑞IC驗證;

(2)硅芯思見:【97】$sformat()與$psprintf() (qq.com)

1.$sformat & $sformatf

1 //示例1-jerry IC驗證;
2 string jerry_string;
3 string jerry_string_r;
4 
5 $sformat(jerry_string,"jerry_face_score=%0d",100);
6 $display("1.%0s",jerry_string);
7 
8 jerry_string_r=$sformatf("jerry_cool_score=%0d",100);
9 $display("2.%0s",jerry_string_r);
 1 //示例2-硅芯思見
 2 `timescale 1ns/1ps
 3 module top_tb;
 4     string       str;
 5     logic[31:0]  data;
 6 
 7     initial begin
 8         data=32'h87654321;
 9         str=$sformatf("The data is %0h!",data);
10         $display("I'm from display->%s",str);
11     end
12 
13 endmodule
 1 //示例3-硅芯思見
 2 `timescale 1ns/1ps
 3 module top_tb;
 4     bit[3:0] sig;
 5     initial begin
 6         sig=4'h0;
 7         foreach(sig[i]) begin
 8             if($test$plusargs($sformatf("SIG%0h",i))) begin
 9                 sig[i]=1'b1;
10                 $display($sfrmatf("SIG%0h -> %0h",i,sig[i]));
11             end
12         end
13     end
14 endmodule

(1) $sformat & $sformatf是system verilog標准中的系統函數,用於整理字符串的格式;

(2) $sformat()比$sformatf()多了第一個參數,該參數用於存放最終整理好的字符串;

(3) $sformatf()返回的值就是整理好的字符串,可以直接把它整體拿去使用;

2.$psprintf(類似$sformatf)

(1) $psprintf是由VCS添加的sv擴展,暫未被system verilog標准收錄;

(2) $psprintf()返回一個格式化的臨時字符串,並且可以傳遞給其他子程序. 這樣可以不用定義新的臨時字符串並在格式化語句與函數調用過程中傳遞這個字符串. 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM