123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- create_clock -name "clock_48" -period 20.834ns [get_ports {clock_48}]
- derive_pll_clocks
- create_clock -name "rtc_32khz" -period 30517.578ns [get_ports {rtc_32khz}]
- set_clock_groups -asynchronous -group {rtc_32khz}
- derive_clock_uncertainty
- set_false_path -to [get_registers sld_signaltap:*]
- set sdram_clk [get_clocks {pll3|*|clk[0]}]
- set sdram_out_clk [get_clocks {pll3|*|clk[1]}]
- set sys_clk [get_clocks {pll3|*|clk[2]}]
- set flash_clk [get_clocks {pll3|*|clk[3]}]
- set hdmi_clk [get_clocks {pll4|*|clk[0]}]
- set vid_clk [get_clocks {pll4|*|clk[1]}]
- set usb_clk [get_clocks {pll2|*|clk[0]}]
- set main_clocks [get_clocks {pll*|*|clk[*]}]
- create_generated_clock -name rst_n \
- -source [get_nets {pll3|*|*clk[2]}] \
- [get_registers rst_n]
- create_generated_clock -name hard_rst_n \
- -source [get_nets {pll3|*|*clk[2]}] \
- [get_registers hard_rst_n]
- set_clock_groups -asynchronous \
- -group $main_clocks \
- -group [get_clocks {rst_n hard_rst_n}]
- set synchro_inputs [get_registers *|synchronizer:*|qreg0*]
- set_multicycle_path -from [all_clocks] -to $synchro_inputs \
- -start -setup 2
- set_multicycle_path -from [all_clocks] -to $synchro_inputs \
- -start -hold 1
- set sr_data_out [remove_from_collection [get_ports sr_*] sr_clk]
- set sr_data_in [get_ports sr_dq\[*\]]
- set_max_skew -to $sr_data_out 0.100ns
- set_input_delay -clock $sdram_clk 0.500ns $sr_data_in
- set_multicycle_path -from [get_registers {dram_port:cpu_dram_port|rd[*]}] \
- -to $sys_clk -start -setup 3
- set_multicycle_path -from [get_registers {dram_port:cpu_dram_port|rd[*]}] \
- -to $sys_clk -start -hold 2
- set romcopy_datalen [get_registers \
- {spirom:*|datalen[*] spirom:*|cmdlen[*] spirom:*|spi_dual spirom:*|spi_more}]
- set_multicycle_path -from $romcopy_datalen -to $flash_clk -end -setup 2
- set_multicycle_path -from $romcopy_datalen -to $flash_clk -end -hold 1
- set romcopy_romcmd [get_registers {spirom:*|romcmd[*]}]
- set_multicycle_path -from $romcopy_romcmd -to $flash_clk -end -setup 3
- set_multicycle_path -from $romcopy_romcmd -to $flash_clk -end -hold 2
- set_multicycle_path -from [get_registers {spirom:*|spi_active}] \
- -to [get_registers {spirom:*|spi_out_shr[*]}] -end -setup 2
- set_multicycle_path -from [get_registers {spirom:*|spi_active}] \
- -to [get_registers {spirom:*|spi_out_shr[*]}] -end -hold 1
- set romcopy_input [get_registers {spirom:*|spi_in_shr[*]}]
- set_multicycle_path -from $romcopy_input -to $sys_clk -end -setup 2
- set_multicycle_path -from $romcopy_input -to $sys_clk -end -hold 1
- set_multicycle_path -from [get_keepers {fast_mem:fast_mem|*porta_we_reg*}] \
- -to [get_keepers {picorv32:cpu|*}] -start -setup 2
- set_multicycle_path -from [get_keepers {fast_mem:fast_mem|*porta_we_reg*}] \
- -to [get_keepers {picorv32:cpu|*}] -start -hold 1
|