版图ECO的那点事(中)

令人又爱又恨的ECO,它又回来了。在这里插入图片描述

在上一讲中,和大家一起讨论地两个关键话题:

在这一讲中,大家一起来看看ECO实现时候的小技巧。

ECO版图实现的技巧和经验

在实际的ECO中,版图的实现是非常重要的步骤。是否能完成STA的脚本期望,是数据库能否走向收敛的关键点。一般的STA对应的ECO和相应的修复方法如下:

类别问题描述修复手段实现方法
max_transition
max_capacitance
驱动不够
负载过大
input cap过大
绕线过长
增加驱动
打短绕线
负载分割
size_cell
add_buffer_on_route
split_fanout
setup violation数据侧延迟过大
捕捉侧时钟过早
发射级时钟过晚
做快数据
做慢捕捉侧时钟
做快发射级时钟
size_cell
insert_buffer
add_buffer_on_route
hold violation数据侧延迟过小
捕捉侧时钟过晚
发射级时钟过早
做慢数据
做快捕捉侧时钟
做慢发射级时钟
size_cell
insert_buffer
add_buffer_on_route

可以看到,ECO的物理实现就是两种情形

  • size_cell
  • add buffer
    这里边最会产生的影响其实是面积器件的位置变动(dis-placement)
    通常的版图和ECO流程如下图,在sign-off阶段,理想的是以类似silicon-freeze的方式进行操作
    在这里插入图片描述
    ECO的简明流程如下:
    在这里插入图片描述
    这里的关键节点是在,placement/legalization,任何器件的位置变动带来的意外的影响都有可能导致ECO无法按照期望方向进行,这是因为,原有数据库的cell的放置被调整,之前的绕线需要做相应的调整,同时带来更多的timing/驱动能力的问题,这样就会给数据库带来不期望的抖动。
    为了尽可能保证原有数据库的状态,这里需要引入一个新名词:Minimal Physical Impact Flow(MPI)
    在这里插入图片描述

为了实现MPI的效果,ICC给出了它的一套解决方案。

【敲黑板划重点】

在这里插入图片描述
较小的dis-placement带来更为稳定的版图数据,绕线的挑战也比较小,这个是MPI的核心思想

下边一起来看一下,如何使用合理的命令和流程来弱化legalization带来的影响:
在这里插入图片描述
传统的legalize命令在跑流程的时候,可以很好的进行增量性的legalization,但是到了ECO这里,legalize的动作相对于版图的稳定性而言,就是有点太大了,需要使用place_eco_cells来实现MPI:
在这里插入图片描述
从上边这个截图可以看出来,传统的legalize模式,带来的明显的average/max dis-placement,但是place_eco_cell可以非常好的避免这种情况的发生。place_eco_cell可以实现MPI的目标,而且run-time速度也很快,这到底是为什么呢?天底下还有这么既省时又省力的两全其美的好事情?
在这里插入图片描述
通常使用的legalize_placement -increment命令,它是一个全局命令,它会在需要legalize的cell就近找寻位置,如果找不到,那么就会push周围的cell,从而在ECO cell就近产生足够的空间,这样会产生明显的涟漪效应,尤其在高利用率的区域。但是place_eco_cell的行为完全不一样,它的操作范围完全是有用户决定的,它的目的就是一个:在规定的范围内,完成目标cell的legalization,如果在规定的区域内(dis-placement threshold)找不到,它就直接放弃,较小的作用范围,带来的就是高速的执行速度
这里有一个test-case,一个全局的的时序修复(size_cell),基于同样的改变,看看两个命令的表现:

  • CMD: legalize_placement -increment
    在这里插入图片描述
    可以看到,这里有30871个cell的位置被改变,ECO的cell其实只有7081个cell。可见大约有23K个cell的移动,是为了来给ECO cell腾挪空间的。
  • CMD: place_eco_cell -eco_changed -displacement_threshold 10 -max_displacement_threshold 10

在这里插入图片描述
仔细看图片描述,place_eco_cell的作用范围只有10um,目标cell也只有eco_changed的7081个cell,所以runtime极快。
在使用place_eco_cell之后,如何原始数据库的cell并没有被动到,只有ECO_changed cell 被动到,所以有一些没法完成legalize的cell,需要使用legalize_placement -increment 再次调整,保证整个数据库的legalization。
在这里插入图片描述
这里可以看到,使用legalize_placement -increment ,moved cell较之前会有所好转。

这样通过两步走的手段,可以有效地保证eco_changed的cell的legalization,也能最大限度地完成其他cell的原地不动。这里附带完整脚本流程图如下:
在这里插入图片描述

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 数字IC版图和模拟IC版图是电子电路设计的两种不同类型。数字IC版图是用于设计数字电路,而模拟IC版图则用于设计模拟电路。 在设计数字IC版图时,需要注意以下几点。首先,需要确保信号传输的准确性和可靠性。信号间的干扰和噪声应该被降到最低,以确保电路的正常运行。其次,需要考虑功耗和电源管理。数字电路通常需要较大的功耗,因此需要选择合适的电源管理措施来降低功耗并延长电池寿命。再次,数字电路的时序和时钟信号需被仔细处理,以确保电路操作的准确性。 而在模拟IC版图设计,注意点如下。首先,需要考虑器件和元件参数的准确性。由于模拟电路对于电压、电流和频率等参数要求较高,因此需要选择合适的器件和元件,并确保其参数准确。其次,需要考虑电路的稳定性和抗干扰性。模拟电路对于外部干扰和噪声较为敏感,设计需要采取措施来降低干扰和噪声对电路性能的影响。最后,需要对电路的性能进行充分测试和调整,以确保电路的输出满足设计要求。 总之,数字IC版图和模拟IC版图设计的注意点各有不同,但共同点是要确保电路的性能和可靠性。 ### 回答2: 数字IC版图和模拟IC版图是电子设计两种不同类型的电路设计。数字IC版图主要用于数字电路的设计,而模拟IC版图主要用于模拟电路的设计。对于这两种电路设计版图设计,有一些注意点需要考虑。 首先是数字IC版图设计的注意点。数字IC版图设计需要注意的主要点如下: 1. 逻辑门的布局和引脚连接:数字电路的逻辑门在版图应根据功能进行合理布局,并确保正确的引脚连接,以实现预期的逻辑功能。 2. 时钟和时序:数字电路的时钟信号和时序关系的设计需要特别注意,以确保信号的稳定和正确的数据传输。 3. 线路长度和延迟:在设计数字IC版图时,需要考虑线路长度和延迟对电路性能的影响,并采取相应的优化措施。 而对于模拟IC版图设计,需要特别注意以下几点: 1. 器件的布局:模拟电路,不同的器件有不同的特性和性能,它们的布局应根据器件的特性相互配合,并且考虑最小化的噪声、干扰和相互干扰。 2. 电源和地线的布局:模拟电路对电源和地线的稳定性有更高的要求,所以在版图设计需要合理布局,并采取一些方法来减小电源噪声和地线回流。 3. 仿真和验证:在模拟IC版图设计完成后,需要进行仿真和验证,以确保电路的性能和稳定性达到设计要求。 综上所述,数字IC版图和模拟IC版图的设计都需要考虑不同的问题和注意点。数字IC版图设计需要注重逻辑门的布局和引脚连接,时钟和时序的设计,以及线路长度和延迟的优化。而模拟IC版图设计需要特别注意器件的布局,电源和地线的布局,以及进行仿真和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值