kl800.com省心范文网

SoC Encounter设计流程ppt


SoC Encounter Design Flow
SMIC 65nm process

2011-10-24

2012-3-28

主要内容
1. Initial_design 2. Floorplan 3. Pre_place 4. Place_opt 5. Clock_syn 6. Clock_opt 7. Nano_route 8. Post_route 9. Make_DFM 10.Leakage & Fill 11.QRC 12.Design_verify 13.output_files 14.ECO

2012-3-28

1.Initial_design
Design_import:
需要输入的内容包括: Verilog files: Top cell name: Timing library: LEF files: Timing constraint file: IO Assignment file: IPO/CTS cell name/footprint: Power/Ground name: RC Extraction: SI Analysis:
芯片设计的顶层单元网表 填写顶层单元名称 包括Max,Min工艺库延迟信息 所有单元的物理库信息文件 时序分析约束文件(SDC) IO单元位置信息文件 时序分析/时钟优化所用单元名称 电源/地名称(包括全局和局部) RC提取所用包含寄生参数文件 信号完整性分析所用cdb文件

2012-3-28

1.Initial_design
Design_import:
第一次设计时,需要详细填写上述文件,填写完成以后,可以保存(save)为.conf 文件,以备下次调用。设计中也可以调用(load)现成的配置文件(.conf)。如: 命令: loadConfig $conf_file 0 commitConfig

上述内容包括详细的工艺库信息和设计数据、约束信息等。

2012-3-28

1.Initial_design
ScanTrace:
#### scan trace and generate original scan def defIn input/aes_chip.scan.def :读入初始扫描链 setAnalysisMode -asyncChecks noAsync :设置时序分析模式 set_global timing_apply_default_primary_input_assertion false set_global timing_clock_phase_propagation both setAnalysisMode -multipleClockPerRegister true setPlaceMode -reorderScan true setExtractRCMode -engine default scanTrace –verbose :扫描链检测和报告 defOutBySection -noComps -noNets –scanChains output/aes_chip_original.scan.def #### scan trace and generate original scan def :输出扫描链 另外还有specifyScanCell(指定扫描单元)和specifyScanChain(指定名称和输入输出端 口)命令等。

2012-3-28

1.Initial_design
Load CPF file:
CPF=common power format 内容包括: 参数设置(CPF文件版本及设置指定SDC文件);进行特殊单元定义和 状态转换操作条件;定义工艺库组;生成功率域;指明每个功率域的各 种工作模式和工艺角,并根据MMMC方式产生二者的各种可能组合,指 明每种view所用的工艺库、SDC文件、电源/地连接及电源电压大小。具 体内容及格式见CPF文件。 命令: loadCPF $cpf_file commitCPF

2012-3-28

1.Initial_design
MMMC:
MMMC=multi-mode and multi-corner 即多角多模分析法
一般情况下有以下几种分析方法:

Full MMMC(完全方法)
分析所有工作模式下的最好最坏角点。

Scenario MMMC(情景方法)
有时候,一些模式仅仅和部分角点有关系,如果使用full MMMC模式,会生成一些额 外的模式-角点关系,需要进行额外的分析和优化,从而浪费时间和影响收敛,可以通 过使用情景方法,把角点只和相关的模式绑定进行分析,使得设计更真实、更容易收 敛。

Margin-Enhanced Method MMMC(容限增强方法)
首先使用MC方法生成基于两个角点的扩展容限,然后将所生成的容限添加到相关模 式时序约束中,最后只使用MM方法进行分析后优化。

2012-3-28

1.Initial_design
MMMC:
MMMC时序分析方法产生需要分析的各个view及产生分析结果的步骤如下:

Create constraint mode
生成芯片每种功能模式(如:normal,setup,bist,scan四个工作模式)下的约束文件(*.SDC)。定 义功率域(如:normal_pd,lv_pd,pso_pd三个功率域),指定每种功率域下bc、wc情况下需要调用 的.lib库,生成根据功率域和功能相结合而产生的工作模式组合,然后更新使每个工作模式都对应自己 的约束文件。 命令:create_power_mode;create_power_mode

Create delay calculation corner
指明每个功率域bc和wc对应的PVT,以及需要调用的.lib。生成角点组合。

命令:create_operating_corner

Specifying analysis views
根据上面产生的模式组合和角点组合,结合时间的情况及方法,生成能够切实代表时序分析情况的 view组合。一般情况下,每次进行时序分析和优化时,只激活部分的view进行操作,使用的命令为: set_analysis_view。下次再进行分析和优化时再激活别的部分view进行操作。

如:2种电源状态(pso部分是否关断);4个功能模式;2种时序分析(setup/hold);2 种角点(best/worst),views的总数应该为2x4x2x2=32种。 命令:create_analysis_view

2012-3-28

1.Initial_design
MMMC:
生成并更新RC corner,指明每个RC corner对应的cap table file,供进 行RC参数提取时使用,并指明每个RC corner对应的MMMC view:
create_rc_corner -name rc_worst -cap_table \ ../../techfile/soce_captable/smic_logic065_7lm_max.captbl update_rc_corner -name rc_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_CAP update_delay_corner -name normal_func1_max_dcw_view_dc -rc_corner rc_worst

2012-3-28

1.Initial_design
Analysis view and mode:
#### defines the analysis views to use for setup and hold analysis and optimization :设置为激活的分析模式 set_analysis_view -setup { normal_func2_max_dcw_view \ normal_setup2_max_dcw_view normal_setup1_max_dcw_view} \ -hold { normal_func2_min_dcb_view } #### set analysis mode :设置时序分析模式 setAnalysisMode -analysisType onChipVariation \ -clockGatingCheck true \ -cppr false \ -timingEngine static

2012-3-28

1.Initial_design
Others:
#### Methodology suggestion to assume metal fill - value used is speculative setExtractRCMode -engine default -assumeMetFill .6 :设置RC提取模式 #### dont touch source scripts/dontouch.tcl :包含不允许更改的单元 #### report :输出报告文件 reportDesignUtil report_analysis_views -type all > report/analysis_views.rpt reportGateCount -outfile report/gate_count_original.rpt saveDesign ./database/${top_cell_name}_initial_design.enc -def -relativePath exit :保存FP文件

