Commit 984f98cd by Ravi Varadarajan

Upddate scripts for ariane133

Signed-off-by: Ravi Varadarajan <rvaradarajan@ucsd.edu>
parent 0b49e00e
# This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
set DESIGN ariane
set sdc ../../constraints/${DESIGN}.sdc
# def file with die size and placed IO pins
set floorplan_def ../../def/ariane133_fp.def
#
# Effort level during optimization in syn_generic -physical (or called generic) stage
# possible values are : high, medium or low
set GEN_EFF medium
# Effort level during optimization in syn_map -physical (or called mapping) stage
# possible values are : high, medium or low
set MAP_EFF high
# This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
# lib and lef, RC setup
set libdir "../../../../../Enablements/NanGate45/lib"
set lefdir "../../../../../Enablements/NanGate45/lef"
set_db init_lib_search_path { \
${libdir} \
${lefdir} \
}
set libworst "
${libdir}/NangateOpenCellLibrary_typical.lib \
${libdir}/fakeram45_256x16.lib \
${libdir}/fakeram45_256x64.lib \
"
set libbest "
${libdir}/NangateOpenCellLibrary_typical.lib \
${libdir}/fakeram45_256x16.lib \
${libdir}/fakeram45_256x64.lib \
"
set lefs "
${lefdir}/NangateOpenCellLibrary.tech.lef \
${lefdir}/NangateOpenCellLibrary.macro.mod.lef \
${lefdir}/fakeram45_256x16.lef \
${lefdir}/fakeram45_256x64.lef \
"
#
# Ensures proper and consistent library handling between Genus and Innovus
#set_db library_setup_ispatial true
#set qrc_max "SigCmax/qrcTechFile"
#set qrc_min "SigCmin/qrcTechFile"
# This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
create_library_set -name WC_LIB -timing $libworst
create_library_set -name BC_LIB -timing $libbest
create_rc_corner -name Cmax
create_rc_corner -name Cmin
create_delay_corner -name WC -library_set WC_LIB -rc_corner Cmax
create_delay_corner -name BC -library_set BC_LIB -rc_corner Cmin
create_constraint_mode -name CON -sdc_file $sdc
create_analysis_view -name WC_VIEW -delay_corner WC -constraint_mode CON
create_analysis_view -name BC_VIEW -delay_corner BC -constraint_mode CON
# This script was written and developed by ABKGroup students at UCSD; however, the underlying commands and reports are copyrighted by Cadence. # This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators. # We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
#!/bin/tcsh #!/bin/tcsh
module unload genus module unload genus
...@@ -8,4 +8,4 @@ module load innovus/21.1 ...@@ -8,4 +8,4 @@ module load innovus/21.1
mkdir log -p mkdir log -p
genus -overwrite -log log/genus.log -no_gui -files run_genus.tcl genus -overwrite -log log/genus.log -no_gui -files run_genus.tcl
innovus -64 -init run_invs.tcl -log log/run.log #innovus -64 -files run_invs.tcl -overwrite -log log/innovus.log
# This script was written and developed by ABKGroup students at UCSD; however, the underlying commands and reports are copyrighted by Cadence. # This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators. # We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
set top_module ariane source lib_setup.tcl
set_db max_cpus_per_server 16 source design_setup.tcl
set libdir "../../../../../Enablements/NanGate45/lib/"
# set the output directories
set OUTPUTS_PATH syn_output
set REPORTS_PATH syn_rpt
set HANDOFF_PATH syn_handoff
set libworst " if {![file exists ${OUTPUTS_PATH}]} {
${libdir}/NangateOpenCellLibrary_typical.lib \ file mkdir ${OUTPUTS_PATH}
${libdir}/fakeram45_256x16.lib \ }
${libdir}/fakeram45_256x64.lib \
" if {![file exists ${REPORTS_PATH}]} {
file mkdir ${REPORTS_PATH}
}
if {![file exists ${HANDOFF_PATH}]} {
file mkdir ${HANDOFF_PATH}
}
#
# set threads
set_db max_cpus_per_server 16
set_db super_thread_servers "localhost"
#
set list_lib "$libworst" set list_lib "$libworst"
# Target library # Target library
...@@ -17,51 +31,70 @@ set link_library $list_lib ...@@ -17,51 +31,70 @@ set link_library $list_lib
set target_library $list_lib set target_library $list_lib
# set path # set path
set_db auto_ungroup none set_db auto_ungroup none
set_db init_lib_search_path $libdir
set_db init_hdl_search_path "../../rtl/"
set_db library $list_lib set_db library $list_lib
set_dont_touch fakeram45_256x16
# Start
if {[file exists template]} {
exec rm -rf template
}
exec mkdir template #################################################
if {![file exists gate]} { # Load Design and Initialize
exec mkdir gate #################################################
}
if {![file exists rpt]} { source rtl_list.tcl
exec mkdir rpt
foreach rtl_file $rtl_all {
read_hdl -sv $rtl_file
} }
# Compiler drectives elaborate $DESIGN
set compile_effort "high" time_info Elaboration
set compile_flatten_all 1
set compile_no_new_cells_at_top_level false
# read RTL read_sdc $sdc
read_hdl ../../rtl/ariane.v init_design
elaborate $top_module check_design -unresolved
check_timing_intent
# reports the physical layout estimation report from lef and QRC tech file
report_ple > ${REPORTS_PATH}/ple.rpt
# Default SDC Constraints # keep hierarchy during synthesis
read_sdc ../../constraints/${top_module}.sdc set_db auto_ungroup none
syn_generic syn_generic
time_info GENERIC
# generate a summary for the current stage of synthesis
write_reports -directory ${REPORTS_PATH} -tag generic
write_db ${OUTPUTS_PATH}/${DESIGN}_generic.db
syn_map syn_map
time_info MAPPED
# generate a summary for the current stage of synthesis
write_reports -directory ${REPORTS_PATH} -tag map
write_db ${OUTPUTS_PATH}/${DESIGN}_map.db
write_sdc > gate/${top_module}.sdc syn_opt
write_hdl > gate/${top_module}.v time_info OPT
write_script > constraints.g write_db ${OUTPUTS_PATH}/${DESIGN}_opt.db
# Write Reports ##############################################################################
redirect [format "%s%s%s" rpt/ $top_module _area.rep] { report_area } # Write reports
redirect [format "%s%s%s" rpt/ $top_module _cell.rep] { report_gates } ##############################################################################
redirect [format "%s%s%s" rpt/ $top_module _timing.rep] { report_timing }
# summarizes the information, warnings and errors
report_messages > ${REPORTS_PATH}/${DESIGN}_messages.rpt
# generate PPA reports
report_gates > ${REPORTS_PATH}/${DESIGN}_gates.rpt
report_power > ${REPORTS_PATH}/${DESIGN}_power.rpt
report_area > ${REPORTS_PATH}/${DESIGN}_power.rpt
write_reports -directory ${REPORTS_PATH} -tag final
write_sdc >${HANDOFF_PATH}/${DESIGN}.sdc
write_hdl > ${HANDOFF_PATH}/${DESIGN}.v
#write_design -innovus -base_name ${HANDOFF_PATH}/${DESIGN}
exit exit
# This script was written and developed by ABKGroup students at UCSD; however, the underlying commands and reports are copyrighted by Cadence. # This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators. # We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
source lib_setup.tcl
source design_setup.tcl
source mmmc_setup.tcl
setMultiCpuUsage -localCpu 16 setMultiCpuUsage -localCpu 16
set design ariane
set util 0.3 set util 0.3
set dir "../../../../../Enablements/NanGate45/" set netlist "./syn_handoff/$DESIGN.v"
set netlist "./gate/$design.v" set sdc "./syn_handoff/$DESIGN.sdc"
set sdc "../../constraints/$design.sdc"
set lef "${dir}/lef/NangateOpenCellLibrary.tech.lef \
${dir}/lef/NangateOpenCellLibrary.macro.mod.lef \
${dir}/lef/fakeram45_256x16.lef \
${dir}/lef/fakeram45_256x64.lef"
set wc_lib_list [list $dir/lib/NangateOpenCellLibrary_typical.lib $dir/lib/fakeram45_256x16.lib $dir/lib/fakeram45_256x64.lib]
set bc_lib_list [list $dir/lib/NangateOpenCellLibrary_typical.lib $dir/lib/fakeram45_256x16.lib $dir/lib/fakeram45_256x64.lib]
create_library_set -name WC_LIB -timing $wc_lib_list
create_library_set -name BC_LIB -timing $bc_lib_list
set site "FreePDK45_38x28_10R_NP_162NW_34O" set site "FreePDK45_38x28_10R_NP_162NW_34O"
set rptDir summaryReport/ set rptDir summaryReport/
...@@ -35,22 +27,12 @@ if {![file exists $encDir/]} { ...@@ -35,22 +27,12 @@ if {![file exists $encDir/]} {
set init_pwr_net VDD set init_pwr_net VDD
set init_gnd_net VSS set init_gnd_net VSS
create_rc_corner -name Cmax
create_rc_corner -name Cmin
create_delay_corner -name WC -library_set WC_LIB -rc_corner Cmax
create_delay_corner -name BC -library_set BC_LIB -rc_corner Cmin
create_constraint_mode -name CON -sdc_file [list $sdc]
create_analysis_view -name WC_VIEW -delay_corner WC -constraint_mode CON
create_analysis_view -name BC_VIEW -delay_corner BC -constraint_mode CON
# default settings # default settings
set init_verilog "$netlist" set init_verilog "$netlist"
set init_design_netlisttype "Verilog" set init_design_netlisttype "Verilog"
set init_design_settop 1 set init_design_settop 1
set init_top_cell "$design" set init_top_cell "$DESIGN"
set init_lef_file "$lef" set init_lef_file "$lefs"
# MCMM setup # MCMM setup
init_design -setup {WC_VIEW} -hold {BC_VIEW} init_design -setup {WC_VIEW} -hold {BC_VIEW}
...@@ -74,13 +56,16 @@ generateVias ...@@ -74,13 +56,16 @@ generateVias
createBasicPathGroups -expanded createBasicPathGroups -expanded
## Generate the floorplan ## ## Generate the floorplan ##
floorPlan -r 1.0 $util 10 10 10 10 #floorPlan -r 1.0 $util 10 10 10 10
defIn $floorplan_def
## Macro Placement ## ## Macro Placement ##
redirect mp_config.tcl {source gen_mp_config.tcl} #redirect mp_config.tcl {source gen_mp_config.tcl}
proto_design -constraints mp_config.tcl #proto_design -constraints mp_config.tcl
addHaloToBlock -allMacro 5 5 5 5
place_design -concurrent_macros
refine_macro_place refine_macro_place
saveDesign ${encDir}/${design}_floorplan.enc saveDesign ${encDir}/${DESIGN}_floorplan.enc
## Creating Pin Blcokage for lower and upper pin layers ## ## Creating Pin Blcokage for lower and upper pin layers ##
createPinBlkg -name Layer_1 -layer {metal2 metal3 metal9 metal10} -edge 0 createPinBlkg -name Layer_1 -layer {metal2 metal3 metal9 metal10} -edge 0
...@@ -97,10 +82,10 @@ setNanoRouteMode -drouteVerboseViolationSummary 1 ...@@ -97,10 +82,10 @@ setNanoRouteMode -drouteVerboseViolationSummary 1
setNanoRouteMode -routeWithSiDriven true setNanoRouteMode -routeWithSiDriven true
setNanoRouteMode -routeWithTimingDriven true setNanoRouteMode -routeWithTimingDriven true
setNanoRouteMode -routeExpUseAutoVia true setNanoRouteMode -routeExpUseAutoVia true
setPlaceMode -placeIoPins true #setPlaceMode -placeIoPins true
place_opt_design -out_dir $rptDir -prefix place place_opt_design -out_dir $rptDir -prefix place
saveDesign $encDir/${design}_placed.enc saveDesign $encDir/${DESIGN}_placed.enc
## Creating Pin Blcokage for lower and upper pin layers ## ## Creating Pin Blcokage for lower and upper pin layers ##
createPinBlkg -name Layer_1 -layer {metal2 metal3 metal9 metal10} -edge 0 createPinBlkg -name Layer_1 -layer {metal2 metal3 metal9 metal10} -edge 0
...@@ -119,8 +104,8 @@ setNanoRouteMode -routeExpUseAutoVia true ...@@ -119,8 +104,8 @@ setNanoRouteMode -routeExpUseAutoVia true
setPlaceMode -placeIoPins true setPlaceMode -placeIoPins true
place_opt_design -out_dir $rptDir -prefix place place_opt_design -out_dir $rptDir -prefix place
saveDesign $encDir/${design}_placed.enc saveDesign $encDir/${DESIGN}_placed.enc
defOut -netlist -floorplan ${design}_placed.def defOut -netlist -floorplan ${DESIGN}_placed.def
set_ccopt_property post_conditioning_enable_routing_eco 1 set_ccopt_property post_conditioning_enable_routing_eco 1
set_ccopt_property -cts_def_lock_clock_sinks_after_routing true set_ccopt_property -cts_def_lock_clock_sinks_after_routing true
...@@ -160,8 +145,8 @@ setNanoRouteMode -grouteExpWithTimingDriven false ...@@ -160,8 +145,8 @@ setNanoRouteMode -grouteExpWithTimingDriven false
routeDesign routeDesign
saveDesign ${encDir}/${design}_route.enc saveDesign ${encDir}/${DESIGN}_route.enc
defOut -netlist -floorplan -routing ${design}_route.def defOut -netlist -floorplan -routing ${DESIGN}_route.def
setDelayCalMode -reset setDelayCalMode -reset
setDelayCalMode -SIAware true setDelayCalMode -SIAware true
...@@ -169,15 +154,15 @@ setExtractRCMode -engine postRoute -coupled true -tQuantusForPostRoute false ...@@ -169,15 +154,15 @@ setExtractRCMode -engine postRoute -coupled true -tQuantusForPostRoute false
setAnalysisMode -analysisType onChipVariation -cppr both setAnalysisMode -analysisType onChipVariation -cppr both
# routeOpt # routeOpt
optDesign -postRoute -setup -hold -prefix postRoute -expandedViews #optDesign -postRoute -setup -hold -prefix postRoute -expandedViews
extractRC #extractRC
deselectAll deselectAll
selectNet -clock selectNet -clock
reportSelect > summaryReport/clock_net_length.post_route reportSelect > summaryReport/clock_net_length.post_route
deselectAll deselectAll
summaryReport -noHtml -outfile summaryReport/post_route.sum summaryReport -noHtml -outfile summaryReport/post_route.sum
saveDesign ${encDir}/${design}.enc saveDesign ${encDir}/${DESIGN}.enc
defOut -netlist -floorplan -routing ${design}.def defOut -netlist -floorplan -routing ${DESIGN}.def
exit exit
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment