概要
Assertion是用来与设计功能和时序作比较的属性描述。比如grant信号应该在request信号拉高后的第二个周期拉起,但是却在第三个周期才拉起,这就是时序的违例,不符合协议。
- assertion可以用来完成:检查设计的内容;提高设计的可视度和调试能力;检查设计特性在验证中是否被覆盖。
- 可读性好,因此也可以用来服务于设计文档;
- 用来检查算法模型的断言在形式验证中可以穷尽计算,找出可能的违例;
- 可以自由地打开或者关闭
- 一小部分子集甚至可以用来综合或者移植到emulation中,用来完成跨平台的移植。
在verilog中不支持断言,断言语言通过不断地进化,发张成独立的语言分支——SVA
断言的类型:
1.立即断言
- 非时序的
- 执行时如同过程语句
- 可以在过程快或者函数与方法中调用
2.并行断言
- 时序性的
- 关键词property用来区分立即断言和并行断言
- 之所以称为并行,是指他们与设计模块一同并行执行。
立即断言
立即断言可以结合$fata、$error、$warning、$info给出不同严重级别的消息提示。
[name:] assert(expression)[pass_statement][else fail_statement]
always@(posedge clk)begin
if

本文详细介绍了Verilog中的Assertion(断言)及其类型,包括立即断言和并行断言,展示了它们在设计验证、文档支持和形式验证中的应用。重点讲解了Property(属性)的概念,如何结合Sequence(序列)描述设计行为,以及在覆盖率检查中的角色。SVA的发展和断言的使用技巧也在文中有所涉及。
——简介&spm=1001.2101.3001.5002&articleId=118119608&d=1&t=3&u=c219acda501a4251a38eab90c2ce525e)
1248

被折叠的 条评论
为什么被折叠?



