摘 要:本文详细介绍了利用Synopsys公司的布局布线工具Astro对ePro系统进行版图设计的流程和注意事项。
关键词:标准单元;时序驱动;布局;布线
引言: ePro是基于Gaisler Research免费的Leon系统改造而成的系统。去掉原Leon系统AHB总线上的以太网模块、PCI模块、浮点运算单元(FPU)和协处理器,加上USB模块,便构成了ePro系统,其核心32位的微处理器采用可升级的微处理器体系结构SPARC V8。此系统除了USB模块由Verilog编写,由VHDL打包调用外,其他模块全用VHDL来实现,所有模块都已经过综合。ePro系统结构如图1所示。Astro是Synopsys公司用来做百万门以上设计的布局布线工具,适合于0.18m及其以下的工艺。在采用Modesim对ePro系统进行功能仿真,并用Synopsys的DC(Design Compiler)进行综合,用PT(Prime Time)进行验证分析后,送给Astro进行布局布线的是ePro系统的网表。系统的综合结果符合约束时序要求,优化后所有单元的面积是6641030.5m2,共有56万门、125个实例化单元和220个端口。
对ePro 系统进行布局布线
Astro读入DC综合的网表和时序约束,对网表级的设计进行布局布线,转变成由标准单元、宏单元和压焊盘(Pad)组成的版图设计。其中标准单元库是由一些基本的逻辑门电路组成的库,每个单元都有相同的版图高度,并且具有多种不同的视图;宏单元包括RAM、ROM和专门的IP模块;Pad包括输入、输出和电源(VDD和VSS)Pad。利用Astro布局布线的基本流程如图2所示。
设计设置
这一步Astro完成对芯片做布局规划之前的工作。首先创建一个设计库,以存储后续操作中的所有逻辑和物理数据,包括设计的网表、每一步操作后存储的芯片单元、标准单元库、参考库以及工艺文件等。然后把此设计库和参考库相关联起来,读入网表,并把层次化网表展开以便进行芯片的布局布线。接下来打开设计库创建一个初始单元,而后把读入的网表捆绑到该单元中。
ePro系统创建的库为ePro_usb,采用TSMC 0.18m的工艺文件,所用的参考库由Astro运行编写的脚本文件产生,按照自顶向下的顺序读入文件,只要读入最高层模块的ePro_usb,其他模块通过自动调用的方式读入。
布局规划
Astro在这步完成的工作包括:定义核面积,放置电源Pad、I/O Pad和宏单元,修改宏单元的方向并定义宏单元布线块以防止拥挤,放置电源栅格(P/G grid)。这是Astro布局布线中最关键的一步,其效果的好坏直接关系到布局布线能否成功。
首先需要导出TSMC库中的Pad文件,并在其中加上电源(VDD和VSS)Pad。为了更好地利用电源,既不能把电源放置得相隔太远而影响其性能,也不能放置太多而使芯片面积增大。本文采用每隔8个Pad放置一组电源Pad的方式,同时根据各个模块之间的关系重新排列这些Pad,最后把排列好Pad的文件导入Astro。接下来,根据宏单元(主要是RAM和微处理器内部的Memory单元,共18块)与排列好的Pad之间的连接关系,在片内放上宏单元。通常将同类型的宏单元相临放置在一排并靠近Pad,以便于防止布线时宏单元的端口线拥挤。
时序设置
Astro在这一步利用TLU/TLU+模式检查设计的时序是否满足约束。Astro是一种时序驱动的布局布线工具,采用统一的时序库( TLF)作为整个设计流程的基础。可以利用静态时序分析工具得出关键路径的时序约束条件,并将它应用在Astro中, 使得整个设计流程中的每一步均受时序驱动,从而保证芯片的性能。TLU/TLU+由TLF文件得来,是由芯片生产厂商提供的,其中包括线宽、线电阻和电容等一些基本参数,TLU+还包括其他的一些参数,例如金属填充物、等边绝缘体等。在计算单元和网表延时的时候,Astro提供了三种算法:Elmore、AWE和Arnoldi。其中布线之前用Elmore算法,它根据虚拟布线计算寄生参数;其它两种算法在布线优化后使用。在这一步由于还没有做时钟树综合,所以使用理想的时钟信号。芯片设计要在时序约束、面积、电源等各项因素之间进行折中。因为时序非常重要,贯穿于整个流程,并且决定芯片能否工作,所以应优先考虑时序要求。
ePro系统的时钟频率是50MHz,采用TLU+模式计算寄生参数,加载约束文件后各种报告均符合约束要求。
布局
布局优化流程如图3所示。首先要重新建立一个新的网表,执行WLM(Wire Load Model)优化(寄生参数RC=0)和逻辑映射,通过减少门和缓冲器的数目而减小芯片面积;把高扇出(HFN)的缓冲器打散,并根据虚拟布线的参数对其进行快速综合,验证它是否满足要求(逻辑网表面积最小、时序可以接受),在此设定的规则违反数不大于5%。对标准单元进行布局时,首先要创建标准单元的电源导轨(Rail),最终把它们和电源Pad相连;而后放置标准单元,把标准单元的VDD和VSS连接到Rail上;然后对HFN进行重新综合和优化;最后检查布局是否拥挤,如果拥挤则在局部区域尽可能地把单元分散开,甚至为此牺牲一定的时序性能;之后进行布局后优化和CTS后优化,用全局布线提供片内时序的准确性,并通过修改最大电阻电容来优化系统。
时钟树综合
理想的时钟能够同时到达各个同步单元,但是实际上这是不可能的,会产生时钟扭曲。产生时钟扭曲的原因有:时钟源到各个时钟端点的路径长度不同,各个端点负载不同,在时钟网络中插入的缓冲器不同等。时钟扭曲过大会引起同步电路功能混乱,一般要求它不能超过时钟周期的10%。在芯片设计的后端设计中,解决这个问题的方法是时钟树综合,它是通过插入缓冲器来实现的。在Astro布局布线流程中,时钟树综合是由工具自动完成的。
布线
Astro能够优先考虑最大延迟路径的布线,以减少最大延迟路径布线带来的许多问题,同时对非最大延迟路径的时序没有明显影响。为了满足时钟信号的时序约束,应该首先对时钟信号进行布线,而后进行全局布线及其优化,为了保证每一单元能够连线,需要完成跟踪任务,而后检查设计规则,清除违反DRC的布线;再进行重新布线,最后进行一系列的优化操作。
DFM
当布线完成,并且满足时序要求后,生产的芯片很可能还是不工作,还需要做一些工艺可制造性的问题,包括修补天线效应(Antenna Rules)、金属腐蚀(Metal Erosion)、金属层脱落(Metal Liftoff)等问题。 这一步还要输出层次结构的网表、GDS数据、SPEF(Standard Parasitic Extraction Format)、SDF(Synopsys Delay File)等文件。
结语
Astro在5×5mm2的面积上完成了6层金属工艺下ePro系统的布局布线工作,经过验证,满足时序和DRC要求。但流片之前还需要很多工作要做,如在Astro输出的文件中,对于层次结构的网表,可以使用formality工具来对比验证设计的RTL级设计和经过DC综合及Astro布局布线后二者逻辑上是否有了变化。GDS文件和等级结构网表用于详细的DRC和LVS验证,而层次结构网表、SDF、SPEF文件用于DC综合和PT验证时序。所有这些操作都可以形成脚本文件,直接运行脚本文件即可重复以上所有的工作,其中DC、PT和Astro部分都已经有了完整的脚本文件。
文章评论(0条评论)
登录后参与讨论