2012-3-28

2.Floorplan
Floorplan set:
Specify floorplan:
指明floorplan坐标原点,确定floorplan面积(包括die size and core size,反复调 整,直到满足要求)及标准单元排列方式等。 命令: 命令:specify floorplan;

Add IO cells and filler:
添加IO单元的filler并fix在固定位置,包括数字和模拟两部分,保证IO单元之间的 电源/地连接正确。 命令: 命令:deleteIoFiller; addIoFiller

Modify power domain Attribute:
调整各个功率域模块的相对位置,标明各功率域属性,如:电源特性、功率域范 围、时序分析所用工艺库等信息。 命令: 命令:relativeFPlan; modifyPowerDomainAttr

2012-3-28

2.Floorplan
Add power ping:
Core ring, block ring, power domain ring
生成core、block和功率域的电源环 命令: 命令:addRing; selectInst; deselectAll

Add halo
给功率域、IP模块等设置隔离环,阻止外部单元和走线出现在此区域内 IP 命令: 命令:deleteHaloFromBlock; addHaloToBlock; addRoutingHalo

Connect PG
声明各种模块、功率域电源/地线,及和全局电源/地的连接关系
命令: 命令:clearGlobalNets; globalNetConnect; applyGlobalNets; sroute

Create stripes
进行内部电源/地走线,保证充分的电源共给,减小IP-drop等
命令: 命令:addStripe

2012-3-28

2.Floorplan
Add and connect special cells:
Add and connect well tap
根据特定的规则,给各个功率域(如normal_pd、pso_pd、lv_pd等)填充特定 的well tap单元,如FILLTIE、FILLBIAS、FILLBIASNW、FILLBIASPW等,并 连接其电源/地到功率域电源/地或指定的外部电源/地。 命令: deleteFiller; addWellTap; clearGlobalNets; globalNetConnect; applyGlobalNets;sroute

Add and connect switch cells
在可以关断电源功率域按一定的排列方式插入switch cell,指明端口对应的网表 连接中的名称,如pg_en_o等(由于在网表中没有相对应的单元,这类线一般 在网表中是悬空的),并进行电源或地的连接,这类单元有HEAD*、FOOT*、 HTV_HEAD*、HTV_FOOT*等。 命令:addPowerSwitch; verifyPowerSwitch

Global and std cell connect
全局性和标准单元电源/地连接,并进行标准单元区域电源/地布线。 命令:globalNetConnect; sroute

2012-3-28

2.Floorplan
Report file and save:
Timing report
输出时序分析报告,检查报告内容是否有异常的地方。 命令: timeDesign -prePlace -expandedViews -outDir report/floorplan

Save
保存当前设计,以备下次直接调用。 saveDesign ./database/${top_cell_name}_floorplan.en c -def -relativePath exit
2012-3-28

3.pre_place
General placement sequence:
Import the design Study the design’s connectivity Do the power planning Specify spare cell and scan cells if necessary Create placement blockages if necessary Load the scan chain information Run placement Run trial route to view placement and routing congestion
2012-3-28

3.pre_place
clock tree option:
由于布局方式为clkGateAware模式,需要导入时钟树spec和指定延迟单元类 型。

Load clock tree specification
导入时钟树综合文件。 命令:

specifyClockTree -clkfile input/aes_chip.balance.ctstch

Set don’t use cell
设置在时序优化时可以和不可以使用的标准和PMK单元,这种设置一 般全局有效,所以在完成相应的操作后,需要取消设置(把true变为 false)。 foreach delay_cell $delay_cell_list {setDontUse $delay_cell true} source scripts/dontuse_pmk_cell.tcl
2012-3-28

3.pre_place
Specifying spare cells:
闲置单元一般为掩模后ECO提供可用的逻辑单元 闲置单元可以定义在整个设计层面(design),也可以 定义到模块(module)或一定区域(fence/region)范 围内,撒布闲置单元时,闲置单元也会撒布在相应的 区域内 闲置单元的输入可以浮空或接电源/地,这时闲置单元 会撒布在整个布局区域;闲置单元采取互连时,视为 闲置单元组,彼此相互靠近,放置在特定区域;闲置 单元采用和非闲置单元连接模式时,闲置单元的摆放 靠近目标单元 命令:createSpareModule deleteSpareModule displaySpareModule placeSpareModule
2012-3-28

3.pre_place
Specifying cell padding:
Cell padding为预留的、在flip-flop右边、在CTS期间插 入驱动时钟buffer的布局空间 预留空间为metal2 pitch尺寸的整数倍 预留空间一般为整个设计空间的5%~7% Cell padding在CTS和Opt期间保留 若有拥塞现象,删除cell padding 命令:specifyCellPad deleteAllCellPad deleteInstPad reportInstPad
2012-3-28

