基于断言的验证(Assertion Based Verification)近年来逐渐成为主流方法之一。作为验证工程师,我们常常面临复杂设计的挑战,而断言就像在设计的各个角落埋下"哨兵",随时准备抓住那些隐藏的bug。
断言是什么?
断言本质上是对设计中某种预期行为的简洁描述。想象一下,你对某个信号有特定的期望:当A信号为true时,B信号必须在5个时钟周期内变为false。这种期望就可以通过断言来表达和检查。
谁来写断言?何时写?
断言的撰写通常涉及三类人:
架构师:负责描述高层次关系,确保系统级行为和一致性。当他们设计系统时,可以用断言确保他们的假设在实际实现中不被违反。
设计工程师:用断言记录特定实现的意图或限制,确保设计按预期工作。
验证工程师:关注设计的正确性。我们可以在测试平台中使用断言作为早期警报指示器,同时它们也可以兼作覆盖率monitor或checker。断言还可以作为形式验证中的属性或约束条件。