suotherctl.con 6.09 KB
set_input_delay 8.0 -clock clk {reset_l};
set_input_delay 3.0 -clock clk {halt};
set_input_delay 3.0 -clock clk {single_step};
set_input_delay 6.0 -clock clk {su_inst};

set_input_delay 9.5 -clock clk {kill_su_issue};
set_input_delay 9.5 -clock clk {kill_vu_issue};
set_input_delay 11.5 -clock clk {vu_reg_hazard_ls};
set_input_delay 11.5 -clock clk {vu_reg_hazard_comp};

set_input_delay 5.0 -clock clk {dma_dm_to_rd};
set_input_delay 5.0 -clock clk {dma_rd_to_dm};
set_input_delay 3.0 -clock clk {dma_imem_select};
set_input_delay 14.0 -clock clk {sushvamt};
set_input_delay 10.0 -clock clk {vu_comp};

set_input_delay 10.5 -clock clk {sualu_cout};
set_input_delay 10.0 -clock clk {sualu_ovr};
set_input_delay 11.0 -clock clk {sualumsb};
set_input_delay 2.0 -clock clk {suexasign};
set_input_delay 2.0 -clock clk {suexbsign};
set_input_delay 5.0 -clock clk {suonesdet_z};

set_output_delay -max 4.7 -clock clk {halting};
set_output_delay -max 14.0 -clock clk {imem_dma_pif};
set_output_delay -max 3.0 -clock clk {adv_ir};
set_output_delay -max 4.0 -clock clk {kill_re_non_vu};
set_output_delay -max 3.0 -clock clk {kill_re};
set_output_delay -max 13.5 -clock clk {ex_su_inst};
set_output_delay -max 9.5 -clock clk {taken};

set_output_delay -max 9.0 -clock clk {surf_ra}; 
set_output_delay -max 9.0 -clock clk {surf_rb}; 
set_output_delay -max 5.1 -clock clk {surdamux};
set_output_delay -max 4.8 -clock clk {surdbmux};
set_output_delay -max 5.8 -clock clk {suimmmux}; 
set_output_delay -max 5.2 -clock clk {suimmlsmux}; 
set_output_delay -max 5.8 -clock clk {suvulsoffsetmux};
 
set_output_delay -max 2.0 -clock clk {rd_base};		/* *** really must be 14.0 */
set_output_delay -max 4.0 -clock clk {ls_drive_rd_base};
set_output_delay -max 4.0 -clock clk {rd_offset};	/* *** really must be 12.0 */
set_output_delay -max 8.0 -clock clk {rd_elem_num};
set_output_delay -max 1.0 -clock clk {vu_rd_ld_dec_k}; /* *** Must be changed in suctl, su, ls, lsctl constraints */
set_output_delay -max 1.0 -clock clk {vu_rd_st_dec_k}; /* *** Must be changed in suctl, su, ls, lsctl constraints */

set_output_delay -max 4.0 -clock clk {set_broke};
remove_output_delay -clock clk {break_inst_debug};

set_output_delay -max 14.0 -clock clk {sualuamux}; 
set_output_delay -max 14.0 -clock clk {sualubmux};
set_output_delay -max 10.0 -clock clk {sushamux};
set_output_delay -max 10.0 -clock clk {sushbmux};
set_output_delay -max 15.0 -clock clk {sudrivels};
set_output_delay -max 8.0 -clock clk {suslten}; 
set_output_delay -max 3.5 -clock clk {susltlt}; 	/* *** really must be 12.5 */
set_output_delay -max 8.0 -clock clk {sualuen};
set_output_delay -max 14.0 -clock clk {sualu};
set_output_delay -max 14.0 -clock clk {sualu_cin};
set_output_delay -max 11.15 -clock clk {shiftamt};

set_output_delay -max 14.0 -clock clk {su_ex_store};
set_output_delay -max 14.0 -clock clk {su_ex_load};
set_output_delay -max 14.0 -clock clk {vu_ex_store};
set_output_delay -max 14.0 -clock clk {vu_ex_load};
set_output_delay -max 14.0 -clock clk {ex_mfc2};
set_output_delay -max 14.0 -clock clk {ex_mtc2};
set_output_delay -max 14.0 -clock clk {ex_cfc2};
set_output_delay -max 14.0 -clock clk {ex_su_byte_ls};
set_output_delay -max 14.0 -clock clk {ex_su_half_ls};
set_output_delay -max 14.0 -clock clk {ex_su_uns_ls};
set_output_delay -max 7.0 -clock clk {chip_sel}; 