3.pre_place
JTAG:
JTAG=Joint Test Action Group(联合测试行动小组) (联合测试行动小组) JTAG是一种国际标准测试协议,主要用于芯片内部测试。基 本原理是在器件内部定义一个TAP(Test Access Port测试访问 口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测 试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链, 能实现对各个器件分别测试。
Specify JTAG cell, instance, or hierarchical instances JTAG cell placed at the chip boundary, close to IO pads Area is decided by heights and rows of standard cell you can customize the placement blockage layer Operated before standard cell placement 命令:specifyJtag placeJtag reportJtagInst traceJtag
2012-3-28

3.pre_place

Set placement blockage:
阻止在特定的金属层下摆放单元,有三种阻止方式:

Hard
任何情况下都不允许

Soft
在placement期间不允许,但是在Opt、CTS、ECO、 refine placement期间允许

Partial
设置不允许的百分率,剩余的面积可以进行布局,指定为 100%时,视为soft 命令:createObstruct;createDensityArea 布线方面也有类似的阻挡层设置
2012-3-28

3.pre_place
Place std cell:
Set Place mode
设置单元摆放选项,即在布局时需要考虑的相关信息等,可以通过设置的项目 来改善时序、减小拥塞现象和优化走线长度等。例如, WNS( Worst Negative Slack )可以改善200~300ps左右,走线长度可以减小10%左右等。

如:

setPlaceMode -ignoreScan true -reorderScan false setPlaceMode -timingDriven true setPlaceMode -clkGateAware true setTrialRouteMode -handlePDComplex true -handleEachPD true setTrialRouteMode -maxRouteLayer 7

Set trialroute mode
如:

Place Design
进行单元布局操作,缺省情况为时序驱动,如无约束时,则考虑时序问题,布 局操作不止受setPlaceMode影响,还受setClockDomains, setTrialRouteMode, setOptMode, setScanReorderMode等的影响。

命令:placeDesign

2012-3-28

3.pre_place
Post placement:
Congestion opt
以优化拥塞现象为终极目标,提高信号线的可布性 可以改善以后流程的信号完整性 trialRoute 锁定热点区域(来自于trialRoute结果)并把部分器件移出热点 区域 若之前没有trialRoute,这个命令会自动执行trialRoute命令 可以在布局、时序优化和时钟树综合后使用 优化过程不考虑时序,得到好的时序是由于改善的拥塞现象和 走线长度 执行此命令前,必须保证布局合理(无overlap和offgrid,如有, 先使用refinePlace命令解决),否则会自动退出 命令:congOpt

2012-3-28

3.pre_place
Post placement:
ECO place
布局完成后,对设计进行的局部改变 掩模前,为把仍没布局的单元移入core,进行布局;掩模后, 把仍没布局的单元映射到闲置单元 一般情况下,ECO局部改变不超过原设计的20% ECO完成后,进行拥塞和时序检查,保证满足设计要求 命令:ecoPlace

Check place and save
检查布局结果,输出报告。 命令:checkPlace; refinePlace
2012-3-28

3.pre_place
Place special cell:
Level shifter and isolation cell
在整体布局完成后,定义例化单元,设置状态为fix,指定摆放位置,进行布局, 一般放在功率域的边界。

如:dbSet [dbGet -p top.insts.name *cds_jd_l2h*].pStatus

fixed createObstruct 684 673 723 1136 -soft -name soft_OBS createObstruct 684 673 723 1136 -name OBS_LVL refinePlace placeDesign deleteObstruction OBS_LVL :删除区域定义

2012-3-28

3.pre_place
Place special cell:
Pull cell
提供给逻辑单元的高低电平输入,不会穿过层次化模块的边界。此操 作在整体布局后进行。 如: setTieHiLoMode -cell “PULLHS1 PULLHS0” -maxFanout 5 maxDistance 10 :设置属性 addTieHiLo -prefix TIEHILO -powerDomain normal_pd addTieHiLo -prefix TIEHILO -powerDomain pso_pd addTieHiLo -prefix TIEHILO -powerDomain lv_pd :摆放区 域 addTieHiLo -prefix TIEHILO :除上三个区域外部分,必须的

2012-3-28

3.pre_place
Place special cell:
Always on cell
常开单元的全局性电源连接布线。

Global and std cell connect
全局性和标准单元电源/地连接,并进行标准单元区域电源/地 布线。 命令:globalNetConnect; sroute

Report PMK cell
检查PMK单元的状态,输出报告 命令:reportIsolation; reportShifter; reportPowerSwith等

Save design
2012-3-28

4.place_opt
Scan reorder:
Scan reorder
运行忽略扫描链的placement后,扫描链可能已经断开,要进行扫描 链重新排列操作,如果扫描链穿过不同功率域,电源电压不同时,会 自动插入level shifter。在使用这个命令前可以用命令 setScanReorderMode设置全局参数。 命令:scanReorder

Generate reorder scan def
输出重新排列后的扫描链。 如:defOutBySection -noComps -noNets -scanChains \ output/${top_cell_name}_scan_reorder.def

2012-3-28

4.place_opt
Special net buffer tree synthesis:
对特殊的net插入buffer,按照一定的规则进行综合,如buffer类型、跳变延迟 时间、扇出系数等。这类net主要是在floorplan阶段定义的功率域模块的使能 控制线(pg_en_o)。 如:
bufferTreeSynthesis -nets {u_aes_core_top/pg_en_o u_aes_core_top/iso_en_o \ u_aes_core_top/retain_n_o u_aes_core_top/n_22}\ -fixedBuf -fixedLeaf -fixedNet -maxTran 0.15 -prefix cds_alwayson_ \ -powerDomainBufList { {normal_pd BUFHSV4 BUFHSV6 BUFHSV8 BUFHSV12 \ BUFHSV16 BUFHSV20} {pso_pd GBL_BUFHSV8} {lv_pd BUFHSV4 BUFHSV6 \ BUFHSV8 BUFHSV12 BUFHSV16 BUFHSV20 } } set_interactive_constraint_modes [all_constraint_modes -active] set_max_transition 0.2 [current_design] set_max_fanout 16 [current_design]

2012-3-28

4.place_opt
Timing analysis:
进行时序分析前,需要先完成下面的操作:

Specify the delay calculation and RC extraction values
在design_import命令中有相应的选项,可以根据实际情况填入正确的比例系数等。

Specify the operating conditions
使用setOpCond命令指定PVT参数,在MMMC时使用create_delay_corner和 updete_delay_corner命令设置操作环境。 命令:setOpCond

Specify report mode
包括两种报告模式:一为CTE(common timing engine);一为FE-STA(first encounter static timing analysis)。CTE模式为默认。注意在同一个项目里最好只使用一种报告模 式。

Check and report timing libraries Check and report footprint Specify constraint condition Define RC corner
可以设置角点为typ、best或worst,供进行setup和hold分析时使用。

Specify the analysis mode
共有三种分析模式可以使用,分别为:single, BC-WC, OCV 2012-3-28

4.place_opt
Timing analysis:
时序分析流程(以BC-WC为例):

1. Read in the min and max libraries
set rda_Input(ui_timelib,max) "${libDir}/stdcellwst.lib” set rda_Input(ui_timelib,min) "${libDir}/stdcellbest.lib”

2. Specify BC-WC operating conditions
setOpCond –max wccom–maxLibrary stdcellwst –min bccom –minLibrary stdcellbest

3. Set the analysis mode to BC-WC, setup
setAnalysisMode -bcWc –setup –skew –clockTree

4. Generate the timing reports for setup
report_timing

5. Set the analysis mode to hold
setAnalysisMode –hold

6. Generate the timing reports for hold
report_timing

2012-3-28

4.place_opt
Timing analysis:
时序分析中,需要注意的几点:

1. Derating factor used in TA
使用此命令,可以把数据路径或时钟路径的延迟时间进行一定程度的缩小或放大,更好地 使建立时间和保持时间满足时序关系。此命令对latency和input delay(from SDC)及.sdf 文件内容没有作用。

命令:setTimingDerate -max -early 0.8 -late 1.0

2. Clock

path pessimism removal(CPPR)

在launch clock和capture clock两个时钟路径上有共用部分(见下页图)在设置时序分析模 式时,使用CPPR设置,可以消除由于early和late路径分别调用单元不同延迟时间而产生 的误差。

命令:setAnalysisMode -cppr

3. Multi-Mode
具体介绍见前。

Multi-Corner TA

4. Analysis

timing problem Timing results

有一系列命令可以使用:check_timing, get_timing, report_timing, report_analysis_coverage, report_annotated_check, report_case_analysis, report_clock_timing等。

5. Debugging
2012-3-28

在CTE和FE-STA模式下,分别有自己的诊断方式。执行Timing Debug Timing可以弹出 窗口,填入时序输出报告文件名称,依次进行操作即可。

4.place_opt
Timing analysis:
下图为时钟共用路径情况,右下图为控制端选择路径情况。

2012-3-28

4.place_opt
Timing optimization:
时序优化阶段,会执行以下操作:

Corrects DRVs Reduces total negative slack Optimizes setup time for all path
建立时间优化完成后,检查timing report,分析产生violation,是否可 以经过时序优化解决,否则,需要修改前端设计调整。而holdtime violation完全可以通过后端流程解决。

Fixes hold time violations (optional) Performs useful skew optimization (optional) Reclaims area
2012-3-28

4.place_opt
Timing optimization:
时序优化阶段,会使用下面技术:

Adding buffers Resizing gates Restructuring the netlist Remapping logic Swapping pins Deleting buffers Moving instances Applying useful skew
2012-3-28

4.place_opt
Timing optimization:
按照设计流程,可以分为下面三个优化阶段:

pre_CTS Opt Post_CTS Opt Post_route Opt
在设计的不同阶段,可分别使用下列命令设置与设计阶段相匹配的参数:

setAnalysisMode setTrialRouteMode setClockDomain setOptMode setExtractRCMode
2012-3-28

4.place_opt
Timing optimization:
在进行时序优化前,先完成下列操作:

Create and load footprints(optional)
声明优化时需要插入的buffer/inv等的类型。

Set the Encounter software to handle assign nets
检查网表中是否有赋值语句,如果有,使用命令进行等效,以便于相关的nets 能够进行优化。命令为:在导入设计数据前使用命令setDoAssign on,在.conf 中set rda_Input(assign_buffer) {1}

Set the default and detailed extraction scale factors
使用命令为:generateRCFactor; setRCFactor

Set input transitions
为便于高扇出网络的高扇出nets的延迟时间计算,可以在.conf中或setInputTransitionDelay 命令中设置输入transitions。

Check reserved placement space
为保证有足够的优化空间,检查剩余空间是否大于5%,以便于优化时插入buffer和结构重组。

2012-3-28

4.place_opt
Timing optimization:
在这里,执行的是pre_CTS,在执行优化前,必须使用命令set_disable_timing打破所有的timing loops(可能是约 束文件中规定的),否则,软件不能进行有效地比较。一般优化流程如下:

Opt mode
设置时序优化模式,直到下次重新设置前,一直保持有效。如果想知道当前的设置,可以使用相关查 看命令。 命令:setOptMode; getOptMode

Optdesign
首次执行优化,命令会通过调整buffer和gate的尺寸来减小所有net上的延迟时间,然后以路径为基础, 使用前面提到的优化方法进行优化操作。其优化顺序为:1.全局时序优化,2.DRV修复,3.临界路径时 序优化。 命令:optDesign -preCTS

Check place Verify PG
验证功率域内电源/地连接的正确性,修改错误,直到完全正确,才能进行以后的流程。 命令:verifyPowerDomain

Save design

2012-3-28

4.place_opt
Timing optimization:
部分优化设置介绍:

setOptMode -lowEffort
低效率优化模式,不进行结构重组和DRV方面的优化。

setOptMode -usefulSkew
useful skew模式优化,可以很好地改善设计时序。

setOptMode -noReclaimArea
优化模式的默认值为reclaimArea,即对面积方面的调整,如果不需要整合,必须如此设置。

Opt on Specific path
针对特定的路径进行优化,可在优化操作前执行下面命令,首先要清楚时钟域,然后在定 义需要优化的路径,这个命令不会对指定路径以外的路径进行任何操作。 clearClockDomains setClockDomains -fromType sourcePoint -toType destinationPoint

Incremental Pre-CTS Opt
进一步加强优化效果,对剩余的violations进行优化。 命令:optDesign -preCTS -incr

2012-3-28

5.clock_syn
available files:
Clock tree specification file(*.ctstch) Verilog netlist(*.V) GDSII or LEF physical library Proper RC model from LEF, or Encounter capacitance table Timing constraints file (SDC)(optional) Synopsys .lib file or TLF file with timing models for standard cells and cell footprint names. Placement information, such as a DEF file or an Encounter placement file

2012-3-28

5.clock_syn
CTS Operation Modes:
Manual mode
手动编写clock tree spec,可以根据实际的需要,自由地控制插 入buffer的级数和每个级别buffer的数量,产生时钟树拓扑,平衡 时钟相位延迟。

automatic mode
也需要clock tree spec文件,CTS会根据约束文件,自动地决定 插入buffer的级数和每个级别buffer的数量。产生时钟树拓扑,平 衡时钟相位延迟。除非特殊要求,一般会选用这种方式进行CTS。

2012-3-28

5.clock_syn
CTS Guidelines :
CTS追踪时钟信号穿过的buffer、inv和门控单元等,一般停止在时钟pin、D触发 器的输入pin、宏单元或隔离单元的入口及没有时序要求的单元入口。 CTS不会对没有时序要求的单元进行时钟相位平衡。 如果包含宏单元模型,必须在spec中对其特性进行定义。 如果要对时钟进行分组,也要在spec中进行定义。 CTS会产生一个布线向导,加强和detail-route关联性,使用这个向导可以把CTS CTS detail-route CTS 和post-route联系的个紧密,要实现这个功能,必须在spec、CTSmode和执行命 令CTS时,打开相关的选项。 CTS优先级为: clock skew-input transition time for power consumption-clock insertion delay 推荐的运行流程为: Opt to fix setup time violation— CTS— Opt to fix hole time violation 2012-3-28

5.clock_syn Automatic flow:
Analysis and Debugging Support 一般流程:
setCTSMode setCTSMode GUI

clockDesign –genSpecOnly

CTS Spec File

Manual Edit

clockDesign NO Clock tree browser ckECO Manual ECO Display clock tree

Result ok?

2012-3-28

5.clock_syn
main stages for CTS :
Pre-CTS Generate clock tree spec setCTSMode Pre-CTS tracer graphical interface(没找到) CTS Synthesize the clock tree Post-CTS Manual ECO Post-CTS optimization using ckECO

2012-3-28

5.clock_syn
Pre-CTS:
Input configuration file
读入和时钟树综合相关的信息,内容包括输入时钟名称、输入根节点,每个时 钟相关的属性,及需要用到的缓冲器类型等信息。可以使用命令 specifyClockTree(或createClockTreeSpec)产生一个模板,然后对模板进行 修改产生。若综合结果不满足要求,也可以通过再修改此文件达到符合要求的 综合结果。文件的后缀为.ctstch 命令:load

Set synthesis mode
设置时钟树综合的各种属性,在时钟树综合前,必须设置属性。在时钟树综合 后,需要改变属性,需使用命令cleanupSpecifyClockTree清除前面的设置, 重新使用设置命令进行设置。 命令:setCTSMode

List CTS cell
列出CTS中可以用到的缓冲器、反相器单元名称,这些也可以在design_inport 中设置。 命令:addCTSCellList; addCTSCellFootPrint 2012-3-28

5.clock_syn
Clock synthesis:
CTS
列出可用单元后(否则不会运行CTS),按照设置和SDC文件约束, 进行CTS操作。在执行操作时,软件会自动删除现存的时钟树。综 CTS 合后,针对MMMC相关情景进行时序分析。 命令:clockDesign; set_analysis_view

Timing report and save
输出报告,检查结果并保存。 命令: report_timing; report_clock_timing; report_timing_by_clock_view; timeDesign

2012-3-28

5.clock_syn
Post-CTS:
Manual ECO
使用clock tree Browser选择一个时钟打开,会出现一个时钟的拓扑结构,可以 根据相应的参数,对这个拓扑进行编辑,主要包括两种方式: 1)buffer/inv insert/delete or resize 这种方法主要用来调整skew, latency and useful skew和Max transition修 正,插入的buffer/inv和在refine place和放在靠近目标的区域。 2)disconnecting and reconnecting 通过重新调整buffer/inv的连接关系,调整 Timing、capacitance balancing 和useful skew,这种调整不会改变单元的相对位置关系。

