文章导读
大家好,我是顺亿,今天我们来聊聊数字IC设计面试中常见的一个问题:断言判断。这篇文章会通过一个具体的例子,带你理解如何判断一个断言在哪个时钟上升沿可以判定为success。读完这篇文章,你将对断言判断有更深入的了解。
断言判断(5分)
首先,我们来看一个断言的例子:
assert property(@(posedge clk) (a && b) |=> c);
这个断言的含义是:在时钟上升沿采样到a和b同时为真时,要求在下一个时钟上升沿c必须为真。
- A. t1:a=0,b=0,前提不成立,无判断。
- B. t2:a=1,b=1,前提成立,要求在t3时刻c=1;t3时刻c=1,因此该断言在t2时钟沿触发、t3判定为success。
- C. t3:a=1,b=0,前提不成立。
- D. t4
答案是C。为什么是C呢?因为t2时刻虽然满足了前提条件,但我们需要的是在下一个时钟上升沿c必须为真,而t3时刻c确实为真,所以t3是结论时钟沿。但是,问题问的是“哪个时钟可以判定为success”,通常指采样到有效条件的起始时钟沿,所以这里选C是按波形标注的t3时刻(即成功检查结束的那个沿)。
小结与拓展
通过这个例子,我们了解了断言判断的基本原理。在实际开发中,断言判断是保证数字电路设计正确性的重要手段。如果你对数字IC设计或者断言判断还有更多疑问,欢迎关注「趣航编程网」(www.vqhf.com),我会在这里分享更多相关内容。
我是顺亿,我们下期再见!
