1.目标
1)绕线的可布通性
2)在绕线可布通下,向时序驱动的placement靠近
3)当时序和拥塞收敛后,添加电源布线。
floorplan和placement对整个设计的性能有主要的影响,innovus可以允许用户在优化前分析各种placement和floorplan。
setPlaceMode -place_design_floorplan_mode true
设计初期的迭代关键是可布通性实现时序收敛,在实现时序收敛前终点解决拥塞。一些帮助布线工具,如module guides,block placement,block halos,obstructions,partial placement blockages(density screens)。
2.在floorplaning和placement中使用以下guideline来避免拥塞:
1)选择合适的floorplan类型
根据数据流和高层次的设计描述来确定合适的floorplan类型。评估不同类型的floorplan,将macro放置外围,island,或者外围加岛,为了实现较好的CTS、optimization和DFT结果,macro的深度在1~2层。
2)preplace的I/Os和macros
硬宏模块的连接和摆放要基于硬宏模块到目标连接的最小距离。高速和模拟的core要基于屏蔽噪声和power domain的特殊要求。
3)检查I/O的放置和区分I/Oanchors和相关的逻辑。
留出I/O和外围macros间的空间为关键逻辑JTAG,PCI或power管理逻辑,用specifyJtag和placeJtag命令放置blocks。在opt和CTS之前,在blocks周围用block halos,placement obstructions 或fences,在placement后删除halos和obstructions,可以为opt,CTS,DRV,或SI修复提供放置buffer的空间。soft/partial blockage的放置可以有效的控制blocks之间cell的摆放。
4)谨慎使用module guide
放置module guides,regions,或fences当要求更大的控制,在floorplan过程中不要放置过多的module constraints,因为会耗时且对placement造成很大限制,module guide 用于floorplan的细化和层次化设计。
检查与datapath相关的module guide和控制与硬宏模块相关的逻辑。在较差的比率、高扇出、和大量的移动下,datapath logic可能会成为拥塞问题的源头,考虑调整这些module guides的位置和降低density来减少拥塞。
检查与memories相关的module guides的放置,由于包含存储器这些modules往往有更高的密度。
5)扫描链重组
在解决congestion时,确保扫描链已经重组,消除可能出现的假错。当用户指定scan顺序和设置了重要的scan chain的信息,place_design会执行scan tracing 和扫描链重组,如果没有scan chain的信息,不会进行扫描链重组。
3.Validating the Floorplan
在floorplan阶段发生拥塞和布线不通到opt也不会变好,一个好的Floorplan,可以没有问题进入place阶段,创建一个可布通的placement.
在floorplan完成后,确认以下几个方面:
电源网络需要定义,globalNetConnect;
需要优化的线要定义为signal(regular)nets,optimization会把special类型的net视为dont_touch;
+special标记的Pins不能被优化;
followpin布线要在正确的方向下对齐rows/cells.
在标准单元和blocks的gap需要用soft/hard blockages覆盖,placement阶段不会再blockage区域放置cell,在optimization和CTS阶段可以。
所有的blocks都fixed
add_tracks来更新tracks,track需要匹配IO pin和placement grid(rows)