OpenCores
URL https://opencores.org/ocsvn/fpga-cf/fpga-cf/trunk

Subversion Repositories fpga-cf

[/] [fpga-cf/] [trunk/] [hdl/] [boardsupport/] [ml403.ucf] - Rev 2

Compare with Previous | Blame | View Log

# The 4vfx60ff672-10 part is chosen for this example design.
# This value should be modified to match your device.
CONFIG PART = 4vfx12ff668-10;

NET "*tx_gmii_mii_clk_in_0_i"    TNM_NET = "clk_phy_tx_clk0";
TIMESPEC "TS_phy_tx_clk0"            = PERIOD "clk_phy_tx_clk0" 7400 ps HIGH 50 %;

NET "*tx_client_clk_in_0_i"      TNM_NET = "clk_client_tx_clk0";
TIMESPEC "TS_client_tx_clk0"            = PERIOD "clk_client_tx_clk0" 7200 ps HIGH 50 %;

NET "*rx_client_clk_in_0_i"      TNM_NET = "clk_client_rx_clk0";
TIMESPEC "TS_client_rx_clk0"            = PERIOD "clk_client_rx_clk0" 7200 ps HIGH 50 %;

NET "*mii_rx_clk_0_i"            TNM_NET = "clk_phy_rx_clk0";
TIMESPEC "TS_phy_rx_clk0"               = PERIOD "clk_phy_rx_clk0" 7200 ps HIGH 50 %;

NET "*host_clk_i"                TNM_NET = "host_clock";
TIMEGRP "clk_host"                      = "host_clock";
TIMESPEC "TS_clk_host"                  = PERIOD "clk_host" 10000 ps HIGH 50 %;

# Locate EMAC instance for timing closure
INST "*v4_emac"  LOC = "EMAC_X0Y0";


#################### EMAC 0 MII Constraints ########################
INST "*mii0?RXD_TO_MAC*"    IOB = true;
INST "*mii0?RX_DV_TO_MAC"   IOB = true;
INST "*mii0?RX_ER_TO_MAC"   IOB = true;

INST "mii_txd_0<?>"     IOSTANDARD = LVTTL;
INST "mii_tx_en_0"      IOSTANDARD = LVTTL;
INST "mii_tx_er_0"      IOSTANDARD = LVTTL;

INST "mii_rxd_0<?>"     IOSTANDARD = LVTTL;
INST "mii_rx_dv_0"      IOSTANDARD = LVTTL;
INST "mii_rx_er_0"      IOSTANDARD = LVTTL;

INST "mii_tx_clk_0"     IOSTANDARD = LVTTL;
INST "mii_rx_clk_0"     IOSTANDARD = LVTTL;

INST "mii_col_0"     IOSTANDARD = LVTTL;
INST "mii_crs_0"     IOSTANDARD = LVTTL;

INST "reset"     IOSTANDARD = LVTTL;
INST "phy_reset_0"     IOSTANDARD = LVTTL;
INST "hostclk"          IOSTANDARD = LVTTL;

INST "mii_txd_0<?>"     TNM = "sig_mii_tx_0";
INST "mii_tx_en_0"      TNM = "sig_mii_tx_0";
INST "mii_tx_er_0"      TNM = "sig_mii_tx_0";

INST "mii_rxd_0<?>"     TNM = "sig_mii_rx_0";
INST "mii_rx_dv_0"      TNM = "sig_mii_rx_0";
INST "mii_rx_er_0"      TNM = "sig_mii_rx_0";

# using recommended budget from the clause 22 
TIMEGRP "sig_mii_rx_0" OFFSET = IN 10 ns VALID 20 ns BEFORE "mii_rx_clk_0";
TIMEGRP "sig_mii_tx_0" OFFSET = OUT 15 ns AFTER "mii_tx_clk_0";


