BECKHOFF EtherCAT IP Core for Altera FPGAs v3.0.10 User Manual

Page 139

Advertising
background image

Synthesis Constraints

Slave Controller

– IP Core for Altera FPGAs

III-127

Example Design Constraints File (SDC)

## Constraints for EL9800_DIGI_EP3C25
#
set_time_format -unit ns -decimal_places 3

# Clocks defintion:
create_clock -period 40 -name MII_RX_CLK [get_ports MII_RX_CLK* ]
create_clock -period 40 -name REF_CLK [get_ports REF_CLK ]
create_clock -period 80 -name DIGI_CLK [get_pins

{ETHERCAT_INST|EtherCAT_IPCore_inst|\PDI_DIGI_INST:PDI_INST|NRESET_PDI_SELECT_REG|q}]


derive_pll_clocks
derive_clock_uncertainty

# constraining MII ports
set_input_delay -clock { MII_RX_CLK } 20 [get_ports MII_RX_DATA*]
set_input_delay -clock { MII_RX_CLK } 20 [get_ports MII_RX_DV*]
set_input_delay -clock { MII_RX_CLK } 20 [get_ports MII_RX_ERR*]
set_input_delay -clock { PLL_INST|altpll_component|auto_generated|pll1|clk[0] } 5 [get_ports

nMII_LINK* ]

set_input_delay -clock { PLL_INST|altpll_component|auto_generated|pll1|clk[1] } 5 [get_ports

MII_TX_CLK*]


set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_ports {MII_TX_ENA* MII_TX_DATA*}] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_ports {MII_TX_ENA* MII_TX_DATA*}] 8

set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {LINK_ACT*}] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {LINK_ACT*}] 15


set_false_path -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_clocks {MII_RX_CLK}]

set_false_path -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_clocks {MII_RX_CLK}]

set_false_path -from [get_clocks {MII_RX_CLK}] -to [get_clocks

{PLL_INST|altpll_component|auto_generated|pll1|clk[0]}]

set_false_path -from [get_clocks {MII_RX_CLK}] -to [get_clocks

{PLL_INST|altpll_component|auto_generated|pll1|clk[1]}]


# constraining logical inputs
set_input_delay -clock { PLL_INST|altpll_component|auto_generated|pll1|clk[0] } 5 [get_ports

{PORT_A* PORT_B* PORT_F*} ]

set_input_delay -clock { PLL_INST|altpll_component|auto_generated|pll1|clk[0] } 5 [get_ports

{PROM_DATA PROM_SIZE}]

set_input_delay -clock { PLL_INST|altpll_component|auto_generated|pll1|clk[0] } 5 [get_ports

MDIO* ]


set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_ports {PORT_C* PORT_D* PORT_E*}] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_ports {PORT_C* PORT_D* PORT_E*}] 8

set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {PROM_CLK PROM_DATA}] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {PROM_CLK PROM_DATA}] 15

set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {MDIO MCLK}] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports {MDIO MCLK}] 15

set_min_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports LED_RUN] 0

set_max_delay -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_ports LED_RUN] 15


#false paths
set_false_path -from {nRESET} -to

{PLL:PLL_INST|altpll:altpll_component|altpll_bbc1:auto_generated|pll_lock_sync}

set_false_path -from

{PLL:PLL_INST|altpll:altpll_component|altpll_bbc1:auto_generated|pll_lock_sync} -to
[get_ports {PROM_DATA PROM_CLK}]

set_false_path -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[0]}] -to

[get_clocks {DIGI_CLK}]

set_false_path -from [get_clocks {PLL_INST|altpll_component|auto_generated|pll1|clk[1]}] -to

[get_clocks {DIGI_CLK}]

Advertising