set_output_delay -max 14.0 -clock clk {df_ls_drive_ls_in_wb};
set_output_delay -max 14.0 -clock clk {df_pass_thru}; 

set_output_delay -max 5.0 -clock clk {surf_w};
set_output_delay -max 13.5 -clock clk {surf_wen}; 
set_output_delay -max 8.0 -clock clk {suwben}; 

set_output_delay -max 2.0 -clock clk {vu_comp_k};

set_output_delay -max 14.0 -clock clk {cp0_address};
set_output_delay -max 14.0 -clock clk {cp0_write}; 
set_output_delay -max 10.0 -clock clk {cp0_enable}; 
set_output_delay -max 14.0 -clock clk {ex_mfc0};

set_output_delay -max 13.0 -clock clk {imem_dma_cycle};

set_load 0 break_inst_debug

/*** to sudp ***/
set_load .40 {surf_ra}; 
set_load .40 {surf_rb}; 
set_load .85 {surdamux};
set_load .80 {surdbmux};
set_load .50 {suimmmux}; 
set_load .55 {suimmlsmux}; 
set_load .65 {suvulsoffsetmux};

set_load .40 {surf_w};
set_load .40 {surf_wen}; 
set_load .80 {suwben}; 

set_load .40 {sualuamux}; 
set_load .40 {sualubmux};
set_load .30 {sushamux};
set_load .30 {sushbmux};
set_load .90 {sudrivels};
set_load .35 {suslten}; 
set_load .20 {susltlt}; 
set_load .40 {sualuen};
set_load .45 {sualu};
set_load .35 {shiftamt};
set_load .40 {sualu_cin};

/* */
 
set_load .35 {rd_base};
set_load .35 {ls_drive_rd_base};
set_load .35 {rd_offset};
set_load .35 {rd_elem_num};
set_load .35 {vu_rd_ld_dec_k};
set_load .35 {vu_rd_st_dec_k};

set_load .70 {set_broke};

set_load .45 {su_ex_store};
set_load .45 {su_ex_load};
set_load .45 {vu_ex_store};
set_load .45 {vu_ex_load};
set_load .70 {ex_mfc2};
set_load .70 {ex_mtc2};
set_load .45 {ex_cfc2};
set_load .70 {ex_su_byte_ls};
set_load .70 {ex_su_half_ls};
set_load .70 {ex_su_uns_ls};
set_load .45 {chip_sel};
set_load .45 {df_ls_drive_ls_in_wb};
set_load .70 {df_pass_thru};

set_load 2.3 {vu_comp_k};

set_load .70 {cp0_address}; 
set_load 1.75 {cp0_write}; 
set_load .40 {cp0_enable}; 
set_load 1.7 {ex_mfc0};
set_load .70 {imem_dma_cycle};

group_path -name non_diff_group -to all_outputs();
group_path -default -to {vu_comp_k, adv_ir, kill_re, surdamux, surdbmux, vu_rd_ld_dec_k, vu_rd_st_dec_k, ls_drive_rd_base, susltlt, rd_offset, rd_base, sudrivels}
group_path -name offset_group -to {vu_rd_ld_dec_k, vu_rd_st_dec_k, ls_drive_rd_base, susltlt, rd_offset, sudrivels};
group_path -name base_group  -to {rd_base};
group_path -name drive_group  -to {sudrivels};
group_path -name rd_mux_group  -to {surdamux, surdbmux};
group_path -name k_group  -to {vu_comp_k};
group_path -name adv_group  -to {adv_ir, halting}
group_path -name kill_re_group -to {kill_re}


/*
group_path -name offset_group -weight 90 -to {vu_rd_ld_dec_k, vu_rd_st_dec_k, ls_drive_rd_base, susltlt, rd_offset, rd_base};
group_path -name rd_mux_group -weight 85 -to {surdamux, surdbmux};
group_path -name k_group -weight 85 -to {vu_comp_k};
group_path -name adv_group -weight 100 -to {adv_ir, halting}
group_path -name kill_re_group -weight 95 -to {kill_re}
*/