|
encounter 常用的ECO 优化时序
作者:贾柱良
在encounter 工具自动布局布线之后,偶尔会回出现几条或者几十条critical Path 让工具自动去优化,是优化不了的,这时需要人工去优化,下面有几条经验是个人在做项目时总结出来的,
1.首先要做setup timing analysis,仔细查看reportTiming ,在时序报告中仔细的分析每一个instance的delay时间是不是特别的大,(如从timing library 查表是不是在查表之外,或者在查表值靠近极端.)出现这样的情况,有可能是选用了一个较少的驱动能力的instance带的负载比较大,导致该单元的delay时间过大(如一个bufx1m 的delay 正常为0.1 ~ 0.8ns 但是实质的时间2n或者更大.造成这样的原因是可能是该bufx1m的区域没有位置,所以encounter无法更换驱动能力更大的单元,这时候需要手工挪出一些单元藤出位置,然后使用ecoChangCell -inst XXX -upsize ,修改后使用,做一次timingAnalysis 就会看出该instance的delay明显会减少.
2.在时序分析过程中,经常会遇见buffer tree结构的拓扑逻辑结构,假设有这样的A--> B A-->C A-->D A-->E A-->F A-->G 结构的buffer树结构,inst A 的输出pin(y) 通过net1连接到输出inst ( C D E F G )的输入pin(a),布线之后发现inst A 的输出Y的负载太大,导致max_transition违反,这类的violation是需要优化的,比如可以用树的结构,(B C D)用一个buf A1 驱动 , (E F G)用buf A2 驱动在encouter中用命令 操作如下:
ecoAddRepeater -net net1 -term instA/a instB/a instC/a -cell buf6x -inst xxx/instA1 -loc 100 100
ecoAddRepeater -net net1 -term instE/a instF/a instG/a -cell buf6x -inst xxx/instA2 -loc 120 120
3.如何在encounter快速查找XX/instA且快速定位可以使用下面命令:
selectInst XX/instA (选中一个inst ,一定要确保只选中一个否则很难放大选择)
zoomSelected (放大选中的inst ,也就是encounter的图形界面清楚看见该单元)