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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1642|回复: 9

[求助] 请问vcs收集sva断言覆盖率时,有没有参数可以使断言遇到$fatal时继续仿真而不退出?

[复制链接]
发表于 2022-7-28 22:09:50 | 显示全部楼层 |阅读模式

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

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

x
请问vcs收集sva断言覆盖率时,有没有参数可以使断言遇到$fatal时继续仿真而不退出?
发表于 2022-7-29 11:16:35 | 显示全部楼层
-assert no_fatal_action
 楼主| 发表于 2022-7-29 14:23:57 | 显示全部楼层


anpengfei 发表于 2022-7-29 11:16
-assert no_fatal_action


我在断言的else分支里用fatal函数,assert property else $fatal(),加了no_fatal_action还是退出了仿真。

发表于 2022-7-29 15:00:22 | 显示全部楼层


liqunxiong 发表于 2022-7-29 14:23
我在断言的else分支里用fatal函数,assert property else $fatal(),加了no_fatal_action还是退出了仿真 ...


你这种的不知道了……
发表于 2022-7-30 10:10:03 | 显示全部楼层


liqunxiong 发表于 2022-7-29 14:23
我在断言的else分支里用fatal函数,assert property else $fatal(),加了no_fatal_action还是退出了仿真 ...


你这种要求相当于怎么配置电脑让我按关机的时候电脑不关机。
发表于 2022-8-1 11:10:58 | 显示全部楼层
本帖最后由 qsh123_123 于 2022-8-1 11:21 编辑

特意查阅了一下关于错误severity级别的函数,其中关于$fatal, $error, $warning, $info有这样的描述(出自《SystemVerilog 3.1a Language Reference Manual--Accellera's Extensions to Verilog》P335, 23.8 Assertion severity system tasks):
---------------------------------------------
SystemVerilog assertions have a severity level associated with any assertion failures detected. By default, the severity of an assertion failure is “error”. The severity levels can be specified by including one of the following severity system tasks in the assertion fail statement:

    $fatal shall generate a run-time fatal assertion error, which terminates the simulation with an error code. The first argument passed to $fatal shall be consistent with the corresponding argument to the Verilog $finish system task, which sets the level of diagnostic information reported by the tool. Calling $fatal results in an implicit call to $finish.
    $error shall be a run-time error.
    $warning shall be a run-time warning, which can be suppressed in a tool-specific manner.
    $info shall indicate that the assertion failure carries no specific severity.
----------------------------------------------
而且,$fatal的函数定义和参数定义是这样的:
fatal_message_task ::= $fatal[(finish_number [, message_argument {,message_argument}])];
第一个参数finish_number是输入给$finish函数的参数,而函数$finish的这个参数说明在IEEE Std 1800-2017里面找到如下:
图片.png

简单来说,$fatal函数会调用$finish函数,而$finish函数一定会结束仿真。。。加啥参数都没用,除非你改写系统函数$fatal或者$finish,或者你的仿真器仿真Verilog/Systemverilog不遵循IEEE的语法。。。
想不结束仿真并且报错,请用$error函数,好么?fatal这个错误级别的函数的存在意义就是为了结束仿真用的。

最后,补充一下IEEE Std 1800-2017里面关于$fatal的说明:
图片.png
发表于 2022-8-9 08:28:35 来自手机 | 显示全部楼层
需求很莫名其妙。
发表于 2022-8-10 00:38:13 来自手机 | 显示全部楼层


saipolo 发表于 2022-8-9 08:28
需求很莫名其妙。


换一个场景的话可能有用,就是DE认为这种场景是fatal,但是VE就是要测这种场景,后续还要进行一些检查或者操作
发表于 2022-8-10 10:10:49 来自手机 | 显示全部楼层


seabeam 发表于 2022-8-10 00:38
换一个场景的话可能有用,就是DE认为这种场景是fatal,但是VE就是要测这种场景,后续还要进行一些检查或 ...


真有这需求那就换成error啊,fatal就是要结束仿真的,除非你把fatal的底层实现改了。
发表于 2022-8-10 12:07:31 | 显示全部楼层


saipolo 发表于 2022-8-10 10:10
真有这需求那就换成error啊,fatal就是要结束仿真的,除非你把fatal的底层实现改了。 ...


design加个开关就好了,一般会做成parameter
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-9-23 13:30 , Processed in 0.021777 second(s), 8 queries , Gzip On, Redis On.

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