1.
FlexModel可以用于hierarchical partition实现流程,以减少netlist的大小和/或用于设计探索和规划的Prototying flow。使用FlexModel提取,netlist可以减少到原来的20倍,使所有Innovus应用程序的运行速度提高了20倍,同时仍然能够实现相当准确的时间、区域和拥塞分析。这种准确性有助于在几乎一次通过中“实现”最终的floorplan,而不是通过昂贵的floorplan迭代来实现收敛。
超大规模的设计带来的问题是需要超大的运行空间和很长的运行时间。
为了应对这些挑战,可以使用FlexModel来加快整个过程。在导入设计之后,FlexModel流程需要一个额外的FlexModel生成步骤。除此之外,该流程几乎与正常的分层流程相同。
2.FlexModel的结构
FlexModel可以是Verilog module或instance组。它包含macros、interface标准单元和flexfillers。flexfiller填充内部reg2reg的logic部分。它们没有timing模型,并且连接在一起,以便placer将它们紧密地放在一个group中。这有助于精确计算时序和估算面积。FlexModel网列表通常是其完整网列表实例数的十分之一。在早期设计规划中使用它来减少运行时间和内存,同时准确地建模时间和面积。即使在网络列表不完整的设计早期阶段,也可以创建FlexModel。
3.FlexModel Prototyping Flow阶段
1)创建FlexModels
识别模型-创建模型-创建timing net 延迟模型:皮秒-每微米模型(psPM)
2)调试约束和规划设计
debug constraints ,生成可用作手动调整的initial floorplan
3)分析和调整floorplan
手动调整FlexModels使时序路径最短,重新分析floorplan
4)定义partitions
基于FlexModel的摆放定义partitions,有选择性的在partition fences里调整macro的布局,在partition的边界内手动调整FlexModel区域的大小和位置,生成partition fences。
5)完成并保存partitions
Placement和early global route,提交/保存partitions,分配Pin,插入feedthrough,预算,power,bus和pipeline规划