底层规划
对于 ASIC 的 RTL 综合,底层规划技术在上世纪 90 年代早期出现,稍晚于综合技术本身的问世。底层规划工具允许设计师在器件上定义物理区域,通过手工或者使用自动交互技术来对这些区域布局,并将设计的不同部分分配到这些区域。
底层规划涉及到逐个模块地综合和优化设计,然后在最后将所有东西 “ 缝合 ” 在一起 ( 早期底层规划工具使用的综合算法都是基于连接线负载模型 ) 。这意味着底层规划工具不能按每个单元优化逻辑,只能影响逻辑模块的布局。而且,在定义上,底层规划工具不会全局性地考虑布线资源,在设计完全布线完成之前,它不可能准确分析所有的时序路径。这会导致在前端和后端工具之间的大量耗时的设计反复。尽管这种方法可以提高 ASIC 设计的时序性能和降低功耗,但它需要对设计的复杂分析和很高的专业技术水准。
图 1 : FPGA 的主流架构。
在早期,采用 ASIC 底层规划有下面几个原因:作为一种获得时许收敛的方法解决有限容量的问题,并支持基于逐个模块的递增变化。最近,底层规划不再被认为是一种其本身能获得时序收敛的方法;底层规划依然是一种有用的方法,但只是在与其它方法 ( 例如物理优化 ) 结合的时候才有用,使用综合后门级网表的底层规划依然需要非常多的专门技术。
对于 FPGA 来说,直到上世纪 90 年代晚期,底层规划技术还没有成为主流应用。平均而言,在一个 FPGA 设计中,关键路径一般会经过 3 个区域。由于 FPGA 一般用到的设计方法,如果使用综合后 (“ 门级 ”) 网表来执行底层规划,即使对 RTL 的相对较小的改变都可能导致先前所做的底层规划工作付之东流。解决这个问题的方法是在 RTL 级进行底层规划。然而,为了更有用,这必须和某种形式的物理优化相结合,源于 ASIC 的物理综合算法并不适合于 FPGA 的常规架构以及预定义的布线资源。
布局优化
随着底层规划在 ASIC 领域的作用逐渐弱化,在上世纪 90 年代中期, IPO 技术对其进行了强化 / 或者替代。这再次地涉及到时序分析和估计是基于连接线负载模型的综合。
在这种情况下,所产生的网表被传递到下游的布局布线引擎。在布局布线和寄生提取之后,实际的延时被背注到综合引擎。这些新值触发器在综合引擎中的递增优化,例如逻辑重构和复制。其结果是得到一个被部分修改的新网表。然后,这个网表被递交到递增布局布线引擎,产生一个改进的设计拓扑。
基于 IPO 流程所得到的最后结果比那些采用底层规划方法获得的通常更好。然而,这种方法同样可能需要在前端和后端工具之间进行很多次设计反复。而且基于 IPO 方法的一个重要的问题是对布局布线的修改可能导致新的关键路径,这个路径在前一次反复中是看不到的,即修正一个问题可能会激起其它的问题,这可能导致收敛的问题。
对于 FPGA 设计,基于 IPO 的设计流程大约在 2003 年开始受到主流关注。然而,尽管这样的流程已经可用,但那时这些流程并没有以一种有意义的方式得到采用,因为单个地优化时序路径的 IPO 技术通常导致其它路径时序的劣化和时序收敛不完全。设计师需要可使他们在不牺牲之前设计版本获得的成果的基础上对设计进行改变的可靠结果。但是基于 IPO 的方法并不能在多次设计反复之上产生稳定的结果,因为在一次反复中优化关键路径会在下一次反复中产生新的关键路径。类似地,增加约束以改进一个区域的时序可能使其它的区域的时序恶化。
具有物理意识的综合
&nbs
p; 当前先进的 ASIC 综合技术是具有物理意识的综合,这种综合技术在大约 2000 年开始受到主流关注。不考虑实际的技术 ( 有几种不同的算法 ) ,具有物理意识的综合的基本概念是在一次性完成的过程中结合布局和综合。
这在 ASIC 领域中的实践效果很好,因为了解布局的综合引擎能根据已布局的单元的周边和 Steiner 以及 Manhattan 布线估计进行时序的预估。这种综合方法在 ASIC 中效果很好的原因是连接线有序地布置。这意味着与最后的布局和布线设计相关的延时与综合引擎所估计的结果具有非常好的相关性。
从 2002 年到 2003 年期间开始,很多的 EDA 供应商开始考虑将从 ASIC 中得到的具有物理意识的综合技术应用到 FPGA 设计中,但是他们并没有进一步将这种思路深入下去,而 Synplicity 公司新的基于图形的综合方法是一个例外,现在没有供应商能提供具有布局意识的 RTL 综合工具用于 FPGA 设计。问题是,与 ASIC 中的连线 “ 按序构建 ” 不同的是, FPGA 具有固定数量的预先确定的布线资源,并不是所有的布线都设置成一样 ( 某些连线短且快,某些长而快,某些短而慢,某些长而慢 ) 。
对于实际的情况而言,基于 ASIC 的具有物理意识的综合可以根据形成设计的已布局单元的附近来进行布线和时序估计。而对于 FPGA 来说,将两个逻辑功能放在相邻的区域并不一定能实现它们之间的快速连接。 - 取决于可用的布线资源,将相连接的逻辑功能布局位置更远可能反而能获得更好的布线和时序结果,尽管这有一点违背常理。这就是为什么从 ASIC 设计中得来的具有物理意识的综合技术用于 FPGA 架构时并不能得到最佳结果的原因。同样,使用这些技术的设计流程需要大量耗时的前端 ( 综合 ) 与后端 ( 布局与布线 ) 引擎之间的设计反复,以获得相关性和时序收敛。
与 FPGA 架构相关的一些考量
在详细介绍基于图形的物理综合概念之前,先了解设计任务的复杂性很重要。正如前面谈到的, FPGA 具有固定的连接资源,所有连线已经构建好,但并不是所有的路径都是一样的 ( 有短的、中等的和长的连线,而每个连线都可能具有快、中等或者慢的特性 ) 。
图 2 :比较传统和基于图形的布局。