PCI Express, commonly called PCIe, is one of the most important high-speed interconnect technologies used in modern computing systems. It connects processors with devices such as GPUs, storage controllers, network adapters, accelerators and other high-performance peripherals.
For a VLSI engineer working on a modern SoC, simply knowing that PCIe is a “high-speed serial protocol” is not enough.
Engineers working on PCIe IP, SoC integration, RTL design, functional verification, validation or system-level debugging need to understand how the protocol is organized, how packets move through its layers, how links are initialized, how devices are discovered and configured, and how errors and power states are handled.
The PCI-SIG PCI Express Base specification defines the architecture, interconnect attributes, fabric management and programming interfaces required for compliant PCIe systems and peripherals. The current approved base specification is Revision 7.0.
This guide explains the PCIe concepts VLSI engineers should understand before working on SoCs, without requiring them to memorize the entire specification.
Modern SoCs contain multiple high-speed interfaces and increasingly complex subsystems.
PCIe is commonly encountered in systems involving:
PCI-SIG identifies data centers, AI/ML, HPC, networking, storage, automotive and other data-intensive applications among the areas using PCIe technology.
For a VLSI engineer, PCIe knowledge becomes particularly useful when working on:
Inskill’s PCIe training material similarly covers the Transaction, Data Link and Physical layers along with packet formats, flow control, error handling, link management, timing and waveform debugging.
A common beginner mistake is to think of PCIe as simply a group of high-speed differential signals.
PCIe is a complete communication architecture.
A simplified view is:
PCIe Device
|
+——————+
| Transaction Layer|
+——————+
|
+——————+
| Data Link |
| Layer |
+——————+
|
+——————+
| Physical Layer |
+——————+
|
PCIe Link
Each layer performs a different function.
Understanding these layers is one of the first things an engineer should learn.
The Transaction Layer deals with the actual requests and completions exchanged between PCIe components.
This is where concepts such as:
become important.
Transactions are represented using Transaction Layer Packets (TLPs).
For example:
Requester
|
| Memory Read TLP
v
Completer
|
| Completion TLP
v
Requester
For a VLSI engineer, it is important to understand that a PCIe transaction is not simply “data going from A to B.”
The transaction has attributes, addressing information, request/completion behavior and protocol rules that determine how it should be handled.
If you work in PCIe verification, you may need to:
If you work in RTL design, you may encounter logic that generates, processes, buffers or routes these transactions.
The Data Link Layer provides reliable delivery across a PCIe link.
It is concerned with mechanisms such as:
A simplified view is:
Transaction Layer
|
TLP
|
v
Data Link Layer
|
Reliability
|
v
Physical Layer
The Data Link Layer is particularly important when debugging situations where packets are generated correctly at the transaction level but something goes wrong while transferring them across the link.
A VLSI verification engineer should understand the relationship between TLPs and Data Link Layer mechanisms rather than treating them as independent protocols.
The Physical Layer is responsible for transmitting and receiving information over the actual PCIe link.
At a high level, it deals with:
The Physical Layer becomes increasingly complex as PCIe generations increase their data rates.
For example, PCIe 6.0 introduced 64.0 GT/s, PAM4 signaling, FEC and fixed-size 256-byte Flits.
The key lesson for a VLSI engineer is that PCIe generations are not simply “the same protocol but faster.” Higher generations introduce additional electrical and encoding requirements that affect the implementation and verification environment.
A PCIe link consists of one or more lanes.
Common configurations include:
x1
x2
x4
x8
x16
A lane contains differential transmit and receive paths.
Conceptually:
Device A Device B
TX ———————-> RX
RX <———————- TX
With multiple lanes:
Lane 0
Lane 1
Lane 2
Lane 3
…
The number of lanes affects aggregate link bandwidth.
An engineer working on PCIe should understand the distinction between:
These concepts become particularly important when working closer to the Physical Layer.
The Root Complex (RC) provides the connection between the processor/system memory side and the PCIe hierarchy.
A simplified system may look like:
CPU
|
Root Complex
|
+——-+——-+
| |
Endpoint Switch
|
+—-+—-+
| |
Endpoint Endpoint
The Root Complex is an important concept for SoC engineers because it is typically where PCIe connects into the host system architecture.
A PCIe Endpoint is a device that participates in the PCIe hierarchy as an endpoint rather than as the root.
Examples can include:
From a verification perspective, the role of the device matters because the expected transactions and configuration behavior depend on whether the component is functioning as a Root Complex, Endpoint, Switch or another PCIe component.
A PCIe switch allows PCIe traffic to be connected across multiple downstream ports.
Conceptually:
Root Complex
|
Switch
/ | \
/ | \
EP1 EP2 EP3
Understanding the topology is important for SoC and system-level engineers because packet routing and hierarchy become more complex when multiple devices are involved.
One of the most important concepts for a PCIe engineer is the Link Training and Status State Machine, commonly called LTSSM.
The LTSSM controls and monitors the process through which a PCIe link moves from an inactive state toward normal operation and through various recovery or low-power conditions.
A simplified conceptual flow is:
Detect
↓
Polling
↓
Configuration
↓
L0
There are additional states and transitions involved in actual PCIe operation.
The important idea is that the link does not simply become active as soon as power is applied.
The two ends must detect each other, exchange training information, establish the required configuration and reach an operational state.
LTSSM is important for:
For example, if a PCIe link refuses to reach L0, an engineer needs to determine where the state-machine progression stopped.
That makes LTSSM knowledge extremely valuable during waveform debugging.
Before normal data traffic can occur, the link needs to establish communication between its two ends.
Training involves mechanisms that allow the link partners to determine and establish appropriate operating conditions.
Depending on the PCIe generation and implementation, engineers may encounter concepts such as:
For a VLSI engineer, link training should be understood as a sequence of protocol and physical-layer events, not just as a single initialization signal.
TLPs are fundamental to understanding PCIe transactions.
At a conceptual level, a TLP can contain:
+——————-+
| Header |
+——————-+
| Optional Data |
+——————-+
The header describes the transaction.
Depending on the transaction type, the TLP may carry information such as:
A verification engineer does not necessarily need to memorize every field initially.
Instead, learn to answer:
What transaction is this? Who generated it? Who should respond? What does the receiver do with it?
That way of thinking becomes much more useful when debugging waveforms.
Data Link Layer Packets (DLLPs) are associated with Data Link Layer functions.
They support link-level mechanisms such as:
The distinction is important:
TLP → Transaction Layer
DLLP → Data Link Layer
In PCIe 6.0 Flit Mode, TLPs and DLLPs are carried within fixed-size Flits rather than using the older packet framing arrangement. PCI-SIG specifies a 256-byte Flit structure for PCIe 6.0 Flit Mode.
A PCIe device needs to be discovered and configured before normal system operation.
This is where concepts such as:
become important.
At a high level, the host discovers the PCIe hierarchy and determines what devices are present and what resources they require.
A simplified flow is:
System starts
↓
Discover PCIe hierarchy
↓
Identify devices
↓
Read configuration information
↓
Assign resources
↓
Enable devices
↓
Normal operation
A VLSI engineer working on a PCIe Endpoint should understand what configuration information the device exposes and how the host interacts with it.
Base Address Registers (BARs) are used to describe addressable regions associated with a PCIe function.
For example, a device might expose registers that the host accesses through a memory-mapped address region.
Conceptually:
CPU
|
| Memory-mapped access
v
PCIe Root Complex
|
v
PCIe Endpoint
|
v
Device Registers
Understanding BARs helps engineers connect the PCIe protocol with the broader SoC memory-mapped architecture.
PCIe needs mechanisms to prevent receivers from being overwhelmed by traffic.
Flow control is therefore an important topic for both design and verification engineers.
A simplified concept is:
Sender
|
| Data
v
Receiver Buffer
|
| Available space?
v
Flow Control
Engineers should understand the relationship between:
The exact implementation details depend on the PCIe generation and protocol mode.
For interviews and initial project work, understanding why flow control exists and how it prevents buffer overflow is more important than memorizing every credit field.
High-speed interfaces need mechanisms to detect and respond to errors.
PCIe includes multiple error-handling mechanisms across its layers.
At a high level, engineers should understand:
PCIe 6.0 introduced FEC alongside CRC to address the higher error characteristics associated with PAM4 signaling.
For a verification engineer, error injection is particularly useful.
A good PCIe verification environment should not test only successful transactions. It should also exercise error scenarios and verify that the design responds according to the intended protocol behavior.
SoC engineers should also understand PCIe power states.
PCIe systems can enter lower-power conditions when full link activity is unnecessary.
This introduces another verification dimension:
Active
↓
Low Power
↓
Wake-up
↓
Active
The engineer needs to consider:
This becomes particularly important in mobile, embedded and power-sensitive SoCs.
PCIe is frequently associated with high-throughput data movement, so DMA (Direct Memory Access) is an important adjacent concept.
A simplified data path might look like:
PCIe Device
|
v
PCIe Controller
|
v
DMA Engine
|
v
System Memory
Instead of requiring the CPU to move every data word, a DMA engine can coordinate transfers between device and memory.
For VLSI engineers, understanding the interaction between PCIe, DMA, memory addressing and interrupts helps connect protocol-level knowledge to actual SoC architecture.
An RTL engineer working on PCIe should build knowledge in several layers.
You should be comfortable with:
You should understand:
You should know:
You should be able to inspect a waveform and reason about:
Transaction
↓
Packet
↓
Protocol state
↓
Link state
↓
Expected response
A verification engineer needs an additional layer of knowledge.
You should understand:
A typical PCIe verification environment may conceptually look like:
Test
|
Sequence
|
v
Driver
|
v
PCIe DUT
|
+——+——+
| |
Monitor Monitor
| |
+——+——+
|
Scoreboard
|
Coverage
Inskill’s PCIe Transaction Layer training specifically includes UVC/testbench development, while its Data Link Layer training focuses on DLL verification and testbench development.
An SoC integration engineer does not necessarily need to implement every PCIe protocol block from scratch.
However, they should understand how PCIe connects with the rest of the chip.
Important areas include:
A simplified SoC integration view is:
CPU
|
AXI / NoC
|
+———+———+
| |
Memory PCIe
Controller Controller
|
PHY
|
PCIe Link
The exact architecture varies by SoC, but the integration principle remains similar: PCIe is one subsystem within a larger hardware and software architecture.
Engineers frequently encounter PCIe Gen3, Gen4, Gen5 and Gen6 in real projects.
The important thing is to understand the progression rather than memorizing numbers without context.
For example:
Generation | Key point |
Gen1 | 2.5 GT/s |
Gen2 | 5.0 GT/s |
Gen3 | 8.0 GT/s |
Gen4 | 16.0 GT/s |
Gen5 | 32.0 GT/s |
Gen6 | 64.0 GT/s, PAM4 and Flit Mode |
PCI-SIG confirms that PCIe 6.0 doubles the 32 GT/s rate of PCIe 5.0 to 64 GT/s and introduces PAM4, FEC and Flit Mode.
However, GT/s is not the same thing as application-level GB/s. Encoding, protocol overhead, lane count and implementation details affect usable bandwidth.
This distinction is important in technical interviews.
A beginner might assume:
“PCIe 6.0 is just PCIe 5.0 running twice as fast.”
That is an incomplete understanding.
PCIe 6.0 introduced a major change in signaling with PAM4, along with FEC and CRC mechanisms and Flit-based operation.
Therefore, engineers working on newer PCIe designs need to understand how changes at the Physical Layer influence the rest of the implementation and verification flow.
Engineers entering modern SoC and data-center designs may also encounter CXL (Compute Express Link).
PCI-SIG notes that protocols such as CXL and NVMe leverage PCIe infrastructure and PHY technology.
This does not mean PCIe and CXL are the same protocol.
Rather, knowledge of PCIe provides useful background for understanding other high-speed interconnect technologies.
If you are new to PCIe, avoid trying to read the complete specification from the first page.
A practical learning order is:
Learn:
Understand:
Start with:
Study:
Study:
Understand:
Practice:
Finally, learn how PCIe interacts with:
A VLSI engineer does not need to memorize the entire PCIe specification before working on a PCIe-based SoC.
What matters first is understanding how the pieces fit together.
Start with the architecture. Then understand the protocol and then move into the mechanisms. Finally, connect PCIe to the SoC. That foundation gives RTL designers, verification engineers and SoC integration engineers the context they need to understand PCIe-based projects and debug problems more effectively.