首页 > 其他分享 >有关Latch借timing问题讲解

有关Latch借timing问题讲解

时间:2024-09-11 13:51:35浏览次数:12  
标签:Latch 高电平 time borrow 讲解 timing latch check

    之前我们提到过clock gate通过加latch的方法,解决掉不少问题。其中,也提到过,latch相对于触发器来说,其可以借timing。本文主要讲解一下latch是怎么借timing的,以及其劣势。

图片

    如图1所示,中间一个是高电平触发latch。图2所示为setup/hold check,绿色是hold check,红色是setup check,橙色是出现time borrow时setup check。

图片

    可以看到,没有time borrow时,hold check不再是同沿check,这是因为latch是高电平触发,信号稳定传输要等到高电平时间结束后,为了确保信号能够正确传输,下一级信号传输一定要在高电平结束之后才能到达。因此,对与高电平有效的latch来说,其hold check要在等半个周期。

    对于setup来说,如果没有time borrow的情况时,其与DFF情况是一致的。信号一定要在高电平到来之前抵达。但是,高电平触发的latch不像DFF只在时钟沿发射信号,其整个高电平都可以发送信号。于是便存在了time borrow。如图2所示,latch的最大time borrow时间是高电平结束前。

    接下来,我需要关注的是,latch和reg2之间的timing check了。如果没有timing borrow情况,latch和DFF的timing分析是一致的。但如果发生了time borrow情况时,如图2所示,假设reg1到latch的setup存在了1ns的time borrow情况,意味着latch到reg2的data信号便晚了1ns。因此,在计算latch->reg2的setup时,data path便要将这1ns的time borrow算进去。这便是latch借了后一级path的setup的timing。

    既然latch可以借timing,那为什么在设计的时候要尽量避免使用latch呢。正如上文讲述的,latch是通过电平触发的,这就意味着data信号在整个电平触发时间要保证稳定,如果data出现了毛刺,那么这个毛刺也会被传输到下一级寄存器中,有可能会导致数据传输错误。而DFF由于在时钟沿触发,只要确保在时钟沿附近data处于稳定状态就可以确保信号准确发出。这大大降低了信号传输出现错误的可能。另外,如果存在latch借timing的情况,也会大大增加STA的运算量。

 #小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。如有需求,可打开星球芯冰乐,获取更多知识干货分享与答疑服务。

标签:Latch,高电平,time,borrow,讲解,timing,latch,check
From: https://blog.csdn.net/Albert66666/article/details/142098908

相关文章