Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

OpenCores 10/100 Ethernet MAC timing constraints with DP83848C

Hi,

I'm trying to constraint my OpenCores 10/100 MAC because of very long runs to the PHY. On the board a DP83848C PHY is used like on the NEEK.

It's my first try to constrain a synchronous circuit so here are my fist lines:

##############################################################
#  OpenCores 10/100 Mbps Ethernet MAC (Igor_Mac) Constraints
# #############################################################
create_clock -name {eth_rx_clk}  -period "25 MHz"  
create_clock -name {eth_tx_clk}  -period "25 MHz"  
# Cut the timing path betweeen unrelated clock domains
set_clock_groups -exclusive -group {eth_rx_clk} -group {eth_tx_clk}
set_clock_groups -exclusive -group {eth_tx_clk} -group {eth_rx_clk}
#  Board propagation delays
#  120 ps/inch
set minprop 0.120
#  200 ps/inch
set maxprop 0.200
#  Trace lengths (in inches)
#  Ethernet
set t_eth_rx_clk    17.92677
set t_eth_tx_clk    18.60276
set tmin_eth        17.92520
set tmax_eth        19.44409
#  PHY specifications (in ns)
set eth_tx_setup    10
set eth_tx_hold     0
set eth_rx_tco      30
set eth_rx_tco_min  10
#  Output delays
set eth_tx_output_delay_max 
set eth_tx_output_delay_min 
set_output_delay -add_delay  -clock   -max $eth_tx_output_delay_max  
set_output_delay -add_delay  -clock   -min $eth_tx_output_delay_min  
#  Input delays
set eth_rx_input_delay_max  
set eth_rx_input_delay_min  
set_input_delay  -add_delay  -clock   -max $eth_rx_input_delay_max 
set_input_delay  -add_delay  -clock   -min $eth_rx_input_delay_min 
# #############################################################

So first of all if anyone is seeing a mistake in this line please feel free to correct me!

I'm struggling because of the definitions for MDC to MDIO (0 to 30ns), MDIO (Input) to MDC Setup Time (min 10ns) and MDIO (Input) to MDC Hold Time (min 10ns). And how to calculate the board delay in it ?

Is it necessary to instantiate a new clock for MDC and constrain MDIO with set_input_delay and set_ouput_delay?

Could anyone give me a hint how to deal with it?

Kind regards

ERIK

P.S.: Datasheet could be found here http://www.national.com/ds/dp/dp83848c.pdf
No RepliesBe the first to reply