欢迎访问ic37.com |
会员登录 免费注册
发布采购

数百万门芯片设计的物理原型设计方法

日期:2007-4-29标签: (来源:互联网)
cadence design systems,inc wei-jin daicadence design systems,inc michel courtoy
摘要:本文主要介绍了一种数百万门soc设计实现的方法。这种新的设计方法基于在后端设计过程的前期先创建物理原型。物理原型的生成与传统的后端设计方法不同,但物理原型与最终的设计具有很大的相关性,它可以成为许多设计实现方法优化的"桥梁",大大缩短了迭代次数。物理原型层次化的设计方法也使模块划分更为优化。物理原型设计方法还改变了前端和后端设计工程师的交接(hand-of0模型。通过物理原型可以很快地验证网表,物理信息在设计过程的早期就贯穿到整个设计过程中,从而大大减少了前端和后端设计的迭代次数。

介绍在数百万门的深亚微米芯片设计实现中出现了许多新一代的设计工具,它们可以解决物理实现中设计封闭性的问题。这些工具可以在深亚微米更小几何尺寸的设计中考虑互连效应的影响。但随着芯片容量的增长,版图连线的几何尺寸也在不断变小,这样的变化将逐渐超出大多数设计工具的能力。在物理设计中综合考虑工艺技术和集成度的因素,我们需要采用层次化的设计方法。现在逻辑设计中已经逐渐广泛采用了层次化的设计方法,但在物理设计中占主要地位的还是平面设计方法。阻碍物理设计中广泛使用层次化设计方法的主要因素是易用性,特别是设计中需要足够的物理信息来把一个完整的设计划分为层次化的模块,而且需要同时创建时序约束信息。本文描述了如何在进行全芯片物理原型创建时把一个完整的物理设计划分为若干层次化模块的方法。物理原型的创建使实际的物理划分成为可能,每个创建的层次化模块包括网表信息、管脚分配信息和时序约束等物理信息,相应的结果是在整个芯片和每一个层次化模块中都能够实现时序封闭性。

扩展性问题一种有效而可靠的层次化设计方法的基础是在设计循环的早期获得足够的芯片物理信息。在传统的设计流程中,前端的设计工程师创建了rtl(晶体管传输级)网表并交给后端的设计工程师,这样的网表中不含有任何物理信息,因此导致在前端和后端设计之间需要进行多次迭代,重复设计。 在深亚微米(dsm)设计中芯片的性能在很大程度上取决于互连线约束,前端和后端设计工程师之间的重复迭代将会大大增加。如果在前端设计中没有互连线的相关信息数据,将导致rtl网表不能满足后端设计的时序需要。在某些极端的情况下,在逻辑设计(前端设计)工程师和物理设计(后端设计)工程师之间的迭代将永远不会收敛。这个问题已经被广泛讨论并被认为是深亚微米(dsm)设计中的"设计封闭性"问题。它在0.18微米及以下的工艺中变得非常重要。在深亚微米(dsm)设计中的几何尺寸越小,设计工程师就可以在同样的芯片面积上放人更多的逻辑单元。在最复杂的网络和多媒体应用中顶尖的设计组可以在一个单独的芯片上放人超过一千万门的设计。在当前竞争激烈的市场上要开发这样复杂的芯片需要采用设计重用的方法,设计工程师需要利用ip模块(通常被称为宏,在以前的设计中开发并经过验证的专用模块)并在新的芯片设计中重用这些ip模块。这样的主要优势在于大大缩短了设计时间,并降低了设计成本。随着设计工艺水平的不断提高,另外一个对设计工程师和设计工具来说日益严重的问题是集成度的问题。它需要新的设计方法学来处理新设计的大容量,并解决大容量soc芯片设计中最基础的宏ip模块重用的问题。当前电子设计自动化(eda)产业关心的重点是工艺问题。例如,在过去几年中各家eda厂商引入了许多物理综合和参数提取领域的新工艺和新技术,解决了许多深亚微米的物理效应问题。而现在业界缺乏的是能够同时处理工艺和模块化设计以扩大设计容量的完整解决方案,这两方面缺一不可。

物理原型本文描述的设计方法学的主要基础是创建物理原型,物理原型的创建是后端设计阶段的第一步。通过创建全芯片的物理原型,设计小组可以立即验证网表的物理设计可行性。在传统的设计方法学中,工程师为了找出芯片设计是否满足时序和其它的一些约束,不得不需要花费很多时间进行后端的设计迭代。对传统设计方法学的设计迭代来说,一个大容量芯片的一次迭代就可能需要若干天,因为还需要经过布图规划、布局布线和验证等很多步骤。 而物理原型设计方法把物理设计可行性验证的时间缩短到几个小时。这使芯片设计工程师可以在一天内多次分析芯片的版图设计,不再需要再花费许多时间来进行后端设计迭代。设计工程师现在可以评估芯片的若干实现方法,并根据反馈信息得到最好的折中设计。原型的创建还可以帮助工程师为芯片的所有部分创建实际的时序约束信息。创建时序约束得到的物理信息能够真正满足实际的时序约束,从而可以解决物理设计封闭性问题,不再需要进 行迭代。物理原型的创建还可以提供许多核心信息如芯片尺寸和纵横比等。这种设计方法的第一步是执行网表的快速逻辑综合,我们假设网表在功能上是完备的但时序不够精确,在这个阶段可以使用简单布线负载模型(wlm)。

这个初始的快速综合阶段生成的门级网表加上时序约束就构成了物理原型阶段的输入文件。物理原型在芯片布图规划时开始创建,这包括基本布图操作如输入输出布局、宏布局和电源拓扑规划等。随着设计重用和大量宏单元的使用,我们需要交互式和自动化布图规划的结合使用。对主要设计单元的手工布图可以使设计工程师对整个芯片的结构具有全局的把握,随后进行自动化布图规划则可以对其它单元得到最佳的结果。在第一次进行布图规划的时候,网表文件、物理库、对应的综合库(上b)、顶层约束和工艺文件被创建并导人,这些数据在后面的过程中会被自动加载。殊的宏模块和输入输出(i/o)布局也被创建并保存到一个命令文件中,并在随后的迭代过程中被读人。另外,大多数的设计需要某些单元放置的位置靠近输入输出端口,所以还创建了受输入输出端口约束的一些特殊模块布图位置。此时还创建了主要模块的布局规划并用?quot;指导"布局引擎如何放置这些模块单元,关于电源/地的布局拓扑结构也在此时被创建。

随后剩余的标准单元用时序驱动的算法进行布局。布局包括了预布线(试布线)以保证减少主要的拥塞问题。然后对设计进行参数提取和时序分析。

设计划分对于大多数设计来说,有效的设计流程需要的是层次化的设计方法学。采用平面的设计实现方法将受到设计工具的设计容量局限并使运行时间大大增加。层次化的设计方法允许多个设计组并行开发芯片的独立部分,可以大大缩短整个芯片的开发周期,增强市场竞争力。 层次化的设计方法已经在前端的逻辑设计中广泛采用,但设计工程师却迟迟没有把层次化设计方法应用到后端的物理设计中,这都是因为对各个模块产生精确的时序估计和管脚布局十分困难。物理原型是在设计中创建物理设计层次化模块的起点,在导人过程中,所有的模块被拉平以创建物理设计原型。标准的单元被放置到顶层平面,然后对设计进行布线、参数提取和时序分析。这时开始实现模块划分并创建层次化的物理设计结构。

每一个划分的子模块(包括顶层模块)的数据目录被创建,每个目录包括网表、布图规划文件、管脚分配和时序约束。另外,顶层模块的子目录包括了每个子模块的模块划分布局文件。 对大容量的设计来说,要达到优化的模块大小常常需要两级划分。这些子模块的大小受设计工具的设计容量限制,如物理综合在十万门左右能够达到最佳效果。这样,一个五百万门的设计可以被划分为10个五十万门的设计模块,然后这些模块再被划分为大约十万门的子模块。为了进行第二级的划分,在第一级划分中生成的约束需要与每个子模块的多周期错误路径约束结合到一起生成新的约束。布局布线、参数提取、时序分析和模块划分将生成第二级子模块划分必需的时序估计,并送人物理综合工具中。

时序封闭性完成时序封闭性的关键是物理原型和芯片的最终实现得到的时序结果要具有很接近的相关性。这个相关性将保证基于物理原型的所有设计都将正确应用到最终的物理设计实现中去,实现了时序封闭性而不需多次迭代。为了验证这种相关性,设计工程师需要对比物理设计原型生成的时序数据和最终芯片物理实现生成的时序数据。这个对比是基于比较原型设计和最终芯片设计的参数提取和时序分析生成的标准延迟格式(sdf)文件来实现的。这种分析的相关性结果需要达到90%以上。

图4显示了物理原型和最终芯片设计(580000个单元、620000条连线、五层布线芯片)的标准延迟格式(sdf)相关性。图中的纵坐标轴表示连线的数目,横坐标轴表示了物理设计原型和最终芯片设计生成sdf值不同的百分比。完成时序封闭性的最后一个步骤是执行in place 缓冲器和重复单元来得到最优的时序结果。ipo需要在顶层模块进行以保证在子模块边缘的时序封闭性。

性能数据采用物理原型方法主要的优点是每一次迭代的反馈速度。在传统的设计流程中,物理设计的可行性分析需要在布局布线完成后通过最终验证得到,整个反馈过程需要若干天。而采用原型设计工具只需要几个小时就可以对大容量的芯片物理设计进行验证。物理原型阶段包括布局、预布线、rc参数提取、延迟计算、静态时序分析和时序优化等。

物理原型创建过程中最消耗时间的步骤是布局和时序分析阶段。高性能的工具能够在一台标准的工作站上创建两百万单元(大约一千万门)或更大容量的物理原型,如表1所示。

handoff模型物理原型的创建通常应该由前端的逻辑设计工程师来承担,只要原型设计工具能够提供很好的易用性,前端设计工程师就可以承担布图规划和布局等传统设计方法中由后端物理设计工程师完成的设计任务。在这样的前提下,设计工程师小组就可以在前端设计工程师和后端设计工程师之间采用不同的交接handoff模型。传统的handoff模型仅仅需要网表和时序约束文件。在深亚微米(dsm)设计中由于网表不含有任何物理设计信息,这样的handoff模型只会在前端和后端设计工程师之间形成多次迭代。由于后端的迭代耗费时间很长,而且后端设计资源(设计工具和设计工程师)十分有限,设计的总成本会大大增加。如图5所示,在深亚微米(dsm)设计中广泛采用了两种新的模型。在左边显示的"设计流程1"中,布图规划是由前端设计工程师利用物理原型环境生成的。布图规划信息验证了物理设计的网表并把"结构"设计信息从前端设计工程师传递到后端设计工程师。布图规划为后端设计工程师进行物理设计实现提供了一个很好的起始点。这可以大大减少实现时序封闭性所需的迭代次数。

图5中第二种handoff模型是把布局任务也放到前端设计中,这在前端和后端设计工程师之间增加了物理设计可行性的沟通,从而在后端实现更快的时序封闭性。

用户数据-核心处理器我们提供的测试数据是一个处理器核心的设计。下面是这个设计的主要统计数据:●设计大小:十万个可布局单元,26个宏,十九万线网表●读自gdsii的物理库

●由apollo.tf文件创建的工艺文件

●从以下文件读出的时序信息:synopsys.lib芯片级时序约束(primetime)

●从层次化verilog读入网表

●宏布局(布图规划)、管脚布局和从avantapollo导人的pg strap数据

物理实现的核心步骤是:●与apollo的接口:从apollo导人电源布线和布图数据●从apollo得到单元footprint信息并通过script转换到first encounter格式●时序驱动的布局●预布线● rc参数提取

●时序分析●ipo:增加缓冲器、扇出优化、跳变固定●时钟树综合:最终的时钟树布线是在apollo中完成,为了保证apollo能够识别由fe创建的时钟树,由fe生成专门文件并传送到apollo。●层次化的设计流程●层次化的时钟树综合●first encounter的执行时间也非常有竞争力,如表2所示。

first encounter和现有的其它后端设计流程具有如下的时序相关性:●为了用star-rcxt调整rc数据,它们使用了来自apollo相同的布局●比较由sign-off延迟计算生成的sdf和由fe生成的sdf●支持sdc并满足fe时序分析和primetime关键路径的要求在下面的步骤中对时序延迟、sdc覆盖和静态时序分析都进行了分析。分析对fe时序分析和来自star-rcxt的primetime+dspf进行丁比较:1) 检查一些关键时序路径:与primctime结果的比较表明了良好的相关性.

2)选择同样的关键路径

3)每个单元的延迟有50皮秒的差别

4)在ipo之后,在最坏情况下的时序差别测量为-0.8 集成电路