数字后端 - STA

本文介绍了数字后端中如何修复setup time violation,包括添加buffer/inverter、Resize、Move、Pin Swap、Restruct、Layer Assignment、Clone/Declone和Split/Merge等方法。详细讨论了时序弧、non-unate clock的概念,以及它们在时序路径和报告中的影响。通过对电路结构的优化,可以有效提高时序性能。

Timing arc,中文名时序弧。这是timing计算最基本的组成元素,如果两个pin之间在timing上存在因果关系,我们就把这种时序关系称为Timing arc,主要分为定义时序延迟,和定义时序检查两种。为啥叫它时序弧?因为时序图中经常用一条弧形线段来表示它。如下图所示:cell的timing arc定义在lib中,
在这里插入图片描述
non-unate clock 意思是输出与输入无函数关系,即不相关的
non-unate path的意思就是单个输入固定时,输出也是不确定的,没有确定的函数关系,即不相关路径

根据synopsys的解释,理论上来说,时钟电路只能经过寄存器时钟端、buffer(正相关)、inverter(负相关),clock 经过or ,xor等除了与门和非门外的其他逻辑,就会被叫做non_unate

non-unate path会影响report_timing的结果吗?
DC\PT能够对付gated clock,但是不能对付non_unate gated clock.因为这样会产生不可预计的clock,所以对时钟的处理最好只用与门和非门逻辑。

如何修复setup time violation?

Add buffer/inverter

添加buffer或者inverter, 这时我们经常见到一种手段,对于长net,通过插入buffer打断该条net,可以有效提高驱动。对于inverter,必须成对出现

Resize

这也是常见的一种手段,我们增大cell的尺寸可以有效的提高驱动能力,当然前提是同一种类型的cell。

Move

挪动std cell的位置,不合理的std cell位置会造成时序路径的绕路

Pin Swap

调整有等价关系的term的连接关系。如下左图所示,在该与门电路中,假设Pin C和Pin D具有等价关系。经过A的path更critical,而且D pin的delay较小,所以我们希望可以调整两个pin的连接关系,如下右图所示。
在这里插入图片描述

Restruct

优化一些电路结构。如下面的电路转换成三输入AOI(AND-OR-Invert)电路
在这里插入图片描述

Layer Assignment

把一些critcal的path用高层走线,这样timing会较好,如下图所示:
在这里插入图片描述

Clone/Declone

该方法同clock gate cell的Clone/Declone较类似,当受相同单元控制的时序单元较多或者分布不均匀时,就会导致连线过长,这时可以通过clone 该单元进行优化

当受相同单元控制的时序单元较少,就会导致单元数量过多,设计density增大。这时可以通过De-clone该单元进行优化

Split/Merge

这是一种比较新的方法,我们的设计中含有一些multi-bit和single-bit的时序器件,相对来说,multi bit的单元可以节省功耗以及面积,但是速度会比较慢; single bit的正好相反,多个单bit单元可以灵活运用在时序路径上,可以有效提高速度,当然随之就会带来功耗和面积的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值