目录
创建placement及routing的blockages/halo
floorplan基础
什么是floorplan
floorplan是布图规划,规划包括定义芯片的大小,定义芯片内各种模块、hard macros(硬核。比如RAM,ROM及其他IP模块等)、IO等的大小和位置,有时候还需要提前定义一些placement blockages,groups/regions等等,是后端设计的第一步,也是后续所有P&R工作的基础。
floorplan与placement的区别是:floorplan规划的是抽象的module,需要摆放的东西较少,这些大块的东西摆好之后实际相当于给芯片划好片了,floorplan完成之后才可以进行placement,placement放的是具体的standard cells(标准逻辑单元)以及blocks,需要摆放的单元数目巨大,一般交给工具自动做。
为什么要floorplan
- floorpan的合理性直接关系到芯片的时序收敛、布线通畅、电源稳定及良品率。
- 一个好的floorplan和一个差的floorplan在时序上差别甚大,floorplan的目的是在保证布线畅通的同时尽量缩短走线的长度(缩小互连线的延时),需要设计者对逻辑设计及其功能有一定了解,如各个模块间的连接关系、数据通路结构等
- floorplan做的好,能够明显减小迭代次数,加快时序的signoff,以及PV方面的DRC,LVS的signoff工作。
floorplan所需文件
- netlist
- lef文件:包括tech lef&cell lef
- mmmc(多模式多端角文件):sdc&lib&qrc
floorplan的内容
- 创建芯片面积。
- 放置hard macros。
- 分配端口区域。
- 添加特殊物理单元。
- 创建placement及routing的blockages/halo。
- 创建groups和regions(可选)。
- PGÿ