
5–14
Chapter 5: IP Core Architecture
PCI Express Avalon-MM Bridge
Stratix V Hard IP for PCI Express
June 2012
Altera Corporation
The Avalon-MM TX slave interface of a PCI Express Avalon-MM bridge can receive
read requests with burst sizes of up to 512 bytes sent to any address. However, the
bridge limits read requests sent to the PCI Express link to a maximum of 256 bytes.
Additionally, the bridge must prevent each PCI Express read request packet from
crossing a 4 KByte address boundary. Therefore, the bridge may split an Avalon-MM
read request into multiple PCI Express read packets based on the address and the size
of the read request.
For Avalon-MM read requests with a burst count greater than one, all byte enables
must be asserted. There are no restrictions on byte enable for Avalon-MM read
requests with a burst count of one. An invalid Avalon-MM request can adversely
affect system functionality, resulting in a completion with the abort status set. An
example of an invalid request is one with an incorrect address.
PCI Express-to-Avalon-MM Read Completions
The PCI Express Avalon-MM bridge returns read completion packets to the initiating
Avalon-MM master in the issuing order. The bridge supports multiple and
out-of-order completion packets.
PCI Express-to-Avalon-MM Downstream Write Requests
When the PCI Express Avalon-MM bridge receives PCI Express write requests, it
converts them to burst write requests before sending them to the interconnect fabric.
The bridge translates the PCI Express address to the Avalon-MM address space based
on the BAR hit information and on address translation table values configured during
the IP core parameterization. Malformed write packets are dropped, and therefore do
not appear on the Avalon-MM interface.
For downstream write and read requests, if more than one byte enable is asserted, the
byte lanes must be adjacent. In this case, the byte enables must be aligned to the size
of the read or write request.
As an example,
Table 5–2
lists the byte enables for 32-bit data.
In burst mode, the Stratix V Hard IP for PCI Express supports only byte enable values
that correspond to a contiguous data burst. For the 32-bit data width example, valid
values in the first data phase are 4’b1111, 4’b1110, 4’b1100, and 4’b1000, and valid
values in the final data phase of the burst are 4’b1111, 4’b0111, 4’b0011, and 4’b0001.
Intermediate data phases in the burst can only have byte enable value 4’b1111.
Table 5–2. Valid Byte Enable Configurations
Byte Enable Value
Description
4’b1111
Write full 32 bits
4’b0011
Write the lower 2 bytes
4’b1100
Write the upper 2 bytes
4’b0001
Write byte 0 only
4’b0010
Write byte 1 only
4’b0100
Write byte 2 only
4’b1000
Write byte 3 only