pg138 Axi Ethernet
pg138 Axi Ethernet
5G Ethernet
Subsystem v7.2
Product Guide
Chapter 1: Overview
Navigating Content By Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
How to Use This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Feature Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Licensing and Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Appendix B: Upgrading
Migrating to the Vivado Design Suite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Upgrading in the Vivado Design Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Appendix C: Debugging
Finding Help on Xilinx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Hardware Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Interface Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
IP Facts
Overview
The AXI Ethernet Subsystem can be added to the canvas in the Vivado® IP integrator block
design. The subsystem can also be used in a register transfer level (RTL) flow when selected
from the IP catalog in the Vivado Integrated Design Environment (IDE). The catalog allows
customization, instantiation within a design, output product generation, behavioral
simulation, design elaboration, synthesis and implementation, and bitstream generation for
the target device. The AXI Ethernet Subsystem represents a hierarchical design block
containing multiple infrastructure cores that are configured and connected during the
system design session. Each of the infrastructure cores can also be added directly to a block
design (outside of the AXI Ethernet Subsystem).
This subsystem provides additional functionality and ease-of-use related to Ethernet. Based
on the configuration, this subsystem creates interface ports, instantiates required
infrastructure cores, and connects these cores. Infrastructure cores for this subsystem are
the Xilinx® Tri-Mode Ethernet MAC (TEMAC) and 1G/2.5G Ethernet PCS/PMA or Serial
Gigabit Media Independent Interface (SGMII) cores. Additional functionality is provided
using the AXI Ethernet Buffer core.
For detailed specifications, see Product Specification. See the change log for this subsystem
for the core versions used with this design. All core documents can be downloaded from
Xilinx.com.
• Hardware, IP, and Platform Development: Creating the PL IP blocks for the hardware
platform, creating PL kernels, subsystem functional simulation, and evaluating the
Vivado timing, resource and power closure. Also involves developing the hardware
platform for system integration. Topics in this document that apply to this design
process include:
° Port Descriptions
° Register Space
° Clocking
° Resets
° Example Design
Feature Summary
In addition to the features listed in Features, the subsystem includes the following features:
° 1000BASE-X and SGMII PHY timestamping for 1G and 2.5G modes of operation
° Supports optional 1588 hardware timestamping for one-step and two-step when
enabled with 1000BASE-X/SGMII PHY targeting Versal ACAP with GTY transceivers,
UltraScale™/UltraScale+™ FPGAs with GTH and GTY transceivers, and 7 series
FPGAs with GTX and GTH transceivers
° The system timer provided to the subsystem and the consequential timestamping
taken from it are available in one of two formats which are selected during
subsystem generation
- Time-of-Day (ToD) format: IEEE 1588-2008 format consisting of a 48-bit second
field and a 32-bit nanosecond field
- Correction Field format: IEEE 1588-2008 numerical format consisting of a 64-bit
field representing nanoseconds multiplied by 216 (see IEEE 1588 clause 13.3.2.7)
• Option to omit I/O cells in GMII mode
• Optional support for jumbo frames up to 16 KB
• Optional TX and RX Transmission Control Protocol/ User Datagram Protocol (TCP/UDP)
partial checksum offload
• Optional IPv4 TX and RX TCP/UDP full checksum offload
• Support for VLAN frames
• Optional TX and RX VLAN tagging, stripping, and translation
For more information, visit the AXI Ethernet product web page.
Information about this and other Xilinx modules is available at the Xilinx Intellectual
Property page. For information on pricing and availability of other Xilinx modules and tools,
contact your local Xilinx sales representative.
IMPORTANT: There is no special license for the AXI Ethernet Subsystem, but there is a license for the
TEMAC core and the optional Ethernet AVB feature. More details related to licensing of the TEMAC core
can be found in the Tri-Mode Ethernet MAC Product Guide (PG051) [Ref 1].
Product Specification
This chapter includes a description of the subsystem and details about the performance and
resource utilization.
Functional Description
A high-level block diagram of the AXI Ethernet Subsystem is shown in Figure 2-1.
X-Ref Target - Figure 2-1
s_axi
m_axis_rxd
CSUM
s_axis_txc
m_axis_rxs
s_axis_txd VLAN
s_axis_tx_av(3) m_axis_rx_av(3)
AVB Core
gt_clk(1)
Shared Logic
gmii mdio
Ethernet Interface(2)
mgt_clk(2) (sgmii/sfp)
Shared Logic
(1) This interface is present only in MII, GMII or RGMII modes. It is not present in SGMII or 1000Base-X modes.
(2) This interface and GigPCS/PMA module are present only in SGMII or 1000BaseX modes.
(3) AVB Interfaces are present only when AVB mode is enabled.
X14022
The subsystem provides an AXI4-Lite bus interface for a simple connection to the processor
core to allow access to the registers. This AXI4-Lite slave interface supports single beat read
and write data transfers (no burst transfers). 32-bit AXI4-Stream buses are provided for
moving transmit and receive Ethernet data to and from the subsystem. These buses are
designed to be used with an AXI Direct Memory Access (DMA) IP core, AXI4-Stream Data
FIFO, or any other custom logic in any supported device. The AXI4-Stream buses are
designed to provide support for TCP/UDP partial or full checksum offload in hardware if
required. The AXI4-Stream buses are described in Frame Transmission.
The PHY side of the subsystem is connected to an off-the-shelf Ethernet PHY device, which
performs the BASE-T standard at 1 Gb/s, 100 Mb/s, and 10 Mb/s speeds. The PHY device
can be connected using any of the following supported interfaces: GMII/MII, RGMII, or, by
using the 1G/2.5G Ethernet PCS/PMA or SGMII module.
A 1000BASE-X PHY can be implemented directly in the FPGA using the 1G/2.5G Ethernet
PCS/PMA or SGMII module configured in 1000BASE-X mode. This can be connected directly
to an external optical module.
The AXI 1G/2.5G Ethernet subsystem can be configured in non-processor mode where the
buffer module is not present. In this mode, all of the ports and interfaces are directly
connected to the TEMAC and the PCS PMA. Non-processor mode can be enabled only for
SGMII or 1000BASE-X.
• GMII: The Gigabit Media Independent Interface (GMII) is defined by the IEEE 802.3
specification; it can provide support for Ethernet operation at 10 Mb/s, 100 Mb/s and
1 Gb/s speeds.
• MII: The Media Independent Interface (MII) is defined by the IEEE 802.3 specification; it
can provide support for Ethernet operation at 10 Mb/s and 100 Mb/s speeds.
• RGMII: The Reduced Gigabit Media Independent Interface (RGMII) is, effectively, a
Double Data Rate version of GMII; it can provide support for Ethernet operation at
10 Mb/s, 100 Mb/s and 1 Gb/s speeds.
• 1000BASE-X: Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA)
operation, as defined in the IEEE 802.3-2008 standard.
• GMII to Serial-GMII (SGMII) Bridge: As defined in the Serial-GMII specification
(ENG-46158).
• Both: This feature is to support switching between the 1000BASE-X and SGMII
standard. see the 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide
(PG047) [Ref 2].
In AVB mode, Ethernet AVB Endpoint is selected which is designed to meet the following
IEEE specifications.
• IEEE802.1AS: Supports clock master functionality, clock slave functionality and the Best
Master Clock Algorithm (BMCA).
• IEEE802.1Qav: Supports arbitration between different priority traffic and implements
bandwidth policing.
The following infrastructure cores are used by the AXI Ethernet Subsystem:
When using the TCP/UDP checksum offload function, checksum information is passed
between the software and the subsystem, using the AXI4-Stream Control and AXI4-Stream
Status interfaces. These interfaces are described in AXI4-Stream Interface and the tables in
this section show the checksum offload fields.
The use of the TCP/ UDP checksum offload function requires that the AXI DMA is connected
to the AXI Ethernet Subsystem through the AXI4-Stream Control and AXI4-Stream data
interfaces. See Mapping AXI DMA IP Buffer Descriptor Fields to AXI4-Stream Fields for more
information.
TX_CSBEGIN is the beginning offset and points to the first byte that needs to be included in
the checksum calculation. The first byte is indicated by a value of zero. The beginning
position must be 16-bit aligned. With TCP and UDP, set this value to skip over the Ethernet
frame header as well as the IP datagram header. This allows the checksum calculation to
start in the correct place of the TCP or UDP segment. Operating systems might provide
functions to calculate this value as it is normally based on the variable IP datagram header
size. In all cases, the TX_CSBEGIN value must be 14 or larger to be valid.
TX_CSINSERT is the offset which points to the location where the checksum value should be
written into the TCP or UDP segment header. This value must be 16-bit aligned and cannot
be in the first 8 bytes of the frame. Again, operating systems might provide functions to
calculate this value as it is normally variable based on the variable IP datagram header size.
TX_CSCNTRL is a 16-bit field; however, only the least significant bit is defined. This bit
controls the insertion of the checksum into the frame data. If set to a 1, the checksum value
is written into the transmit frame; otherwise the frame is not modified.
TX_CSINIT is a 16-bit seed that can be used to insert the TCP or UDP pseudo header into the
checksum calculation. In many cases the protocol stack calculates the pseudo header
checksum value and places it in the header checksum field of the transmit frame. In those
cases this field should be zeroed.
If the protocol stack does not provide the pseudo header checksum in the header checksum
field location of the transmit frame, then that field should be zeroed and the pseudo header
checksum value must be calculated and placed in the TX_CSINIT field of the buffer
descriptor.
In order for the transmit checksum to be calculated correctly, the transmit Ethernet FCS
must not be provided as part of the transmit data and the transmit FCS calculation and
insertion must be enabled in the AXI Ethernet Subsystem.
If the frame encapsulates a UDP datagram, and if the resulting checksum is zero, a value of
all ones is used. This case does not exist for TCP because a checksum of zero is legal;
however, the partial checksum logic does not have any way of knowing if the datagram is
TCP or UDP.
For both cases, if the computed checksum is zero, a value of all ones is used instead. If a TCP
datagram computed checksum is zero, this can result in the packet being dropped by the
receiver.
RX_CSRAW is the raw receive checksum calculated over the entire Ethernet payload. It is
calculated starting at byte 14 of the Ethernet frame with the count starting at zero, not one
(the byte following the Type/Length field) and continues until the end of the Ethernet
frame. If the receive Ethernet FCS stripping is not enabled in the subsystem, the FCS is also
included in the checksum. The application is required to calculate the checksum of the
fields which should not have been included to subtract them from the RAW checksum
value. In most cases, the protocol software that allows receive checksum offloading requires
a pass or fail indication. The application has to compare the adjusted raw checksum value
with the checksum field of the TCP or UDP header and provide the pass or fail indication.
Full checksum offloading is supported for Ethernet II and Sub-Network Access Protocol
(SNAP) frame formats. The frame formats must use the IPv4 Internet Protocol and transport
data through TCP or UDP. Each frame format can support a single 32-bit VLAN tag (the TPID
must equal 0x8100). Example diagrams of these frame formats are shown in Figures 2-2 to
2-9. In these figures, the conditions shown in red are used by the hardware to determine if
the TCP/UDP checksum and/or the IPv4 Header checksum is calculated.
It is possible for the IPv4 Header checksum to be calculated even though the TCP/UDP
checksum is not calculated. This can occur if the frame is Ethernet II or SNAP with an IPv4
Header that is five words in length, the IP flags are set to 0, and the fragment offset is set
to 0 (the protocol field can be set to something other than TCP or UDP). However, for the
TCP or UDP checksum to be calculated, the IPv4 Header checksum must be calculated with
the protocol field set to 0x6 for TCP or 0x11 for UDP.
Figure 2-2 shows an Ethernet II frame with IPv4 and TCP. The following conditions must be
met for the IPv4 Header checksum and TCP checksum to be calculated:
° Type = 0x0800
° Version – 0x4
° IP Flag MF = 0b0
° Protocol = 0x06
If Protocol /= 0x06, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-2
X14069
Figure 2-3 shows a VLAN Ethernet II frame with IPv4 and TCP. The following conditions must
be met for the IPv4 Header checksum and TCP checksum to be calculated:
If Protocol /= 0x06, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-3
X14070
Figure 2-4 shows an Ethernet II frame with IPv4 and UDP. The following conditions must be
met for the IPv4 Header checksum and UDP checksum to be calculated:
• Version – 0x4
• Header Length = 0x5
• IP Flag MF = 0b0
• Fragment Offset = 0b0000000000000
• Protocol = 0x11
If Protocol /= 0x11, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-4
X14071
Figure 2-5 shows a VLAN Ethernet II frame with IPv4 and UDP. The following conditions
must be met for the IPv4 Header checksum and UDP checksum to be calculated:
If Protocol /= 0x11, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-5
X14076
Figure 2-6 shows a SNAP frame with IPv4 and TCP. The following conditions must be met for
the IPv4 Header checksum and TCP checksum to be calculated.
• Length ≤ 0x0600
• DSAP = 0xAA
• SSAP = 0xAA
• Control = 0x03
• OIU – 0x000000
• Type = 0x0800
• Version – 0x4
• Header Length = 0x5
• IP Flag MF = 0b0
• Fragment Offset = 0b0000000000000
• Protocol = 0x06
If Protocol /= 0x06, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-6
Figure 2-7 shows a VLAN SNAP frame with IPv4 and TCP. The following conditions must be
met for the IPv4 Header checksum and TCP checksum to be calculated:
If Protocol /= 0x06, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-7
Figure 2-8 shows a SNAP frame with IPv4 and UDP. The following conditions must be met
for the IPv4 Header checksum and UDP checksum to be calculated:
• Length ≤ 0x0600
• DSAP = 0xAA
• SSAP = 0xAA
• Control = 0x03
• OIU – 0x000000
• Type = 0x0800
• Version – 0x4
• Header Length = 0x5
• IP Flag MF =0b0
• Fragment Offset =0b0000000000000
• Protocol = 0x11
If Protocol /= 0x11, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-8
X14075
Figure 2-9 shows a VLAN SNAP frame with IPv4 and UDP. The following conditions must be
met for the IPv4 Header checksum and UDP checksum to be calculated:
If Protocol /= 0x11, but the rest of the conditions are met, only the IPv4 Header checksum
is calculated.
X-Ref Target - Figure 2-9
X14076
If an Ethernet II frame with protocol information is less than 60 bytes, the transmitter pads
the frame with zeros until it is 60 bytes. Because the Ethernet II frame populates the
Type/Length field with Type information (0x0800), instead of a Length information, the
subsystem receive logic is incapable of stripping off any padded bytes. As a result, the
receiver reports the length of all transmitter padded packets to be 60 bytes in length.
Frame Transmission
Padding
When fewer than 46 bytes of data are supplied to the subsystem, the transmitter adds
padding up to the minimum frame length. However, when you are providing the FCS field as
part of the frame, the frame must already be padded if necessary to maintain the minimum
frame length.
Frame Reception
Frame Reception with Errors
An unsuccessful frame reception (for example, a fragment frame or a frame with an
incorrect FCS) is dropped and not passed to the system. A Receive Reject interrupt is
activated (see Interrupt Status register bit 3 in Table 2-34).
If the FCS Pass Through is enabled, any padding is passed to you along with the FCS field.
Even though the FCS is passed up to you, it is also verified and the frame is dropped if the
FCS is incorrect. A Receive Reject interrupt is activated (see bit 3 in Table 2-34).
Table 2-1: Receive Frame FCS Field and Pad Field Stripping or Pass Through
FCS Pass Through FCS Strip
(RCW1 register bit 29 = 1) (RCW1 register bit 29 = 0)
Length/Type field error check FCS and padding (if present) FCS and padding (if present) fields
(RCW1 register bit 25 = 0) fields passed to user for all stripped and not passed to user for
accepted frames all accepted frames
Length/Type field error FCS and padding (if present) FCS field stripped and not passed
ignore fields passed to user for all to user but padding (if present)
(RCW1 register bit 25 = 1) accepted frames passed to user for all accepted
frames
Enabled
When Length/Type error checking is enabled, the following checks are made on all frames
received. If either of these checks fails, the frame is dropped and a Receive Reject interrupt
is activated (see bit 28 in Table 2-34).
• A value greater than or equal to decimal 46 but less than decimal 1536 in the
length/type field is checked against the actual data length received.
• A value less than decimal 46 in the length/type field is checked to ensure the data field
is padded to exactly 46B. The resultant frame is now the minimum frame size: 64B total
in length.
Additionally, if FCS passing is disabled, the length/type field is used to strip the FCS field
and any padding that might exist. Neither is passed to you.
Disabled
When the length/type error checking is disabled, the length/type error checking is not
performed and a frame that has only these errors is accepted. Additionally, if FCS passing is
disabled, the length/type field is not used to determine padding that might exist and the
FCS field is stripped but any padding that might exist in the frame is not stripped and is
passed to you.
Address Filtering
Basic Mode
The receive address filtering function accepts or rejects received frames by examining the
destination address field. Part of this function is carried out in the TEMAC component and
part is carried out based on the bit settings in the Control register (Reset and Address Filter
Register). Figure 2-11 shows the address filtering flow.
The decisions shown in white are made in the TEMAC component while the decisions shown
in gray are made based on the Control register settings. The filtering functions includes:
Receive address filtering eliminates the software overhead required to process frames that
are not relevant to a particular Ethernet interface by checking the Destination Address (DA)
field of the received frame.
The unicast address and multicast addresses are programmed in software through the
AXI4-Lite bus as are the Address Filter enable bit, Multicast Address enable bit, and
Broadcast Address enable bit. The pause frame address and broadcast address are
predefined and do not need programming. See the footnote in Table 2-34 for a more
detailed description on the conditions that can cause the receive reject interrupt to be set.
There are four, 48-bit (6-byte) registers, that can be used for address filtering. The address
filters can be accessed by first setting the Filter Mask Index in the Frame Filter Control
Register. While the Filter Mask Index is set, the Address Filter register can be set accessed
(Figure 2-10).
X-Ref Target - Figure 2-10
P
30 RSVD 8 FM_IND(7:0)
M
47 Address Filter 0
Register 0
Register 1
Register 2
Register 3
X14067
1
it 3
Ib Is
FM address False
filltering
enabled?
True Is it a
multicast False
address?
= pause
frame False
address?
0
7: True Is it a
its FO False It must be a
Ib A F1 broadcast
unicast address
FM A address?
=1 of 4
True multicast False
True Accept
2 9 addresses?
t Frame
bi Is
C
FC RX
False
pause True
=broadcast False
enabled?
address?
True 1
bit True
F Are =unicast
RA False
multicast False address?
frames
Accept frame enabled? 2
and pause, but bit True Reject
F Are
don't pass True Reject RA broadcast
Frame
frame to user False
Frame frames Is it a
Accept enabled? pause control False
Frame frame Type
True field?
True Accept
Reject Frame
Accept
Frame
Frame 29
bit
F CC Is RX
pause False
enabled?
Accept
True
Frame
Accept frame
and pause, but
don't pass
frame to user
X14083
The TEMAC core provides up to four multicast addresses that can be specified for receive
address validation (if an incoming multicast frame receive address matches one of the four
specified addresses, it is accepted). More multicast address values can be used by operating
in promiscuous mode with software application filtering.
TEMAC in promiscuous mode will also pass through all unicast address frames. To avoid
increasing the processor load for unicast address filtering, additional unicast address
filtering has to be added to the extended multicast address filtering logic. Ensure that the
TEMAC core is in promiscuous receive address mode when using this extended multicast
address filtering mode.
Implementation Details
Received multicast frames that meet all other hardware verification requirements receive a
first level address filtering in hardware. Frames that pass this initial filtering are passed up
to software drivers with information provided by hardware to assist the software drivers in
providing the second level/final address filtering. If the frame does not pass hardware
filtering, the frame is dropped and no action is taken by the software drivers.
While a MAC multicast address is defined as any 48-bit MAC address that has bit 0 (LSB) set
to 1 (for example 01:00:00:00:00:00), in most cases the MAC multicast address is created
from a IP multicast address as shown in Figure 2-12. It is these IP multicast addresses that
are a subset of MAC multicast addresses that are filtered by the extended multicast address
filtering mode.
If 1, pass up to
If 0, this software to make decision
frame can be
dropped X14084
When using the extended multicast address filtering, the TEMAC core must be set to
promiscuous mode so that all frames are available for filtering. In this mode the TEMAC
core no longer checks for a unicast address match. Additional registers are available to
provide unicast address filtering while in this mode. Table 2-38 shows the Receive VLAN Tag
register bit definitions and Table 2-39 shows the Unicast Address Word Lower register bit
definitions.
For builds that have the extended multicast address filtering enabled, promiscuous mode
can be achieved by making sure that the TEMAC core is in promiscuous mode, and by
clearing the EMultiFltrEnbl bit (bit 12) in the Reset and Address Filter Register.
Receive AXI4-Stream Status words 0 and 1 include the destination address of the frame.
Word 2 includes bits to indicate if the frame had a destination address that was the
broadcast address, a MAC multicast address, or an IP multicast address. If none of those bits
are set, it was a unicast address. See Mapping AXI DMA IP Buffer Descriptor Fields to
AXI4-Stream Fields for more information.
Selecting Extended Multicast address filtering in Vivado® IDE allows to make decisions
about the destination address without accessing the address from within the receive
AXI4-Stream Data transfer. When using a Xilinx AXI DMA core, the information needed for
filtering is in the buffer descriptor. Using this information, a decision can then be made
regarding accepting or rejecting the frame without accessing the data buffer itself, which
reduces memory access and buffer indexing overhead.
Flow Control
The flow control function is defined by IEEE Std 802.3-2008 Clause 31. The subsystem can
be configured to send pause frames and to act upon the pause frames received. These two
behaviors can be configured independently (asymmetrically). To enable or disable transmit
and receive flow control, see the FCC register in the Tri-Mode Ethernet MAC LogiCORE IP
Product Guide (PG051) [Ref 1].
Flow control can be used to prevent data loss when an Ethernet interface is unable to
process frames fast enough to keep up with the rate of frames provided by another Ethernet
interface. When this occurs, the overloaded interface can transmit a pause control frame to
request that the link partner (the device connected on the other end of the Ethernet) stops
transmitting for a defined period of time.
Requesting a pause frame transmission does not interrupt a transmission in progress; the
pause frame is transmitted after the frame in progress. A request to transmit a pause frame
results in the transmission of a pause frame even if the transmitter itself is already paused
due to the reception of a pause frame.
The destination address supplied with the transmitted pause control frame can be set by
writing to the RCW0 and RCW1 registers (Table 2-44).
1. The destination address field is compared to the pause control address and the
configured unicast address.
2. The Length/Type field is compared against the control type code (0x8808).
3. The opcode field contents are matched against the pause control opcode (0x0001).
If compare step 2 or 3 fails, or if flow control for the receiver is disabled (FCC register bit 29
is 0, see the Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1]), the frame
is ignored by the flow control logic and is passed to you. If the frames pass all three
compare steps and receive flow control is enabled, the pause parameter in the frame is used
to inhibit transmitter operation for the time defined in the IEEE Std 802.3-2008
specification.
A Receive Reject interrupt is activated (see bit 28 in Table 2-34), and the frame is not passed
up to software. If the transmitter is paused and a second pause frame is received, the
current pause value of the transmitter is replaced with the new pause value received,
including a possible value of 0x0.
VLAN
Dest Srce Type
TAG Data FCS
Addr Addr /Len
4 bytes
TPID
8100
9100
CFI
Priority VID
9200
88a8
16 3 1 12
bits bits bit bits
X14087
The extended VLAN functions are available individually and independently between the
transmit and receive paths. To use the extended VLAN functions, the circuitry must be
included at build time by setting the appropriate parameters and the functions must be
enabled at run time by setting the New Functions enable bit (bit 11) of the Reset and
Address Filter Register.
VLAN Translation
VLAN translation enables the AXI Ethernet Subsystem to replace the VLAN ID (VID) value of
the VLAN Tag field of a VLAN frame with a new VID as it passes through the subsystem in
either the transmit or receive direction. See Figure 2-14.
X-Ref Target - Figure 2-14
VLAN tag
4 bytes
TPID
Dest Srce 8100 VID Type
CFI
To support multiple VLAN tagging and the use of TPID values other than 0x8100 in the
outer tag, jumbo frame mode must be used with basic VLAN mode disabled. Using this
setting eliminates automatic invalidating (by the TEMAC core) of any frames that would be
too large for normal frame sizes. To use extended VLAN mode, you must enable jumbo
frame mode and disable VLAN mode.
Transmit Path
When transmitting frames, the outgoing frame is detected as a VLAN frame by recognizing
a VLAN TPID in the Type/Length field and comparing it against user-defined values in the
VLAN TPID Word 0 Register and VLAN TPID Word 1 Register. The TPID values are shared
between the receive and transmit paths.
After a VLAN frame is identified, the 12-bit Unique VLAN Identifier (VID) is used to access
the TEMAC Receive Configuration Word 0 Register in Chapter 2 to supply a replacement
VID value which is substituted into the outgoing frame. See Figure 2-15.
X-Ref Target - Figure 2-15
0xFFC
0xFFD
0xFFE
0xFFF
VLAN Data
Table
X14089
Receive Path
The receive operates similarly to the transmit side. The frame first passes through address
filtering and validation processing before being checked for a VLAN TPID. Receive FCS
stripping in the TEMAC core is required when using VLAN translation because the FCS field
that arrives with the frame is no longer valid with the new TPID value. Although receive
stripping is enabled, any padding, if present, is not stripped due to the TYPE/LENGTH field
of the receive frame containing a VLAN tag rather than a length value.
4
bytes
4
bytes
X14090
• Non-VLAN frames get one VLAN tag added to become single VLAN tagged frames.
• VLAN tagged frames receive an extra VLAN tag and no checking is performed to see
how many VLAN tags the frame already has (if there were three tags, it now has four).
Therefore, in cases that require adding a VLAN tag, one VLAN tag is added to the existing
frame.
The TEMAC core basic VLAN mode extends the maximum normal frame size validation by 4
bytes. This mode does not extend to multiple VLAN tagging. Multiple VLAN frames that
exceed 1,522 bytes are discarded as being too long. As mentioned previously, this requires
the use of jumbo frame mode which eliminates the automatic invalidation of frames that
normally would be too large for normal frame sizes.
When VLAN tagging is enabled at build time with the appropriate parameter, a field in the
Reset and Address Filter Register is used to select one of four VLAN tagging modes and the
Transmit VLAN Tag Register and is used to hold the VLAN tag value which is inserted. The
four VLAN tagging modes which are selectable at run time are:
The fourth mode requires a method for specifying which tagged frames should receive an
additional VLAN tag. The TEMAC Receive Configuration Word 0 Register in Chapter 2 and
Receive VLAN Data Table in Chapter 2 are used for this purpose. A value of 1 in the tag
enable field for a TPID value indicates that frame should receive an additional tag. Again,
transmit In-Band FCS mode is not allowed and receive FCS stripping is required when using
VLAN tagging because the FCS field value is not correct for the frame with the additional
VLAN tag. Although receive stripping is enabled, any padding, if present, is not stripped
because the TYPE/LENGTH field of the receive frame contains a VLAN tag rather than a
length value. However, the length field is still present.
VLAN Stripping
VLAN stripping allows the TEMAC core to remove a VLAN tag in select Ethernet frames as
they pass through the AXI Ethernet Subsystem in either the transmit or receive direction.
X-Ref Target - Figure 2-17
4bytes
4bytes
X14091
When VLAN stripping is enabled at build time with the appropriate parameter, a field in the
Reset and Address Filter Register in Chapter 2 is used to select one of three VLAN stripping
modes.
The third mode requires a method for specifying which tagged frames should be stripped.
The TEMAC Receive Configuration Word 0 Register and Receive VLAN Data Table in
Chapter 2 are used for this purpose. A 1 in the strip enable field for a TPID value indicates
that frame should have its VLAN tag stripped.
Again, transmit In-Band FCS mode is not allowed and receive FCS stripping is required when
using VLAN stripping because the FCS field value would not be correct for the frame with
the VLAN tag removed. Although receive stripping is enabled, any padding, if present, is
not stripped due to the TYPE/LENGTH field of the receive frame containing a VLAN tag
rather than a length value.
1. VLAN Stripping
2. VLAN Translation
3. VLAN Tagging
X-Ref Target - Figure 2-18
Additional
VLAN VLAN VLAN
RX Validation and AXI4-Stream
Stripping Translation Tagging
Addr Filtering
X14092
IMPORTANT: Prior to any MII Management accesses, the MDIO Setup Register must be written with a
valid CLOCK_DIVIDE value and the MDIOEN bit must be set.
The value of the PHYAD and REGAD fields in the MII Management Control register
determines which PHY registers are accessed. Each PHY, internal or external, should have a
unique 5-bit PHY address excluding 00000 which is defined as a broadcast PHY address. The
MII Management interface is defined in IEEE Std 802.3, Clause 22 as a two-wire interface
with a shared bidirectional serial data bus and a clock with a maximum permitted frequency
of 2.5 MHz. As a result, MII Management access can take many AXI4-Lite clock cycles to
complete.
To write to a PHY register, the data must be written to the MII Management Data Write
register. The PHY address (PHYAD) and PHY register (REGAD) are written to the MII
Management Control register. Setting the Initiate bit in the MII Management Control
register starts the operation. The format of the PHYAD and REGAD in the MII Management
Control register is shown in Figure 2-19.
To read from a PHY register, the PHY address and register number are written to the MII
Management Control register. Setting the Initiate bit in the MII Management Control
register starts the operation. When the operation completes, the PHY register value is
available in the MII Management Read Data register. To access the internal 1G/2.5G
Ethernet PCS/PMA or SGMII registers, the PHYAD should match that value set by the
parameter C_PHYADDR.
MSB
MSB
LSB
LSB
MII Management Control Register MII Management Write Data Register
28 24 20 16
PHYAD(4:0) REGAD(4:0) 31 Reserved 16 15 Write Data 0
REGAD
MSB
LSB
15 PCS Sublayer Managed Register Block 0
0 Control Register
PHYAD
1 Status Register
2 PHY Identifier Register
3 Phy Identifier Register
4 Auto negotiation Advertisement Register
...
X14068
Table 2-2: Example of a PHY Register Write Through the MII Management Interface
Register Access Value Activity
MIIM Write Data Write the value that is written to the PHY register
WO 0x0000ABCD
register (0xABCD in this case).
Initiate the write to the MII Management Control
MII Management
WO 0x01024800 register by setting the PHYAD (00001), REGAD(00010),
Control register
OP (01), and Initiate bit (1).
MII Management Poll the MII Management Control register bit 7. When
RO 0x01024880
Control register set to 1, the data has been written.
Table 2-3: Example of a PHY Register Read Through the MII Management Interface
Register Access Value Activity
Initiate the write to the MII Management Control
MII Management
WO 0x01028800 register by setting the PHYAD (00001), REGAD(00001),
Control register
OP (10), and Initiate bit (1).
MII Management Poll the MII Management Control register bit 7. When
RO 0x01028880
Control register set to 1, the read data is available.
MII Management
RO Read data provided by PHY register.
Read Data register
After a transfer has been initiated on the MDIO interface, it is also possible to access a
non-MDIO register in the memory space normally. The MDIO transfer has completed when
the RDY bit in the MII Management Control register is 1. This bit can either be polled, or the
interrupt can be monitored.
If the MII Management Control register is rewritten in an attempt to start a new transfer, the
data is captured; however, the transfer does not take place until the current transaction
completes. If the previous transaction was a read, the read data is valid when the first
transaction completes. If the previous transaction was a write, the MII Management Write
Data register can be written after the first transaction completes. The MII Management
Control register should be checked to ensure all MDIO transactions have been completed
before accessing the data or initiating a transfer.
The SGMII physical interface was defined by Cisco Systems, Inc. The data signals operate at
a rate of 1.25 Gb/s. Differential pairs are used to provide signal integrity and minimize
noise. The sideband clock signals defined in the specification are not implemented in the
subsystem. Instead, the transceiver is used to transmit and receive the differential data at
the required rate using clock data recovery. For more information on SGMII, see the Serial
GMII Specification v1.8 [Ref 16].
SGMII Auto-Negotiation
The external SGMII capable PHY device performs auto-negotiation with its link partner on
the PHY Link (Ethernet bus), resolving operational speed and duplex mode and then in turn
performs a secondary auto-negotiation with the transceiver across the SGMII Link. This
transfers the results of the PHY with Link Partner auto-negotiation across the SGMII to the
AXI Ethernet Subsystem.
The results of the SGMII auto-negotiation can be read from the SGMII Management
Auto-Negotiation Link Partner Ability Base register (Table 2-57). The speed of the
subsystem should then be set to match.
There are two methods that can be used for the completion of an auto-negotiation cycle:
When placed into loopback, data is routed from the transmitter to the receiver path at the
last possible point in the PCS/PMA sublayer. When placed into loopback, a constant stream
of Idle code groups is transmitted through the transceiver.
Loopback in this position allows test frames to be looped back within the system without
allowing them to be received by the link partner (the device connected on the other end of
the Ethernet). The transmission of Idles allows the link partner to remain in synchronization
so that no fault is reported.
In UltraScale devices, for the SGMII interface, an option is provided to choose between
Synchronous SGMII over LVDS and Asynchronous SGMII over LVDS using the parameter,
EnableAsyncSGMII.
The synchronous SGMII over LVDS solution uses component mode I/Os such as ISERDES,
OSERDES, IDELAY, ODELAY components whereas the asynchronous implementation uses
native mode HSSIO components such as BITSLICE and BITSLICE_CONTROL.
IMPORTANT: The Asynchronous 1000BASE-X/SGMII over LVDS implementation can fully support
synchronous SGMII interfaces.
When using SGMII over LVDS in UltraScale+™ or Versal™ devices or using the Asynchronous
SGMII over LVDS solution in UltraScale devices, refer to the 1G/2.5G Ethernet PCS/PMA or
SGMII LogiCORE IP Product Guide (PG047) [Ref 2] for port descriptions (especially for RIU
interface, dly_rdy, vtc_rdy ports) and constraints relating to the design in the
"Asynchronous 1000BASE-X/SGMII over LVDS" section in the 1G/2.5G Ethernet PCS/PMA or
SGMII LogiCORE IP Product Guide (PG047) [Ref 2]. For Versal devices, Asynchronous SGMII
over LVDS is implemented using Advanced I/O Wizard.
1000BASE-X PCS/PMA
PCS/PMA
The Physical Coding Sublayer (PCS) for 1000BASE-X operation is defined in IEEE 802.3
clauses 36 and 37 and performs the following:
• Encoding (and decoding) of GMII data octets to form a sequence of ordered sets
• 8B/10B encoding (and decoding) of the sequence ordered sets
• 1000BASE-X Auto-Negotiation for information exchange with the link partner
The Physical Medium Attachment (PMA) for 1000BASE-X operation is defined in IEEE 802.3
clause 36 and performs the following:
PMD
The Physical Medium Dependent (PMD) sublayer is defined in IEEE 802.3 clause 38 for
1000BASE-LX and 1000BASE-SX (long and short wave laser). This type of PMD sublayer is
provided by the external gigabit interface converter (GBIC) or small form-factor pluggable
(SFP) optical transceiver which should be connected directly to the ports of the GT
transceiver.
1000BASE-X Auto-Negotiation
1000BASE-X auto-negotiation is described in IEEE Std 802.3, clause 37. This function allows
a device to advertise the supported modes of operation to a device at the remote end of a
link segment (the link partner on Ethernet), and detect corresponding operational modes
advertised by the link partner. The results of the auto-negotiation can be read from the
1000BASE-X Management Auto-Negotiation Link Partner Ability Base register (Table 2-57).
The speed should be set to 1G and Duplex bit to Full duplex.
There are two methods that can be used for the completion of an auto-negotiation cycle:
When placed into loopback, data is routed from the transmitter to the receiver path at the
last possible point in the PCS/PMA sublayer. This is immediately before the transceiver
interface. When placed into loopback, a constant stream of Idle code groups is transmitted
through the transceiver. Loopback in this position allows test frames to be looped back
within the system without allowing them to be received by the link partner. The
transmission of Idles allows the link partner to remain in synchronization so that no fault is
reported. Loopback can be enabled or disabled by writing to the 1000BASE-X Management
Control register bit 14 (Table 2-53).
When using 1000BASE-X over LVDS, refer to the 1G/2.5G Ethernet PCS/PMA or SGMII
LogiCORE IP Product Guide (PG047) [Ref 2] for port descriptions (especially for RIU
interface, dly_rdy, vtc_rdy ports) and constraints relating to the design in the
"Asynchronous 1000BASE-X/SGMII over LVDS" section in the 1G/2.5G Ethernet PCS/PMA or
SGMII LogiCORE IP Product Guide (PG047) [Ref 2].
1. In the Physical Interface tab, select the Ethernet speed as 2.5 Gb/s. 2.5G support is not
available for Artix®-7 devices with speed grades other than -2, -2L, and -3.
2. Select the required phy_type from the physical interface selection.
For more details, see the Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1]
and 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide (PG047) [Ref 2].
Standards
This section describes the standards that are supported by the AXI Ethernet Subsystem.
• The Gigabit Media Independent Interface (GMII) is defined by the IEEE 802.3
specification; it can provide support for Ethernet operation at 10 Mb/s, 100 Mb/s and
1 Gb/s speeds.
• The Media Independent Interface (MII) is defined by the IEEE 802.3 specification; it can
provide support for Ethernet operation at 10 Mb/s and 100 Mb/s speeds.
• 1000BASE–X Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA), and
RGMII operation, as defined in the IEEE 802.3-2008 standard.
• GMII to Serial-GMII (SGMII) bridge or SGMII to GMII bridge, as defined in the
Serial-GMII specification (ENG-46158).
These standards are implemented by the respective cores used in the AXI Ethernet
Subsystem. For more details related to these, see the Tri-Mode Ethernet MAC LogiCORE IP
Product Guide (PG051) [Ref 1] and 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product
Guide (PG047) [Ref 2].
Performance
To measure the system performance of the AXI Ethernet Subsystem, a system was built in
which the subsystem was added to each of the supported device families as the Device
Under Test (DUT) as shown in Figure 2-20 in which the subsystem serves as the DUT block.
Because the subsystem is used with other design modules in the FPGA, the utilization and
timing numbers reported in this section are estimates. When this subsystem is combined
with other designs in the system, the utilization of FPGA resources and timing of the
subsystem design can vary from the results reported here.
IC
DC AXI BRAM
MDM
AXI4-Lite Interface
Micro Blaze System
DP
UART Interface
Peripheral
Interconnect AXI UART
AXI4-Lite
AXI Interrupt
Controller
Figure 2-20: System Configuration with the Subsystem as the DUT for All Supported Device Families
The target FPGA was then filled with logic to drive the LUT and block RAM utilization to
approximately 70% and the I/O utilization to approximately 80%. Using the default tool
options and the slowest speed grade for the target FPGA, the F TYP numbers are shown in
Table 2-4.
The target F MAX is influenced by the particular system. The FTYP typical use case frequency
numbers are provided here.
Resource Utilization
For details about resource utilization, visit Performance and Resource Utilization.
Port Descriptions
The subsystem ports depend on the mode of operation. These ports are grouped into
interfaces based on their functionality. These interfaces have associated clock and reset
ports. The details of the interfaces are given in Table 2-5.
Details of all the I/O signals that are included in this table and other individual signals are
provided in the following sections.
AXI4-Lite Interface
The AXI4-Lite signal ports are described in Table 2-6.
System Interface
The system ports are described in Table 2-13.
Notes:
1. Clock domain is userclk2.
Figure 2-21 shows a timing diagram showing the operation of this interface.
Table 2-22: IEEE 1588 AXI4-Stream Interface Ports - Transmit 2-Step Timestamp
Name Direction Description
Bits[31:0] – Captured Timestamp Nanoseconds field.
Bits[79:32] – Captured Timestamp Seconds field.
m_axis_tx_ts_data[127:0] Out Bits[95:80] – Original 16-bit Tag Field for the frame (from the
Tag Field of the Command Field for the frame sent for
transmission).
Bits[127:96] – Reserved.
AXI4-Stream Transmit Timestamp Data Valid from the Ethernet
m_axis_tx_ts_tvalid Out
MAC.
tx_mac_clk
tx_ts_axis_tvalid
tx_ts_axis_tdata[79:0] TS
tx_ts_axis_tdata[95:80] TAG
X15632-082817
A timing diagram showing the operation of this interface is shown in Figure 2-22. To
summarize, the timestamp is valid on the same clock cycle as the first data word of frame
data. This AXI4-Stream interface is synchronous to the TEMAC receive clock.
rx_mac_clk
rx_axis_tvalid
rx_axis_tdata
rx_axis_tlast
rx_ts_axis_tvalid
rx_ts_axis_tdata[79:0] TS[79:0]
X15633-100818
Notes:
1. If the system is using sync-E and the recovered clock is used to drive the systemtimer_clk, the frequency could be
in multiples of userclk.
For any other systems, Xilinx recommends that rising edges of the systemtimer_clk clock be close to rising edges
of usrclk so that accurate value can be sampled on the userclk domain. This can be achieved by having the
systemtimer_clk running at a much higher frequency as compared to usrclk.
Notes:
1. If the system is using sync-E and the recovered clock is used to drive the systemtimer_clk, the frequency could be
in multiples of userclk.
For any other systems, Xilinx recommends that rising edges of the systemtimer_clk clock be close to rising edges
of usrclk so that accurate value can be sampled on the userclk domain. This can be achieved by having the
systemtimer_clk running at a much higher frequency as compared to usrclk.
then passed to the client with rx_axis_mac_tuser asserted to indicate to the client that
it should be dropped.
Statistics Vectors
Transmit Statistics Vector
The transmitter provides 32 bits of statistics for each frame transmitted and a signal which
can be used to count the total number of bytes transmitted. Statistics information is
provided using a 32-bit vector for one clock cycle, as shown in Figure 2-23. Table 2-28
shows the bit definition of the transmit statistics. Bits 28 to 20 are always driven to zero
because half-duplex is not supported.
The waveform in Figure 2-23 represents the statistics counter updates for the
corresponding vector bits. The entire vector otherwise is not accessible through an
addressable register or available on the external ports.
TxClientClk
ClientTxStatsByte Vld
ClientTxStatsVld
ClientTxStats(31:0)
Notes:
1. Bits 28:20 are for Half-Duplex only. These bits return zero in Full-Duplex mode.
RxClientClk
ClientRxStatsByte Vld
ClientRxStatsVld
ClientRxStats(31:0)
X14086
Notes:
1. If the length/type field error checks are disabled, then a frame containing this type of error is marked as a
GOOD_FRAME, providing no additional errors were detected.
Register Space
The subsystem contains memory and addressable registers for read and write operations as
shown in Table 2-30. All registers are directly accessible using a single AXI4-Lite interface.
The base address is computed in the Vivado IP Integrator system during creation of the
system. All the registers addresses mentioned here are the offset from the base address.
The address space from 0x34 to 0x3FFF belongs to the TEMAC. A few registers from the
TEMAC are briefly mentioned here for ease of use. See the Tri-Mode Ethernet MAC LogiCORE
IP Product Guide (PG051) [Ref 1] for more information related to these registers. All
reserved address spaces indicated in Table 2-30 return zeros when read.
In Table 2-30 through Table 2-63, R/W stands for read/write and RO stands for read only.
Notes:
1. Registers 0x00000000-0x00000034; 0x00004000-0x0000FFFF; 0x00020000–0x0003FFFF are available only when
AXI Ethernet buffer is enabled.
.h Header File
AXI4 register information such as register address, register name with bit position, mask
value, access type and their default values are provided in header (.h) file format when the
IP core is generated and the header file can be found under folder header_files of the
project path.
The TEMAC subcore AXI4 register information is provided in the header (.h) file that is
located within the TEMAC IP core folder.
The software might also need to filter out additional receive frames with other addresses.
The broadcast reject bit provides the only means for rejecting receive broadcast Ethernet
frames.
As additional functionality was added to the subsystem, bits in this register are used to
control those new functions. To minimize the effect of these new bits on existing
applications the default values of these bits disable this functionality. This ensures that
when applications do not use the more recent functionality, the subsystem operates the
way it did previously.
X-Ref Target - Figure 2-25
NewFncEnbl TxVTagMode
Reserved Reserved TxVStrpMode McstRej
MSB
LSB
31 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LSB
31 16 15 0
LSB
31 8 7 0
Reserved IFGP
X14027
IMPORTANT: For any bit set in the Interrupt Status register, a corresponding bit must be set in the
Interrupt Enable register for the same bit position to be set in the Interrupt Pending register.
Whenever any bits are set in the Interrupt Pending register, the interrupt signal is driven
active-High out of the AXI Ethernet Subsystem. Figure 2-29 shows the structure of the
interrupt register.
X-Ref Target - Figure 2-28
31 9 8 7 6 5 4 3 2 1 0
MgtRdy RxRject
Reserved TxCmplt AutoNeg
X14028
Notes:
1. This bit resets to 0 but can change to 1 immediately after reset is removed. This bit can remain at 0 for some time
in systems that are using serial transceivers when the serial transceivers are not yet ready for use.
2. See Figure 2-29 for conditions that cause the receive frame reject interrupt to occur. The receive frame reject
interrupt occurs for any of the following reasons:
° The frame does not meet the Ethernet frame requirements (bad FCS, bad length, etc).
° In addition to the frame being good but not meeting the destination address filtering, the frame also does not
match one of the 4 multicast table entries, it is not a broadcast frame, it does not match the unicast address
register.
° The subsystem was built to support extended multicast address filtering (C_MCAST_EXTEND=1).
° The frame is good and meets the destination address filtering but it is a multicast frame and the multicast reject
bit is set in the soft RAF register.
° The frame is good and meets the destination address filtering but it is a broadcast frame and the broadcast
reject bit is set in the soft RAF register.
dy
_R
IIM
Reserved
M
... 0
MIC Register
0x630 WO
... 0
MIS Register
0x600 RO
... 0
MIE Register
0x620 R/W
... 0
MIP Register
0x610 RO
OR
Ph
R g plt
xD tR
yR
R Cm k
Au m t
R je
Tx Lo
xF p
M
R Ov
cm dy
st
xC c
HardAcsCmplt
to plt
xR r
ifo lt
C
N
m
eg
Reserved
c
... 8 7 6 5 4 3 2 1 0
IS Register
offset
0x00C R/W
... 8 7 6 5 4 3 2 1 0
IE Register
offset
0x014 R/W
... 8 7 6 5 4 3 2 1 0
IP Register
offset
0x010 R
OR
INTERRUPT
X14029
If one or more interrupt is latched in the Interrupt Status register and corresponding enable
bits are set in the Interrupt Enable register, the corresponding bit is set in the Interrupt
Pending register. If one or more bits is set in the Interrupt Pending register, the interrupt
signal is driven active-High out of the AXI Ethernet Subsystem.
The Interrupt Pending register always represents the state of the Interrupt Status register
bitwise ANDed with the IE register. The Interrupt Pending register is read only. To clear a bit
in the Interrupt Pending register, either the corresponding bit must be cleared in either the
Interrupt Status register or in the Interrupt Enable register.
LSB
MSB
31 9 8 7 6 5 4 3 2 1 0
MgtRdy RxRject
Reserved TxCmplt AutoNeg
X14030
31 9 8 7 6 5 4 3 2 1 0
MgtRdy RxRject
Reserved TxCmplt AutoNeg
X14031
Priority VID
TPID CFI
MSB
LSB
31 16 15 13 12 11 0
X14032
Priority VID
TPID CFI
MSB
LSB
31 16 15 13 12 11 0
X14033
IMPORTANT: When using extended multicast filtering, the TEMAC core must be placed in promiscuous
address filtering mode.
This register allows filtering of unicast frames not matching the address stored in these
registers. See Extended Multicast Address Filtering Mode for more information.
X-Ref Target - Figure 2-34
MSB
LSB
31 0
X14034
UnicastAddr(31:0)
IMPORTANT: When using extended multicast filtering, the TEMAC core must be placed in promiscuous
address filtering mode.
This register allows filtering of unicast frames not matching the address stored in these
registers. See Extended Multicast Address Filtering Mode for more information.
X-Ref Target - Figure 2-35
MSB
LSB
31 16 15 0
Reserved UnicastAddr(47:32)
X14035
15:0 UnicastAddr R/W 0x00000000 The address is ordered so the first byte
transmitted/received is the lowest positioned byte in
the register; for example, an Ethernet MAC address of
AA-BB-CC-DD-EE-FF would be stored in
UnicastAddr(47:0) as 0xFFEEDDCCBBAA.
LSB
LSB
31 TPID value 3 16 15 TPID value 4 0
X14037
LSB
MSB
31 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Statistics Counters
The set of 64-bit counters are only present when selected at build-time. The counters keep
track of statistics for the transmit and receive Ethernet traffic and are defined in the
Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1]. The Half-Duplex
counters have been omitted because this subsystem does not support Half-Duplex.
JUM RX HD CL_DIS
MSB
LSB
31 30 29 28 27 26 25 24 23 16 15 0
Table 2-44: TEMAC Receive Configuration Word1 (RCW1) Register (0x404) (Cont’d)
Reset
Bits Name Access Description
Value
In-Band FCS Enable: When this bit is 1, the receiver provides
the FCS field with the rest of the frame data. When this bit is 0
the FCS field is stripped from the receive frame data. In either
29 FCS R/W 0 case the FCS field is verified.
• 0 – strip the FCS field from the receive frame data
• 1 – provide the FCS field with the receive frame data
Receive Enable: When this bit is 1, the receiver logic is enabled
to operate. When this bit is 0, the receiver ignores activity on
28 RX R/W 1 the receive interface.
• 0 – receive disabled
• 1 – receive enabled
VLAN Frame Enable: When this bit is 1, the receiver accepts
VLAN tagged frames. The maximum payload length increases
27 VLAN (2) R/W 0 by four bytes.
• 0 – receive of VLAN frames disabled
• 1 – receive of VLAN frames enabled
Half-Duplex Mode: When this bit is 1, the receive operates in
half-duplex mode. When this bit is 0, the receiver operates in
full-duplex mode. Only full-duplex is supported so this bit
26 HD R/W 0 should always be set to 0.
• 0 – full-duplex receive
• 1 – half-duplex receive
Length/Type Field Valid Check Disable: When this bit is 1, it
disables the Length/Type field check on the receive frame.
25 LT_DIS R/W 0
• 0 – perform Length/Type field check
• 1 – do not perform Length/Type field check
Control Frame Length Check Disable: When this bit is 1,
24 CL_DIS R/W 0x0 control frames larger than the minimum frame length can be
accepted
23 Reserved Reserved.
Inband 1588 Timestamp Enable.
When 0, Timestamp is only provided out-of-band. When 1, the
22 R/W 0 Timestamp is provided in-Line in addition to out-of-band.
When the TEMAC does not include 1588 functionality, this bit
is ignored because no timestamp is present.
Reserved: These bits are reserved for future use and always
21:16 Reserved RO 0x0
return zero.
Table 2-44: TEMAC Receive Configuration Word1 (RCW1) Register (0x404) (Cont’d)
Reset
Bits Name Access Description
Value
Pause Frame Ethernet MAC Address (47:32): This address is
used to match the destination address of any received flow
control frames. It is also used as the source address for any
transmitted flow control frames.
15:0 PauseAddr R/W 0xFFFF
This address is ordered so that the first byte transmitted/
received is the lowest position byte in the register. For example,
an Ethernet MAC address of AA-BB-CC-DD-EE-FF would be
stored in the PauseAddr(47:0) as 0xFFEEDDCCBBAA.
Notes:
1. Extended VLAN function require that jumbo frames be enabled.
2. This bit enables basic VLAN operation that is native to the TEMAC core. The TEMAC core recognizes VLAN frames
when the Type/Length field contains a VLAN TAG with a TPID value of 0x8100. No other TPID values are
recognized. Extended VLAN mode described later allow programmable TPID values. This bit must be 0 (disabled)
when using extended VLAN mode.
The TEMAC Transmit Configuration (TC) register is shown in Figure 2-40. This register can
be written at any time but the transmitter logic only applies the configuration changes
during Inter-Frame gaps. The exception to this is the Reset bit which is effective
immediately.
X-Ref Target - Figure 2-40
JUM TX HD
MSB
LSB
31 30 29 28 27 26 25 24 0
Notes:
1. Extended VLAN function require that jumbo frames be enabled.
2. This bit enables basic VLAN operation that is native to the TEMAC core. The TEMAC core recognizes VLAN frames
when the Type/Length field contains a VLAN TAG with a TPID value of 0x8100. No other TPID values are
recognized. Extended VLAN mode described later allow programmable TPID values. This bit must be 0 (disabled)
when using extended VLAN mode.
ID Register
Refer to the Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1] for details.
Ability Register
Refer to the Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1] for details.
included, the bits for those functions are not present and writes to those bits have no effect
while reads return zero.
IMPORTANT: The table can be either 1-bit, 2-bits, 12-bits, 13-bits, or 14-bits wide depending on which
features are present. The table must be initialized by software through the AXI4-Lite and is addressed
on 32-bit word boundaries.
The transmit VLAN Table entry with all VLAN functions present is shown in Figure 2-41
while Figure 2-42 shows the transmit VLAN Table entry with only the translation field. The
bit locations for the functions do not change even when some functions are not used in the
build. See Extended VLAN Support for more details.
X-Ref Target - Figure 2-41
LSB
31 14 13 2 1 0
TagEnbl
X14061
Figure 2-41: Transmit VLAN Table Entry with all Fields (0x0000_4000-0x0000_7FFF)
X-Ref Target - Figure 2-42
LSB
31 14 13 2 1 0
Reserved
X14064
Figure 2-42: Transmit VLAN Table Entry with One Field (offset 0x0000_4000-0x0000_7FFF)
IMPORTANT: The table can be either 1-bit, 2-bits, 12-bits, 13-bits, or 14-bits wide depending on which
features are present. The table must be initialized by software through the AXI4-Lite interface and is
addressed on 32-bit word boundaries.
The receive VLAN Table entry with all VLAN functions present is shown in Figure 2-43 while
Figure 2-44 shows the receive VLAN table entry with only the translation field. The bit
locations for the functions do not change even when some functions are not used in the
build. See Extended VLAN Support for more details.
X-Ref Target - Figure 2-43
LSB
31 14 13 2 1 0
TagEnbl
X14063
Figure 2-43: Receive VLAN Table Entry with all Fields (0x0000_8000-0x0000_BFFF)
X-Ref Target - Figure 2-44
LSB
31 14 13 2 1 0
Reserved
X14062
Figure 2-44: Receive VLAN Table Entry with One Field (offset 0x0000_8000-0x0000_BFFF)
AVB Addressing
Receive PTP Packet Buffer — Offset 0x00010000 – 0x00010FFF
The Receive PTP Packet Buffer is 4 Kb. See the version of the Tri-Mode Ethernet MAC core
listed in the change log for more information.
While an Ethernet MAC multicast address is defined as any 48-bit Ethernet MAC address that
has bit 0 (LSB) set to 1 (for example 01:00:00:00:00:00), in most cases the Ethernet MAC
multicast address is created from a IP multicast address, as shown in Figure 2-45.
X-Ref Target - Figure 2-45
If 1, pass up to
if 0, drop software to make decision.
this frame.
X14065
The memory is 1-bit wide but is addressed on 32-bit word boundaries. The memory is 32K
deep. This table must be initialized by software through the AXI4-Lite interface.
IMPORTANT: When using the extended multicast address filtering, the TEMAC must be set to
promiscuous mode so that all frames are available for filtering. When doing this the TEMAC no longer
checks for a unicast address match. Additional registers (UAWL and UAWU) are available to provide
unicast address filtering while in this mode.
For builds that have the extended multicast address filtering enabled, promiscuous mode
can be achieved by making sure that the TEMAC is in promiscuous mode and by clearing
the EMultiFltrEnbl bit (bit 19) in the Reset and Address Filter register (RAF). See Extended
Multicast Address Filtering Mode.
X-Ref Target - Figure 2-46
Reserved McastAdrEnbl
MSB
LSB
31 1 0
X14066
15:0 0xC8 RW This value is initialized to the known RX latency from the serial wire input into
the FPGA, through the transceiver fixed latency components prior to the
timestamping position.
These registers contain information relating to the operation of the 1000BASE-X PCS/PMA
sublayer, including the status of the physical Ethernet link (PHY Link). Additionally, these
registers are directly involved in the operation of the 1000BASE-X auto-negotiation
function which occurs between the subsystem and its link partner, the Ethernet device
connected at the far end of the PHY Link. These registers are accessed through the MII
Management interface (Using the Address Filters). These registers are only valid when using
the 1000BASE-X PHY interface.
11 Power Down R/W 0 With the PMA option, when set to 1 the
device-specific transceiver is placed in a low-power
state. This bit requires a reset (see bit 0.15) to clear.
With the TBI version this register bit has no effect.
• 1 = Electrically Isolate PHY from GMII
10 Isolate (1) R/W 1
• 0 = Normal operation
Notes:
1. When using the 1000BASE-X TEMAC core (C_TYPE = 1 and C_PHY_TYPE = 5), set the isolate bit to zero (Control
register 0 bit 10). The subsystem is not operational until this is completed.
Table 2-53 shows the Gigabit Ethernet PCS PMA Management Status register bit definitions.
Table 2-54 shows the first Management PHY Identifier register bit definitions.
Table 2-55 shows the second Management PHY Identifier register bit definitions.
Table 2-57: Management Auto-Negotiation Link Partner Ability Base Register (Register 5)
Reset
Bits Name Access Description
Value
• 0 – next page functionality is not supported
15 Next Page RO 0
• 1 – next page functionality is supported
Used by the auto-negotiation function to indicate
14 Acknowledge RO 0
reception of a link partner base or next page.
• 00 – no error
• 01 – offline
13:12 Remote Fault RO 0x0
• 10 – link failure
• 11 – auto-negotiation error
11:9 Reserved Returns 0s 0x0 Always return zeros.
• 00 – no pause
• 01 – asymmetric pause supported
8:7 Pause RO 0x • 10 – symmetric pause supported
• 11 – both symmetric pause and asymmetric pause
supported
• 0 – half-duplex mode is not supported
6 Half Duplex RO 0
• 1 – half-duplex mode is supported
Table 2-57: Management Auto-Negotiation Link Partner Ability Base Register (Register 5)
Reset
Bits Name Access Description
Value
• 0 – full-duplex mode is not supported
5 Full Duplex RO 0
• 1 – full-duplex mode is supported
4:0 Reserved Returns 0s 0x0 Always return zeros.
Table 2-58 shows the Management Auto-Negotiation Expansion register bit definitions.
Table 2-59 shows the Management Auto-Negotiation Next Page Transmit register bit
definitions.
Table 2-60 shows the Management Auto-Negotiation Next Page Receive register bit
definitions.
Table 2-61 shows the Management Extended Status register bit definitions.
Table 2-62 shows the Management Auto-Negotiation Interrupt Control register bit
definitions.
Design Guidelines
This chapter provides design guidelines that need to be considered when using the
subsystem. It is important to understand the features and interfaces provided by the
subsystem and as described in the following sections.
Keep It Registered
To simplify timing and to increase system performance in an FPGA design, keep all inputs
and outputs registered between the user application and the subsystem. All inputs and
outputs from the user application should come from, or connect to, a flip-flop. While
registering signals might not be possible for all paths, it simplifies timing analysis and
makes it easier for the Xilinx tools to place and route the design.
Clocking
When targeting a GMII design, a BUFGMUX is used to switch between the MII_TX_CLK and
the GTX_CLK clocks. This allows the design to support data rates of 10/100 Mb/s and
1000 Mb/s. The FPGA pins for these clocks must be selected such that they are located in
the same clock region and they are both on clock dedicated pins. The GMII status, control,
and data pins must be chosen to be in the same clock region as these clocks. See the 7
Series FPGAs Clocking Resources User Guide (UG472) [Ref 3] for the targeted FPGA family for
more information.
IMPORTANT: Pay special attention to clocking conflicts. Failure to adhere to these rules can cause build
errors and data integrity errors.
Resets
The TEMAC components are reset using the following AXI4 reset signals:
axi_str_txd_aresetn, axi_str_txc_aresetn, axi_str_rxd_aresetn,
axi_str_rxs_aresetn, or s_axi_aresetn. All resets must pass through reset
detection circuits that detect and synchronize the resets to the different clock domains.
As a result, any time the AXI Ethernet Subsystem is reset, sufficient time must elapse for a
reset to propagate through the reset circuits and logic. The amount of time required is
dependent upon the slowest AXI Ethernet clock. Allow 30 clock cycles of the slowest AXI
Ethernet clock to elapse before accessing the subsystem. Failure to comply causes
unpredictable behavior.
In a system in which Ethernet operates at 10 Mb/s, the Ethernet MAC interface operates at
2.5 MHz. If the AXI4-Lite interface operates 100 MHz and the AXI4-Stream interface
operates at 125 MHz, the time that must elapse before AXI Ethernet is accessed is 12 us
(400 ns x 30 clock cycles).
If the system uses DMA for data transfer on the streaming interfaces, it is advised to
connect the reset outputs from the DMA to the AXI Ethernet Subsystem streaming reset
inputs.
RECOMMENDED: As a general design guideline, Xilinx recommends asserting system aresetn signals
for a minimum of 30 clock cycles (of the slowest aclk), as that is known to satisfy the preceding reset
requirements.
Design Parameters
To allow you to generate an AXI Ethernet Subsystem that is uniquely tailored to your design,
These parameters can be configured through the Vivado IDE. In addition to the parameters
listed in Table 3-1, embedded development kit (EDK) tools infer a few other parameters.
These parameters control the behavior of the software generated. All parameters inferred
by the EDK tools are listed in Table 3-1.
Notes:
1. The value 00000 is a broadcast PHY address and should not be used to avoid contention between the internal
TEMAC PHYs and the external PHY(s)
Notes:
1. For UltraScale+™ devices, the RGMII interface cannot be placed on HD I/O, because there are no IDELAY/ODELAYs
in HD I/O.
Notes:
1. Requires the use of High Range (HR) I/O.
2. Because no PHY devices support MII, GMII/MII, and other miscellaneous PHY signals at 1.8 V, external voltage level
shifting logic is required.
3. High Range (HR) I/O duty cycle distortion exceeds RGMII specification.
4. There are limited 1.8 V RGMII-only PHY devices available. If one of these devices is not used, external voltage level
shifting logic is required.
5. The miscellaneous PHY signals include, but are not limited to the ones listed. Signal names can vary.
Notes:
1. Supported on the XC7V585T-FFG1761, XC7VX330T-FFG1761 devices when using the High Range (HR). Other
devices do not contain HR I/O; therefore these voltages are not supported.
2. Because no PHY devices support MII, GMII/MII, and other miscellaneous PHY signals at 1.8 V, external voltage level
shifting logic is required.
3. High Range (HR) I/O duty cycle distortion exceeds RGMII specification.
4. There are limited 1.8 V RGMII-only PHY devices available. If one of these devices is not used, external voltage level
shifting logic is required.
5. The miscellaneous PHY signals include, but are not limited to the ones listed. Signal names can vary.
Notes:
1. Requires the use of High Range (HR) I/O.
2. Because no PHY devices support MII, GMII/MII, and other miscellaneous PHY signals at 1.8 V, external voltage level
shifting logic is required.
3. High Range (HR) I/O duty cycle distortion exceeds RGMII specification.
4. There are limited 1.8 V RGMII-only PHY devices available. If one of these devices is not used, external voltage level
shifting logic is required.
5. The miscellaneous PHY signals include, but are not limited to the ones listed. Signal names can vary.
Some of the optional functions provided by the AXI Ethernet Subsystem are not compatible
with other optional functions. Figure 3-1 shows which of these functions are compatible
with each other. In Figure 3-1, TX/RX CSUM Offload refers to both Partial Checksum
Offloading and Full Checksum Offloading.
R VLA N S
Tx
R LA St
x
R VL Ta
Tx VLA Tag
x
x
C N trp
R
C
Tx AN d
R O ns
Et icas ns
Tx
M N T rp
su Tr
V
x
su
he t
ul ra
VL floa
VL floa
m a
m
rn Flt
St VB
AN g
A
O
et r
N
at
f
f
A
is
t ic
d
s
Tx Csum Offload N N N Y Y Y Y Y Y Y
Tx VLAN Tag N Y Y Y Y Y Y Y N Y
Tx VLAN Strp N Y Y Y Y Y Y Y N Y
Tx VLAN Trans N Y Y Y Y Y Y Y N Y
Rx Csum Offload Y Y Y Y N N N Y Y Y
Rx VLAN Tag Y Y Y Y N Y Y Y N Y
Rx VLAN Strp Y Y Y Y N Y Y Y N Y
Rx VLAN Trans Y Y Y Y N Y Y Y N Y
Rx Multicast Fltr Y Y Y Y Y Y Y Y N Y
Ethernet AVB Y N N N Y N N N N Y
Statistics Y Y Y Y Y Y Y Y Y Y
X14023
This subsystem includes optional logic to calculate TCP/UDP checksums for transmit and
verify TCP/UDP checksums for receive. Using this logic can significantly increase the
maximum Ethernet bus data rate while reducing utilization of the processor for Ethernet
tasks. Including the checksum offload function increases the amount of FPGA resources
used for this subsystem. The checksum information is included with each Ethernet frame
passing over the AXI4-Stream interface. The checksum offload functionality cannot be used
at the same time as the extended VLAN functionality.
The AXI Ethernet Subsystem provides memory buffering of transmit and receive Ethernet
frames, thereby allowing more optimal transfer to and from the subsystem with DMA. The
number of frames that can be buffered in each direction is based on the size of each frame
and the size of the memory buffer which are selected by parameters at build time. If the AXI
Ethernet Subsystem transmit memory buffer becomes full, it throttles the transmit
AXI4-Stream Data interface until more room is available for Ethernet frames. If the receive
memory buffer becomes full, frames are dropped until more memory buffer room is
available. Receive frames that do not meet Ethernet format rules or do not satisfy receive
address qualification are always dropped.
Optional logic can be included to facilitate handling of VLAN type frames. Auto insertion,
stripping, or translation of VLAN frames can be performed on transmit or receive with
several options for choosing which frames are to be altered. Additional logic can be
selected to provide additional filtering of receive frames with multicast destination
addresses. The AXI Ethernet Subsystem provides native support for up to four (4) multicast
addresses.
Logic can be selected to gather statistics on transmit and receive frames. This logic provides
64-bit counters for many statistics about the frames passing through the TEMAC core.
Ethernet AVB support is available with an additional license and is supported at 100 Mb/s or
1000 Mb/s implementations.
AXI4-Stream Interface
The Ethernet frame data to be transmitted and the frame data that is received passes
between the AXI Ethernet Subsystem and the rest of the integrated system through
AXI4-Stream interfaces. In many cases, the other end of the AXI4-Stream interfaces are
connected to a soft IP DMA controller implemented in FPGA logic. However, any custom
logic can be used to connect to the AXI4-Stream interface as long as it meets the
requirements of the AXI Ethernet Subsystem AXI4-Stream interface.
Packetized
Data is transferred in packets rather than as a continuous stream. The signals *_tlast are
used to indicate the last 32-bit word of a packet being transferred.
Aligned Strobe
A write strobe is used for each byte (*_tkeep(3:0)) in the data bus (Four write strobes in
our case). Null strobes are not allowed in the middle of a transfer, or at the end of a transfer.
This means that the word transferred and every additional word up until the last must
contain a valid 32-bit value. The last word might be sparse which means it might contain 4,
3, 2, or 1 valid bytes aligned to the right and the write strobes are used to indicate which
bytes are valid. *_tlast is used to indicated the last data of a frame. In some cases the
write strobe signals can be tied to the active state (1) (see Transmit AXI4-Stream Interface).
Throttling
The driver of the AXI4-Stream uses the *_tvalid to throttle during a transfer. By taking
*_tvalid inactive the current transfer is held until it is active again. The receiver of the
AXI4-Stream uses the *_tready signal to throttle during a transfer. By taking *_tready
inactive the current transfer is held until it is active again.
The transmit AXI4-Stream control bus can be configured to use one of two format types:
Normal Transmit or Receive Status Transmit. This configuration is controlled by the first
nibble (4 bits aligned left) of the first word transferred on the transmit control bus and the
receive status bus. A value of 0xA identifies the transfer as a Normal Transmit control
packet. A value of 0x5 identifies the transfer as a Receive Status packet. All other values are
currently undefined and are ignored. These transfer types are defined in Normal Transmit
AXI4-Stream Transfer – Flag=0xA and Receive Status Transmit AXI4-Stream Transfer –
Flag=0x5. The receive AXI4-Stream interface only supports one format type.
Functional Description
The AXI4-Stream interface transfers data in one direction only. The Ethernet transmit
interface uses an AXI4-Stream Data interface and an AXI4-Stream Control interface. The
Ethernet receive interface uses an AXI4-Stream Data interface and an AXI4-Stream Status
interface. The AXI4-Stream interfaces used in this implementation are 32-bits wide, have
side-band control signals, and typically operate with a clock between 100 and 125 MHz.
Data is transferred across the AXI4-Stream Data interfaces. Additional control information is
transferred across the transmit AXI4-Stream Control interface and additional status
information is transferred across the receive AXI4-Stream Status interface.
For the transmit datapath the Source is the integrated system, typically a DMA controller,
and the Destination is the AXI Ethernet Subsystem. For the receive datapath the Source is
the AXI Ethernet and the Destination is the integrated system, typically a DMA controller.
Control signals are used to mark the start and end of data across the AXI4-Stream interfaces
as well as to signal the readiness of the Source and Destination and to indicate which bytes
in the 32-bit path contain valid data. The destination uses the *_tready signal to indicate
it is able to receive data, while the source uses *_tvalid to indicated when valid data is on
the bus and the *_tlast signal to indicate the last 8, 16, 24, or 32 bits of data.
To maintain coherency, the AXI4-Stream data ready signal is held not ready until a
AXI4-Stream control stream has been received. After this has occurred, the AXI4-Stream
data ready signal is driven ready (as long as there is buffer space available) and the
AXI4-Stream control ready signal is held not ready until the data stream transfer is complete
(Figure 3-2 and Figure 3-4). The write strobe signals for the control and status buses are
always in the active state (0xF).
The right-most write strobe signal for the data bus is always in the active state (0x1, 0x3,
0x7, or 0xF). These signals can be tied off rather than routing signals from the AXI4-Stream
source to the destination. The AXI Ethernet Subsystem provides these ports to be compliant
with the standard; however, there is not any logic based on these inputs which are
considered constants. The transmit interface can encounter two AXI4-Stream transfer types:
Normal Transmit or Receive Status Transmit, as described in the following sections.
The Normal Transmit transfer is used to connect the AXI Ethernet Subsystem to any external
core receiving the TX data.
Figure 3-2 illustrates the waveforms when connected to a core such as AXI_DMA or
AXI_FIFO_MM_S. AXI_DMA supports advanced features such as partial CSUM offloading or
extended VLAN; however, AXI_FIFO_MM_S does not support any of the advanced features.
X-Ref Target - Figure 3-2
AXI_STR_TXD_ACLK
AXI_STR_TXD_ARESETN
AXI_STR_TXD_TVALID
AXI_STR_TXD_TREADY
1
AXI_STR_TXD_TSTRB(3:0) F F 7
AXI_STR_TXD_TLAST
AXI_STR_TXC_ACLK
AXI_STR_TXC_ARESETN
AXI_STR_TXC_TVALID
AXI_STR_TXC_TREADY
AXI_STR_TXC_TSTRB(3:0) F
AXI_STR_TXC_TLAST
X14079
The Normal Transmit AXI4-Stream Control frame always contains six 32-bit control words
(Words 0 to 5). Of these words, only control words 0, 1, 2, and 3 are used by the AXI Ethernet
Subsystem. Figure 3-3, Table 3-6, Table 3-8, and Table 3-9 show the definitions of these
words.
If the transmit AXI4-Stream control word bits 1:0 are 00 (TX_CSCNTRL is disabled) or if the
parameter C_TXCSUM is 0 (the transmit checksum offload function is not included in build),
then none of the transmit AXI4-Stream control words are used and no transmit checksum
offload takes place. If the parameter C_TXCSUM is 1, transmit partial checksum offload can
be controlled on a frame-by-frame basis by setting or clearing the transmit AXI4-Stream
control word 1 bits 1:0 to 01 (TX_CSCNTRL). If the parameter C_TXCSUM is 2, the transmit
full checksum offload can be controlled on a frame-by-frame basis by setting or clearing
the transmit AXI4-Stream control word 1 bits 1:0 to 10 (TX_CSCNTRL). For more details
about how the transmit AXI4-Stream control words are used for transmit checksum offload,
see Partial TCP/UDP Checksum Offload in Hardware.
The transmit AXI4-Stream Data strobes are used to indicate how many bytes in the last
32-bit word of the payload are valid data. 1 is used to indicate valid bytes. For example,
axi_str_txd_strb(3:0) = 0001 would indicate that only the first byte of the last word
of the payload [axi_str_txd(7:0)] is valid and the remaining three bytes are unused.
axi_str_txd_strb(3:0) = 0011 would indicate that the first two bytes of the last word
of the payload [axi_str_txd(15:0)] are valid and the remaining two bytes are unused.
See Figure 3-3 for the Transmit AXI4-Stream Control Word definition.
X-Ref Target - Figure 3-3
MSB
LSB
31 flag = A 28 27 reserved for future use 0 Word 0
Tx
C
sC
nt
rl
The Receive Status transfer is used when the receive AXI4-Stream interface is tied directly to
the transmit AXI4-Stream interface for the purpose of looping back Ethernet receive data to
the Ethernet transmit interface with no external intervention. In that case the status transfer
enables the receive data frame to be presented to the TEMAC transmitter and the status
content is ignored. No advanced checksum offload or VLAN functions is allowed for these
operations even if they were included in the subsystem at build time. Note the different
identification flag value in Figure 3-4.
X-Ref Target - Figure 3-4
AXI_STR_TXD_ACLK
AXI_STR_TXD_ARESETN
AXI_STR_TXD_TVALID
AXI_STR_TXD_TREADY
1
AXI_STR_TXD_TSTRB(3:0) F F 7
AXI_STR_TXD_TLAST
AXI_STR_TXC_ACLK
AXI_STR_TXC_ARESETN
AXI_STR_TXC_TVALID
AXI_STR_TXC_TREADY
AXI_STR_TXC_TSTRB(3:0) F
AXI_STR_TXC_TLAST
X14079
The receive interface has been designed to allow throttling on both the AXI4-Stream Status
bus and the AXI4-Stream Data bus. After receiving the Ethernet data, the receive channel
initiates transfer on the AXI4-Stream Status Interface before starting the transfer on
AXI4-Stream Data Interface. The completion of the transfers on these interfaces depends on
their throttling. See Figure 3-7 for a receive waveform diagram. This diagram shows what
signals are required when connected to a core such as AXI_DMA. When connecting to a core
such as AXI_FIFO_MM_S, a signal minimization can be made because the receive status bus
information is not required.
In this case, the external core must actively drive the signals axi_str_rxs_aclk and
axi_str_rxs_aresetn, axi_str_rxs_tready must be tied High, and all of the
axi_str_rxs* inputs to the external core can be left open.
For the loopback of the receive AXI4-Stream to transmit AXI4-Stream to work, the receive
AXI4-Stream Data bus is throttled by the transmit AXI4-Stream Data bus until the receive
AXI4-Stream Status has been received by the transmit channel.
The receive AXI4-Stream Status frame always contains six 32-bit status words (words 0 to 5).
Figure 3-5, Table 3-10, Table 3-11, Table 3-12, Table 3-13, Table 3-14, and Table 3-15 show
the definitions of these words. Reserve fields do not have defined values. If the parameter
C_RXCSUM is 0, the receive checksum offload function is not included in the build and
receive AXI4-Stream Status word 4, bits 15-0 are always zero. If C_RXCSUM is 1, the raw
checksum is calculated for every frame received and is placed in the receive AXI4-Stream
Status word 4. For more information about using the receive raw checksum value, see Partial
TCP/UDP Checksum Offload in Hardware.
Receive AXI4-Stream Status word 5, bits 15-0 always contains the number of bytes in length
of the frame being sent across the receive AXI4-Stream Status interface.
The axi_str_rxd_strb(3:0) bus is used to indicate how many bytes in the last 32-bit
word of the AXI4-Stream Data bus. A 1 is used to indicate valid bytes. For example,
axi_str_rxd_strb(3:0) = “0001” indicates that only the first byte of the last word of
the AXI4-Stream Data bus [axi_str_rxd_data(7:0)] is valid and the remaining three
bytes are unused. axi_str_rxd_strb(3:0) = “0011” would indicate that the first two
bytes of the last word of the payload [axi_str_rxd_data(15:0)] are valid and the
remaining two bytes are unused.
X-Ref Target - Figure 3-5ds759_49.epsds759_49.eps
MSB
LSB
31 flag = 5 28 27 reserved for future use 0 Word 0
31 McastAdrL(31:0) 0 Word 2
M _M AS
AC C T_
BR LTI
IP _C
M
LE ALI
BC
LE
M
_M S L
PA _O _E
M N_ RA
C _L AM
G D_ RR
U
BA IE ER
O C_
II_
VL E_ OD
N EN E
N GN
AX F M
O F O
N
AD FR
BA _E ME
C _ G
U PC RR
TR _
_F _
G
D LD R
FC FR E
O R R
A F E
AS F
S
A
TH
D A
C AM
X_
L_ ER
S A
_F M
_
T_ LAG
T
_B
C
FR R
R E
R E
FL
S_
F
YT
AM
AM
AG
ST
A
ES
E
E
31 30 29 28 27 26 25 24 11 10 9 8 7 6 5 3 2 1 0 Word 3
Word 4
31 T_L_TPID 16 15 RxCsRaw 0
The AXI DMA core is designed to operate with many AXI4-Stream cores in addition to the
AXI Ethernet Subsystem. This guide contains information about the mapping between the
AXI Ethernet AXI4-Stream fields and the AXI DMA Buffer Descriptor fields for the purposes
of TCP / IP Checksum Offload.
The AXI DMA core uses registers to point to data areas in external memory called Buffer
Descriptors. The Buffer Descriptors are five 32-bit words in external memory and contain
AXI DMA operation control information, pointers to other areas of external memory which
contain data to move which are called Data Buffers, and generic Application Defined words
which map to AXI4-Stream Control and AXI4-Stream Status words.
Figure 3-6 shows the mapping between the AXI DMA Buffer Descriptor words in external
memory and the fields in the transmit AXI4-Stream case and Figure 3-7 shows the mapping
for the receive AXI4-Stream case. The first word in the AXI_STR_TXC_TDATA data contains
the Flag information that is directly set by the AXI DMA core, and the first word in the
AXI_STR_RXS_TDATA data contains the Flag information that is set by the AXI Ethernet
Subsystem.
Buffer Descriptors
DMA Core Register
in external memory
CURDESC_PTR Data Buffer
NXTDESC
Register value in external memory
Reserved
Buffer Address
Data
Reserved
Reserved
Reserved
Control
Status
APP0
APP1
APP2
APP3
APP4
AXI_STR_TXC_ACLK
AXI_STR_TXC_ARESETN
AXI_STR_TXC_TDATA(31:0) A
AXI_STR_TXC_TVALIDs
AXI_STR_TXC_TREADY
AXI_STR_TXC_TSTRB(3:0)
AXI_STR_TXC_TLAST
AXI_STR_TXD_ACLK
AXI_STR_TXD_ARESETN
AXI_STR_TXD_TDATA(31:0) Transmit frame data (variable)
AXI_STR_TXD_TVALID
AXI_STR_TXD_TREADY
1,3,
AXI_STR_TXD_TSTRB(3:0) F 7,F
AXI_STR_TXD_TLAST
X14081
Figure 3-6: Transmit AXI DMA Buffer Descriptor AXI4-Stream Field Mapping
Buffer Descriptors
DMA Core Register
in external memory
CURDESC_PTR Data Buffer
NXTDESC
Register value in external memory
Reserved
Buffer Address
Data
Reserved
Reserved
Reserved
Control
Status
APP0
APP1
APP2
APP3
APP4
AXI_STR_TXC_ACLK
AXI_STR_TXC_ARESETN
AXI_STR_TXC_TDATA(31:0) A
AXI_STR_TXC_TVALIDs
AXI_STR_TXC_TREADY
AXI_STR_TXC_TSTRB(3:0)
AXI_STR_TXC_TLAST
AXI_STR_TXD_ACLK
AXI_STR_TXD_ARESETN
AXI_STR_TXD_TDATA(31:0) receive frame data (variable)
AXI_STR_TXD_TVALID
AXI_STR_TXD_TREADY
1,3,
AXI_STR_TXD_TSTRB(3:0) F 7,F
AXI_STR_TXD_TLAST
X14082
Figure 3-7: Receive AXI DMA Buffer Descriptor AXI4-Stream Field Mapping
The AVB AXI4-Stream interface is connected to external logic that currently is not provided
by Xilinx. Several third-party partners have created this logic, have tested it with the
subsystem, and have integrated it into AVB systems. This external logic takes time-sensitive
audio or video information and splits it into Ethernet frames using a protocol encoding that
is similar to TCP/IP. This is performed in FPGA logic.
Ethernet AVB frames are passed back and forth to the Ethernet through the AVB
AXI4-Stream interfaces. Internal to AXI Ethernet Subsystem, the AVB frames and the legacy
frames are multiplexed and demultiplexed based on a prioritization and time slotting
method. The AVB function in the AXI Ethernet Subsystem is responsible for helping to
choose the most accurate AVB system clock in the Ethernet network and synchronizes to
the clock so all AVB nodes are synchronized.
Transmit Interface
The AXI Ethernet Subsystem provides the signal axi_str_avbtx_aclk which is derived
from the TEMAC transmit MAC interface clock. This clock operates at 125 MHz when
operating at 1 Gb/s and is 25 MHz when operating at 100 Mb/s. During a transfer, the AXI
Ethernet Subsystem uses the TEMAC transmit MAC interface clock enable to toggle
axi_str_avbtx_tready. The clock enable is High for every clock cycle when operating
at 1 Gb/s and toggles every other clock cycle for 100 Mb/s. When the AXI Ethernet
Subsystem is ready to transmit an AVB frame, it drives the axi_str_avbtx_tready signal
High. When the external logic is ready to transmit a frame, it drives the
axi_str_avbtx_tvalid signal High and provides the first byte of data on the
axi_str_avbtx_tdata bus. Now the external logic must provide a new byte of data on
every clock cycle that the axi_str_avbtx_tready signal is High while tvalid is active
until the end of the frame is reached.
The external logic cannot throttle the AVB transmit interface. The AXI Ethernet Subsystem
accepts the first byte and then drives axi_str_avbtx_tready Low until the TEMAC has
started the transmit, then it drives it back to High and continues to use it as a clock enable
for the remainder of that frame.
On the last byte of the frame, the external logic drives the axi_str_avbtx_tlast signal
High for one clock cycle with axi_str_avbtx_tready. If it does not have any additional
frames to transmit, it removes the tvalid signal when it takes the tlast signal Low.
However, if another frame is ready, the external logic leaves the tvalid signal High.
The tuser signal is intended to allow the external logic to indicate that the current frame
in progress has an error such as an underflow and the frame should be aborted. It is
intended that this be connected to the underflow input of the AVB to force the current
frame to be aborted, but the current AVB core does not provide an AVB underflow input.
Figure 3-8 shows a transmit AXI4-Stream waveform for 1 Gb/s mode where there are
additional AVB frames available after the completion of the current frame. Figure 3-9 shows
the TX client interface operating at 100 Mb/s.
X-Ref Target - Figure 3-8
ACLK
TVALID
TREADY
TLAST
X14093
Tx Client Interface
TX_CLK
TX_ENABLE
TDATA 1 2 3 n-1 n
TX_DATA_VALID
TX_ACK
TX_UNDERRUN
TDATA 1 2 3 n-1 n
TVALID
TREADY
TLAST
X14094
Receive Interface
The receive interface provides an AXI4-Stream clock and which is derived from the TEMAC
receive client interface and uses the axi_str_avbrx_tvalid signal as a clock enable
derived from the receive client interface clock enable. These signals behave similarly to the
transmit interface when the Ethernet bus speed changes.
When the AXI Ethernet Subsystem has received an AVB frame to transfer over the
AXI4-Stream to the external logic, it drives the axi_str_avbrx_tvalid signal High and
provides a new axi_str_avbrx_tdata byte value on each clock cycle when
axi_str_avbrx_tvalid signal is High. The destination cannot throttle and must always
be ready to receive a frame. After the AXI Ethernet Subsystem transfers the second to last
byte, it drives the axi_str_avbrx_tvalid signal Low and wait until it gets a good or bad
frame indication from the TEMAC before it finishes the frame. When it receives the good or
bad frame indication, it drives the axi_str_avbrx_tvalid signal High again for one
clock/axi_str_avbrx_tvalid cycle along with the last byte value. It drives the
axi_str_avbrx_tuser signal High if the frame is bad. If the frame is good, it drives
axi_str_avbrx_tuser signal Low while driving the axi_str_avbrx_tlast signal
High.
All receive frames, good or bad, that meet the address filtering rules, appear on the receive
AXI_STREAM interface with the only indication of good versus bad being the value of
axi_str_avbrx_tuser during axi_str_avbrx_tlast. Figure 3-10 shows the receive
waveforms for the AVB interface operating at 100 Mb/s.
X-Ref Target - Figure 3-10
ACLK
TDATA 1 2 3 n-1 n
TVALID
TUSER
TLAST
X14095
• Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994)
[Ref 4]
• Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 5]
• Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 6]
• Vivado Design Suite User Guide: Getting Started (UG910) [Ref 7]
The AXI Ethernet Subsystem can be customized and generated in the Vivado IP integrator.
For detailed information related to use of IP integrator, see the Vivado Design Suite User
Guide: Designing IP Subsystems using IP Integrator (UG994) [Ref 4]. You can customize the
AXI Ethernet Subsystem for use in your design by specifying values for the various
parameters associated with the subsystem following these steps:
1. Create a block design if not created already by selecting the option create block design
in the IP Integrator tab.
2. Add AXI Ethernet Subsystem to the block design.
3. Double-click the AXI Ethernet Subsystem to open up a configuration dialog box in the
Vivado IDE. The details of this configuration dialog box are provided in a later part of
this section.
4. You cannot overwrite automatic parameters. In addition, you cannot edit sub-cores that
are instantiated inside the AXI Ethernet Subsystem. If you want to edit advanced
parameters of the sub-cores, you must build the system by directly instantiating that
core. You cannot modify internal connections of the AXI Ethernet Subsystem.
Configurations that are not allowed or not valid in a particular mode are grayed out.
Note: Figures in this chapter are illustrations of the Vivado IDE. This layout might vary from the
current version.
Vivado IDE might auto-compute certain configuration values when validating or generating
the design, as noted in this section. You can view the parameter value after successful
completion of the validate_bd_design command.
The Board tab (available for non-Versal ™ ACAP only): The Board tab (Figure 4-1) is visible
only when you select a non-Versal ACAP board in the current project. In this tab, options
related to the board-based I/O constraints are provided. More details onboard support
packages are available in the Vivado Design Suite User Guide: Designing IP Subsystems using
IP Integrator (UG994) [Ref 4].
• Generate Board based IO Constraints: This option needs to be selected to make use
of the board flow. If you do not want to make use of board flow, this option can be left
unchecked. If the tool is able to generate the physical constraints for a given
configuration, only those options are active; otherwise, they are grayed out. When this
option is selected the following three interfaces can be enabled.
° Ethernet: This option enables to select the type of Ethernet I/O interface available
in board.
° MDIO: This option enables to select the MDIO interface available in the board.
° DIFF_CLK: This option allows you to select the serial transceiver clock source if that
source is available on the board.
° PHYRST_N: This option allows you to generate reset for an external PHY device. The
minimum duration of this reset is 10ms at the maximum AXI4-Stream clock.
° TX and RX memory sizes can be selected using the TX Memory Size and
RX Memory Size options.
° Advanced VLAN options for TX and RX data streams for VLAN tagging, VLAN
stripping, and VLAN translation are selected using the respective options.
• Flow Control Options: Enables priority-based flow control options. This can be
enabled only when processor_mode is deselected.
• Statistics Counter Options: Use this option to enable the statistic counters. Enable
Statistics Counters should be selected for this purpose. By selecting the Allow
Statistics to be reset option, the statistics reset capability can be enabled. The width of
the statistics counter can be selected using the Statistics Counter Width option.
• Frame Filter Options: Enables the TEMAC filters.
X-Ref Target - Figure 4-3
The Network Timing tab: The 1588 options are enabled only when PHY_TYPE is
1000BASE-X or SGMII in 1G and 2.5G modes of operation and not in LVDS mode. This tab is
used to configure the 1588 and AVB modes. The following options are available in this tab:
• Enable 1588: This enables the 1588 mode of operation. The following sub-options are
enabled only when Enable 1588 is enabled. TCP/UDP hardware checksum offload is not
supported/calculated when the 1588 feature is enabled.
° 1-step or 2-step Support: This enables the 1-step or 2-step operation method of
1588. This is enabled only when Enable 1588 is selected.
° Selection of the Time-of-Day (ToD) timer and timestamp format or the Correction
Field Format timer and timestamp format.
° 1588 System Timer reference clock period in ps: This is the 1588 system
reference clock period in picoseconds.
• Enable AVB: This enables Audio Video Bridging functions. This can be enabled only
when 1588 mode is disabled.
X-Ref Target - Figure 4-4
The Shared Logic tab (available for non-Versal ACAP only): The Shared Logic tab
(Figure 4-5) selects whether shared logic is included in the subsystem. Shared logic is
different for different configurations. In GMII mode IDELAYCTRL is the shared element. In
RGMII mode, IDELAYCTRL and the TX MMCM with its associated clock buffers for Artix®-7
or Kintex®-7 devices are shared logic. There is no shareable logic in MII mode. In SGMII
using transceiver mode or 1000BASE-X Mode, the transceiver differential reference clock
buffer, mixed mode clock manager (MMCM), and clock buffer are shared elements. In SGMII
over LVDS, the transceiver differential reference clock buffer, MMCM, IDELAYCTRL and clock
buffer are shared elements. The options for Shared Logic select whether to include or not
include shared logic in the subsystem.
GT in Example Design: This option is available only when you select Include Shared Logic
in IP Example Design option (available for non-Versal ACAP only). This moves the
transceiver from the core to the Support level instance. When this option is selected,
generation of additional transceiver control and status ports is disabled. This option is
available only for UltraScale™ and UltraScale+™ architecture designs.
X-Ref Target - Figure 4-5
The OOC Settings tab: In OOC mode, these clock frequency values are used by the
synthesis tool.
.
X-Ref Target - Figure 4-6
The Locations tab: This tab is available for UltraScale and UltraScale+ devices in SGMII and
1000BASE-X modes. In non-LVDS mode the gt xy coordinates can be selected. In
Asynchronous 1000BASE-X/SGMII over LVDS mode the bit slice locations need to be
selected. Refer to the “Layout and Placement” section of the 1G/2.5G Ethernet PCS/PMA or
SGMII LogiCORE IP Product Guide (PG047) [Ref 2].
X-Ref Target - Figure 4-7
Other Logic
in Core
Other Logic
in Core
Instance with
“Include Shared Logic in IP Example Design”
Shared
Logic
Instance with
“Include Shared Logic in Core” Other Logic
in Core
Instance with
“Include Shared Logic in IP Example Design”
X14096
Figure 4-8: Subsystem Sharing Resources among Multiple Instances Using Shared Logic
Following are two examples: one for RGMII mode and the other for 1000BASE-X mode.
Connections for other modes can be done similarly.
axi_ethernet_no_sl
+
s_axi
s_axis_txc
s_axis_txd
s_axi_lite_resetn
m_axis_rxd
s_axi_lite_clk
m_axis_rxs
axis_clk
mdio
axi_rxs_arstn
rgmii
axi_rxd_arstn
mac_irq
axi_txc_arstn
interrupt
axi_txd_arstn
phy_rst_n
gtx_clk
gtx_clk90
AXI Ethernet
axi_ethernet-with_sl
+
s_axi
s_axis_txc
m_axis_rxd
s_axis_txd
m_axis_rxs
s_axi_lite_resetn
mdio
s_axi_lite_clk
rgmii
axis_clk
mac_irq
axi_rxs_arstn
interrupt
axi_rxd_arstn
phy-rst_n
axi_txc_arstn
gtx_clk90_out
axi_txd_arstn
gtx_clk_out
gtx_clk
ref_clk
AXI Ethernet
X15629-120115
Figure 4-13: Connections to Enable Sharing of the GT Quad Base IP among Two Instances
axi_ethernet_no_sl
+
s_axi
s_axis_txc
s_axis_txd
s_axi_lite_resetn
axi_ethernet-with_sl
s_axi_lite_clk
+ axis_clk
m_axis_rxd axi_rxs_arstn
m_axis_rxs axi_rxd_arstn
sfp axi_txc_arstn m_axis_rxd
s_axi mac_irq axi_txd_arstn m_axis_rxs
s_axis_txc interrupt signal_detect sfp
s_axis_txd mmcm_locked_out mmcm_locked mac_irq
mgt_clk rxuserclk_out rxuserclk interrupt
s_axi_lite_resetn rxuserclk2_out rxuserclk2 rxoutclk
s_axi_lite_clk userclk_out userclk txoutclk
axis_clk userclk2_out userclk2
axi_rxs_arstn pma_reset_out pma_reset
axi_rxd_arstn gt0_pll0outclk_out gt0_pll0outclk_in
axi_txc_arstn gt0_pll0outrefclk_out gt0_pll0outrefclk_in
axi_txd_arstn gt0_pll1outclk_out gt0_pll1outclk_in
ref_clk gt0_pll1outrefclk_out gt0_pll1outrefclk_in
signal_detect gt0_pll0lock_out gt0_pll0lock_in
gt0_pll0refclklost_out gt0_pll0refclklost_in
gtref_clk_out gtref_clk
ref_clk
AXI Ethernet
AXI Ethernet
X15628-120115
For Clock Management with Multiple Core Instances for SGMII, see the “Clock Sharing
Across Multiple Cores with Transceivers and FPGA Logic Elastic Buffer” section in 1G/2.5G
Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide (PG047) [Ref 2].
CAUTION! The RXOUTCLKs cannot be shared between multiple cores unless the transmitting devices
are synchronous when using SGMII with the fabric buffer.
The Run Block Automation command connects the subsystem AXI4-Stream interface to a
DMA or a FIFO as selected in the Vivado IDE. The gtx_clk,ref_clk, and lvds clocks
are connected to respective clock sources when the clock source is already present, else it
would instantiate a clock wizard. It also connects the mii/gmii/rgmii/sgmii/sfp along with
the mdio and phy_rst_n ports based on the interface available for the selected board or
part.
Note: You cannot configure the subsystem using the block automation Vivado IDE; therefore, it is
recommended first to configure the subsystem and then run block automation.
The axis_clk signal should be connected to the same clock source as the AXI4-Stream
interface. When using a FIFO, axis_clk should be connected to the AXI_lite clock of
the FIFO; for the DMA this needs to be connected to the same clock source as
m_axi_mm2s_aclk and m_axi_s2mm_aclk of DMA.
The Run Connection Automation command connects the AXI4-Lite interface of the
subsystem to the peripheral interface of the processor. This also connects the AXI4-Lite
clock and the AXI4-Lite reset to the respective sources. When the project is set for a board
that has the related interfaces, the Run Connection Automation command also connects
the I/Os to external I/O ports by creating them and providing the LOC constraints.
Note: The Physical Interface selection must be set to the same value as that of the IP instance on
which block automation is being applied
For example, in the following figure, the selected physical interface is SGMII, and the
Datapath interface connections is Auto:
Using this phy_rst_n causes a deadlock condition during reset. The on-board PHY of
this board does not generate the reference clock during reset that is required by the AXI
1G/2.5G Ethernet subsystem to de-assert the phy_rst_n, thus causing a deadlock.
2. When using this board, select Include Shared Logic in IP Example Design for the AXI
1G/2.5G Ethernet subsystem.
The on-board PHY generates a 625 MHz clock. Using a clock wizard, the required clocks
for this mode can be generated. Block automation also helps in connecting to a clock
wizard. This mode also requires an IDELAY control module to be instantiated outside the
AXI 1G/2.5G Ethernet subsystem.
User Parameters
Table 4-1 shows the relationship between the Vivado IDE and the User Parameters.
Notes:
1. Parameter values are listed in the table where the Vivado IDE parameter value differs from the user parameter
value. Such values are shown in this table as indented below the associated parameter
Output Generation
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 5].
Required Constraints
Because the subsystem is hierarchical, it enables the use of timing constraints from the
infrastructure cores. The subsystem automatically picks up the constraints from the sub
cores. The timing constraints related to MII, GMII, RGMII interfaces are provided by
Tri-Mode Ethernet MAC core. The timing constraints related to VLAN and others are
provided by the AXI Ethernet Buffer. The timing constraints related to the transceiver and
elastic buffers are provided by the 1G/2.5G Ethernet PCS/PMA or SGMII core.
When a project is targeted for a board, you can use Board Based IO Constraints
generation. On selection of the board interface, the constraints for that interface are
generated automatically. The subsystem propagates the required inputs to the sub cores
and these generate the constraints in their file list. These constraints are usually available in
a file that has file name ending with _board.xdc.
Note: The AXI Ethernet Subsystem is a hierarchical IP, and consequently does not have a core XDC.
The subcore XDC constraints are automatically applied. It is recommended to check the AXI Ethernet
IP example design XDC and apply the constraints (if any) to the top XDC for board and part based
subsystem designs.
Clock Frequencies
This section is not applicable for this subsystem.
Clock Management
This section is not applicable for this subsystem.
Clock Placement
The clock buffer needs to be placed in accordance with the requirements of the
infrastructure cores. See the 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide
(PG047) [Ref 2] and Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1] for
more details.
Banking
There is no information currently provided for this subsystem.
Transceiver Placement
The transceiver placements should be done in accordance with the requirement of Gigabit
Ethernet PCS PMA. See the 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide
(PG047) [Ref 2].
Simulation
For comprehensive information about Vivado simulation components, as well as
information about using supported third-party tools, see the Vivado Design Suite User
Guide: Logic Simulation (UG900) [Ref 6].
IMPORTANT: For cores targeting 7 series or Zynq®-7000 devices, UNIFAST libraries are not supported.
Xilinx IP is tested and qualified with UNISIM libraries only.
Includes all simulation sources required by the core. Simulation of the core is not supported
without the addition of a test bench (not supplied). Simulation of the example design is
supported.
When SIMULATION_MODE is set, the link timer for auto-negotiation is pre-loaded with a
smaller value. When SIMULATION_MODE is set, the core also pre-loads the 3 ms counter for
the 7 series transceiver in startup FSM with a smaller value to decrease the simulation time.
Note: The SIMULATION_MODE generic is provided in all modes to reduce simulation time. In
simulation, the value of SIMULATION_MODE should be 1. In implementation, the value of
SIMULATION_MODE should be 0. To change the SIMULATION_MODE attribute you need to use the
following command before the generation of the output products:
When SGMII or 1000Base-X is selected as the PHY type, a mixed hardware description
language (HDL) license is required to successfully run the simulation.
Example Design
This chapter contains information about the example design provided in the Vivado®
Design Suite. This example design is intended to directly target the key Xilinx
demonstration families under certain core configurations. The current example design
targets the Kintex®-7 FPGA KC705 Evaluation Kit board. Information about targeting the
example design to the Kintex UltraScale™ KCU105 board is also provided in this chapter.
The example design includes a basic state machine which uses the AXI4-Lite interface to
bring up the external PHY and Ethernet MAC allowing basic frame transfers. A simple frame
generator and frame checker are also included to provide a packet generator with optional
checking of any received data. If the AXI Ethernet Subsystem is generated with the optional
AVB endpoint, another frame generator and frame checker are included to exercise the
additional AV datapath.
Example Design
Support Level
System Clocks Example Design Clocks Support Level Clocks AXI Ethernet Subsystem
and Resets and Reset Generator and Reset Generator
TX and RX FIFO
Support Level
Slave Loopback Transceiver Common
X18673-043019
The HDL example design provides basic loopback functionality on the user side of the AXI
Ethernet Subsystem and connects the GMII/RGMII interface to external IOBs. The design
also operates as a pattern generator with optional PHY-side external data loopback with
automatic checking.
rx_client_fifo
The rx_client_fifo is built around a dual-port inferred RAM giving a total memory
capacity of 4,096 bytes. The receive FIFO writes data received through the TEMAC core. If
not errored, the frame is presented on the AXI4-Stream FIFO interface to be read by the
basic_pat_gen module. If the frame is errored, it is dropped by the receive FIFO. If the
receive FIFO memory overflows, the frame currently being received is dropped.
The FIFO can overflow if the receiver clock is running at a faster rate than the transmitter
clock or if the inter-packet gap between the received frames is smaller than the interpacket
gap between the transmitted frames. In this case, the TX FIFO is unable to read data from
the RX FIFO as fast as it is being received.
The FIFO size of 4,096 bytes limits the size of the frames that it can store without error. If a
frame is larger than 4,000 bytes, the FIFO can overflow causing lost data. It is therefore
recommended that the example design should not be used with the TEMAC solution in
jumbo frame mode for frames of larger than 4,000 bytes.
tx_client_fifo
The tx_client_fifo is built around a dual-port inferred RAM, giving a total memory capacity
of 4,096 bytes.
When a full frame has been written into the transmit FIFO, the FIFO presents data to the
Ethernet MAC transmitter. The Ethernet MAC uses tx_axis_mac_tready to throttle the
data until it has control of the medium.
If the FIFO memory fills up, the tx_axis_fifo_tready signal halts the AXI4-Stream
interface from writing in data until space becomes available in the FIFO. If the FIFO memory
fills up but no full frames are available for transmission, such as when a frame larger than
4,000 bytes is written into the FIFO, the FIFO asserts the tx_overflow signal and
continues to accept the rest of the frame. The overflow frame is dropped by the FIFO
ensuring that the AXI4-Stream FIFO interface does not lock up.
Address Swap
The address swap module is configured for use on the loopback path. This permits the
example design, when targeted to a suitable board, to be connected to an Ethernet protocol
tester. The address swap module waits until both the DA and SA have been received before
starting to send data on to the TX FIFO.
If enabled, the address swap module swaps the destination and source addresses of each
frame as shown in Figure 5-2 to ensure that the outgoing frame destination address
matches the source address of the link partner. If not enabled, the DA and SA are left
untouched. The address swap module transmits the frame control signals with an equal
latency to the frame data.
X-Ref Target - Figure 5-2
axis_clk
dest_addr
s_axis_slvlb_d_tdata[31:0] dest_addr
src_addr
src_addr
s_axis_slvlb_d_tkeep[3:0]
s_axis_slvlb_d_tvalid
s_axis_slvlb_d_tready
src_addr
m_axis_slvlb_d_tdata[31:0] src_addr
dest_addr
dest_addr
m_axis_slvlb_d_tkeep[3:0]
m_axis_slvlb_d_tvalid
m_axis_slvlb_d_tready
X18672-012317
Pattern Generator
The pattern generator can be enabled/disabled using a DIP switch. When enabled, the data
from the RX FIFO is flushed and the axi_pat_gen module drives the address_swap
module inputs.
Using parameters, the pattern generator allows user modification of these items:
• Destination address
• Source address
• Minimum frame size
• Maximum frame size
When enabled using a dedicated input mapped to a DIP switch on the board, the pattern
generator begins with the minimum frame size and, after each frame is sent, increments the
frame size until the maximum value is reached. The cycle then repeats beginning with the
minimum frame size.
The destination and source addresses are as provided by HDL parameters. The Type/Length
field is dependent upon the frame size and the frame data consists of the count value.
Pattern Checker
The pattern checker module provides simple verification that data is being received
correctly. The pattern checker module uses the same parameters as the pattern generator
module to quickly verify that it is receiving the same frame contents and frame size
increments as those being generated. When enabled, the output from the AXI Ethernet
streaming interface is monitored. The value in the type/length field is captured to identify
the data location within the frame sequence. If an error is detected, an error condition is
raised on the mismatched byte or bytes. The error condition is latched to a dedicated
output and displayed using a board LED. The error condition can be cleared using a DIP
switch.
The pattern checker module also provides a simple activity monitor which toggles a
dedicated output to flash a board LED indicating that RX Data is being received correctly.
This ensures that the lack of a detected error is not the result of all frames being dropped.
Board-Specific Configurations
There are two basic requirements that must be met for the example design to function
properly when targeted to a specific board:
• Select the Ethernet IP interface as gmii, sfp_sgmii, or sfp in the Board tab of the
Vivado IDE.
• Apply the appropriate board interface settings in the remainder of the Board tab.
Bring-Up Sequence
To ensure that the example design works properly on the targeted board, verify that these
conditions are met:
• Ensure that jumpers J27, J28, J29, J30, and J64 are in the correct positions.
• If SGMII or 1000BASE-X is configured, SFP with PHY or loopback SFP must also be
configured.
KC705 Board
When the KC705 evaluation board is selected in the Vivado Design Suite project options, an
XDC file is generated to target the example design to the KC705 board. The LED functions
for the KC705 evaluation board are described in Table 5-1.
The push button functions for the KC705 board are described in Table 5-2.
DIP switch SW11 functions for the KC705 board are described in Table 5-3.
KCU105 Board
The KCU105 board supports only SGMII over LVDS to connect to the on-board PHY. In this
mode, the MGT CLOCK is provided by the on-board PHY at 625 MHz only. Also, the
on-board PHY receives the reset from the FPGA. Because the AXI Ethernet Subsystem
generates phy_reset_n on the GTX clock, there might be a deadlock in the reset state. To
avoid this, the example design needs to be modified to disconnect the phy_reset_n
generated by the AXI Ethernet Subsystem and connect another active-Low reset. This can
be done in the example design wrapper. The required number of LEDs, DIP switches, and push
button switches are same as that are required for the KC705 board. The required location
constraints need to be added.
VCU118/KCU116 Board
The VCU118 and KCU116 boards with on-board TI PHY support are added for SGMII over
LVDS configuration.
In case of VCU118 board, the SGMII over LVDS mode has the MGT CLOCK which is provided
by the on-board TI PHY at 625 MHz. Also, the on-board PHY receives the reset from the
FPGA. The other I/O ports are assigned with the LEDs, DIP switches, and push button
switches available in the VCU118 board. DIP switch for control_data functions are the
same as described in Table 5-3.
Test Bench
This chapter contains information about the test bench provided in the Vivado® Design
Suite.
demo_tb.v
The demonstration test bench is a simple Verilog program which exercises the example
design and the subsystem itself. The test bench has two modes of operation:
• DEMO
• Built-in Self Test (BIST)
• Clock generators
• DEMO (stimulus) – A stimulus block that connects to the PHY-side receiver interface of
the example design (MII, GMII, RGMII, SFP or SGMII interfaces)
• DEMO (monitor) – A monitor block to check data returned through the PHY side
transmitter interface
• DEMO – Basic frame filter that looks at the DA/SA fields of frame inserted into the PHY
side receiver interface
• BIST – A simple loopback from the PHY side transmit interface to the receiver
• BIST (AVB only) – A basic AV data bandwidth monitor
• A management block to control the speed selection
• An MDIO monitor/stimulus block to check and respond to MDIO accesses
DEMO Mode
The demonstration test bench performs these steps:
BIST Mode
In BIST mode, the demonstration test bench performs these steps:
DEMO Mode
Changing Frame Data
The contents of the frame data passed into the TEMAC receiver can be changed by editing
the DATA fields for each frame defined in the test bench. The test bench automatically
calculates the new FCS field to pass into the TEMAC and also calculates the new expected
FCS value. Further frames can be added by defining a new frame of data.
If frame filter is enabled, the first four frames have the same DA and SA data matching the
value of the frame filter setting. The fifth frame is dropped because, by default, it has
different DA/SA values than the first four frames.
If none of the frames have this DA/SA setup, all frames are dropped by the address filter.
currently written into the third frame can be removed by setting all error fields for the frame
to 0 and clearing the bad_frame field.
BIST Mode
In BIST mode, the data is provided by the basic pattern generator module. This arrangement
allows a degree of control over the frames generated using these module parameters:
• DEST_ADDR
• SRC_ADDR
• MAX_SIZE
• MIN_SIZE
• VLAN_ID
• VLAN_PRIORITY
1. From the Physical Interface tab, select the 1000BASE-X or SGMII option.
2. From the Network Timing tab, select the Enable 1588 option.
3. For 1-step and 2-step support, ensure that the 1 Step option is selected; if only 2-step
functionality is required, then select the 2 Step option to save on logic resources.
4. Select whether to include logic that supports either the Time-of-Day (ToD) timer and
timestamp format, or alternatively to support the Correction Field Format timer and
timestamp format.
5. Accurately enter the clock period, in picoseconds, of the 1588 System Timer reference
clock period. This is the clock provided to the system timer clock port of Table 2-24.
6. Click OK to generate the subsystem.
Functional Description
IEEE 1588 hardware timestamping support has been added as an option to the AXI Ethernet
Subsystem. This feature is built on the existing functionality provided by the following two
cores.
• Tri-Mode Ethernet MAC (TEMAC): See the Tri-Mode Ethernet MAC LogiCORE IP Product
Guide (PG051) [Ref 1]
• 1G/2.5G Ethernet PCS/PMA or SGMII: see the 1G/2.5G Ethernet PCS/PMA or SGMII
LogiCORE IP Product Guide (PG047) [Ref 2]
Refer, in particular, to the Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051) [Ref 1]
for using the AXI4-Stream interfaces for the datapath, and to the AXI4-Lite interface for
configuration and status of the TEMAC core. The additional ports described in this chapter
are additional to the user interface ports described therein.
Supported Features
Devices and Physical Interface
IEEE 1588 hardware timestamping support is available only for the 1000BASE-X or SGMII
PHY targeting 7 series (GTX and GTH), UltraScale™, UltraScale+™ (GTH and GTY) and
Versal™ (GTY and GTYP) transceivers.
° A command field is provided by the client to the TEMAC either in line with the
frame sent for transmission, or in parallel with the frame sent for transmission. This
indicates, on a frame-by-frame basis, the 1588 function to be performed
(no-operation, 1-step or 2-step) and also indicates, for 1-step frames, whether there
is a UDP checksum field that requires updating.
° For 1-step and 2-step operation, the full 80-bit captured ToD timestamp is returned
to the client logic using the additional ports defined in Table 2-22.
° For 1-step operation, the full 80-bit ToD captured timestamp is inserted into the
frame.
° For 1-step UDP frame types, the UDP checksum is updated in accordance with IETF
RFC 1624. (In order for this update function to work correctly, the original checksum
value for the frame sent for transmission should be calculated using a zero value for
the timestamp data).
° For all 1-step frames, the Ethernet Frame Check Sequence (FCS) field is calculated
after all frame modifications have been completed.
° For transmit 2-step, all Precise Timing Protocol (PTP) frame formats can be
supported.
Architecture Overview
Transmitter
Figure A-1 shows the Transmitter portions of the Ethernet MAC and 1000BASE-X PHY
enhanced with 1588 support.
X-Ref Target - Figure A-1
Insert
GT Existing Checksum Adjust Frame data &
PHY TX GMII TX
TX CRC & checksum Command Field
Timestamp
Timestamp Take
for 1-step Timestamp
Timer Synchronise
onto TX Ethernet
clock
System Timer
{seconds, nanoseconds}
X13347
• No operation: the frame is not a PTP frame and no timestamp action should be taken.
• 2-step operation is required and a tag value (user-sequence ID) is provided as part of
the command field; the frame should be timestamped, and the timestamp made
available to the client logic, along with the provided tag value for the frame. The
additional Ethernet MAC transmitter ports (defined in Table 2-22) provide this function.
• 1-step operation is required
° For the ToD timer and timestamp format, a timestamp offset value is provided as
part of the command field; the frame should be timestamped, and the timestamp
should be inserted into the frame at the provided offset (number of bytes) into the
frame.
° For the Correction Field format, a Correction Field offset value is provided as part of
the command field; the frame should be time-stamped, and the captured 64-bit
Timestamp is summed with the existing Correction Field contained within the frame
and the summed result is overwritten into original Correction Field of the frame.
• For 1-step operation, the CRC value of the frame should be updated/recalculated when
the timestamp value is inserted into the frame. For UDP IPv4 and IPv6 PTP formatted
frames, the checksum value in the header of the frame needs to updated/recalculated.
• For 1-step UDP frame types, the UDP checksum is updated in accordance with IETF RFC
1624.
° If using the ToD format, in order for this update function to work correctly, the
original checksum value for the frame sent for transmission should be calculated
using a zero value for the timestamp data. This particular restriction does not apply
when using the Correction Field format.
° If using the Correction Field format then a different restriction does apply: the
separation between the UDP Checksum field and the Correction Field within the
1588 PTP frame header is a fixed interval of bytes, supporting the 1588 PTP frame
definition. This is a requirement to minimize the latency through the Ethernet MAC
because both the checksum and the correction field must both be fully contained in
the Ethernet MAC pipeline in order for the checksum to be correctly updated. This
particular restriction does not apply to the ToD format because the original
timestamp data is calculated as a zero value; consequently the checksum and
timestamp position can be independently located within the frame.
• The TEMAC contains a fixed latency from the timestamp position onwards through its
pipeline.
• The 1000BASE-X core provides a fixed latency for the transmitter path.
• The 7 series FPGA GTX transceiver provides a fixed and deterministic latency through
its transmitter path. This is achieved by using the GTX transceiver in TX buffer Bypass
mode.
The logic is also then capable of adjusting the ToD timestamp value taken by adding a
configurable duration (see bit 22 of Table 2-45). This value is user adjustable, but its default
is initialized with the entire transmitter path latency (through TEMAC, 1000BASE-X, and
transceiver).
This results in the returned timestamp default value representing the time at which the SFD
can be first observed on the GTX serial transmit output. This latency adjust functionality can
be applied to either of the ToD or Correction Field formats.
Receiver
Figure A-2 shows the Receiver portions of the Ethernet MAC and 1000BASE-X PHY
enhanced with 1588 support.
X-Ref Target - Figure A-2
GT RX
RXOUTCLK
Embed
timestamp
Elastic PHY RX Elastic in-band
SerDes Internal MII RX Existing MAC RX AXI-S RX
Buffer (in fabric) Buffer with all
frames
Fixed Latency
Timestamp
Take
Timer Sample and
FIFO
Timestamp
subtract RX PHY timestamp timestamp
latency
Timer Synchronise
onto RX Ethernet
clock
System Timer
[seconds, nanoseconds]
X13348
• The 7 series FPGA GTX transceiver provides a fixed and deterministic latency through
its receiver path. This is achieved by using the GTX transceiver in RX buffer Bypass
mode.
• The 1000BASE-X core provides a fixed latency for the receiver path up until the
timestamp point.
The logic is also then capable of adjusting the ToD timestamp value taken by subtracting a
configurable duration (see bit 22 of Table 2-44). This value is user adjustable, but its default
is initialized with the receiver path latency (transceiver and 1000BASE-X logic) prior to the
timestamping position. This results in the returned timestamp value representing the time
at which the Start codegroup appeared on the transceiver serial input. This latency adjust
functionality can be applied to either of the ToD or Correction Field formats. The Correction
Field value is provided to the subsystem in “1588 Correction Field Mode” using a 64-bits
port. This Correction Field value is in a numerical format as defined in IEEE 1588 clause
13.3.2.7. These details are provided in Table 2-25.
2. Receiver path
a. MAC latency: 8 ns
b. PCS latency: 56 ns
c. GT latency
2. Receiver path
a. MAC latency: 8 ns
b. PCS latency: 56 ns
c. GT latency: 113 ns
A timing diagram showing the operation of this interface follows the table. To summarize,
the timestamp will be valid on the same clock cycle as the first data word of frame data. This
AXI4-Stream interface is synchronous to the TEMAC receive clock.
rx_mac_clk
rx_axis_tvalid
rx_axis_tdata
rx_axis_tlast
rx_ts_axis_tvalid
rx_ts_axis_tdata[79:0] TS[79:0]
X15633-100818
When enabled, a 64-bit timestamp is passed to the client immediately before the start of
the frame reception (in place of the Preamble field). This 64-bit value includes the lower
32-bits of the seconds field, plus the entire nanoseconds field. See Figure A-3.
rx_mac_aclk
rx_axis_mac_tvalid
rx_axis_mac_tlast
rx_axis_mac_tuser
X15634-100818
Figure A-4: Timing Diagram of the In-Line Timestamp and Received Frame
When this in-line timestamp mode is not enabled, the AXI4-Stream Interface - Receive is
unchanged from the current operation as described in the Tri-Mode Ethernet MAC LogiCORE
IP Product Guide (PG051) [Ref 1].
Selecting this mode is through an AXI4-Lite addressable configuration bit (see Table A-3).
The signal definition for this expanded tx_axis_tuser is defined in Table A-3. A timing
diagram showing the operation of this signal for normal frame transmission follows
Table A-3. To summarize, the Command Field bits of tx_axis_tuser must be valid on the
same clock cycle when the first data word of the frame is sent for transmission.
tx_mac_clk
tx_axis_tvalid
tx_axis_tready
tx_axis_tlast
tx_axis_tuser[127:64] COMMAND/TAG
X15631-100818
Enabling this mode is through an AXI4-Lite addressable configuration bit (see Table 2-45,
bit 22).
When enabled, the 64-bit Command Field is passed to the Ethernet MAC immediately
before the start of the frame (in place of the Preamble field). See Figure A-6.
X-Ref Target - Figure A-6
tx_mac_aclk
tx_axis_mac_tvalid
tx_axis_mac_tlast
tx_axis_mac_tuser
tx_axis_mac_tready
X15630-100818
Figure A-6: Timing Diagram of the In-Line Command Field and Frame Data for Transmission
When this in-line Command Field mode is not enabled, the AXI4-Stream Interface –
Transmit is unchanged from the current operation, and the Out Of Band Command Field
method described previously must be used instead.
Logic Utilization
Table A-5 shows the logic utilization for the IEEE 1588 hardware timestamping solutions,
inclusive of the TEMAC and 1000BASE-X cores. These numbers do not include the Statistic
Counters option.
Table A-5: Logic Utilization for the IEEE 1588 Hardware Timestamping Solutions
LUT LUT as LUT as
Register as Register
Option as Distributed Shift Flip-flop as Latch RAMB36 RAMB18 DSPs MMCMs BUFGs
logic RAM Register
1-Step and
2-Step 2630 330 50 3840 0 0 0 0 1 2
support
2-Step only
2300 330 150 3340 0 0 0 0 1 2
support
Upgrading
This appendix contains information about migrating a design from ISE® to the Vivado®
Design Suite, and for upgrading to a more recent version of the subsystem. For customers
upgrading in the Vivado Design Suite, important details (where applicable) about any port
changes and other impact to user logic are included.
The AXI Ethernet Subsystem can be upgraded from an older version to the latest version.
When the AXI Ethernet Subsystem is upgraded, there are a few ports renamed and a few
parameters added The following sections summarize updated ports and any action to be
taken. Parameters are automatically taken care of.
Added mdio signal to Table 2-23: Ethernet MII Management Interface (MIIM) Ports.
• axi_str_txc to s_axis_txc
AXI4-Stream Transmit Control. Connect to DMA/FIFO Transmit Control interface.
• axi_str_txd to s_axis_txd
AXI4-Stream Transmit Data. Connect to DMA/FIFO Transmit Data interface.
• axi_str_rxd to m_axis_rxd
AXI4-Stream Receive Data. Connect to DMA/FIFO Receive Data Interface.
• axi_str_rxs to m_axis_rxs
AXI4-Stream Receive Status. Connect to DMA Receive Status Interface
• axi_str_avb_tx to s_axis_tx_av
AXI4-Stream AVB Transmit Data. This interface is present only in AVB mode. Connect to
AVB streaming TX master interface.
• axi_str_avb_rx to m_axis_rx_av
AXI4-Stream AVB Receive Data. This interface is present only in AVB mode. Connect to
AVB streaming RX slave interface.
• txp, txn, rxp, rxn ports to sgmii
Serial Gigabit Media Independent Interface. Make this as an external interface.
• txp, txn, rxp, rxn ports to sfp
In 1000BASE-X mode, this interface connects to the SFP cage. Make this as an external
interface.
• mgt_clk_p, mgt_clk_n ports to mgt_clk
Differential clock input for the serial transceiver. Make this as an external interface.
Debugging
This appendix includes details about resources available on the Xilinx Support website and
debugging tools.
Documentation
This product guide is the main document associated with the AXI Ethernet Subsystem. This
guide, along with documentation related to all products that aid in the design process, can
be found on the Xilinx Support web page or by using the Xilinx Documentation Navigator.
Download the Xilinx Documentation Navigator from the Downloads page. For more
information about this tool and the features available, open the online help after
installation.
Solution Centers
See the Xilinx Solution Centers for support on devices, software tools, and intellectual
property at all stages of the design cycle. Topics include design assistance, advisories, and
troubleshooting tips.
The Solution Center specific to the AXI Ethernet Subsystem is Xilinx Ethernet IP Solution
Center.
Answer Records
Answer Records include information about commonly encountered problems, helpful
information on how to resolve these problems, and any known issues with a Xilinx product.
Answer Records are created and maintained daily ensuring that users have access to the
most accurate information available.
Answer Records for this subsystem can be located by using the Search Support box on the
main Xilinx support web page. To maximize your search results, use proper keywords such as
• Product name
• Tool message(s)
• Summary of the issue encountered
A filter search is available after results are returned to further target the results.
AR 54688
Technical Support
Xilinx provides technical support in the Xilinx Support web page for this LogiCORE™ IP
product when used as described in the product documentation. Xilinx cannot guarantee
timing, functionality, or support if you do any of the following:
• Implement the solution in devices that are not defined in the documentation.
• Customize the solution beyond that allowed in the product documentation.
• Change any section of the design labeled DO NOT MODIFY.
To contact Xilinx Technical Support, navigate to the Xilinx Support web page.
Debug Tools
There are many tools available to address AXI Ethernet Subsystem design issues. It is
important to know which tools are useful for debugging various situations.
The Vivado logic analyzer is used with the logic debug IP cores, including:
See the Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 10].
Reference Boards
Various Xilinx development boards support the AXI Ethernet Subsystem. The KC705 7 series
FPGA evaluation board can be used to prototype designs and establish that the subsystem
can communicate with the system.
Hardware Debug
Hardware issues can range from link bring-up to problems seen after hours of testing. This
section provides debug steps for common issues. The Vivado Design Suite debug feature is
a valuable resource to use in hardware debug. The signal names mentioned in the following
individual sections can be probed using the Vivado Design Suite debug feature for
debugging the specific problems.
Ensure that all the timing constraints for the subsystem were properly incorporated from the
example design and that all constraints were met during implementation. Following is a list
of some general checks.
• Does it work in post-place and route timing simulation? If problems are seen in
hardware but not in timing simulation, this could indicate a PCB issue. Ensure that all
clock sources are active and clean.
• If using MMCMs in the design, ensure that all MMCMs have obtained lock by
monitoring the locked port.
• If your outputs go to 0, check your licensing.
• Different PHYs have different reset polarity. Check the reset polarity.
Interface Debug
AXI4-Lite Interfaces
Read from a register that does not have all 0s as a default to verify that the interface is
functional. Output s_axi_arready asserts when the read address is valid, and output
s_axi_rvalid asserts when the read data/response is valid.
If the interface is unresponsive, ensure that the following conditions are met:
AXI4-Stream Interfaces
If data is not being transmitted or received, check the following conditions:
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see Xilinx
Support.
• From the Vivado® IDE, select Help > Documentation and Tutorials.
• On Windows, select Start > All Programs > Xilinx Design Tools > DocNav.
• At the Linux command prompt, enter docnav.
Xilinx Design Hubs provide links to documentation organized by design tasks and other
topics, which you can use to learn key concepts and address frequently asked questions. To
access the Design Hubs:
• In the Xilinx Documentation Navigator, click the Design Hubs View tab.
• On the Xilinx website, see the Design Hubs page.
Note: For more information on Documentation Navigator, see the Documentation Navigator page
on the Xilinx website.
References
Reference the change log for a list of the cores utilized in this design. The change log also
identifies the version of the cores used and referenced throughout this document.
Revision History
The following table shows the revision history for this document.
• Updated Figure 2-10.
• Added note to Table 2-23 and Table 2-24.
05/22/2019 7.1
• Updated Table 2-29.
• Updated Figure 2-25.
• Updated the Standalone driver link in Features.
• Updated Artix-7 speed grade in Features.
• Updated speed grade in Generating Subsystem for 2.5G Operation.
• Added Flow Control Interface and Priority Flow Control Interface
(802.1Qbb) sections.
12/05/2018 7.1 • Added note in Table 3-2.
• Added shared logic description in Example 2: Sharing GT COMMON in
1000BASE-X Mode among Multiple Subsystem Instances in Chapter 4.
• Added VCU118/KCU116 Board section.
• Updated description in Generating the Subsystem for 1588 Operation
in Appendix A.
• Updated the SGMII Auto-Negotiation section in Chapter 2, Product
Specification.
• Added the .h Header File section in Chapter 2, Product Specification.
• Added a new paragraph to the Clocking section of Chapter 3, Designing
04/04/2018 7.1 with the Subsystem.
• Removed a paragraph about the Include Shared Logic in IP Example
Design configuration before Figure 4-5.
• Added a paragraph about ports to the Using Designer Assistance for
the Subsystem section in Chapter 4, Design Flow Steps.
• Added clarification of register availability depending on AXI Ethernet
Buffer enabling. See the Note for Table 2-27.
• Added information about signals generated from *_clocks_resets
10/04/2017 7.1
module in the Include Shared Logic in IP Example Design configuration
in Chapter 4, Design Flow Steps.
• Added a caution after Figure 4-10 about RXOUTCLKs.