Ethernet AVB Endpoint User Guide www.xilinx.com 105
UG492 July 23, 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;