Post-CTS optimization using ckECO
ckECO是在CTS后对时钟树的优化操作,主要目标是改善每个时钟(组)的 skew,解决最小相位延迟violation,但不会改善DRV。

命令: ckECO -preRoute/-clkRouteOnly/-postRoute
2012-3-28

6.clock_opt
Post_CTS timing optimization:
时钟树建立以后,优化的目的包括:

Fixing remaining DRVs Fixing hold time violations Optimizing remaining setup violations Correcting timing with propagated clocks Reducing area
优化的流程和相关设置和pre_CTS优化时类似
2012-3-28

6.clock_opt
Post_CTS timing optimization:
Reset analysis mode
重新设置分析模式、优化模式及针对的MMMC情景。 命令:setOptMode; setAnalysisMode; set_analysis_view

Control pin synthesis
对全局控制信号进行综合,插入buffer,增加驱动能力。如reset、 clk_en、test_mode等信号。 命令:bufferTreeSynthesis

CTO
建立时钟树后,进行时序优化,一般情况下,时钟树综合后的时序 分析主要针对holdtime进行。 命令:optDesign -postCTS -outDir report/clock_opt

Timing report and save
同上。

2012-3-28

6.clock_opt
Power analysis:
功耗分析是在各种电源/地先布局完成之后进行的IR_drop、power rail和EM分析,最好是 在便于对电源布局进行优化的阶段进行。命令中规定可以在dummy clock、pre_cts、 post_cts阶段进行,

