system-verilog-assertions - 在系统verilog断言中何时使用暗示以及何时使用##delay
问题描述
我有断言的场景,其中首先 a 应该是高 1 个周期之后这个 b 应该是高的,然后 1 个周期之后 c 应该是高的,在这之后有 1 个周期延迟 d 应该是高的我对这些断言应该如何编码感到困惑. 我有三个选项,请帮助我,应该遵循正确的解决方案
选项1: a |=> b |=> c |=> d ;
选项2:a |=> b ##1 c ##1 d;
选项3:a ##1 b |=> c ##1 d;
我被困在要遵循的这些选项中。请指导我了解最佳解决方案以及原因
解决方案
选项 2 是唯一正确的选项(假设您希望在 a 高时触发此选项)。如果前件为假或后件为真,则暗示为真。选项1: a |=> b |=> c |=> d ;-> 如果 !a,这是真的,如果 a ##1 !b,那么这是真的,如果 a ##1 b ##1 !c,那么这是真的。只要前件是假的,整个陈述就是真的。
基本上 (b |=> c) 当 b 为假时为真,这意味着选项 1 表示如果 a 为高且 b 在下一个周期为高且如果 c 在下一个周期为高,则 d 在最后一个周期必须为高循环。那不是你需要的。
虽然您的问题实际上是需要 a 然后 b 然后 c 然后 d。这将需要:
a ##1 b ##1 c ##1 d
推荐阅读
- c# - 无法从其他应用程序获取元素的内部
- java - 是否可以在 Quarkus 应用程序属性中部分覆盖 persistence.xml?
- android - jetpack compose 不响应模拟器上的键盘输入
- c++ - 使用初始化列表在构造函数中初始化复杂映射
- powershell - 使用管理员凭据启动进程并使用 RunAs 执行程序文件 C 中的特定 exe
- splunk - Splunk 搜索 - 如何在多值字段上循环
- flutter - 如何重新定位小部件而不在 Flutter 中重建其子级?
- c# - 如何在 NSIS 中检测 Windows 7
- python - python视频b'\x1aE\xdf\xa3\x01\x00\x00\x00\x00\x00\x00\
- excel - 从列中返回所有唯一值,并按字母顺序排序