mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
25 lines
1.2 KiB
Plaintext
25 lines
1.2 KiB
Plaintext
# UCF file for clock module domain crossing constraints
|
|
|
|
NET "phy_sgmii_txoutclk" TNM_NET = "txoutclk";
|
|
TIMESPEC "TS_txoutclk" = PERIOD "txoutclk" 8 ns HIGH 50 %;
|
|
|
|
NET "eth_pcspma/transceiver_inst/RXRECCLK" TNM_NET = "rxrecclk";
|
|
TIMESPEC "ts_rxrecclk" = PERIOD "rxrecclk" 8 ns;
|
|
|
|
# Identify clock domain crossing registers
|
|
INST "eth_pcspma/transceiver_inst/rx_elastic_buffer_inst/wr_addr_gray*" TNM = "wr_graycode";
|
|
INST "eth_pcspma/transceiver_inst/rx_elastic_buffer_inst/rd_addr_gray*" TNM = "rd_graycode";
|
|
|
|
# Control Gray Code delay and skew across clock boundary
|
|
TIMESPEC "ts_rx_skew_control1" = FROM "wr_graycode" TO "FFS" 14 ns DATAPATHONLY;
|
|
TIMESPEC "ts_rx_skew_control2" = FROM "rd_graycode" TO "FFS" 14 ns DATAPATHONLY;
|
|
|
|
# Constrain between Distributed Memory (output data) and the 1st set of flip-flops
|
|
INST "eth_pcspma/transceiver_inst/rx_elastic_buffer_inst/*rd_data*" TNM = "fifo_read";
|
|
TIMESPEC "ts_ram_read_false_path" = FROM "RAMS" TO "fifo_read" 6 ns DATAPATHONLY;
|
|
|
|
NET "clk_125mhz_int" TNM = "ffs_clk_125mhz_int";
|
|
NET "phy_sgmii_txoutclk" TNM = "ffs_sgmii_clk";
|
|
TIMESPEC "TS_clk_125mhz_int_to_sgmii_clk" = FROM "ffs_clk_125mhz_int" TO "ffs_sgmii_clk" 10 ns;
|
|
TIMESPEC "TS_sgmii_clk_to_clk_125mhz_int" = FROM "ffs_sgmii_clk" TO "ffs_clk_125mhz_int" 10 ns;
|