## ------------------------------------------------------------------------------------------ ## ## 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