divctl.ss 1.77 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 CLK -period 16.0 -waveform {0 8.0}; \
	set_input_delay 14.0 -clock CLK all_inputs(); \
	set_output_delay 14.0 -clock CLK all_outputs(); \
	set_clock_skew -uncertainty 1 CLK; \
	fix_hold CLK; \
	dont_touch_network CLK; \
	set_driving_cell -cell in01d1  all_inputs(); \
	set_drive 0 {CLK}; \
	set_load 0.5 all_outputs(); \
	set_load 2 DivOut;"

/* read the verilog sources */

read -f verilog ../src/divctl.v

current_design = divctl

ungroup -flatten u_inc*
ungroup -flatten u_data_mux
ungroup -flatten u_delay*
dont_touch u_*
dont_touch_network RADDR[*]
dont_touch_network ROMCLK

max_fanout 16

set_default_operating_conditions
set_default_timing_constraints
max_area 6000

set_max_transition 2.0 current_design;

set_max_fanout 0.02 {Reset_l}

include divctl.con

link 

check_design > divctl.lint

compile -map_effort high

compile -map_effort high -incremental_mapping


report -reference > report/divctl.ref

report_area > report/divctl.area

report_constraint -all_violators > report/divctl.violators
report_timing -path full -delay max -max_paths 10 > report/divctl.full.paths
report_clock > report/divctl.clock
report -reference
report_constraint -all_violators

report_timing -path full -from VT*[15] -delay max -max_paths 2;
report_timing -path full -from OpCode[*] -delay max -max_paths 2;
report_timing -path full -from OpCodeValid -delay max -max_paths 2;
report_timing -path full -to RADDR[*] -delay max -max_paths 2;
report_timing -path full -delay max -max_paths 10;

report -net > divctl.rn

write -f edif -o divctl.edf -hier divctl
/* write -f verilog -o divctl.vsyn -hier divctl */

quit