Timespecs for critical logic within the core – Xilinx IP Ethernet AVB Endpoint v2.4 UG492 User Manual

Page 105

Advertising
background image

Ethernet AVB Endpoint User Guide

www.xilinx.com

105

UG492 September 21, 2010

Required Constraints

rtc_clk

The RTC can be incremented from any available clock frequency that is greater than the
AVB standards defined minimum of 25 MHz. However, the faster the frequency of the
clock, the smaller will be the step increment and the smoother will be the overall RTC
increment rate. Xilinx recommends clocking the RTC logic at 125 MHz because this is a
readily available clock source (obtained from the transmit clock source of the Ethernet
MAC at 1 Gbps speed). This frequency significantly exceeds the minimum performance of
the P802.1AS specification.

The following UCF syntax shows a 125 MHz period constraint being applied to rtc_clk:

NET "rtc_clk" TNM_NET = "rtc_clk";

TIMEGRP "rtc_clock" = "rtc_clk";

TIMESPEC "TS_rtc_clock" = PERIOD "rtc_clock" 8000 ps HIGH 50 %;

Timespecs for Critical Logic within the Core

Signals must cross clock domains at certain points within the core. To guarantee that these
signals are sampled correctly on the new clock domain, many constraints are required, and
must not be removed. These constraints are also present in the example design UCF
delivered with the core.

############################################################

# Clock Domain Crossing Constraints #

############################################################

# clock domain crossing constraints for Tx timestamp logic

#---------------------------------------------------------

INST "*top/tx_rtc_sample_inst/sample_toggle_req" TNM = FFS

"tx_sample_req";

INST "*top/tx_rtc_sample_inst/resync_sample_toggle_req/data_sync"

TNM = FFS "tx_sample_req_resync";

TIMESPEC "ts_tx_sample_req" = FROM "tx_sample_req" TO

"tx_sample_req_resync" 6.5 ns DATAPATHONLY;

INST "*top/tx_rtc_sample_inst/sample_taken_toggle" TNM = FFS

"tx_sample_taken";

INST "*top/tx_rtc_sample_inst/resync_sample_taken_toggle/data_sync"

TNM = FFS "tx_sample_taken_resync";

TIMESPEC "ts_tx_sample_taken" = FROM "tx_sample_taken" TO

"tx_sample_taken_resync" TIG;

INST "*top/tx_rtc_sample_inst/timestamp*" TNM = FFS "tx_timestamp";

TIMESPEC "ts_tx_timestamp_route" = FROM "tx_timestamp" TO "FFS" 8 ns

DATAPATHONLY;

# clock domain crossing constraints for Rx timestamp logic

#---------------------------------------------------------

INST "*top/rx_rtc_sample_inst/sample_toggle_req" TNM = FFS

"rx_sample_req";

INST "*top/rx_rtc_sample_inst/resync_sample_toggle_req/data_sync"

TNM = FFS "rx_sample_req_resync";

TIMESPEC "ts_rx_sample_req" = FROM "rx_sample_req" TO

"rx_sample_req_resync" 6.5 ns DATAPATHONLY;

Advertising