01.09.2020SoCEncounterDesignFlowSMIC65nmprocess2011-10-2401.09.2020主要内容8.Post_route9.Make_DFM10.Leakage&Fill11.QRC12.Design_verify13.output_files14.ECO1.Initial_design2.Floorplan3.Pre_place4.Place_opt5.Clock_syn6.Clock_opt7.Nano_route01.09.20201.Initial_designDesign_import:需要输入的内容包括:Verilogfiles:芯片设计的顶层单元网表Topcellname:填写顶层单元名称Timinglibrary:包括Max,Min工艺库延迟信息LEFfiles:所有单元的物理库信息文件Timingconstraintfile:时序分析约束文件(SDC)IOAssignmentfile:IO单元位置信息文件IPO/CTScellname/footprint:时序分析/时钟优化所用单元名称Power/Groundname:电源/地名称(包括全局和局部)RCExtraction:RC提取所用包含寄生参数文件SIAnalysis:信号完整性分析所用cdb文件01.09.20201.Initial_designDesign_import:第一次设计时,需要详细填写上述文件,填写完成以后,可以保存(save)为.conf文件,以备下次调用。设计中也可以调用(load)现成的配置文件(.conf)。如:命令:loadConfig$conf_file0commitConfig上述内容包括详细的工艺库信息和设计数据、约束信息等。01.09.20201.Initial_designScanTrace:####scantraceandgenerateoriginalscandefdefIninput/aes_chip.scan.def:读入初始扫描链setAnalysisMode-asyncChecksnoAsync:设置时序分析模式set_globaltiming_apply_default_primary_input_assertionfalseset_globaltiming_clock_phase_propagationbothsetAnalysisMode-multipleClockPerRegistertruesetPlaceMode-reorderScantruesetExtractRCMode-enginedefaultscanTrace–verbose:扫描链检测和报告defOutBySection-noComps-noNets–scanChainsoutput/aes_chip_original.scan.def####scantraceandgenerateoriginalscandef:输出扫描链另外还有specifyScanCell(指定扫描单元)和specifyScanChain(指定名称和输入输出端口)命令等。01.09.20201.Initial_designLoadCPFfile:CPF=commonpowerformat内容包括:参数设置(CPF文件版本及设置指定SDC文件);进行特殊单元定义和状态转换操作条件;定义工艺库组;生成功率域;指明每个功率域的各种工作模式和工艺角,并根据MMMC方式产生二者的各种可能组合,指明每种view所用的工艺库、SDC文件、电源/地连接及电源电压大小。具体内容及格式见CPF文件。命令:loadCPF$cpf_filecommitCPF01.09.20201.Initial_designMMMC:MMMC=multi-modeandmulti-corner即多角多模分析法一般情况下有以下几种分析方法:FullMMMC(完全方法)分析所有工作模式下的最好最坏角点。ScenarioMMMC(情景方法)有时候,一些模式仅仅和部分角点有关系,如果使用fullMMMC模式,会生成一些额外的模式-角点关系,需要进行额外的分析和优化,从而浪费时间和影响收敛,可以通过使用情景方法,把角点只和相关的模式绑定进行分析,使得设计更真实、更容易收敛。Margin-EnhancedMethodMMMC(容限增强方法)首先使用MC方法生成基于两个角点的扩展容限,然后将所生成的容限添加到相关模式时序约束中,最后只使用MM方法进行分析后优化。01.09.20201.Initial_designMMMC:MMMC时序分析方法产生需要分析的各个view及产生分析结果的步骤如下:Createconstraintmode生成芯片每种功能模式(如:normal,setup,bist,scan四个工作模式)下的约束文件(*.SDC)。定义功率域(如:normal_pd,lv_pd,pso_pd三个功率域),指定每种功率域下bc、wc情况下需要调用的.lib库,生成根据功率域和功能相结合而产生的工作模式组合,然后更新使每个工作模式都对应自己的约束文件。命令:create_power_mode;create_power_modeCreatedelaycalculationcorner指明每个功率域bc和wc对应的PVT,以及需要调用的.lib。生成角点组合。命令:create_operating_cornerSpecifyinganalysisviews根据上面产生的模式组合和角点组合,结合时间的情况及方法,生成能够切实代表时序分析情况的view组合。一般情况下,每次进行时序分析和优化时,只激活部分的view进行操作,使用的命令为:set_analysis_view。下次再进行分析和优化时再激活别的部分view进行操作。如:2种电源状态(pso部分是否关断);4个功能模式;2种时序分析(setup/hold);2种角点(best/worst),views的总数应该为2x4x2x2=32种。命令:create_analysis_view01.09.20201.Initial_designMMMC:生成并更新RCcorner,指明每个RCcorner对应的captablefile,供进行RC参数提取时使用,并指明每个RCcorner对应的MMMCview:create_rc_corner-namerc_worst-cap_table\../../techfile/soce_captable/smic_logic065_7lm_max.captblupdate_rc_corner-namerc_worst-cap_table\../../techfile/soce_captable/smic_logic065_7lm_max.captbl\-res_factor$RES-detailed_cap_factor$DET_CAP-default_cap_factor$DEF_CAP\-detailed_clock_cap_factor$DET_CLK_CAP-xcap_factor$X_CAPupdate_delay_corner-namenormal_func1_max_dcw_view_dc-rc_cornerrc_worst01.09.20201.Initial_designAnalysisviewandmode:####definestheanalysisviewstouseforsetupandholdanalysisandoptimization:设置为激活的分析模式set_analysis_view-setup{normal_func2_max_dcw_view\normal_setup2_max_dcw_viewnormal_setup1_max_dcw_view}\-hold{normal_func2_min_dcb_view}####setanalysismode:设置时序分析模式setAnalysisMode-analysisTypeonChipVariation\-clockGatingChecktrue\-cpprfalse\-timingEnginestatic01.09.20201.Initial_designOthers:####Methodologysuggestiontoassumemetalfill-valueusedisspeculativesetExtractRCMode-enginedefault-assumeMetFill.6:设置RC提取模式####donttouchsourcescripts/dontouch.tcl:包含不允许更改的单元####report:输出报告文件reportDesignUtilreport_analysis_views-typeallreport/analysis_views.rptreportGateCount-outfilereport/gate_count_original.rptsaveDesign./database/${top_cell_name}_initial_design.enc-def-relativePathexit:保存FP文件01.09.20202.FloorplanFloorplanset:Specifyfloorplan:指明floorplan坐标原点,确定floorplan面积(包括diesizeandcoresize,反复调整,直到满足要求)及标准单元排列方式等。命令:specifyfloorplan;AddIOcellsandfiller:添加IO单元的filler并fix在固定位置,包括数字和模拟两部分,保证IO单元之间的电源/地连接正确。命令:deleteIoFiller;addIoFillerModifypowerdomainAttribute:调整各个功率域模块的相对位置,标明各功率域属性,如:电源特性、功率域范围、时序分析所用工艺库等信息。命令:relativeFPlan;modifyPowerDomainAttr01.09.20202.FloorplanAddpowerping:Corering,blockring,powerdomainring生成core、block和功率域的电源环命令:addRing;selectInst;deselectAllAddhalo给功率域、IP模块等设置隔离环,阻止外部单元和走线出现在此区域内命令:deleteHaloFromBlock;addHaloToBlock;addRoutingHaloConnectPG声明各种模块、功率域电源/地线,及和全局电源/地的连接关系命令:clearGlobalNets;globalNetConnect;applyGlobalNets;srouteCreatestripes进行内部电源/地走线,保证充分的电源共给,减小IP-drop等命令:addStripe01.09.20202.FloorplanAddandconnectspecialcells:Addandconnectwelltap根据特定的规则,给各个功率域(如normal_pd、pso_pd、lv_pd等)填充特定的welltap单元,如FILLTIE、FILLBIAS、FILLBIASNW、FILLBIASPW等,并连接其电源/地到功率域电源/地或指定的外部电源/地。命令:deleteFiller;addWellTap;clearGlobalNets;globalNetConnect;applyGlobalNets;srouteAddandconnectswitchcells在可以关断电源功率域按一定的排列方式插入switchcell,指明端口对应的网表连接中的名称,如pg_en_o等(由于在网表中没有相对应的单元,这类线一般在网