UVM之sformat
Useful SystemVerilog System Tasks
Useful SystemVerilog System Tasks | |||||||||
---|---|---|---|---|---|---|---|---|---|
Task Name | Description | ||||||||
$sscanf(str,format,args); |
$sscanf 将字符串按照某个模板格式进行扫描,其字符串格式和C语言中的printf()函数类似 |
||||||||
$sformat(str,format,args); |
$sformat是$sscanf的反函数。将字符串按照给定的格式填入相应的参数args中 |
||||||||
$display(format,args); |
$display就是Verilog的printf语句,在stdout上显示格式化的字符串 |
||||||||
$sformatf(format,args); |
$sformatf任务和$sformat相似,除了其返回字符串结果。字符串作为$sformatf的返回值,而不是像$sformt一样放在第一个参数上。 |
$sformat() update the string with value which you have passed to it.
1 string a; 2 $sformat(a," Hello world");
So here, "Hello world" will be stored in the string a.
It is as good as a = "Hello world";
eg:
1 $sformat(name,"slaves[%0d]",i);
SV的输出格式:
%d 以及 %D 以十进制格式输出
%b 以及 %B 以二进制格式输出
%o 以及 %O 以八进制格式输出
%h 以及 %H 以十六进制格式输出
%e 以及 %E 以指数表示方式输出实数(real型)
%f 以及 %F 以十进制数表示方式输出实数(real型)
%g 以及 %G 以十进制数或者以指数表示方式输出实数
%s 以及 %S 以字符串格式输出
%c 以及 %C 以ASCII码格式输出
%m 以及 %M 输出层次名
%v 以及 %V 输出线网类型变量的强度
%t 以及 %T 以当前时间格式输出