run_genus.tcl 2.5 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
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
sakundu committed
10

11 12 13 14 15 16 17
if {![file exists ${OUTPUTS_PATH}]} {
  file mkdir ${OUTPUTS_PATH}
}

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

45 46 47 48
source rtl_list.tcl

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

51 52
elaborate $DESIGN
time_info Elaboration
53

54 55
read_sdc $sdc
init_design
sakundu committed
56

57
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 70 71 72
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

sakundu committed
73
syn_map
74 75 76 77 78
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
sakundu committed
79

80 81 82
syn_opt
time_info OPT 
write_db ${OUTPUTS_PATH}/${DESIGN}_opt.db
sakundu committed
83

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
##############################################################################
# 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
100 101

exit
102