版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Cortex-M3的MCU的布局布线分析目录TOC\o"1-3"\h\u5912基于Cortex-M3的MCU的布局布线分析 1250631.1引言 1205811.2准备文件与数据导入 2204431.1.1准备相关文件 224541.1.2MMMC分析文件的编写 2105611.1.3IO单元排布文件的编写 4174321.1.4数据导入 494031.3布局规划 5213231.3.1芯片尺寸的确定及I/O的摆放 5272361.3.2宏模块的放置 6164281.3.3特殊单元的布局 690381.4电源规划 7274961.5标准单元放置 986501.6时钟树综合及优化 11268761.7布线及优化 141.1引言本章的布局布线过程主要包括准备文件与数据导入、布局规划(floorplan)、电源规划(powerplan)、标准单元放置、时钟树综合以及布线。设计过程中用到的文件如表2-1所示。表2-1物理设计所需要的文件本设计中芯片含有4个时钟,频率分别为400KHz、1MHz、20MHz和25MHz,其中主时钟为400KHz和25MHz。在后续的设计过程中,只约束设置主时钟即可。除此之外,芯片中一共含有3个存储器和95个信号IO。综合后的功耗报告显示总功耗约为54.8mW,但由于逻辑综合时没有进行布局布线且使用的是ZeroWireLoadModel,所以此总功耗值明显偏小,故预估在后续的设计过程中使用的芯片功耗为60mW。1.2准备文件与数据导入1.1.1准备相关文件在进行布局布线之前,需要准备表2-1中的相关文件,其中在数据导入过程中必须需要的文件有设计网表、设计约束文件、物理库文件、时序库文件、I/O文件REF_Ref16525\r\h[13]。设计网表是逻辑综合之后的已经映射到工艺库的门级网表。物理库文件,即LEF文件,它包含布局布线时使用的SRAM、IO、标准单元以及通孔等的工艺几何信息以及设计规则,它是由工艺厂商提供的。设计约束文件和时序库文件是为了编写多模式多端角分析文件,即MMMC(Multi-ModeMulti-Corner)文件准备的,前者根据逻辑综合得到的结果进行修改的得到,后者由工艺厂商提供。多模式多端角分析模式旨在确保在不同的环境条件下芯片都能正常运行。在第一次数据导入时不需要I/O文件,这时IO是随意排列的,保存这时的IO的排布文件,然后根据前端设计师提供的信息,修改IO的具体位置,并在floorplan时重新导入I/O文件,完成了所有的IO排布。1.1.2MMMC分析文件的编写MMMC(Multi-ModeMulti-Corner)分析文件指定了时序、SI分析用的lib/cdb库文件(LibrarySet)、寄生参数提取的RCCorners、工作条件(Operatingconditions)、Delaycorners、ConstraintMode的sdc文件,并基于此创建用于Setup和Hold分析以及优化的View。它们之间的关系如REF_Ref17409\h图2-1所示。图2-SEQ图2-\*ARABIC1MMMC分析文件组成对于DelayCalculationCorner部分,首先创建用于对标准单元以及Macro进行时序分析和SI分析的lib库,本设计中有两个时序库,即最坏时序库文件lib_ss1p35v125c和最好的时序库文件lib_ff1p65vm40c,然后创建RCcorner来为提取Net的寄生电阻电容指定电阻、电容查找表,本设计中有两个寄生参数端角rcmax125c和rcminm40c。然后创建DelayCorner,它是libraryset和RCCorner等的组合,延时端角也有两个,用于建立时间分析的延时端角dc_ss1p35v125c_rcmax125c_setup,它是由最坏的时序库和容阻最大RCcorner构成的,和用于保持时间分析的延时端角dc_ff1p98vm40c_rcminm40c_hold,它是由最好时序库和容阻最小RCcorner构成的,具体命令为:settiming_lib(ss1p35v125c)"$lib_dir/lib/stdcell/gsmc13_lp_ss_1p35v_125c.lib\ $lib_dir/lib/sram/RASP1024X32M16_worst.lib\ $lib_dir/lib/sram/RASP8192X32M32_worst.lib\ $lib_dir/lib/io/3.3V/PADLRCMCUDB_max.lib"settiming_lib(ff1p65vm40c)"$lib_dir/lib/stdcell/gsmc13_lp_ff_1p65v_-40c.lib\ $lib_dir/lib/sram/RASP1024X32M16_best-sp.lib\ $lib_dir/lib/sram/RASP8192X32M32_best-sp.lib\ $lib_dir/lib/io/3.3V/PADLRCMCUDB_min.lib"对于模式(Mode)部分,有标准时序约束模式,即正常功能模式,也有ScanMode、BISTMode等多种测试模式。本设计由于不涉及扫描等其他模式,故只使用正常功能模式(cm_function),将综合生成m3_asic_top.function.sdc进行少量修改作为其约束文件。使用create_constraint_mode命令来进行模式的创建,具体为:使用Mode与不同DelayCalculationCorner组合起来形成View,分析在不同环境下的时序是否满足设计需求。建立用于保持时间分析的情景view_func_ff1p98vm40c_rcminm40c_hold,它是由标准时序约束模式和最好延时端角构成的,同理还有的情景view_func_ss1p62v125c_rcmax125c_setup是用于建立时间分析。最后将View进行分配,实现在不同情景下进行不同时序分析的目的。1.1.3IO单元排布文件的编写Cortex-M3的MCU芯片中共有95个IOpad,之后需要添加给Core和IO供电的IOpad。IO尽量均匀的排布在版图四周。IO排布完成后,需要在四个拐角处加入corner,它的作用是连接芯片拐角处两边的,使得所有的连成一个完整的环,同时也使它们的衬底、阱等各个层连接起来,防止出现DRC的违例。根据前端设计师提供的信息,修改首次数据导入后保存的IO的排布文件,重新确定IO的位置。根据IO手册,输入输出pad选择RCMCU_PLBMUX双向IO,除此之外,还需要加入供电IO,选择RCMCU_PLVDD和RCMCU_PLVSS作为给core供电的IO,选择RCMCU_PLVDDH_NOPOC和RCMCU_PLVSSH作为给IO供电的IO。给core供电的IO的数目是根据core内部最大电流来确定的,core内部最大电流可以由功耗的预估值60mW结果除以芯片内部电压的最大值,即在最坏情况下的值得到。根据计算可以得出最少需要两组给core供电的IO。为了供电均匀,将两组供电IO分别放在芯片左右两侧的中心位置。给信号IO供电的IO的数量一般是给core供电的IO的数量的两倍,即需要四组RCMCU_PLVSSH和RCMCU_PLVDDH_NOPOC。将每一组RCMCU_PLVDDH_NOPOC和RCMCU_PLVSSH分别排布在芯片四边的中间。最后添加IOfiller,目的是使所有IO连成一个完整的padring,包围在core的外面。1.1.4数据导入准备好门级网表、物理库文件、MMMC分析文件后,即可进行数据导入。数据导入的具体命令为:setlef_files"$lib_dir/lef/tech/GSMC130LP_1P7M.tlef\ $lib_dir/lef/custom/custom_vias.lef\ $lib_dir/lef/io/PADLRCMCUDB_MTT25K.lef\ $lib_dir/lef/sram/RASP1024X32M16.lef\ $lib_dir/lef/sram/RASP1024X32M16_antenna.lef\ $lib_dir/lef/sram/RASP8192X32M31.lef\ $lib_dir/lef/sram/RASP8192X32M32_antenna.lef\ $lib_dir/lef/stdcell/GSMC13LPSTDLIBM7.lef"完成导入设计后,在图形用户界面可以看到core核心、3个ram以及在其四周的IOPad。在导入成功后,需要使INNOVUS确认本设计使用工艺为130nm级。1.3布局规划后续布局布线的收敛、芯片的面积、性能、功耗都与布局规划有着直接的关系REF_Ref8539\r\h[14]。在此阶段,需要完成芯片面积的确定,I/O的摆放,宏单元的放置,特殊单元的摆放等,这些完成后,芯片的初步版图就已经确定,之后环节中逻揖单元的时序优化和布线资源的分配都是在此版图框架上进行的REF_Ref8696\r\h[15]。1.3.1芯片尺寸的确定及I/O的摆放布局规划首先要对芯片大小进行规划。由公式(2-1)(2-1)式中——逻辑的面积;——宏模块面积;——需要为后续的CTS和时序收敛等预留面积以及加入endcap,welltapcell等物理单元所需增加的百分比;——目标利用率。公式(2-1)中宏模块的面积乘以1.1是考虑到macroblock摆放时需要一些空间加入blockage。T%初步取为5%,U%初步取为80%。根据综合后的面积报表(REF_Ref17667\h图2-2),可以大致估算出Core的面积。芯片的面积为Core的面积与IO的面积之和。最后设置芯片尺寸为2480*2510μm2,是一个接近正方形的矩形形状,目的是方便规则地放置标准单元。图2-SEQ图2-\*ARABIC2综合后的面积报表然后对芯片设计输入输出(I/O)单元的进行规划。先导入之前编写的I/OPad排布文件,完成信号IO、供电IO和IOcorner的排列,然后使用addIoFiller添加Filler,使所有IO构成一个完整的padring,命令为:addIoRowFiller-cell{RCMCU_PLFLR5RCMCU_PLFLR1}-prefixIOFILLfixAllIos1.3.2宏模块的放置宏模块的放置需要考虑以下几个因素:首先宏模块的放置需要遵循工艺厂商提供的设计规则,宏模块放置完成后位置不能更改,所以它们必须位于合理的位置,摆放完成后需要确保没有与它们位置相关的设计规则违例出现;其次要根据芯片的数据流来摆放宏模块,这样能够有效减少连线的长度,有利于优化时序;宏模块的pin朝向指向标准单元或者core的中心,确保总的走线长度相对较短;宏模块与边界间距预留足够间隔,因为需要一些空间插入buffer以生成时钟树,以及在存储器周围可能会被工具放置少量单元以满足时序的要求。根据以上的要求,确定宏模块的物理位置。在放置完宏模块后,为了降低宏模块出线口方向的布线拥塞,需要在所有SRAM周围加一圈1.5微米的阻挡层,在这些区域内是无法放置标准单元的,避免出线端口因为标准单元的存在而增加,从而占用布线资源REF_Ref23705\r\h[16]。同时在核心区域(core)四周放置一圈blockage,也是为了避免阻塞的问题,提高布线的效率。具体命令为:addHaloToBlock1.51.51.51.5-allBlock-snapToSitecreatePlaceBlockage-namecoreBonderObs-box$box-snapToSite-typehard1.3.3特殊单元的布局在完成宏单元的摆放后需要进行对和这两种特殊单元的布局。Endcap俗称拐角单元,它的作用是保证每一个nwell都是封闭的nwell,以减少OSE(odspaceeffect)和PSE(polyspaceeffect)的效应影响,即避免光刻过程中,因为扩散、注入等过程芯片边缘与中间出现差异,从而导致芯片无法正常工作。Endcap单元主要加在row的两边,以及宏模块的周围,添加endcap单元的命令为:WellTap单元是重掺杂,可以减小阱和衬底的寄生电阻,防止正反馈电路工作,可以避免闩锁效应产生,从而烧毁芯片。添加WellTap单元的命令为:布局规划后的芯片版图如REF_Ref17797\h图2-3所示。图2-SEQ图2-\*ARABIC3布局规划后的芯片版图1.4电源规划为了给整个芯片充分的供电,设计者需要进行电源规划,主要内容包括设计电源环、电源条带、电源轨线等。电源规划前,首先进行globalNetConnect,即全局电源连接关系,其主要目的是将把相应的端口和网络连接到合适的电源和接地网络上去REF_Ref21535\n\h[17]。然后设计电源环,电源环是包围在标准单元四周的环形供电金属REF_Ref22604\r\h[18],电源环的宽度可用公式(2-2)(2-2)根据公式(2-2),芯片峰值电流可由功耗预估值60mW除以最坏情况电压1.35V得到,电流密度为1mA/μm。考虑到加入了2对给core供电的pad,调整因子约为4,最后计算得到VDD电源环宽度结果共约为50μm。因为顶层金属电阻小,电流密度大,有利于减少电迁移和IR压降等影响,而低层金属布线时使用较多,如果电源环使用低层金属会占用绕线资源,所以采用高层金属M6和M7做电源环。为了充分供电,使用高层金属M6和M7做两组电源环,每组电源环的宽度为25μm,电源环金属之间需要留有5μm作为相邻电源环间距,使用addRing完成电源环的添加,具体命令为:addRing-nets{VSSVDD}-typecore_rings-followio\ -layer{topM7bottomM7leftM6rightM6}\ -width{top25bottom25left25right25}\ -spacing{top5bottom5left5right5}\ -offset{top0bottom0left0right0}\ -center0-threshold0-use_wire_group1-use_wire_group_bits2\ -use_interleaving_wire_group1然后使用sroute命令连接各个power节点。先进行电源轨线的设计,采用命令sroute-connectcorePin就可以生成电源轨线。设计电源轨线的目的主要是为了形成标准单元的供电网络。因为标准单元都放置在row上,所以电源轨线的设计相对简单。只需要在每条row上打上电源轨线,然后在后续标准单元放置过程中将标准单元摆放在row上,就可以实现供电了。为节省布线资源,只采用M1作为标准单元的电源轨线。然后需要使用命令sroute-connectpadPin将电源环和给核心供电的IOpad连接起来。添加了电源环和电源轨线的版图如REF_Ref18299\h图2-4中的a)所示。sroute具体命令为:然后进行电源条带的设计,电源条带主要是为了给设计中的存储器供电。查看SRAM的物理库文件可以知道给存储器SRAM供电的电源环使用的是M3、M4层金属,故使用M4、M5层金属将此电源环连接至电源网络。除此之外,为了能够给标准单元均匀充分地供电,电源条带使用M4、M5、M6和M7金属交错设计。电源条带的设计需要遵循纵向采取偶数层走线,横向采取奇数层走线,且电源条带都需要连接到电源环上。电源规划完成后的的芯片版图如REF_Ref21369\h图2-4中的b)所示。在完成电源网络的设计后,需要使用verify_drc和verifyConnectivity命令检查电源网络是否存在设计规则违例和开路。若无设计规则违例和开路存在,则可以后续步骤。verify命令为:添加了电源环和电源轨线的版图电源规划完成后的的芯片版图图2-SEQ图2-\*ARABIC4电源规划时的芯片版图1.5标准单元放置标准单元放置是引导自动布局布线工具将所有可放置的标准单元摆放在合适的row区域,使芯片内部时序、拥塞程度、利用率符合设计的要求。在标准单元放置完成后,可以使用INNOVUS自带的时序分析工具对放置结果进行建立时间和DRV的分析,随后可以进行一定的布局优化,使得在后续过程中更容易满足时序的要求。标准单元数量庞大,在设定好相应的约束后,工具可以自动根据物理库文件放置标准单元以及优化REF_Ref16027\w\h[19]。针对标准单元放置,首先设定标准单元放置时应用的约束条件,约束条件大致与多模式多工艺角下的相同,只需要进行少量的修改。约束修改主要在以下方面:为了便于后续过程中的时序收敛,在确定标准单元位置的过程中,主要分析最坏情况下的时钟;因为设计过程中使用的是逻辑综合后得到的时序约束文件,所以此时钟为理想时钟(idealclock),不存在时钟偏差,但在布局布线后,时钟树已经生成,此时的时钟不再是理想时钟,会存在时钟偏差(clockskew)的影响。所以需要修改时序约束条件中的建立时间和保持时间的时钟不确定度,对它们进行相同幅度的增加REF_Ref21535\r\h[17];限制在标准单元放置的优化过程中所用的单元类型,即不允许使用保持时间相关单元和时钟相关单元。相关约束命令为: 除此之外,为了更加清晰地进行时序分析,多定义了reg2mem和mem2reg路径。然后使用place_design命令使工具开始进行标准单元布局。在标准单元放置完成后,需要添加tiehi和tielo单元,防止在后续过程中出现栅浮空的错误。具体的命令为:最后检查优化一下建立时间,如REF_Ref17974\h图2-5所示,结果表明无建立时间和设计规则违例路径,可进行后续的时钟树综合。REF_Ref18299\h图2-6为最终标椎单元放置效果图。图2-SEQ图2-\*ARABIC5标椎单元放置后的时序优化结果图2-SEQ图2-\*ARABIC6标椎单元放置效果图1.6时钟树综合及优化根据约束条件,从时钟信号的起点逐级插入buffer/inverter,最终到达寄存器的时钟输入端或其他时钟端(如内存的时钟输入端)的过程称为时钟树综合REF_Ref2953\r\h[20]。在进行时钟树综合之前,需要提前设置好物理约束(PhysicalConstraint)。物理约束主要包含以下几个方面:Non-defaultroutingrule(NDR);Clockcell选取以及maxtransition的设定。首先,定义非默认绕线规则DWDS_DCUTS和SWSS_DCUTS,使其生长时钟树。时钟一般翻转频率较高,从而导致时钟路径上的单元受到的电迁移和串扰的影响比较大。因此,通常会采取双倍宽度的绕线宽度来降低它们的影响。查找物理库文件可以得知M2、M3、M4、M5、M6金属最小width均为0.20微米,它们最小spacing均为0.21微米。非默认绕线规则DWDS_DCUTS是为了降低时钟路径上的电迁移和串扰而定义的,它使用双倍宽度双倍间距M4、M5和M6金属,使用专用于时钟树综合的加宽通孔作为其互连线通孔,即width为0.40微米,spacing为0.42微米,via尽量选取带CLK后缀的通孔。定义SWSS_DCUTS可以使用单倍宽度单倍间距M2、M3、M4、M5、M6金属,使用普通通孔作为其互连线通孔,即width为0.20微米,spacing为0.21微米,via选取LEF文件中的普通通孔。具体命令为:然后进行Clockcell的选取,Clockcell的选取主要包括指定在生长时钟树使用的缓冲单元和反相器的种类,以及CCOpt优化期间可以插入的缓冲单元名称列表、反相单元名称列表、集成时钟门的列表、时钟树逻辑单元格名称的列表。具体命令为:set_ccopt_propertybuffer_cells{BUFCLKHD6XBUFCLKHD8X\BUFCLKHD12XBUFCLKHD16XBUFCLKHD20X}set_ccopt_propertyinverter_cells{INVCLKHD8XINVCLKHD12X\INVCLKHD16XINVCLKHD20X}set_ccopt_mode-cts_inverter_cells{INVCLKHD6XINVCLKHD8X\INVCLKHD12XINVCLKHD16XINVCLKHD20X}set_ccopt_mode-cts_buffer_cells{BUFCLKHD6XBUFCLKHD8X\BUFCLKHD12XBUFCLKHD16XBUFCLKHD20X}set_ccopt_mode-cts_clock_gating_cells{CLKGTHD4XCLKGTHD8X\CLKGTHD12X}set_ccopt_mode-cts_logic_cells{MUX2CLKHD3XMUX2CLKHD4X\AND2CLKHD3XAND2CLKHD4XXOR2CLKHD3XXOR2CLKHD4X\OR2HD4XOR3HD4XOR4HD4XNOR2B1HD4XNOR3B1HD4X}然后将时钟树划分为top_route_type、trunk_route_type、leaf_route_type三段,其中top_route_type为靠近时钟树根节点的大扇出部分,这部分运用规则DWDS_DCUTS以及M5、M6高层金属生长时钟树;leaf_route_type为靠近触发器和存储器时钟端部分,运用规则SWSS_DCUTS以及M3、M4金属,便于连接;trunk_route_type为剩余部分,运用规则SWSS_DCUTS以及M5、M6高层金属来有效降低串扰噪声。分段结束后,设定每一段的目标最大过渡时间,并规定了目标偏差和目标翻转时间。具体命令如下。然后设定时钟树综合时的分析模式,即建立时间的分析使用view_func_ss1p35v125c_rcmax125c_setup,保持时间的分析使用view_func_ff1p65vm40c_rcminm40c_hold。最后生成时钟树规范文件,使用ccopt_design命令生成时钟树,具体命令如下set_analysis_view-setup{view_func_ss1p35v125c_rcmax125c_setup} -hold{view_func_ff1p65vm40c_rcminm40c_hold}时钟树生成后的情况如REF_Ref2270\h图2-7所示,基本满足skew的要求。时钟树生成后需要进行时序优化,最终时序结果如REF_Ref18336\h图2-8和REF_Ref18359\h图2-9所示,没有setup、hold和设计规则违例路径。图2-SEQ图2-\*ARABIC7时钟树生成结果图2-SEQ图2-\*ARABIC8PostCTS的建立时间优化结果图2-SEQ图2-\*ARABIC9PostCTS的保持时间优化结果1.7布线及优化布线是将分布在core内的标准单元、宏模块和I/Opad按照逻辑关系进行连接,并在连接完成后进行时序、漏电功耗等方面的优化REF_Ref3008\r\h[21]。布线的第一步是更改设计约束。布线前已经完成了时钟树综合,因此需要将时钟从ideal_clock(理想时钟)更改为propagated_clock(传播时钟),这样在布线时考虑的才是真实具体的时钟延迟REF_Ref3041\r\h[22],设置命令为:然后使用setNanoRouteMode、setOptMode、setExtractRCMode、setSIMode命令进行布局布线时用到的多种参数的设置。比如,使用setOptMode命令将优化后芯片允许的最大密度置设为0.8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某木业厂木材采购制度
- 2026年物流行业智能物流发展创新报告
- 2026年娱乐产业元宇宙互动创新报告
- 2026中国农业科学院哈尔滨鲁医研务所科技支撑与技术服务中心编外派遣人员招聘1人备考题库(黑龙江)及答案详解(全优)
- 2026黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学机电工程学院办公室招聘备考题库及参考答案详解
- 2026河南郑州经纬科技实业股份有限公司招聘高端人才7人备考题库及参考答案详解
- 2025年智能仓储物流信息追溯系统在农产品溯源体系中的大数据应用可行性研究报告
- 2026安徽池州市石台县乡镇应急消防站招聘专职消防11人备考题库及参考答案详解1套
- 2026北京师范大学保定实验学校教师招聘50人备考题库完整参考答案详解
- 2026重庆社会主义学院教学辅助岗招聘2人备考题库及完整答案详解
- 木工三级安全教育
- 25MW汽轮机操作规程
- AutoCAD2020教程课件完整版
- 学习适应性测验(AAT)(小学一、二年级)
- 横山县殿市镇水坝滩煤矿环境保护与治理实施方案
- 2023年卫生系统公开招聘面试题
- GB/T 7025.2-2008电梯主参数及轿厢、井道、机房的型式与尺寸第2部分:Ⅳ类电梯
- GB/T 4956-2003磁性基体上非磁性覆盖层覆盖层厚度测量磁性法
- GB/T 22517.4-2017体育场地使用要求及检验方法 第4部分:合成面层篮球场地
- 2022年初中学业水平实验操作考试应急预案参考范文-
- 陕西省科学技术奖提名通用项目汇总表
评论
0/150
提交评论