关于锁存器的time borrowing概念

静态时序分析经常会遇到基于锁存器(latch)的设计从而引入了一个概念称为“time borrowing”。这篇文章向大家解释了什么是time borrowing,以及锁存器(latch)设计和时序报告中关于time borrowing的处理方式。
下面的时钟信号周期为10,占空比为50%:
同时我们引入一个简单的电路,如下所示:
为了更容易理解,我们假设每个触发器的建立时间和保持时间均为“0”。
同样假设时钟偏移和时钟延迟也为“0”。
f1在时刻0得到数据,f2在时刻10对数据进行了采样。
因此如果数据在时刻10之后到达f2,那么f2就不能采集到正确的数据。
同理,从f2传出的数据到达f3也需要10个时间单位,在下一个时钟沿的时候被采样。
现在我们用一个锁存器(latch)l2替代f2,锁存器的gate也由同样的时钟信号驱动:
f1在时刻0发出数据:
数据会在时刻10之前到达锁存器的输入端,数据会在锁存器的d端口等待。
这与f2的效果非常相似。
但是如果数据在时刻10之后到达会发生什么呢?
在时刻10到15之间可以说l2是透明的。
因此即使数据在时刻10之后到达l2,l2也能够处理只要数据能够在时刻15之前到达l2。
这意味着数据可以最多用15个时间单位到达锁存器,而使用触发器最多是10个时间单位。
举个例子,如果数据在时刻12到达l2,这意味着与触发器相比,锁存器提供了2个时间单位的优势。
在这个例子中l2最多能提供5个时间单位的优势。
现在让我们再来看一下l2到f3之间的路径。
数据在时刻12从l2传出,在时刻20被f3采样。
那么从l2到f3仅花费了8个时间单位。
在都是由触发器组成的电路中,第二段路径则需要10个时间单位。
这样看来这个电路少用了2个时间单位。
从本质上来说:
通往锁存器的路径多用了2个时间单位 因此,锁存器后面的路径必须在原来的基础上(10个时间单位)少用2个时间单位。 我们可以这样来看,通往锁存器的路径向后面的路径“借用”了2个时间单位。
因此,通往锁存器的路径可以从后续的路径借用时间(相当于锁存器是透明的)。
时间借用的时间不需要全部都借。
实际借用的时间只需要满足路径时序要求的最小值(锁存器全部透明时为最大界限)。
以我们这个例子来说:
可以借用的时间单位为5个时间单位。 实际借用的时间为2个时间单位。 默认是10个时间单位,加上额外的2个时间单位,这段信号路径需要12ns能够满足时序要求。 我们要注意到f1到f3这段路径仍然使用了20个时间单位,没用改变。
只是时间分布改变了。
感谢catalin baetoniu,在实际的时序设计中验证了这些概念。
作者:sanjay churiwala,赛灵思公司工具与方法学应用专家

浅析超宽带脉冲环境下射频滤波器非线性响应
Profinet转CanOpen连接台达伺服驱动器ASDA-B3
通富微电:公司可能会面临行业触底阵痛
艾讯宏达最新推出ULV低功耗主板专业成就未来
一辆合格的新能源汽车应该达到什么标准
关于锁存器的time borrowing概念
中国移动以审慎态度处理5G的发展,不会盲目大规模投资
日本的AI独角兽:不要小看日本的AI公司
基于多通道AD(AD7606/ADS8568)采集综合案例
高速PCB电路的阻抗控制设计
家庭光伏系统的优缺点
面向高速铣削的加工策略 -CimatronE与高速铣
短视频社交,终于揭开了腾讯的短板
手势识别:解放双手,开启智能时代
专家开讲:恩智浦车载网络处理器S32G3,及其在Zonal架构中的最新实践
windows下C语言使用curl库访问HTTP下载文件
特斯拉Model 3将扩大到巴基斯坦控制污染
编程语言排行榜:C#快取代C++的第三名
英创信息技术JDA901 6网口单板工控机简介
EP7209 ARM单芯片系统功能特征及其嵌入式应用