The EC314 PCI Express Bus Controller functions as an interface to the PCI Express transceiver for a PCI Express Endpoint device. This core supports 4-lane PCI Express link.
This core is designed to handle all PCI Express bus protocol. It allows the chip designer to integrate PCI Express connectivity to his design without going through the time consuming learning curve of PCI Express bus architecture. When this core is integrated to a chip design, the PCI Express bus can be accessed by simple read and write accesses from the user logic. Similarly, external accesses comes from the PCI Express bus is translated into simple memory read and write accesses to the user logic. Different kinds of user logic functions such as micro controller, DMA and SDRAM controller can be integrated with the PCI Express core to gain access to the PCI Express bus.
Asynchronous user interface is supported by the core. It allows the user interface to run in a different clock domain from the PCI Express physical interface. The PCI Express core combines high performance and low cost implementation at the same time. It supports multiple posted and pending requests from the user logic and from the PCI Express link for high performance data transfer. Low cost implementation is achieved through the support of on-chip and off-chip PHY devices through industrial standard PIPE interface. The core is fully synthesizable and can be implemented in ASIC and FPGA.
The master user interface of the core allows single or burst, read or write accesses generated by the user logic. The accesses are converted to Transaction Layer Packets (TLPs) following the definition of the PCI Express Transaction Layer Protocol specification. The transmit FIFO internal to the core can store up to 6 TLPs. The transmit FIFO also allows the user interface and the rest of the core to operate at different clock frequencies. TLPs from the transmit FIFO will be transmitted to the transceiver following the PIPE protocol of the transceiver.
The TLPs constructed from the user accesses are automatically applied with a sequence number and Link Cyclical Redundancy Check (LCRC), following the definition of the PCI Express Data Link Layer Protocol specification, before transmitting to the PCI Express Link. They are stored in an internal retry buffer in case re-transmission is needed due to negative acknowledgement. If re-transmission is needed, it is accomplished automatically with no necessity of user attention.
The accesses from the PCI Express Link are received in the form of TLPs. The core interprets the received TLPs, verifies with the formation rules and are stored in the receive FIFO. The receive FIFO internal to the core can store up to 6 TLPs. The received TLPs are then propagated to the user through the target user interface. If the verification succeeds or fails, the core will automatically construct Data Link Layer Packets (DLLPs) containing positive or negative acknowledge following the definition in the PCI Express Data Link Layer Protocol specification to requestor with no necessity of user attention.
The transmission and reception of the TLPs follows the Flow Control rule defined in the PCI Express Transaction Layer Protocol specification to avoid data overflow. The transmission buffer can store multiple TLPs and this allows continuous transmission of TLPs. While one or more TLP(s) could be waiting for positive acknowledgement, one TLP could be in transmission to the PCI Express bus and one TLP could be under construction from the master user interface. The reception buffer can also store multiple TLPs and this allows continuous reception of TLPs. While one TLP is arriving from the PCI Express Link, one TLP could be propagated to the user logic through the target user interface. The exchange of the Flow Control information is done by the transmission and reception of DLLPs, and the core will automatically achieve this with no necessity of user attention.
The EC314 PCI Express bus controller contains all PCI Express configuration and power management registers. Configuration accesses from the PCI Express bus are automatically processed by the core with no necessity of user attention.
The EC314 PCI Express bus controller automatically performs link initialization and training after startup, following the PCI Express Physical Layer Protocol specification. The core also contains the link training and status state machine which indicates different status states of the Link. For example, this state machine will go to the Reset or Recovery state when a non-recoverable error has happened, to reset or start the re-training sequence depending on the system instruction. The core also performs framing to lanes and data scrambling on TLPs and DLLPs before they are transmitted to the Link.
- Compliant to PCI Express Specification 1.1 for 4-lane end point.
- Supports all 3 layers of PCI Express protocol.
- Simple user interface to send and receive requests from the PCI Express Link with address and data bus.
- Automatically generates and decodes all PCI Express packets and header information.
- Handles all PCI Express protocols, ordering rules, flow control, LCRC, error checking, replay, scrambling and lane training.
- Includes all PCI Express configuration and power management registers.
- Lane reversal and polarity inversion are supported by the core.
- Identical user interface as 1-lane IP core ease design migration.
- High performance design delivers close to 100% of the theoretical bandwidth in real applications.
- Multiple posted requests and pending request queues.
- 4-lane design supports up to 10Gbps.
- Optional AHB user interface and DMA transfer.
- Synthesizable RTL code for ASIC and FPGA implementations.
- Standard PIPE interface supports for on-chip PHY cores and external PHY chips.