regfile_decode.ss 2.89 KB
/* setup aliases */

alias set_default_operating_conditions "set_operating_conditions NOM -library rcp.db; \
				        set_wire_load 128000 -mode top;"

alias set_default_timing_constraints   "create_clock -name clk -period 14.0 -waveform {0 7.0}; \
					set_input_delay 6.0 -clock clk all_inputs(); \
					set_output_delay -max 7.0 -clock clk all_outputs(); \
					set_driving_cell -cell in01d1  all_inputs(); \
					set_load 1.0 all_outputs();"

/* setup the search path for includes */
search_path = search_path + "../src"

/* read the verilog sources */

read -f verilog ../../rsp/src/regfile_decode.v

current_design = regfile_decode

set_default_operating_conditions
set_default_timing_constraints

set_max_transition 2.0 current_design;

set_dont_touch  address_buf2
set_dont_touch  address_buf1
set_dont_touch  address_bufcopy2
set_dont_touch  address_bufcopy1

set_dont_touch  rf_decode_1ststg

set_dont_touch  rf_decode_0to6
set_dont_touch  rf_decode_1to7
set_dont_touch  rf_decode_8to14
set_dont_touch  rf_decode_9to15
set_dont_touch  rf_decode_16to22
set_dont_touch  rf_decode_17to23
set_dont_touch  rf_decode_24to30
set_dont_touch  rf_decode_25to31

link 

check_design > regfile_decode.lint

compile -map_effort high -ungroup_all

compile -map_effort high -ungroup_all

report -reference > report/regfile_decode.ref

report_constraint -all_violators > report/regfile_decode.violators

report_timing -path full -delay max -max_paths 10 > report/regfile_decode.full.paths

report_timing -from {rNum[0],rNum[1]} -path full -delay max -max_paths 10 > report/regfile_decode.full.paths.01

write -f edif -o regfile_decode.edf -hier regfile_decode

remove_attribute find(cell, "address_buf2") dont_touch
remove_attribute find(cell, "address_buf1") dont_touch

remove_attribute find(cell, "address_bufcopy2") dont_touch
remove_attribute find(cell, "address_bufcopy1") dont_touch

remove_attribute find(cell, "rf_decode_1ststg") dont_touch

remove_attribute find(cell, "rf_decode_0to6") dont_touch
remove_attribute find(cell, "rf_decode_1to7") dont_touch
remove_attribute find(cell, "rf_decode_8to14") dont_touch
remove_attribute find(cell, "rf_decode_9to15") dont_touch
remove_attribute find(cell, "rf_decode_16to22") dont_touch
remove_attribute find(cell, "rf_decode_17to23") dont_touch
remove_attribute find(cell, "rf_decode_24to30") dont_touch
remove_attribute find(cell, "rf_decode_25to31") dont_touch

compile -map_effort high -ungroup_all -incremental_mapping -boundary_optimization

compile -map_effort high -ungroup_all -incremental_mapping -boundary_optimization

report -reference > report/regfile_decode1.ref

report_constraint -all_violators > report/regfile_decode1.violators

report_timing -path full -delay max -max_paths 10 > report/regfile_decode1.full.paths

report_timing -from {rNum[0],rNum[1]} -path full -delay max -max_paths 10 > report/regfile_decode1.full.paths.01

write -f edif -o regfile_decode1.edf -hier regfile_decode


quit