Data prepare
在调用文件(*.pp)中指明所有电源/地PAD的坐标。编辑时钟跳变(from 0 to 1 or from 1 to 0)几率的文件(*.tg),编辑器件电源电压文件(*.power)。

Power analysis
调用电源分析命令,填入所需要的文件,进行IR_drop、power rail和EM分析, 并分别检查分析结果(显示)。 命令:updatePower; displayRailAnalysisResults; clearRailAnalysisDisplay

Repair and Save design
检查结果若不符合设计要求指标,修改电源/地布局,重复上述步骤, 直到满足要求,并保存设计结果。

2012-3-28

7.Nano_route
Prepare:
Run Placement with the Medium Effort option Run Check Placement
检查是否有单元重叠、单元不在栅格等现象,如果有,使用refine placement命令解决掉。

Run Trial Route with the Medium Effort option
确保没有拥塞现象的发生。

output a new netlist file
执行完布局、时序分析优化、时钟树综合优化后,网表的结构和原 来相比已经发生变化,因此需要一个和物理设计完全一致的网表。

The detailed router needs these two files
Placement file in DEF format with clock tree Netlist file
2012-3-28

7.Nano_route
Add Filler cells:
Delete filler cells
在填充filler之前,需要先从标准单元区域进行删除filler操作,可以全局性删除, 也可以指定面积删除。 命令:deleteFiller

Set filler mode
设置全局性填充参数,这些参数是累加性的,即新设置的参数会和原来的参数 同时发生作用,且在addFiller命令中的参数会替换掉此命令中的同类参数。 命令:setFillerMode

Add filler cells
在详细布线前,对标准单元间隙进行filler单元填充。如果是在布线后,其会自 动检查DRC。为了消除由其带来的DRC,执行verifyGeometry命令表示错误出, 再执行一次带有-fixDRC参数的addFiller命令,即可对错误处filler进行替换。

