run_genus.tcl 2.55 KB
Newer Older
1
# This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence. 
sakundu committed
2
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
3 4 5 6 7 8 9 10 11 12 13
source lib_setup.tcl
source design_setup.tcl

# set the output directories
set OUTPUTS_PATH  syn_output
set REPORTS_PATH  syn_rpt
set HANDOFF_PATH  syn_handoff

if {![file exists ${OUTPUTS_PATH}]} {
  file mkdir ${OUTPUTS_PATH}
}
sakundu committed
14

15 16 17
if {![file exists ${REPORTS_PATH}]} {
  file mkdir ${REPORTS_PATH}
}
sakundu committed
18

19 20 21 22 23 24 25 26
if {![file exists ${HANDOFF_PATH}]} {
  file mkdir ${HANDOFF_PATH}
}
#
# set threads
set_db max_cpus_per_server 16
set_db super_thread_servers "localhost"
#
sakundu committed
27 28 29 30 31 32 33
set list_lib "$libworst"

# Target library
set link_library $list_lib
set target_library $list_lib

# set path
sakundu committed
34 35
set_db hdl_flatten_complex_port true
set_db hdl_record_naming_style  %s_%s
sakundu committed
36
set_db auto_ungroup none
sakundu committed
37 38 39 40

set_db library $list_lib


41 42 43
#################################################
# Load Design and Initialize
#################################################
sakundu committed
44

sakundu committed
45 46 47
source rtl_list.tcl

foreach rtl_file $rtl_all {
48
    read_hdl -sv $rtl_file
sakundu committed
49 50
}

51 52 53 54 55 56 57
elaborate $DESIGN
time_info Elaboration

read_sdc $sdc
init_design

check_design -unresolved
sakundu committed
58

59 60 61
check_timing_intent
# reports the physical layout estimation report from lef and QRC tech file
report_ple > ${REPORTS_PATH}/ple.rpt 
sakundu committed
62

63 64
# keep hierarchy during synthesis
set_db auto_ungroup none
sakundu committed
65 66

syn_generic
67 68 69
time_info GENERIC

# generate a summary for the current stage of synthesis
sakundu committed
70
write_hdl -generic > ${HANDOFF_PATH}/${DESIGN}_generic.v
71 72 73
write_reports -directory ${REPORTS_PATH} -tag generic
write_db  ${OUTPUTS_PATH}/${DESIGN}_generic.db

sakundu committed
74
syn_map
75
time_info MAPPED
sakundu committed
76

77 78 79
# generate a summary for the current stage of synthesis
write_reports -directory ${REPORTS_PATH} -tag map
write_db  ${OUTPUTS_PATH}/${DESIGN}_map.db
sakundu committed
80

81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
syn_opt
time_info OPT 
write_db ${OUTPUTS_PATH}/${DESIGN}_opt.db

##############################################################################
# Write reports
##############################################################################

# 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}
sakundu committed
101 102

exit
103