Place and Route based on Innovus
对于新手来说,建议使用GUI来进行操作。
下面是我所使用的脚本:
读入设计后在命令行中使用以下指令即可运行,假设文件名为: PlaceandRoute.tcl
source PlaceandRoute.tcl
也可将此语句加入设计文件中init_design后,假设设计文件名为 alu_setup.tcl, 然后在命令行中使用:
innovus -files alu_setup.tcl
即可全自动运行Place and Route。
PlaceandRoute.tcl:
set_global timing_apply_default_primary_input_assertion false
set_global timing_clock_phase_propagation both
setOptMode -powerEffort high
setOptMode -leakageToDynamicRatio 1.0
setAnalysisMode -asyncChecks async
setExtractRCMode -layerIndependent 1
setPlaceMode -reorderScan false
setExtractRCMode -engine preRoute
set edi_pe::pegConsiderMacroLayersUnblocked 1
set edi_pe::pegPreRouteWireWidthBasedDensityCalModel 1
setRouteMode -earlyGlobalHonorMsvRouteConstraint false \
-earlyGlobalRoutePartitionPinGuide true
setEndCapMode -reset
setEndCapMode -boundary_tap false
setNanoRouteMode -quiet -droutePostRouteSpreadWire 1
setNanoRouteMode -quiet -timingEngine {}
# setUsefulSkewMode -maxSkew false noBoundary false -useCells
{CLKBUF_X16 CLKBUF_X12 CLKBUF_X8 CLKBUF_X4 CLKBUF_X2 CLKBUF_X1 \
BUF_X16 BUF_X12 BUF_X8 BUF_X4 BUF_X2 BUF_X1 INV_X16 INV_X12 INV_X8 \
INV_X4 INV_X2 INV_X1} -maxAllowedDelay 1
# setUsefulSkewMode -maxSkew false -noBoundary false -useCells \
{HB4xp67_ASAP7_75t_SL HB3xp67_ASAP7_75t_SL HB2xp67_ASAP7_75t_SL \
HB1xp67_ASAP7_75t_SL BUFx8_ASAP7_75t_SL BUFx6f_ASAP7_75t_SL \
BUFx5_ASAP7_75t_SL BUFx4f_ASAP7_75t_SL BUFx4_ASAP7_75t_SL \
BUFx3_ASAP7_75t_SL BUFx2_ASAP7_75t_SL BUFx24_ASAP7_75t_SL \
BUFx16f_ASAP7_75t_SL BUFx12f_ASAP7_75t_SL BUFx12_ASAP7_75t_SL \
BUFx10_ASAP7_75t_SL INVxp67_ASAP7_75t_SL INVxp33_ASAP7_75t_SL \
INVx8_ASAP7_75t_SL INVx6_ASAP7_75t_SL INVx5_ASAP7_75t_SL \
INVx4_ASAP7_75t_SL INVx3_ASAP7_75t_SL INVx2_ASAP7_75t_SL \
INVx1_ASAP7_75t_SL INVx13_ASAP7_75t_SL INVx11_ASAP7_75t_SL \
CKINVDCx9p33_ASAP7_75t_SL CKINVDCx8_ASAP7_75t_SL \
CKINVDCx6p67_ASAP7_75t_SL CKINVDCx5p33_ASAP7_75t_SL \
CKINVDCx20_ASAP7_75t_SL CKINVDCx16_ASAP7_75t_SL \
CKINVDCx14_ASAP7_75t_SL CKINVDCx12_ASAP7_75t_SL \
CKINVDCx11_ASAP7_75t_SL CKINVDCx10_ASAP7_75t_SL} -maxAllowedDelay 1
setPlaceMode -reset
setPlaceMode -place_global_exp_allow_missing_scan_chain true
setPlaceMode -place_global_ignore_scan true
setPlaceMode -place_global_reorder_scan false
setPlaceMode -congEffort high -timingDriven 1 -clkGateAware 1 \
-powerDriven 0 -ignoreScan 1 -reorderScan 0 -ignoreSpare 0 \
-placeIOPins 1 -moduleAwareSpare 0 -preserveRouting 1 \
-rmAffectedRouting 0 -checkRoute 1 -swapEEQ 0
setPlaceMode -fp false
place_design
setPlaceMode -place_global_exp_allow_missing_scan_chain true
setPlaceMode -place_global_ignore_scan true
setPlaceMode -place_global_reorder_scan false
setPlaceMode -fp false
place_design -noPrePlaceOpt -incremental
create_ccopt_clock_tree_spec
ccopt_design
setNanoRouteMode -quiet -routeTdrEffort 5
setNanoRouteMode -quiet -routeTopRoutingLayer default
setNanoRouteMode -quiet -routeBottomRoutingLayer default
setNanoRouteMode -quiet -drouteEndIteration default
setNanoRouteMode -quiet -routeWithTimingDriven true
setNanoRouteMode -quiet -routeWithSiDriven true
routeDesign
redirect -quiet {set honorDomain [getAnalysisMode -honorClockDomains]} > /dev/null
setAnalysisMode -analysisType onChipVariation
getAnalysisMode -checkType
redirect -quiet {set honorDomain [getAnalysisMode -honorClockDomains]} > /dev/null
#report timing
timeDesign -postRoute -pathReports -drvReports -slackReports \
-numPaths 88 -prefix CSR_Unit_postRoute4x \
-outDir /home/shi/RSD_PR/ASAP7_SLVT/CSR_Unit/timingReports4x
set_power_output_dir -reset
#power dir
set_power_output_dir /home/shi/RSD_PR/ASAP7_SLVT/CSR_Unit/power4x
set_default_switching_activity -reset
set_default_switching_activity -input_activity 0.2 -period 10.0
read_activity_file -reset
set_power -reset
set_powerup_analysis -reset
set_dynamic_power_simulation -reset
#report
report_power -rail_analysis_format VS \
-outfile /home/shi/RSD_PR/ASAP7_SLVT/CSR_Unit/power4x/CSR_Unit.rpt
summaryReport -noHtml \
-outfile /home/shi/RSD_PR/ASAP7_SLVT/CSR_Unit/summaryReport4x.rpt
reportGateCount -level 5 -limit 100 \
-outfile /home/shi/RSD_PR/ASAP7_SLVT/CSR_Unit/CSR_Unit.gateCount4x
exit
Comments
Post a Comment