Visible to Intel only — GUID: nik1410564842314
Ixiasoft
Visible to Intel only — GUID: nik1410564842314
Ixiasoft
To facilitate the interface to 64-bit memories, the Arria V Hard IP for PCI Express aligns data to the qword or 64 bits by default. Consequently, if the header presents an address that is not qword aligned, the Hard IP block shifts the data within the qword to achieve the correct alignment.
Qword alignment applies to all types of request TLPs with data, including the following TLPs:
- Memory writes
- Configuration writes
- I/O writes
The alignment of the request TLP depends on bit 2 of the request address. For completion TLPs with data, alignment depends on bit 2 of the lower address field. This bit is always 0 (aligned to qword boundary) for completion with data TLPs that are for configuration read or I/O read requests.
The following table shows the byte ordering for header and data packets.
Packet |
TLP |
---|---|
Header0 |
pcie_hdr_byte0, pcie_hdr _byte1, pcie_hdr _byte2, pcie_hdr _byte3 |
Header1 |
pcie_hdr _byte4, pcie_hdr _byte5, pcie_hdr byte6, pcie_hdr _byte7 |
Header2 |
pcie_hdr _byte8, pcie_hdr _byte9, pcie_hdr _byte10, pcie_hdr _byte11 |
Header3 |
pcie_hdr _byte12, pcie_hdr _byte13, header_byte14, pcie_hdr _byte15 |
Data0 |
pcie_data_byte3, pcie_data_byte2, pcie_data_byte1, pcie_data_byte0 |
Data1 |
pcie_data_byte7, pcie_data_byte6, pcie_data_byte5, pcie_data_byte4 |
Data2 |
pcie_data_byte11, pcie_data_byte10, pcie_data_byte9, pcie_data_byte8 |
Data<n> |
pcie_data_byte<4n+3>, pcie_data_byte<4n+2>, pcie_data_byte<4n+1>, pcie_data_byte<n> |
The following figure illustrates the mapping of Avalon‑ST RX packets to PCI Express TLPs for a three dword header with non-qword aligned addresses with a 64-bit bus. In this example, the byte address is unaligned and ends with 0x4, causing the first data to correspond to rx_st_data[63:32] .
The following figure illustrates the mapping of Avalon-ST RX packets to PCI Express TLPs for a three dword header with qword aligned addresses. Note that the byte enables indicate the first byte of data is not valid and the last dword of data has a single valid byte.
The following figure illustrates back‑to‑back transmission on the 64‑bit Avalon‑ST RX interface with no idle cycles between the assertion of rx_st_eop and rx_st_sop.