test_uart.sdc 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. # pio_begin
  2. if { ! [info exists ::HSI_PERIOD] } {
  3. set ::HSI_PERIOD 100.0
  4. }
  5. create_clock -name PIN_HSI -period $::HSI_PERIOD [get_ports PIN_HSI]
  6. set_clock_groups -asynchronous -group PIN_HSI
  7. if { ! [info exists ::HSE_PERIOD] } {
  8. set ::HSE_PERIOD 125.0
  9. }
  10. create_clock -name PIN_HSE -period $::HSE_PERIOD [get_ports PIN_HSE]
  11. set_clock_groups -asynchronous -group PIN_HSE
  12. derive_pll_clocks -create_base_clocks
  13. set_false_path -from rv32|resetn_out
  14. # pio_end
  15. ##
  16. set SYS_CLK [get_clocks pll_inst|*clk*0*]
  17. if { [get_clocks -nowarn pll_inst|*clk*3*] != {} } {
  18. set BUS_CLK [get_clocks pll_inst|*clk*3*]
  19. # Always make sure there is an extra cycle of margin for inter domain transfers between SYS_CLK
  20. # and BUS_CLK. The extra cycle is always in terms of the to (latching) clock.
  21. set_multicycle_path -from $SYS_CLK -to $BUS_CLK -setup 2
  22. set_multicycle_path -from $SYS_CLK -to $BUS_CLK -hold 1
  23. set_multicycle_path -from $BUS_CLK -to $SYS_CLK -setup 2
  24. set_multicycle_path -from $BUS_CLK -to $SYS_CLK -hold 1
  25. # These are for mem_ahb_hreadyout going into rv32, since it's ok for rv32 to receive
  26. # mem_ahb_hreadyout 1 cycle late. They theoretically should help useful skew.
  27. set_multicycle_path -from $SYS_CLK -to rv32 -setup 2
  28. set_multicycle_path -from $SYS_CLK -to rv32 -hold 1
  29. }