命令:addFiller

Global power connection
执行addFiller后,进行全局性电源连接,声明连接关系。
2012-3-28

7.Nano_route
Nano route:
Route always on net first
设置选择性布线模式,选择常开net连接对象,进 行布线。布线完成后,取消选择性布线模式。
命令: setPGPinUseSignalRoute; setNanoRouteMode; selectNet; routeDesign; deselectAll

Set Nano_route mode
设置全局性布线模式,设置进程个数等。 命令:setNanorouteMode; setMultiCpuUsage

Global and detailed route
执行详细布线操作。 命令:routeDesign
2012-3-28

7.Nano_route
Check and save:
Check setup and hold time
在布线完成后,使用expandedViews选项进行时序分析,目的是产生MMMC 模式的、各个情景独立的、详细的、建立时间和保持时间的时序报告。 如:

timeDesign -postRoute -expandedViews -outDir report/nano_route timeDesign -postRoute -expandedViews -hold -outDir report/nano_route

Check power domain
检查功率域设置是否正确,主要检查是否有重叠现象发生。 命令:verifyPowerDomain

save
保存设计结果。 2012-3-28

8.Post_route
Post route opt:
详细布线完成后,因为前面已经进行了时序优化,所以,剩余的violations不会很多,新 产生的violation主要是由于布线前(预测)和布线后(实际)的差异,以及寄生耦合引起, 这阶段的时序优化主要进行下面操作:

Repairing timing problems and DRVs without introducing new problems Resolving signal integrity (SI) issues
SI优化时,进行下面的操作:

Analyses cross coupling capacitance effects on glitch and noise Back-annotates delays due to cross coupling capacitance Reruns timing analysis Repairs setup violations Repairs hold violations

优化的流程和相关设置和pre_CTS优化时类似 优化的流程和相关设置和pre_CTS优化时类似 pre_CTS
2012-3-28

8.Post_route
Reset analysis mode:
重新设置分析模式,使用于布线后优化。 如:setAnalysisMode \ -analysisType onChipVariation \ :包括single、bcWc、OCV三种 -clockGatingCheck true \ :检查clockgating -cppr true \ :去除时钟路径上的悲观情况 -timingEngine static :静态分析模式

2012-3-28

8.Post_route
Opt target slack:
Set opt mode
设置布线后优化模式。 如:setOptMode -optimizeNetsAcrossDiffVoltPDs true \ -holdTargetSlack 0.01 -setupTargetSlack 0.01 -criticalRange 1

Set analysis view
设置分析针对的情景,通常,全部的view都要在这里进行分析。 如:set_analysis_view \ -setup {normal_func1_max_dcw_view normal_func2_max_dcw_view } \ -hold {normal_func1_min_dcb_view normal_func2_min_dcb_view }

Set timing derate
对数据、时钟路径、max/min操作条件等设置时序缩放比例因子,改善指定corner下的 OCV(on chip variation),可以分别针对建立(later)、保持(early)时间进行缩放。 如: set_timing_derate -early 0.95 -late 1.0 -delay_corner normal_func2_max_dcw_view_dc set_timing_derate -early 1.0 -late 1.05 -delay_corner normal_func2_min_dcb_view_dc

2012-3-28

8.Post_route
Optimization:
Drv and setup time opt
进行布线后design ruler violation和setup time方面的优化。 如:optDesign -postRoute -outDir report/post_route optDesign -postRoute -incr -outDir report/post_route_incr

Hold time opt
进行holdtime方面的优化,消除violation,进行holdtime优化时,有可能会产生 setup问题,可以使用命令setupTargetSlack设置参数进行限制。 如:optDesign -postRoute -hold -outDir report/post_route

Save and output
输出应用于不同目的的verilog网表及def文件,保存设计 saveNetlist -excludeLeafCell output/${top_cell_name}.v saveNetlist -excludeLeafCell -flat output/${top_cell_name}_flat.v saveNetlist -excludeLeafCell -phys output/${top_cell_name}_phys.v defOut -placement -routing -floorplan output/${top_cell_name}.def saveDesign ./database/${top_cell_name}_post_route.enc -def -relativePath

2012-3-28

8.Post_route
ECO fix timing
如果经过上面流程后依旧有时序错误,可以通过单元替换、插入/消除缓冲单元方式解决。可以把需要 修改的地方写入tcl文件,再读入文件。ECO前要先清楚filler单元;调用文件后进行ecoPlace、 ecoRoute 和addFiller步骤。 如: 修复setup time,更改单元尺寸 ecoChangeCell -inst u_aes_core_top/aes_core_main/aes_algo_lv/aes0_i/us10/g93953 -cell INAND2HSV4

修复hold time,插入缓冲单元
ecoAddRepeater -term {u_aes_core_top/aes_core_main/aes_algo_normal/aes0_i/u0/w0_reg[12]/D} cell BUFHSV4 -relativeDistToSink 0.9

Save and output
输出应用于不同目的的verilog网表及def文件,保存设计

2012-3-28

8.Post_route
Crosstalk repair
属于SI范畴,crosstalk是信号间的电磁耦合而导致的信号功能故障或延迟变化。在布局和布线阶段设置 模式部分,都有crosstalk方面的设置,可以提前消除部分这类violation。下面是单独进行修复的步骤:

Data prepare
设置操作条件(包括温度、工艺、电压等,这些都在设计开始时输入的timing library中),指定.cdb文件。检查设计正确,没有timing violation方面的问题等。 命令:setOpCond; congOpt; optDesign timeDesign

Set buffer used
在每一次优化前,都有必要进行buffer inv clkinv等方面的约束设置,并且在优化完 成后,取消此约束,以免影响后面的设计。 如:优化前 foreach delay_cell $delay_cell_list { setDontUse $delay_cell true } 优化后 foreach delay_cell $delay_cell_list { setDontUse $delay_cell false }

RC extract
进行crosstalk分析前,必须进行RC提取,产生耦合电容,供分析时使用。 命令:setExtractRCMode –detail –noReduce; extractRC

2012-3-28

8.Post_route
Crosstalk repair
Crosstalk analysis
设置SI分析模式,进行SI分析,可以使用本身的SI分析功能,也可以使用单独的CeltIC NDC进行 分析。 命令:setSImode -noiseProcess 65nm; runCeltIC

