【SVA学习】01. 什么是断言(SVA)?

举个简单的例子,如果要检查到信号a高电平的一个时钟周期后,信号b应该也为高电平,应该怎么检查最方便?断言。

property CHECK_A_B;
	@(posedge clk)
	signal_a |=> signal_b;
endproperty

FISH_CHECK_A_B: assert property(CHECK_A_B);

在仿真过程中,这个断言会一直检查,如果断言失败,即在a为高电平,一个周期后b不为高电平,断言失败。

SVA, 即system Verilog assertion,是基于systemVerilog的一种断言的写法,可以更方便、快捷的对design的代码进行检查,相比于用Verilog进行检查,SVA有以下优点:

优点:

  1. 描述性语言,可以完美的描述时序相关的状况,大大方便了时序检查;
  2. 提供了很多内嵌函数;
  3. 可以自动收集功能覆盖率数据。

断言的评估和执行包括以下三个阶段:

  1. 预备(Preponed)在这个阶段,采样断言变量,且信号或者变量的状态不能改变,确保采到最稳定的值;
  2. 观察(Observed) 对所有属性表达式求值
  3. 响应(Reactive) 调度 评估属性成功或失败的代码
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值