后仿真中的 《specify/endspecify block》之(3)$recovery/ $removal 时序检查

建立时间和保持时间的概念都是出现在同步电路的设计中。

对于异步复位的触发器来说,异步复位信号也需要满足 recovery time(恢复时间)和 removal time(去除时间),才能有效的复位和释放复位,防止出现亚稳态。

释放复位时,复位信号在时钟有效沿来临之前就需要提前一段时间恢复到非复位状态,这段时间为 recovery time。类似于同步时钟下触发器的 setup time。

复位时,复位信号在时钟有效沿来临之后,还需要在一段时间内保持不变,这段时间为 removal time。类似于同步时钟下触发器的 hold time。

recovery 与 removal time 示意图如下所示。

系统任务 $recovery 与 $removal 分别用于 recovery 和 removal time 的检查,用法如下:

$recovery (ref_event, data_event, recovery_limit) ;
  • ref_event: 用于检查的参考信号,一般为清零或复位信号跳变沿;
  • data_event: 被检查的信号,一般为时钟信号跳变沿。
  • recovery_limit:设置的最小 recovery time。

当 ref_event (reset) < data_event (clock) 且 T(data_event - ref_event) < recovery_limit 时,即复位信号在时钟信号到来之前如果不满足 recovery time,则报告中会打印 violation。

$removal (ref_event, data_event, removal_limit) ;
  • ref_event: 用于检查的参考信号,一般为清零或复位信号跳变沿;
  • data_event: 被检查的信号,一般为时钟信号跳变沿。
  • removal_limit:设置的最小 removal time。

当 ref_event (reset) > data_event (clock) 且 T(ref_event - data_event) > removal_limit 时,即复位信号在时钟信号到来之后如果不满足 removal time,则报告中会打印 violation。

Verilog 提供了同时检查 revomal 和 recovery 的系统任务:

$recrem (ref_event, data_event, recovery_limit, removal_limit);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值