mempool_tile_wrap.sdc 2.65 KB
Newer Older
1 2 3
set sdc_version 2.0
set_units -time ns -resistance kOhm -capacitance fF -power mW -voltage V -current uA

4
set clock_cycle 6.8
5 6 7 8 9 10 11 12 13
set uncertainty 0.08
set io_delay 0
set maxFanout 16
set maxTransition 0.040
set pre_cts_clock_latency_estimate 0.070
set clock_port_mempool_tile clk_i

create_clock -name clk_i -period $clock_cycle [get_ports $clock_port_mempool_tile]
set_clock_uncertainty $uncertainty [all_clocks]
14 15 16
#set_input_delay -clock [get_clocks clk_i] -add_delay -max $io_delay [get_ports * -filter "direction==in && is_on_clock_network==false"]
#set_output_delay -clock [get_clocks clk_i] -add_delay -max $io_delay [get_ports * -filter "direction==out && is_on_clock_network==false"]
#set_max_transition $maxTransition -clock_path [get_clocks clk_i]
17 18 19 20 21 22
set_clock_latency $pre_cts_clock_latency_estimate [get_clocks clk_i]
#set_propagated_clock [get_clocks clk_i]


# Create virtual clock.
create_clock -name "vclk_i" -period $clock_cycle
sakundu committed
23
set_clock_uncertainty $uncertainty [get_clocks vclk_i]
24 25 26 27 28 29 30 31 32 33 34 35 36
set_clock_latency $pre_cts_clock_latency_estimate [get_clocks vclk_i]
set_max_transition $maxTransition -clock_path [get_clocks vclk_i]


set_case_analysis 0 [get_ports scan_enable_i]
set_max_fanout $maxFanout [current_design]



# False path some of the quasi-static signals.
set_false_path -from tile_id_i

# TCDM Master
sakundu committed
37 38
set_input_delay  [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_inputs]  "name =~ tcdm_master_*req_*"] 
set_output_delay [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_outputs] "name =~ tcdm_master_*req_*"]
39

sakundu committed
40 41
set_input_delay  [expr 0.65*$clock_cycle] -clock vclk_i [filter_collection [all_inputs]  "name =~ tcdm_master_*resp_*"] 
set_output_delay [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_outputs] "name =~ tcdm_master_*resp_*"]
42 43

# TCDM Slave
sakundu committed
44 45
set_input_delay  [expr 0.65*$clock_cycle] -clock vclk_i [filter_collection [all_inputs]  "name =~ tcdm_slave_*req_*"] 
set_output_delay [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_outputs] "name =~ tcdm_slave_*req_*"]
46

sakundu committed
47 48
set_input_delay  [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_inputs]  "name =~ tcdm_slave_*resp_*"] 
set_output_delay [expr 0.85*$clock_cycle] -clock vclk_i [filter_collection [all_outputs] "name =~ tcdm_slave_*resp_*"]
49 50

# Refill port
sakundu committed
51 52
#set_input_delay  [expr 0.50*$clock_cycle] -clock vclk_i [filter_collection [all_inputs]  "name =~ refill_*"] 
#set_output_delay [expr 0.50*$clock_cycle] -clock vclk_i [filter_collection [all_outputs] "name =~ refill_*"]
53 54 55 56 57 58

# Reset
set_input_delay  [expr 0.30*$clock_cycle] -clock vclk_i rst_ni

# Critical range
# Depending on the synthesis tool used, this can be helpful.
sakundu committed
59
#set_critical_range 0.100 [current_design]