# Remove the following constraints if example design FIFOs are not used
# These constraints cover any clock domain crossing for metastability.
# Tx client FIFO:
INST "*client_side_FIFO_emac0?tx_fifo_i?wr_col_window_pipe_0" TNM = "tx_metastable";
INST "*client_side_FIFO_emac0?tx_fifo_i?wr_retran_frame_tog"  TNM = "tx_metastable";
INST "*client_side_FIFO_emac0?tx_fifo_i?wr_col_window_pipe_1" TNM = "tx_stable";
INST "*client_side_FIFO_emac0?tx_fifo_i?wr_retran_frame_sync" TNM = "tx_stable";

INST "*tx_fifo_i?wr_tran_frame_tog" TNM = "tx_metastable";
INST "*tx_fifo_i?frame_in_fifo_sync"  TNM = "tx_metastable";
INST "*tx_fifo_i?wr_txfer_tog"        TNM = "tx_metastable";
INST "*tx_fifo_i?wr_rd_addr*"         TNM = "tx_metastable";

INST "*tx_fifo_i?wr_tran_frame_sync"  TNM = "tx_stable";
INST "*tx_fifo_i?frame_in_fifo"       TNM = "tx_stable";
INST "*tx_fifo_i?wr_txfer_tog_sync"   TNM = "tx_stable";
INST "*tx_fifo_i?wr_addr_diff*"        TNM = "tx_stable";

TIMESPEC "TS_tx_meta_protect" = FROM "tx_metastable" TO "tx_stable" 5 ns;

# Rx client FIFO:

INST "*rx_fifo_i?rd_store_frame_tog"     TNM = "rx_metastable";
INST "*rx_fifo_i?wr_rd_addr_gray_sync*"  TNM = "rx_metastable";

INST "*rx_fifo_i?rd_store_frame_sync"    TNM = "rx_stable";
INST "*rx_fifo_i?wr_rd_addr_gray*"       TNM = "rx_stable";

TIMESPEC "TS_rx_meta_protect" = FROM "rx_metastable" TO "rx_stable" 5 ns;


# Location Constraints
# Receiver signals
INST "MII_RX_CLK_0"     LOC = "B15";
#INST "MII_RXD_0<7>"     LOC = "A3";
#INST "MII_RXD_0<6>"     LOC = "B3";
#INST "MII_RXD_0<5>"     LOC = "A4";
#INST "MII_RXD_0<4>"     LOC = "B4";
INST "MII_RXD_0<3>"     LOC = "C4";
INST "MII_RXD_0<2>"     LOC = "D4";
INST "MII_RXD_0<1>"     LOC = "E1";
INST "MII_RXD_0<0>"     LOC = "F1";
INST "MII_RX_DV_0"      LOC = "A9";
INST "MII_RX_ER_0"      LOC = "B9";

# Transmitter signals
#INST "MII_TXD_0<7>"     LOC = "G3";
#INST "MII_TXD_0<6>"     LOC = "H6";
#INST "MII_TXD_0<5>"     LOC = "H5";
#INST "MII_TXD_0<4>"     LOC = "G2";
INST "MII_TXD_0<3>"     LOC = "G1";
INST "MII_TXD_0<2>"     LOC = "H3";
INST "MII_TXD_0<1>"     LOC = "H2";
INST "MII_TXD_0<0>"     LOC = "H1";
INST "MII_TX_EN_0"      LOC = "F4";
INST "MII_TX_ER_0"      LOC = "F3";
INST "MII_TX_CLK_0"     LOC = "C15";

# Other Phy signals
INST "MII_COL_0"                        LOC = "E3";
INST "MII_CRS_0"                        LOC = "D5";
INST "PHY_RESET_0"              LOC = "D10";
#INST "SPEED_VECTOR_IN_0<0>" LOC = "";
#INST "SPEED_VECTOR_IN_0<1>" LOC = "";

# Other
INST "HOSTCLK"                          LOC = "AE14";
INST "RESET"                            LOC = "D6";

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.