Crosstalk repair
两种修复模式,一个是placement基础上的,主要通过插入buffer,更改尺寸,减小攻击方尺寸, 增加受害方尺寸等手段进行修复;另一个是routing基础上的,主要是通过增大线间距,改变线的 排列、改变走线层,减小平行走线长度,添加屏蔽线等手段进行修复。 修复流程也有两个:一个是incremental方式,主要是在需要进行修复的走线上进行修复,直到改 善;一个是sign-off方式,是在整个设计的基础上进行分析和修复,直到完成。具体哪种方式,可 以在setSIMode中设置。 命令:setSIMode –extractionEngine incrementalQRC/standaloneQRC setDelayCalMode -engine signalStorm -signOff true opDesign –postRoute -SI

Save and output
输出应用于不同目的的verilog网表及def文件,保存设计 2012-3-28

8.Post_route
Verify antenna
属于设计验证范畴,主要是通过计算金属、栅极和有源区面积比例,验证金属层上的电 荷积累是否能够击穿栅极,对设计进行调整,防止天线效应现象的发生。

Check file and global power connect
在进行检查前,观察LEF文件里是否有天线效应相关参数的定义。在布线后,进行一次全局性电 源/地连接,保证器件的电源/地连接。 命令:globalNetConnect

Set Nanoroute mode
在setNanorouteMode中,设置antenna相关参数。 命令:setNanoRouteMode -drouteFixAntenna true setNanoRouteMode -routeAntennaCellName "ANTENNA" setNanoRouteMode -routeInsertAntennaDiode true

Add antenna
使用verifyProcessAntenna命令检查电路中是否有antenna现象,如果有,使用布线 命令进行修复。如果使用单独的验证工具检查发现有antenna现象后,可以通过插 入二极管,在对这些二极管进行布局布线来完成。或者通过桥接连线的方式手工修 改。 命令:verifyProcessAntenna; attachDiode; refinePlace; globalDetailRoute

2012-3-28

9.make_DFM
Design for manufacture
在目前的版本中,DFM包括下面三种情况,这些都可以在Design>mode setup中的DFM选项中进行设置。
Wire widen 调整线宽 Weir spread 调整线间距,可以是小数倍的栅格尺寸。 Mutli via 调整通孔的数量 如:setNanoRouteMode –drouteUseMutliCutVia true \
-drouteUseMutliCutViaEffort high globalDetailRoute

Save and output
输出应用于不同目的的verilog网表及def文件,保存设计 2012-3-28

10.leakage & Fill
Leakage power opt
在设计中如果有HVT单元可以使用,可以进行这方面的操作,用低漏电单元 替换普通的单元,而不改变电路的时序特性,以减少漏电流。 如: reportLeakagePower –outfile leakage_power.rpt optLeakagePower

Fill notch and metal fill
Fill notch 检测并填充notch、gap、hole,消除DRC错误。 命令:deleteNotchfill; fillNotch Metal fill 设置每层的金属密度特性及填充方式,进行金属填充,保证金属密度满 足要求。同时,尽量避免填充金属的寄生参数对信号的影响。 命令:setMetalFill; addMetalFill; trimMetalFill
2012-3-28

11.QRC
Set extract mode
在设置本地RC提取模式。 命令:setExtractRCMode

Extract command
设置提取模式后,在此指明工艺库、金属层信息、输入数据、输出数 据等信息,提取互连线的寄生参数(电阻/电容值)。 命令:extractRC

Run QRC
运行寄生参数提取命令。 命令:qrc –cmd qrc.cmd | tee qrc.log

2012-3-28

12.Design_verify
Verify connectivity
在布线以后,检查是否有开路、未连接的走线。可以在布线后的任何时候检查。 命令:verifyconnectivity –type all –error 1000 –warning 50

Verify geometry
对电路进行任何修改后,都可以使用此命令检查是否有DRC错误,其主要检查物理版图设计,包括宽度、 长度、间距、面积、重叠、外延及通孔等。 命令:verifyGeometry

Verify max floating area violation
设置提取模式后,在此指明工艺库、金属层信息、输入数据、输出数据等信息,提取互 连线的寄生参数(电阻/电容值)。 命令:extractRC

Verify metal density
进行金属填充后,检查金属密度是否符合工艺文件(lef)或设计者自定义规定。 命令:verifyMetalDensity

Verify AC limit
进行详细布线后,检查信号线上的AC电流是否满足设计要求。 命令:verifyACLimit 2012-3-28

13.output_files
Stream gds file
设置导出模式,导出GDS文件用于DRC、LVS验证和提交数据。 命令:setStreamOutMode; getStreamOutMode; streamOut

Output verilog files
输出应用于功能验证、物理验证和仿真等目的的verilog网表及def文件,并保 存设计,便于下次直接调用。
saveNetlist -excludeLeafCell output/${top_cell_name}.v saveNetlist -excludeLeafCell -flat output/${top_cell_name}_flat.v saveNetlist -excludeLeafCell -phys output/${top_cell_name}_phys.v defOut -placement -routing -floorplan output/${top_cell_name}.def saveDesign ./database/${top_cell_name}_post_route.enc -def -relativePath

2012-3-28

14.ECO
Pre-mask ECO from an ECO file Pre-mask ECO from a new verilog file Pre-mask ECO from a new DEF file Post-mask ECO from a new verilog file Post-mask Gate Array Style ECO from a new verilog file
在设计中可能有很多ECO方法,上面几种为比较通用的方法,你 可以参照特定的流程,更新你的设计。在设计前你必须确保:
新、旧网表都是唯一的 必须有现存的floorplan,因为改动是在floorplan基础上进行的 旧的placement、special routing 等已经以一定的格式保存,如DFE等

2012-3-28

14.ECO
Pre-mask ECO from an ECO file
此种方式适合少量单元的修改,如个别的单元添加、删除或替换等,由于是在掩模之前 修改,修改区域不需要保持原来的poly/diffusion形状。其流程如下: 打开原来的设计单元 读入ECO文件 ECO文件内包含修改的部分,如添加、删除的单元,添加、删除的net等,以及单 元和net的连接关系等。 命令:loadEco <file name> 写出新的verilog网表 删除filler和notch填充 执行增强型布局 在这里,也可以使用相关命令直接把单元放置到特定的位置。 命令:ecoPlace; selectInst; placeInstance 填充filler单元 执行增强型布线 填充notch并修整金属填充 继续正常的布线后操作流程,如analysis, repair, add metal fill, notch fill, verify等

