逻辑组高宏数、难时序设计平面布局方法
我们一起学习适用于高宏数、难时序设计的快速平面布局方法。微捷码Talus可基于逻辑组产生所有宏和标准单元的快速布局。我们可通过利用这种布局信息来突出并划分适合的“宏组”,对于高宏数设计来说,这种方法要较一般的分组方法更快速更合理。对于时序关键设计,我们可使用积极的“宏布局”方法来显示关键逻辑组,然后再通过增量(incremental)的“宏布局”来调整布局形状(无宏或其它逻辑组阻塞的前提下将关键逻辑聚集在一起);这种方法可为我们常规设计带好更好时序(包括WNS/TNS)和更好布线结果(总线长)。
本文引用地址:http://www.amcfsurvey.com/article/191367.htm1.介绍
一般来说,逻辑块级设计平面布局的主要工作就是宏布局。传统上,我们初始宏布局可以之前平面布局模式为基础;布局时我们应考虑到IO连接,需要先了解宏与IO间逻辑关系,然后再将宏设置于相关IO的旁边;我们倾向于将宏设置于边界周围;我们想要将名称模式相似的宏设置在一起;我们会先运行布局(fix_cell)功能,然后再基于关键时序路径或拥塞来调整宏布局,而且我们还可以通过显示往返宏的飞线来观察宏和STD(标准)单元的布局是否合理。
对于传统平面布局方法,我们可能要花很长时间来了解我们的设计,可能要与前端设计师进行探讨,可能要通过多次物理布局迭代来完成时序收敛。对于宏数量巨大的设计来说,这可是项非常恐怖的工作。
现在我们有了一种基于逻辑组的新平面布局方法,它可更快速有效地完成平面布局工作。这个流程共分为3个步骤:
1)同时进行宏和STD单元布局(粗布局,“run place cluster”);
2)划分逻辑组(针对宏和STD单元同时进行);
3)增量布局,调整逻辑组形状和位置。
2.粗布局(Coarse placement)
我们可将整个布局工作(fix_cell)分为2个步骤:
1)粗布局:执行设计的初始布局;
2)基于粗布局的增量优化。
步骤1)是取得好布局结果的关键点,我们的一切讨论都将围绕“粗布局”展开。
在Talus中,有两个不同“粗布局”命令——“run place cluster”和“run place global”,这两个命令可基于逻辑组(群)进行粗布局。“run place cluster”可同时完成宏和STD单元的布局,而“run place global”则会在考虑拥塞情况的前提下进行STD单元布局。就我们所知,“fix_cell”一般是使用“place global”来完成粗布局。根据我们的测试,若宏的位置相同,那么“place global”和“place cluster”布局结果也将十分接近,因此我们可基于“place cluster”结果来预测“fix_cell”粗布局结果。
评论