在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9077|回复: 5

[讨论] 大牛前来讨论一下,一个打印函数的效率问题

[复制链接]
发表于 2014-12-15 17:45:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

最近周围有人在下面这样一个问题:
$sformatf 和 $psprintf在进行Testbench里面的log打印时,哪个效率更高呢?

我不太明白。查了一下,$sformatf 是Systemverilog的语言标准。但是大部分流行的SystemVerilog编译器都支持$psprintf,尽管它没有成为标准。

有没有哪位大牛又相关的经验,coding过程中使用哪个函数比较好呢?

Thanks!

发表于 2014-12-17 22:56:10 | 显示全部楼层
你有很多内容需要打印么?
发表于 2014-12-18 23:29:11 | 显示全部楼层
用sformatf,可移植性好
发表于 2019-7-9 21:42:02 | 显示全部楼层
psprintf是历史遗留用法,sformatf是systemverilog的标准,至于哪一个效果好,这个我也没有试过,建议还是转到sformatf吧,已经兼容性和可移植性都更加有保证。
发表于 2019-7-10 12:12:04 | 显示全部楼层
据说psprintf是OpenVera遗留下来的古董,但是主流仿真器都支持。至于打印对仿真器效率的影响都差不多吧,都会用到操作系统底层调用在termimal反显字符串卷。将来可能主流仿真器不再支持psprintf,sformatf是sv标准,会一直支持的。
发表于 2019-9-8 11:48:11 | 显示全部楼层


saipolo 发表于 2019-7-10 12:12
据说psprintf是OpenVera遗留下来的古董,但是主流仿真器都支持。至于打印对仿真器效率的影响都差不多吧,都 ...


释疑了。多谢。根据提示整理如下:
《SystemVerilog验证测试平台编写指南中文 第二版》49页 中提到了 $psprintf 和 $sformat ,看着意思是$psprintf 较好一些。原文如下:       “稍加留意便可发现动态字符串的用处有多大。在别的语言如C里,你必须不停地创建临时字符串来接收函数返回的结果。在例2.53中,函数$psprintf()替代了Verilog-2001中的函数$sformat()。这个新函数返回一个格式化的临时字符串,并且可以直接传递给其他子程序。这样你就可以不用定义新的临时字符串并在格式化语句与函数调用过程中传递这个字符串。”

$sformat是SystemVerilog标准中的系统函数

$psprintf是由VCS添加的SV扩展(源自Vera),暂未被SystemVerilog标准收录,$psprintf最近也被Questa支持。见sformat()-amp-psprintf()

总结起来就是:$psprintf 和 $sformat 的功能基本相同,都是返回一个格式化的字符串,并且可以直接传递给其他子程序。其中,$sformat属于SV标准支持的函数,而$psprintf目前被VCS工具和Questa工具支持 。

以上。欢迎补充
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 18:52 , Processed in 0.025270 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表