2012-3-28

14.ECO
Pre-mask ECO from a new verilog file
此种方式和第一种方式略有不同,是通过输入新网表的方式进行ECO,由于是在掩模之 前修改,修改区域不需要保持原来的poly/diffusion形状。其流程如下:
读入新网表,这个新网表通常是在旧网表的基础上修改而来 命令:loadConfig newchip.conf # same as oldchip.conf except use newchip.v commitconfig 读入旧的floorplan、special routes和布局布线信息 命令: loadFPlan oldchip.fp

ecoDefIn -reportFile ecoDefIn.rpt oldchip.def applyGlobalNets
如果需要,为低功耗设计添加特殊单元,如level shifter和isolation单元等 删除filler和notch填充 执行增强型布局 在这里,也可以使用相关命令直接把单元放置到特定的位置。 命令:ecoPlace; selectInst; placeInstance 填充filler单元 执行增强型布线 填充notch并修整金属填充 继续正常的布线后操作流程,如analysis, repair, add metal fill, notch fill, verify等

2012-3-28

14.ECO
Pre-mask ECO from a new DEF file
此种方式是在知道需要修改单元的具体布局的情况下,进行ECO的流程。其流程如下:
读入旧的数据信息 命令:restoreDesign oldchip.enc 或:loadConfig oldchip.conf

defIn oldchip.def
对旧的netlist和新的DEF文件进行比较,生成ECO文件。 新的DEF文件可以由别的工具产生,也可以使用特殊的布局布线手段产生,可以包含一部分物理 单元(如填充单元),DEF文件里的端口和线段名称信息必须和旧的网表一致,否则会产生错误 的文件。 命令:ecoCompareNetlist -def newchip.def -outFile oldchip.eco 读入ECO文件,更新网表 命令:loadECO oldchip.eco 写出更新后的verilog网表,这个网表必须和newchip.def内信息一致 命令:saveNetlist oldchip_after_eco.v 读入需要更改的布局信息(newchip.def) 命令:defIn newchip.def 执行增强型布线 命令:ecoRoute 填充notch并修整金属填充 继续正常的布线后操作流程,如analysis, repair, add metal fill, notch fill, verify等

2012-3-28

14.ECO
Post-mask ECO from a new verilog file
在产品已经taped out的情况下,需要一小部分的逻辑单元部分的修改,在不改变 poly/diffusion和低层金属掩模的情况下,只改变上层金属掩模,利用闲置单元而进行的 ECO,可以节省掩模费用。 读入新网表,这个新网表通常是在旧网表的基础上修改而来 命令:loadConfig newchip.conf # same as oldchip.conf except use newchip.v commitconfig 读入旧的floorplan、special routes和布局布线信息 命令: loadFPlan oldchip.fp ecoDefIn -postMask -suffix _spare -reportFile ecoDefIn.rpt oldchip.def applyGlobalNets 如果需要,为低功耗设计添加特殊单元,如level shifter和isolation单元等这些单元 不需要摆放,在ECOplace时会自动指定到特定的闲置单元上。 指定闲置单元列表 命令:specifySpareGate –inst SPARE* 删除notch填充,如果需要冻结金属层,就不执行这一步骤 2012-3-28

14.ECO
Post-mask ECO from a new verilog file(续) (
执行增强型布局 命令:ecoRemap :只针对还没摆放的单元 闲置单元互换 命令:ecoSwapSapreCell i-9000 spare_* :把原来的单元和spare_*互换 保存更改后的设计,可以在此基础上多次进行下面的流程,直到符合要求 命令:saveDesign design.eco.enc 执行增强型布线,可以通过指定金属层范围来限制修改的层数 命令:ecoRoute -modifyonlyLayers 2:3 填充notch并修整金属填充 继续正常的布线后操作流程,如analysis, repair, add metal fill, notch fill, verify等

2012-3-28

14.ECO
Post-mask Gate Array Style ECO from a new verilog file
在产品已经taped out的情况下,需要一小部分的逻辑单元部分的修改,在不改变poly和 diffusion和低层金属掩模的情况下,只改变上层金属掩模,利用门阵列填充单元,通过编 程实现电路功能而进行的ECO,可以节省掩模费用。新网表通常是在旧网表的基础上手 动修改而成。 读入新网表,这个新网表通常是在旧网表的基础上修改而来 命令:loadConfig newchip.conf # same as oldchip.conf except use newchip.v commitconfig 读入旧的floorplan、special routes和布局布线信息 命令:loadFPlan oldchip.fp ecoDefIn -useGACells GACORE -suffix _spare -reportFile ecoDefIn.rpt oldchip.def applyGlobalNets 指定闲置单元列表 命令:specifySpareGate –inst SPARE* 删除notch填充,如果需要冻结金属层,就不执行这一步骤

2012-3-28

14.ECO
Post-mask Gate Array Style ECO from a new verilog file
执行增强型布局 命令:deleteFiller -prefix GAFILL ecoPlace -useGACells GACORE addFiller -cell -GAFiller -prefix GAFILL -fillBoundary 闲置单元互换
命令:ecoSwapSapreCell i-9000 spare_* 命令:saveDesign design.eco.enc :把原来的单元和spare_*互换

保存更改后的设计,可以在此基础上多次进行下面的流程,直到符合要求 执行增强型布线,可以通过指定金属层范围来限制修改的层数 命令:setNanoRouteMode -routeinsertantennadiode false
ecoRoute -modifyonlyLayers 2:3

填充notch并修整金属填充 继续正常的布线后操作流程,如analysis, repair, add metal fill, notch fill, verify等

2012-3-28

2012-3-28


赞助商链接

SOC实验-cadence_图文

搜试试 5 悬赏文档 全部 DOC PPT TXT PDF XLS ...SOC 实验 院系:微电子技术系 专业:集成电路设计与...然后输入 encounter 打开软件 如图 4-1 所示 图 4...