Assertion断言入门(四)——断言覆盖率

以APB总线协议的断言检查和断言覆盖率为例,学习断言的基本使用和断言覆盖率覆盖。需要用到关键词cover来收集断言覆盖。

APB总线协议时序图如下:(首图为读操作时序和后图为写操作时序)

PS:关于APB协议的详细的描述可见AMBA总线协议中APB协议总结一文:APB总线协议
在这里插入图片描述
在这里插入图片描述

断言检查一

  • 在PSEL为高时,PADDR总线不可以为x值;
property p_addr_no_x;
    @(posedge clk) psel |-> !$isunknow(paddr); 
endproperty
assert property(p_addr_no_x) else `uvm_error("ASSERT","PADDR is unknow when PSEL is high");

断言检查二

  • 在PSEL拉高的下一个周期,PENABLE也应该为高。
property penable_rise;
    @(posedge clk) $rose(psel) |=> $rose(penable);
endproperty
assert property(penable_rise) else `uvm_error("ASSERT","PENABLE not rose after 1 cylce PSEL rose");

断言检查三

  • 在PENABLE拉高的下一个周期,PENABLE应该拉低;
property penable_fell;
    @(posedge clk) $rose(penable) |=> $fell(penable);
endproperty
assert property(penable_fell) else `uvm_error("ASSERT","PENABLE not fell after 1 cylce PENABLE rose");

断言检查四

  • 在PSEL和PWRITE同时保持为高的阶段,PWDATA需要保持。
property pwdata_stable;
    @(posedge clk) (psel && !penable) ##1 (psel && penable) |-> $stable(pwdata);
endproperty
assert property(pwadata_stable) else `uvm_
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小小verifier

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

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

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

打赏作者

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

抵扣说明:

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

余额充值