ewras.ss 3.54 KB

/* setup aliases */

alias set_default_operating_conditions "set_operating_conditions NOM -library rcp.db; \
				        set_wire_load 256000 -mode top;"
alias set_default_timing_constraints "create_clock gclk -period 16.0 -waveform {0.0 8.0}; \
				      set_input_delay 4.0 -clock gclk all_inputs(); \
				      set_output_delay 2.0 -clock gclk all_outputs(); \
				      set_max_delay 3.0 -to all_outputs(); \
				      set_load 0.2 all_outputs();"

/* read the verilog sources */

read -f verilog ../src/adder27bi.v
read -f verilog ../src/ewx.v

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

read -f verilog ../src/ewscy.v
read -f verilog ../src/ewscyinc14b.v

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

set_dont_touch adder27bi

current_design = ewras

link 

check_design > ewras.lint

set_default_operating_conditions
create_clock gclk -period 16.0 -waveform {0.0 8.0}
set_max_transition 1.5 current_design
set_clock_skew -uncertainty 1 gclk
fix_hold gclk
/* clocks */
set_drive 0 {gclk, reset_l}
set_dont_touch_network {gclk}
/* inputs */
set_input_delay 12.0 -clock gclk {cs_ew_d[*]}
set_input_delay 4.0 -clock gclk {switch_xl}
set_input_delay 4.0 -clock gclk {ld_xmh}
set_input_delay 4.0 -clock gclk {ld_dxmdy, ld_dxhdy}
set_input_delay 4.0 -clock gclk {ld_dxldy}
set_input_delay 2.0 -clock gclk {scbox_xmax[*], scbox_xmin[*],scbox_ymax[*], scbox_ymin[*]}
set_input_delay 2.0 -clock gclk {sc_field}
set_input_delay 1.3 -clock gclk {sel_xval}
set_input_delay 4.0 -clock gclk {ld_xmajor}
set_input_delay 4.0 -clock gclk {clear_allxgemax}
set_input_delay 1.3 -clock gclk {clear_xminor}
set_input_delay 2.0 -clock gclk {left_xminor}
set_input_delay 2.0 -clock gclk {left_xmajor}
set_input_delay 3.5 -clock gclk {cmp_cross_valid}
set_input_delay 6.0 -clock gclk {ew_stall_x}
set_input_delay 4.0 -clock gclk {ld_y}
set_input_delay 6.0 -clock gclk {count_y}
set_input_delay 1.3 -clock gclk {shift_xval}
set_input_delay 2.0 -clock gclk {load_cmd_scissor}
set_input_delay 5.0 -clock gclk {flush}
set_input_delay 3.0 -clock gclk {cmp_cross_valid}
/* driving cells */
set_driving_cell  -cell mx21d1  {cs_ew_d[*]}
set_driving_cell  -cell an03d1  {switch_xl}
set_driving_cell  -cell or02d1  {ld_xmh}
set_driving_cell  -cell or02d1  {ld_dxmdy, ld_dxhdy}
set_driving_cell  -cell nr05d1  {ld_dxldy}
set_driving_cell  -cell dfntnb  {scbox_xmax[*], scbox_xmin[*],scbox_ymax[*], scbox_ymin[*]}
set_driving_cell  -cell dfntnb  {sc_field}
set_driving_cell  -cell dfntnb  {sel_xval}
set_driving_cell  -cell mx21d1  {ld_xmajor}
set_driving_cell  -cell nr04d1  {clear_allxgemax}
set_driving_cell  -cell dfntnb  {clear_xminor}
set_driving_cell  -cell dfntnb  {left_xminor}
set_driving_cell  -cell dfntnh  {ew_stall_x}
set_driving_cell  -cell nr05d1  {ld_y}
set_driving_cell  -cell or02d1  {count_y}
set_driving_cell  -cell dfntnb  {shift_xval}
set_driving_cell  -cell dfntnb  {load_cmd_scissor}
set_driving_cell  -cell dfntnb  {flush}
/* outputs */
set_output_delay 10.0 -clock gclk {ew_cv_d[*]}
set_output_delay 10.0 -clock gclk {allxlmin, allxgemax}
set_output_delay 12.0 -clock gclk {x_major[*], x_minor[*]}
set_output_delay 14.0 -clock gclk {x_sc_max[*], x_sc_min[*]}
set_output_delay 10.0 -clock gclk {x_sc_major[*], x_frac[*]}
set_output_delay 5.0 -clock gclk {equal_ym}
set_output_delay 2.5 -clock gclk {end_prim_y}
set_output_delay 10.0 -clock gclk {allx_invalid}
set_output_delay 13.0 -clock gclk {y_dither}

set_load 0.08 all_outputs()
set_load 0.5 {y_dither[*]}

/* set_dont_use find(cell, "ne35hd130d/*1h") */

compile -map_effort high -ungroup_all

report -reference

report_constraint -all_violators

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

quit