blob: d86e402aaefa7e7e8c76bda0df594df2a0af42c5 [file] [log] [blame]
###############################################################################
# Created by write_sdc
# Tue Dec 27 17:35:03 2022
###############################################################################
current_design icache
###############################################################################
# Timing Constraints
###############################################################################
create_clock -name i_clk -period 10.0000 [get_ports {i_clk}]
set_clock_transition 0.1500 [get_clocks {i_clk}]
set_clock_uncertainty 0.2500 i_clk
set_propagated_clock [get_clocks {i_clk}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {i_rst}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[0]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[10]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[11]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[12]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[13]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[14]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[15]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[1]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[2]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[3]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[4]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[5]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[6]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[7]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[8]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_addr[9]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_cache_flush}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_ppl_submit}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_req}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_ack}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_err}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[0]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[10]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[11]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[12]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[13]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[14]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[15]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[1]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[2]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[3]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[4]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[5]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[6]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[7]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[8]}]
set_input_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_i_dat[9]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_ack}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[0]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[10]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[11]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[12]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[13]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[14]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[15]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[16]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[17]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[18]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[19]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[1]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[20]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[21]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[22]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[23]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[24]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[25]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[26]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[27]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[28]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[29]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[2]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[30]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[31]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[3]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[4]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[5]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[6]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[7]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[8]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {mem_data[9]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[0]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[10]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[11]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[12]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[13]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[14]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[15]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[1]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[2]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[3]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[4]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[5]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[6]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[7]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[8]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_adr[9]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_cyc}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_sel[0]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_sel[1]}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_stb}]
set_output_delay 2.0000 -clock [get_clocks {i_clk}] -add_delay [get_ports {wb_we}]
###############################################################################
# Environment
###############################################################################
set_load -pin_load 0.0334 [get_ports {mem_ack}]
set_load -pin_load 0.0334 [get_ports {wb_cyc}]
set_load -pin_load 0.0334 [get_ports {wb_stb}]
set_load -pin_load 0.0334 [get_ports {wb_we}]
set_load -pin_load 0.0334 [get_ports {mem_data[31]}]
set_load -pin_load 0.0334 [get_ports {mem_data[30]}]
set_load -pin_load 0.0334 [get_ports {mem_data[29]}]
set_load -pin_load 0.0334 [get_ports {mem_data[28]}]
set_load -pin_load 0.0334 [get_ports {mem_data[27]}]
set_load -pin_load 0.0334 [get_ports {mem_data[26]}]
set_load -pin_load 0.0334 [get_ports {mem_data[25]}]
set_load -pin_load 0.0334 [get_ports {mem_data[24]}]
set_load -pin_load 0.0334 [get_ports {mem_data[23]}]
set_load -pin_load 0.0334 [get_ports {mem_data[22]}]
set_load -pin_load 0.0334 [get_ports {mem_data[21]}]
set_load -pin_load 0.0334 [get_ports {mem_data[20]}]
set_load -pin_load 0.0334 [get_ports {mem_data[19]}]
set_load -pin_load 0.0334 [get_ports {mem_data[18]}]
set_load -pin_load 0.0334 [get_ports {mem_data[17]}]
set_load -pin_load 0.0334 [get_ports {mem_data[16]}]
set_load -pin_load 0.0334 [get_ports {mem_data[15]}]
set_load -pin_load 0.0334 [get_ports {mem_data[14]}]
set_load -pin_load 0.0334 [get_ports {mem_data[13]}]
set_load -pin_load 0.0334 [get_ports {mem_data[12]}]
set_load -pin_load 0.0334 [get_ports {mem_data[11]}]
set_load -pin_load 0.0334 [get_ports {mem_data[10]}]
set_load -pin_load 0.0334 [get_ports {mem_data[9]}]
set_load -pin_load 0.0334 [get_ports {mem_data[8]}]
set_load -pin_load 0.0334 [get_ports {mem_data[7]}]
set_load -pin_load 0.0334 [get_ports {mem_data[6]}]
set_load -pin_load 0.0334 [get_ports {mem_data[5]}]
set_load -pin_load 0.0334 [get_ports {mem_data[4]}]
set_load -pin_load 0.0334 [get_ports {mem_data[3]}]
set_load -pin_load 0.0334 [get_ports {mem_data[2]}]
set_load -pin_load 0.0334 [get_ports {mem_data[1]}]
set_load -pin_load 0.0334 [get_ports {mem_data[0]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[15]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[14]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[13]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[12]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[11]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[10]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[9]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[8]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[7]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[6]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[5]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[4]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[3]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[2]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[1]}]
set_load -pin_load 0.0334 [get_ports {wb_adr[0]}]
set_load -pin_load 0.0334 [get_ports {wb_sel[1]}]
set_load -pin_load 0.0334 [get_ports {wb_sel[0]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {i_clk}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {i_rst}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_cache_flush}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_ppl_submit}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_req}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_ack}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_err}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[15]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[14]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[13]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[12]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[11]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[10]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[9]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[8]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[7]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[6]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[5]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[4]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[3]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[2]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[1]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {mem_addr[0]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[15]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[14]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[13]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[12]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[11]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[10]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[9]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[8]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[7]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[6]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[5]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[4]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[3]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[2]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[1]}]
set_driving_cell -lib_cell sky130_fd_sc_hd__inv_2 -pin {Y} -input_transition_rise 0.0000 -input_transition_fall 0.0000 [get_ports {wb_i_dat[0]}]
set_timing_derate -early 0.9500
set_timing_derate -late 1.0500
###############################################################################
# Design Rules
###############################################################################
set_max_fanout 10.0000 [current_design]