⚙️ 1. AXI与RC的连接
- 角色定位:
- AXI Master:模拟CPU或DMA控制器,发起读写请求(如内存访问)。
- RC:作为AXI Slave接收请求,将其转换为PCIe事务层包(TLP)。
- 交互机制:
- AXI事务 → TLP转换:RC解析AXI的地址(
ARADDR/AWADDR
)、数据(WDATA
)和突发长度(ARLEN/AWLEN
),生成对应的TLP包(如Memory Read/Write TLP)。 - 响应路径:RC将EP返回的TLP响应(如Completion TLP)转回AXI响应(
RRESP/BRESP
)。
- AXI事务 → TLP转换:RC解析AXI的地址(
- UVM实现:
- AXI VIP:作为AXI Master驱动事务,并监控RC的AXI接口协议合规性(如握手时序、突发长度)。
🔌 2. RC与PCIe设备的连接
- 设备层级:
- RC:连接CPU与PCIe拓扑的根节点。
- PCIe Switch:扩展多设备连接(可选)。
- PCIe Endpoint(EP):终端设备(如网卡、SSD控制器)。
- 数据流:
- RC通过PCIe链路发送TLP包到EP(地址路由或ID路由)。
- EP解析TLP并执行操作(如读写本地寄存器或内存)。
- EP返回响应TLP(如读数据或写确认)。
- UVM实现:
- PCIe VIP:模拟RC或EP的行为,生成随机化TLP包并检查协议错误(如ECRC校验)。
🧩 3. PCIe Endpoint的内部连接
- 核心组件:
- Controller:处理TLP包的路由、地址转换(IATU)、中断管理等。
- PHY:物理层串行化/反串行化(通过PIPE接口连接Controller)。
- 数据通路:
- Outbound路径:EP接收主机请求(如配置空间读写),通过IATU将主机地址映射到本地AXI地址。
- Inbound路径:EP主动发起DMA请求,将本地数据通过TLP发送给主机内存。
⛓ 4. AXI与APB的桥接
- 协议转换需求:
EP内部的低速外设(如GPIO、I²C控制器)通过APB访问,而主机通过AXI访问EP,需桥接器转换协议。 - 桥接机制:
- AXI → APB转换:桥接器将AXI突发请求拆分为单次APB传输(
PADDR
、PWDATA
)。 - 地址映射:通过EP的BAR寄存器将主机地址空间映射到APB外设地址。
- AXI → APB转换:桥接器将AXI突发请求拆分为单次APB传输(
- UVM实现:
- APB Agent:驱动APB外设,模拟响应延迟(
PREADY
)和错误(PSLVERR
)。
- APB Agent:驱动APB外设,模拟响应延迟(
🔍 5. UVM验证平台的关键连接点
组件 | 连接目标 | 监控/驱动内容 | 验证重点 |
---|---|---|---|
AXI VIP | RC的AXI接口 | 驱动AXI读写突发,监控响应延迟和错误 | AXI协议合规性、TLP生成正确性 |
PCIe VIP | RC/EP的PCIe接口 | 生成TLP包(如配置、内存事务),检查链路训练(LTSSM) | TLP格式、链路宽度协商、错误注入 |
APB Agent | AXI-APB桥输出端 | 驱动APB读写,验证寄存器访问 | 地址映射正确性、数据一致性 |
Scoreboard | 多组件事务流 | 比较AXI请求与最终APB响应的一致性 | 端到端数据完整性 |
⚡ 6. 典型数据流示例
场景:CPU读写EP的外设寄存器
- AXI层:AXI VIP发起写请求(地址=
EP的BAR0 + 偏移
) → RC接收并转换为Configuration Write TLP。 - PCIe层:TLP经Switch路由到EP → EP解析TLP并转发到AXI-APB桥。
- 桥接层:桥接器将TLP转换为APB写事务(
PWRITE=1, PADDR=寄存器地址
) → APB Agent返回PRDATA
。 - 验证点:
- Scoreboard检查原始AXI数据与APB响应的值是否一致。
- Protocol Checker监控APB的
PSELx
激活时序(需在PENABLE
前保持稳定)。
💎 总结
UVM中PCIe验证环境的连接本质是协议栈的垂直集成与水平扩展:
- 垂直分层:AXI(高性能主干)→ PCIe TLP(事务层抽象)→ APB(低速外设控制)。
- 水平扩展:RC作为中枢连接CPU、Switch及多EP设备。
- 验证核心:
- 协议转换正确性(如AXI突发 ↔ TLP分段 ↔ APB单次传输)。
- 地址映射验证(IATU/BAR配置的硬件与模型一致性)。
- 异常处理(注入TLP错误、APB响应超时)。
通过VIP与自定义Agent的协同,可构建高复用、高覆盖率的验证平台,确保PCIe子系统在复杂SoC中的可靠性。