[DV]隨機驗證(CRV)思想

本文探讨了在系统级芯片设计中,如何使用随机化和约束来验证输入,以及如何检查输出的一致性和稳定性。特别关注了req-ack基本握手信号的检查策略,包括req保持高电平直到ack,以及在不同时钟域中req和ack的保持时间检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       前言:

 

一、基本思想(方法)

  1. 所有input都要做Randomize和Cover,所有output都要做Check。
  2. 所有Randomize都要做Constraint。

 

 

二、基本握手信號(req-ack)的Check思路及維度

  1. 回ack之前req要keep high,Data要Stable。
  2. 回ack之後req才會解除。
  3. 看到req之後Delay多少T會ack?需要做Randomize
  4. 相鄰2個req之間的時間間隔?
  5. 如果req與ack位於不同的clock domain,需要Check req和ack的Keep時間。
property req_ack_chk_0();
  @(posedge sys_clk) disable iff(!rst_n)
  (ack === 1) |-> ($past(req, 1, 1));
endproperty

property req_ack_chk_1();
  @(posedge sys_clk) disable iff(!rst_n)
  (req === 1) |=> $stable(data);
endproperty

property req_ack_chk_2();
  @(posedge sys_clk) disable iff(!rst_n)
  $fell(req) |-> (ack === 1'b1);
endproperty

property req_ack_chk_3();
  @(posedge sys_clk) disable iff(!rst_n)
  $changed(data) |-> ((req & ack) || (req === 1'b0));
endproperty

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

元直数字电路验证

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

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

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

打赏作者

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

抵扣说明:

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

余额充值