# Global timing constraints
NET "clk_pin" TNM_NET = clk_pin;
TIMESPEC TS_clk_pin = PERIOD "clk_pin" 37.037 ns HIGH 50%;
OFFSET = IN 15 ns VALID 20 ns BEFORE "clk_pin" RISING;
OFFSET = OUT 15 ns AFTER "clk_pin";

# Path specific timing constraints
NET "spi_clk_pin" OFFSET = OUT 15 ns AFTER "clk_pin" RISING;
NET "spi_clk_pin" OFFSET = OUT 15 ns AFTER "clk_pin" FALLING;
INST "cmd_parse_i0/send_resp_data_0" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_1" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_2" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_3" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_4" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_5" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_6" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_7" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_8" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_9" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_10" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_11" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_12" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_13" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_14" TNM = TNM_send_resp_data;
INST "cmd_parse_i0/send_resp_data_15" TNM = TNM_send_resp_data;
INST "resp_gen_i0/to_bcd_i0/bcd_out_0" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_1" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_2" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_3" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_4" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_5" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_6" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_7" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_8" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_9" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_10" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_11" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_12" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_13" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_14" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_15" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_16" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_17" TNM = TNM_to_bcd_flops;
INST "resp_gen_i0/to_bcd_i0/bcd_out_18" TNM = TNM_to_bcd_flops;
TIMESPEC TS_to_bcd = FROM "TNM_send_resp_data" TO "TNM_to_bcd_flops" TS_clk_gen_i0_clk_core_i0_clk0 * 2;
INST "uart_rx_i0/uart_rx_ctl_i0" TNM = TNM_uart_rx_ctl;
INST "uart_tx_i0/uart_tx_ctl_i0" TNM = TNM_uart_tx_ctl;
NET "clk_samp" TNM_NET = TNM_clk_samp;
TIMESPEC TS_uart_rx_ctl = FROM "TNM_uart_rx_ctl" TO "TNM_uart_rx_ctl" TS_clk_gen_i0_clk_core_i0_clk0 * 54;
TIMESPEC TS_uart_tx_ctl = FROM "TNM_uart_tx_ctl" TO "TNM_uart_tx_ctl" TS_clk_gen_i0_clkout_fx * 54;
TIMESPEC TS_clk_samp = FROM "TNM_clk_samp" TO "TNM_clk_samp" TS_clk_gen_i0_clkout_fx * 32;
NET "clkx_nsamp_i0/meta_harden_bus_new_i0/signal_meta" MAXDELAY = 2 ns;
NET "clkx_pre_i0/meta_harden_bus_new_i0/signal_meta" MAXDELAY = 2 ns;
NET "clkx_spd_i0/meta_harden_bus_new_i0/signal_meta" MAXDELAY = 2 ns;
NET "lb_ctl_i0/debouncer_i0/meta_harden_signal_in_i0/signal_meta" MAXDELAY = 2 ns;
NET "samp_gen_i0/meta_harden_samp_gen_go_i0/signal_meta" MAXDELAY = 2 ns;
NET "uart_rx_i0/meta_harden_rxd_i0/signal_meta" MAXDELAY = 2 ns;
NET "clk_rx" TNM_NET = TNM_clk0;
NET "clk_gen_i0/clkout_fx" TNM_NET = TNM_clkfx;
TIMESPEC TS_clk0_to_clkfx = FROM "TNM_clk0" TO "TNM_clkfx" 5 ns DATAPATHONLY;
TIMESPEC TS_clkfx_to_clk0 = FROM "TNM_clkfx" TO "TNM_clk0" 5 ns DATAPATHONLY;

