Asssertion断言入门(一)——简介

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

概要

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值