图5
粉色单元是门控单元;黄色单元是时钟树缓冲区;线是时钟树飞线。
3个图片为:
左:第1和第3种方法的fix cell阶段。
中:第3种方法中的fix clock阶段。
右:第2种方法中的fix clock阶段。
图5显示的是:无fix cell阶段克隆,时钟门控单元少了许多,但时钟缓冲区却多了许多。原因之一是:CTS将门控单元后时钟树往上移动,因此对克隆的需求也减更少发。
进一步研究我们又有了其它发现,这可能是对‘为什么第3种方法门控单元更少’的另一种解释。见图6:
图6
图6是2张fix cell volCANo中门控单元分布连接图。图中所显示的只有触发器(flops),其它模式单元则是隐藏的。左图无克隆,右图有克隆。左图中,所有连接资源都来自时钟树根;右图中,功能块有明显克隆过的门控单元树结构。
图6显示了一个有趣的地方:如没有fix cell阶段门控克隆,触发器的布局会更为紧密些。这已是对许多案例观察的结果。一种可能解释
www.55dianzi.com
是:由相同原始门控单元所控制的触发器在布线期间有直接连接,因此相比那些由于门控单元不同而中断连接的克隆试验,它们的布局更为紧密。
图7是 fix cLOCk volCANo中时钟门控单元分布图:
图7
与之前案例一样,若无fix cell阶段克隆,所需时钟树元素将更少。在这个案例中,出于触发器布局更紧密的原因总负载更低,因此所需的门控单元/时钟树元素更少。
在那些测试案例中,第2种方法的门控单元数量要比第1和第3种方法少了30~50%。尽管第2种方法需要在门控单元后创建时钟树,但门控单元面积的降低是创建时钟树这种额外面积所无法比拟的,因此最后总面积的赢家是第2种方法。
从时序角度来看,如果触发器间连接不太复杂,那么在第2种方法中触发器布局更紧密的设置将有助于降低路径上负载,进而在统计时获得更好时序,这是实际设计中最常见情况。
通过比较这些方法来找到一个最好的 时钟门控克隆 方式的想法源自于一个真实案例。在这个案例中,时钟的时序非常棘手,带有高度复杂的组合逻辑。上百个最高失效端点都是门控单元使能引脚,导致了“门控克隆需针对这个功能块进行优化”的想法。这个功能块的最佳结果是只fix cell阶段克隆、无fix clock阶段克隆。后布线优化图可获得超过50ps的更好结果。原因之一是fix cell阶段克隆将会在这个阶段更早期就暴露出使能引脚相关违规,那么Talus就可更早地对它进行优化。
第IV章:多轮Fix Cell
布局是一个融合过程。运行的布局轮次越多,可获得融合度就越好,但这是以时间和磁盘空间为代价的。设计师不仅可尝试多运行几轮以获得最佳结果,同时还可拥有有关“如何运行每轮fix Cell”的不同选项。本章将探讨3种每轮fix cell运行的方式并比较时序和拥塞。选项有:
1. 使用fix cell阶段中‘-iteration #’选项
2. 直接在之前fix cell数据库上重新运行fix cell
3. 采用之前fix cell网表,基于修复时间、修复计划和修复单元开始重新运行。
第1种方法是最直接方法,易于运行。第2种方法需要明确大部分fix cell快照以便能在未来运行中跳过细节步骤。第3种方法需花更多时间和精力;但如果fix cell期间网表变化很大,那么第3种方法效果最好。
我们选择了几个功能块来测试这些方法,表2是几个功能块的数据。从时序角度来看,结果并不倾向于中意其中任何一种方法;从拥塞角度来看,第2种方法在绝大部分案例中胜出。
表2
‘拥塞’项目系指fix cell 数据库中‘report congestion $m’的总数。第2种方法可更好处理拥塞热点。请比较图8中拥塞地图,结果更一目了然:
图8
在实际项目中,设计师需要权衡考虑每轮的运行时间及可获得的改善。你尝试得轮次越多,你可获得的效果就越好,但设计进度毫无疑问会被延迟。对于容易功能块,设计师可通过单轮fix cell摸索着运行每个步骤,不需要考虑时序/拥塞问题;对于关键功能块,2~3轮的fix cell将可带来明显的拥塞和时序改善。
对于一些特殊案例,设计师可能要在全局布局后fix cell期间添加大量逻辑。而这些逻辑可能有糟糕的拥塞问题,第2轮的增量全局布局并不能很好地处理这个问题。在这种情况下,第3种方法是3种方法中唯一能起作用的方法。
如果采用第2种方法,设计师需要考虑‘需保留什么快照’‘需清除什么快照’;而且一些步骤可能只运行一次,在其它轮的fix cell中将不再运行。
当资源成本在可接受范围内时,设计师应尝试对设计进行多轮的fix cell,它可与新平面布局试验同步进行;与调整平面布局对比,它所消耗的人力几乎可以忽略不计。在这些方法中,从拥塞角度来看,我们建议你直接在之前数据库上运行fix cell;若在特殊案例中,设计师应尝试第3种方法。
第V章:采用 线路延时 解决多角点下时序冲突
在许多设计中,设计师常在一些时序路径上设置大的建立容限和保持容限以避免意料之外情况下时序失效,但它可能会给 时序收敛 带来麻烦,特别是在深亚微米工艺中更是如此。采用单元尺寸调整、缓冲区插入/去除等常规方法有时不能同时清理最佳情况(bc)角点中保持时序和最差情况(wc)角点中建立时序。这种冲突会反复发生,使得时序无法融合。
我们常规的时序修复方法主要针对的是标准单元。而在深亚微米工艺中,不同时序角点的标准单元延时有很大差异。表3显示了测试电路的wc和bc角点中标准单元和金属线路的延时差异比较:
表3
在一个真实案例中,路径有这样需求:
1. 在最差情况(wc)中
www.55dianzi.com ,路径延时少于2.5ns(建立)
2. 在最好情况(bc)中,路径延时多于1ns(保持)但实际延时是:
1. 最差情况(wc)中延时为2.1ns。
2. 最好情况(bc)中延时为0.8ns。因此路径满足了建立需求,但却造成了保持违规。
想象一下通过改变单元(减少尺寸、插入、交换)来修复保持违规,多数延时变化只发生在单元上。到时将发生以下情况:
1. 将保持延时从0.8ns修正为1ns,测试案例中延时提高了0.2ns。
2. 使用只针对单元(cell only)方法,如:插入缓冲区、减少尺寸。如表3所描述,它给最差情况中单元延时带来的改变是3倍,即0.2ns * 3 =0.6ns.
3. 最差情况中延时从2.1ns提高到2.7ns,造成建立违规2个角点间单元延时变化很大,因此如果设计师只盯着单元,而靠路径本身解决冲突根本不可能。
根据测试电路结果, 线路延时 在不同角点下延时差异更小,因此如果使用线路延时来修复保持违规,最差情况(wc)中延时的反弹也不会这么大。最好情况中0.2ns的线路延时增长将只会带来最差情况中0.24ns延时,因此最差情况中总延时为2.1ns + 0.24 ns = 2.34ns。这种方法可兼顾建立和保持时序两方面需求。
以下是一些有关‘如何使用线路延时优化来修复时序’的详细内容。
以保持修复为例。第一步就是要识别一组带有这类建立和保持冲突的时序路径。这类路径可通过初步时序优化或通过项目约束文件来获取;然后我们就可分析这些候选路径并选择真正目标。
第二步就是进行详细时序分析并开始时序修复,它包括:
1. 插入延时单元并手动将它们设置在版图中。
2. 决定单元和模式和尺寸,确保无转换违规。
3. 评估线路延时。如布线形状良好,那么实际延时与评估结果间差别将不会太大。
4. 采用talus在布线后分析时序结果。如还有时序违规,尝试使用有用偏斜来修复。
5. 如它们不能通过有用偏斜修复,那么回到步骤1或2开始新一轮修复工作。设计师可能需要几轮的这类修复工作才可完成时序清理。融合速度取决于线路延时评估精确性和实际布线形状。.
本文关键字:暂无联系方式综合-其它,单片机-工控设备 - 综合-其它
上一篇:手机PCB可靠性的设计方案