我们一起学习适用于高宏数、难时序设计的快速平面布局方法。微捷码Talus可基于逻辑组产生所有宏和标准单元的快速布局。我们可通过利用这种布局信息来突出并划分适合的“宏组”,对于高宏数设计来说,这种方法要较一般的分组方法更快速更合理。对于时序关键设计,我们可使用积极的“宏布局”方法来显示关键逻辑组,然后再通过增量(incremental)的“宏布局”来调整布局形状(无宏或其它逻辑组阻塞的前提下将关键逻辑聚集在一起);这种方法可为我们常规设计带好更好时序(包括WNS/TNS)和更好布线结果(总线长)。
1.介绍
一般来说,逻辑块级设计平面布局的主要工作就是宏布局。传统上,我们初始宏布局可以之前平面布局模式为基础;布局时我们应考虑到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”粗布局结果。
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。