Synopsys IP Technical Bulletin Article

Building a Bridge from PCI Express to AMBA 3 AXI On-Chip Bus

PCI Express® was developed as the next generation interface to replace PCI®, PCI-X®, and AGP for computer expansion cards and graphics cards. It provides better bandwidth performance and the lower manufacturing costs, has layered architecture, and is backward compatible to the previous PCI software infrastructure and easy to use. AMBA is an industry standard which drives the high performance, enable high reusability and high connectivity. The Synopsys DesignWare PCI Express IP solution provides an AXI Bridging capability for directly adding a PCI Express link to an AXI system fabric. This can significantly reduce the time to design PCI Express into an AXI-based SOC. In this paper, we will discuss the process of building a bridge from PCI Express to the industry-standard AMBA® 3 AXI™ on-chip bus.

PCI Express Architecture Basics

PCI Express is a serial, point-to-point interface. It comprises of four device types:
  • The Root Complex initializes the PCI Express fabric and is usually tied to the microprocessor.
  • The Switch routes data between multiple PCI Express ports.
  • The Endpoint is the requestor or completer of PCI Express transactions and is in the end application. Generally, you will have more endpoints in your design than any other type.
  • Finally, the bridge is just what the name implies. It bridges between PCI Express and other interfaces; like PCI.


Figure 1. PCI Express Topology

All these devices are connected with links. PCI Express link consists of a number of lanes. A lane is a differential pair for unidirectional transmission in both directions. PCI Express defines that you can have multiple lanes running in parallel in order to increase performance of the link between two devices. Each of the lanes provides its own embedded clocking, which removes the line length matching that was required for the old PCI interface. The current version of the PCI Express specification defines the maxim number of lanes to be 32 with a frequency of 2.5 and 5.0 Gb/s.

The PCI Express protocol is defined into multiple layers.

  • Mechanical, which define things like the connectors
  • The Physical Layer. The Physical layer is broken into two portions, the logical layer and the electrical layer. There is also a specification available called the Physical Interface for PCI Express or “PIPE” that defines the interface between the PHY and the rest of the physical interface.
  • The Data Link Layer
  • The Transaction Layer
  • And the Application Layer

AMBA Based Sub-system Basics

AMBA based sub-system typically consists of a high performance system interconnect bus. The typical components in AMBA sub-system are very similar to PCI system except a component called DMA. DMA stands for direct memory access. AMBA system has a centralized DMA unit which can perform data movement between memories and IO devices. PCI system has DMA resides in most of the IO devices.


Figure 2: AMBA Sub-system Toplogy

AXI has 5 channels: Two command channels for read and write, two data channels for read response data and write data, and one response channel for write. It has ID associated with every transaction. Therefore it is an interconnect that provides a full flexibility of implementing different interconnect architectures like many switch fabric architectures.

Synopsys Solution for PCI Express to AXI Bridge

Synopsys offers a complete PCI Express solution including digital cores, PHY IP and verification IP. The digital cores are configurable and scalable to meet multiple application requirements and have user-friendly native application interfaces or AHB/AXI interface.


Figure 3: System Level View of the DWC PCIe AXI Core

The Figure 3 shows the system level view of the DWC PCIe AXI core. The AXI Bridge Module acts as a bridge between the standard AXI interfaces and the Synopsys DesignWare PCIe core native interfaces. The bridge interconnects the AXI interfaces within an AMBA-embedded system with a remote PCIe link, as either a root complex port, or as an endpoint port. The bridge supports up to three AXI interfaces, one for an AXI master, one for an AXI slave, and one for DBI access to the native PCIe core. The AXI master interface enables a remote PCIe device to read and write to an AXI slave connected to the AXI bridge. The AXI slave interface enables an AXI master to read and write through the AXI bridge to a remote PCIe device. The slave DBI interface enables an AXI master to read and write to registers inside the native PCIe core, or the device-specific registers attached to the PCIe native core’s ELBI interface.

PCI Express to AXI Bridge Architecture

The PCI Express to AXI Bridge provides an interface between the DesignWare PCI Express IP's native application interface and the AXI interconnect. It enables a remote PCIe device to be either an AXI slave or an AXI master. The bridge contains AXI master and slave protocol handlers, internal slave and master control for generic request and response interfaces, a packet composer, and a packet decomposer for response formation. The slave and master protocol handlers support the AXI protocol conversion between an AXI transfer and a generic transfer within the bridge. The slave and master generic interface supports the conversion of an AXI transfer to a PCIe transaction. The packet composer and decomposer support the segmentation and reassembly of a PCIe transaction.


Figure 4: AXI Bridge Architecture

Since PCIe has different transaction types, the PCI Express to AXI bridge needs some special side band signals to provide information to control or report the status of a specific transaction. With the side band signals, users also can define error mapping between PCI Express errors (UR, CA, CRS, poisoned, and ECRC error) and AXI slave response errors (SLVERR and DECERR). The bridge design provides an address translation port in case AXI and PCIe have different address space mapping.

Summary

It's pretty complex to develop a bridge to PCI Express from your Syetem-on-Chip design. This requires a fair amount of knowledge of the PCI Express standard, and the design can be tough. Using DesignWare PCI Express with AXI Interface IP makes your design task considerably easier. The DesignWare PCI Express IP is configurable, scalable, synthesizable, and is easily to be added into SoC designs.