lin-win-share/DA4008_V1.3/syn/scripts/run_post.tcl

155 lines
6.5 KiB
Tcl

## ------------------------------------------------------------------------------------------
##
## Copyright (c) 2018 ChipMotion, Inc.
## All rights reserved.
##
## ------------------------------------------------------------------------------------------
## Filename : run_post.tcl
## Department :
## Author :
## Keywords :
## Description :
##
## RELEASE HISTORY
## VERSION DATE AUTHOR DESCRIPTION
## v0_01 20200317 wenyi.Peng Initialized for QKD-SoC project
##
## ------------------------------------------------------------------------------------------
set hostname [sh hostname]
set starttime [clock seconds]
echo "INFORM: Job excuted on $hostname"
echo "INFORM: Start job at: " [clock format $starttime -gmt false]
#################################################################################################
##
## Pre Setup
##
#################################################################################################
set svars(top_design) "dapb_fcom_phy"
set svars(upf) "false"
set svars(scan) "true"
set svars(dir,syn) [pwd]
set svars(dir,run) $svars(dir,syn)/current
set svars(dir,inputs) $svars(dir,syn)/inputs
set svars(dir,outputs) $svars(dir,run)/outputs
set svars(dir,reports) $svars(dir,run)/reports
set svars(dir,logs) $svars(dir,run)/logs
set svars(rtl,path,work) $svars(dir,run)/SYN_LIB
set sh_command_log_file $svars(dir,run)/command_post.log
set sh_output_log_file $svars(dir,run)/run_post.log
source $svars(dir,scripts)/setup.utility.tcl
#source -e -v $svars(dir,scripts)/setup.dir.tcl
source -e -v $svars(dir,scripts)/setup.dc.tcl
source -e -v $svars(dir,scripts)/setup.lib.tcl
set_svf $svars(dir,outputs)/$svars(top_design).post.svf
define_design_lib work -path $svars(rtl,path,work)
#################################################################################################
##
## Create MW Library for DCT/DCG FLOW
##
#################################################################################################
if {[shell_is_in_topographical_mode]} {
source -e -v $svars(dir,scripts)/dct_config.tcl
source -e -v $svars(dir,scripts)/setup.physical.tcl
}
################################################################################################
##
## Read and Elaborate Design
##
#################################################################################################
#20190916: follow dc_ref settings
set_app_var dc_allow_rtl_pg true
analyze -lib work -format sverilog $svars(dir,outputs)/$svars(top_design).syn.v
elaborate $svars(top_design)
current_design $svars(top_design)
link
check_design > $svars(dir,reports)/post.check_design.rpt
#if {$svars(upf) == "true"} {
# load_upf > $svars(dir,logs)/load_upf.log
#}
source -e -v $svars(dir,inputs)/design.sdc > $svars(dir,logs)/read_sta_sdc.log
source -e -v $svars(dir,inputs)/sta.drc.sdc >> $svars(dir,logs)/read_sta_sdc.log
#source -e -v $svars(dir,scripts)/mbist.tcl > $svars(dir,logs)/read_sdc_mbist.log
#source -e -v $svars(dir,scripts)/opt_setup.tcl > $svars(dir,logs)/read_opt_setup.log
source -e -v $svars(dir,scripts)/group_path.tcl > $svars(dir,logs)/read_group_path.log
#20190916: follow dc_ref settings
source -e -v $svars(dir,scripts)/setup.addition.tcl > $svars(dir,logs)/read_addition_setup.log
if {[shell_is_in_topographical_mode]} {
extract_physical_constraints -exact -no_incremental -verbose > $svars(dir,logs)/read_def.log
} else {
# set_wire_load_model -name Zero
# set_wire_load_mode top
# set auto_wire_load_selection false
set auto_wire_load_selection true
}
propagate_constraints
update_timing
report_constraint -all_violators > $svars(dir,reports)/post.all_vios.summary.rpt
check_design > $svars(dir,reports)/post.check_design.rpt
check_timing > $svars(dir,reports)/post.check_timing.rpt
check_timing -multiple_clock > $svars(dir,reports)/post.check_timing.multiple_clock.rpt
report_qor > $svars(dir,reports)/post.qor.rpt
report_clock > $svars(dir,reports)/post.clock.rpt
report_clock_gating > $svars(dir,reports)/post.clock_gating.rpt
report_clock_tree -interclock_timing -summary > $svars(dir,reports)/post.clock_tree.rpt
report_timing -nets -capacitance -transition_time -max_path 10 > $svars(dir,reports)/post.timing.rpt
report_timing_requirements > $svars(dir,reports)/post.check_timing_requirements.rpt
#################################################################################################
##
## Summary
##
#################################################################################################
set endtime [clock seconds]
echo "INFORM: End job at: " [clock format $endtime -gmt false]
set hostname [sh hostname]
set pwd [pwd]
set runtime "[format %02d [expr ($endtime - $starttime)/3600]]:[format %02d [expr (($endtime - $starttime)%3600)/60]]:[format %02d [expr ((($endtime - $starttime))%3600)%60]]"
echo [format "%-15s %-2s %-70s" "" "" ""]
echo " ------------------------------------------------------------------------------------------"
echo [format "%-15s %-2s %-70s" " | Host" "|" "$hostname"]
echo [format "%-15s %-2s %-70s" " | Working Dir" "|" "$pwd"]
echo [format "%-15s %-2s %-70s" " | runtime" "|" "$runtime"]
alias rf report_timing -from
alias rt report_timing -to
#exit