安路科技PCIe技术文档综合分析报告
生成时间: 2026年04月09日
分析文档: 17份安路科技PCIe技术文档
文档类型: FPGA PCIe硬核用户手册、参考设计、IP配置指南
📋 概览
分析目标
本报告对安路科技PH1A系列、PH1A100系列、PH1P系列和PH2A系列FPGA的PCIe技术文档进行系统化分析,梳理技术架构、接口定义、配置方法和应用场景,为用户提供完整的技术知识图谱。
资料来源
分析文档包含以下三类:
- 用户手册(4份): PH1A/PH1A100/PH1P/PH2A系列PCIe控制器用户手册
- IP配置指南(3份): PH1A/PH1P/PH2A系列PCIe定制向导IP用户手册
- 参考设计(10份): Native接口转换、DMA设计、RC-EP连接、SERDES共享等
核心发现
- 产品线完整: 涵盖PH1A/PH1A100/PH1P/PH2A四个FPGA系列,支持Gen1-Gen4
- 接口丰富: 提供Native接口和AXI Stream接口两种选择,便于不同应用场景
- DMA方案完善: 包含Block DMA和Scatter-Gather DMA两种实现
- 参考设计完整: 从基础TLP传输到高级DMA应用,覆盖各种使用场景
🏗️ 技术架构概览
整体架构
安路科技PCIe控制器硬核采用分层架构,包含:
- 物理层(PHY): 通过PIPE接口连接SERDES,支持Gen1-Gen4线速率
- 数据链路层: 负责流量控制、错误检测、链路训练
- 事务层: 处理TLP包的生成、解析和路由
模块分解
| 模块名称 | 功能描述 | 关键特性 | |———-|———-|———-| | PCIe Controller硬核 | PCIe协议核心处理引擎 | 支持EP/RC模式,Gen1-Gen4 | | Native接口 | 安路自定义数据接口 | XALI0/1, TRGT1, BYPASS, ELBI, DBI | | AXI Stream转换桥 | Native接口到AXI Stream转换 | RQ/RC/CQ/CC四组接口 | | DMA引擎 | 数据搬运加速 | Block DMA / Scatter-Gather DMA | | 配置管理 | PCIe配置空间管理 | DBI接口,自恢复功能 |
数据流向
PCIe链路 ↔ PCIe硬核 ↔ Native接口 ↔ AXI Stream桥 ↔ 用户逻辑
↓
配置空间(DBI)
↓
中断控制(INT/MSI/MSI-X)
📊 技术规格
协议与标准
| 协议/标准 | 版本 | 支持的功能 | 备注 | |———–|——|———–|——| | PCIe Base Specification | Rev 5.0 | Gen1-Gen4线速率 | 不同系列支持等级不同 | | PCI Local Bus | Rev 3.0 | Legacy PCI兼容 | Legacy Endpoint模式 | | AMBA AXI4 | AXI4-MM/AXI4-Stream | 用户逻辑接口 | 用于DMA和桥接应用 | | AMBA AXI4-Lite | AXI4-Lite | 寄存器访问 | 低速控制接口 |
性能参数
| 参数项 | 参数值 | 单位 | 说明 | |——–|——–|——|——| | Gen1线速率 | 2.5 | GT/s | PH1A/PH1A100/PH1P/PH2A | | Gen2线速率 | 5.0 | GT/s | PH1A/PH1A100/PH1P/PH2A | | Gen3线速率 | 8.0 | GT/s | PH1A/PH2A | | Gen4线速率 | 16.0 | GT/s | 仅PH2A | | 链路宽度 | 1/2/4/8 | Lanes | PH1A100:1-2, PH1A/PH1P:1-4, PH2A:1-8 | | Max Payload Size | 128-2048 | Bytes | 可配置 | | Max Read Request Size | 128-4096 | Bytes | 可配置 |
资源需求
| 资源类型 | PH1A100需求 | PH1A需求 | PH2A需求 | |———-|————|———-|———-| | SERDES DUAL | 1个 | 1-2个 | 1-2个 | | LUT6 | 3000-7500 | 3000-7500 | 6000-28000 | | REG | 4000-45000 | 4000-45000 | 10000-25000 | | ERAM | 11-52 | 11-52 | 140-157 | | PLL | 1 | 1 | 1-2 |
🔌 接口定义
接口分类
Native接口
安路科技自定义的高性能接口,直接连接PCIe硬核,包括:
- XALI0/XALI1: 发送接口,用于发送Request和Completion
- TRGT1: 接收目标端口,接收对端Request
- BYPASS: 旁路接口,接收对端Completion
- ELBI: 外部本地总线,用于简单的寄存器访问
- DBI: 数据总线接口,用于配置空间访问
- SII: 系统信息接口
- CRI: 控制寄存器接口
AXI接口
标准AMBA AXI4接口,便于移植:
- RQ (Requester Request): 发送读写请求
- RC (Requester Completion): 接收完成报文
- CQ (Completer Request): 接收读写请求
- CC (Completer Completion): 发送完成报文
- AXI4-MM: 内存映射接口,用于DMA
- AXI4-Lite: 轻量级接口,用于寄存器访问
定制IP接口
- mgmt接口: 配置管理接口
- interrupt接口: 中断接口
详细接口定义
PCIe硬核Native接口
| 接口名称 | 方向 | 位宽 | 描述 | |———-|——|——|——| | 时钟复位 |||| | refclk_p/n | 输入 | 1 | 100MHz差分参考时钟 | | core_clk | 输出 | 1 | PCIe核心时钟 | | core_rst_n | 输出 | 1 | PCIe核心复位 | | user_clk | 输出 | 1 | 用户侧时钟(PLL输出) | | user_rst_n | 输出 | 1 | 用户侧复位 | | 发送接口 |||| | xali0_txdata | 输出 | 64/128 | Client0发送数据 | | xali0_txcharisk | 输出 | 8/16 | TLP字符指示 | | xali0_txdvalid | 输出 | 1 | 发送数据有效 | | xali0_txdready | 输入 | 1 | 发送数据就绪 | | 接收接口 |||| | trgt1_rxdata | 输入 | 64/128 | TRGT1接收数据 | | trgt1_rxcharisk | 输入 | 8/16 | TLP字符指示 | | trgt1_rxdvalid | 输入 | 1 | 接收数据有效 | | trgt1_rxdready | 输出 | 1 | 接收数据就绪 | | 配置接口 |||| | dbi_addr | 输入 | 19 | DBI地址 | | dbi_wdata | 输入 | 32 | DBI写数据 | | dbi_rdata | 输出 | 32 | DBI读数据 | | dbi_write | 输入 | 1 | DBI写使能 | | dbi_read | 输入 | 1 | DBI读使能 | | 中断接口 |||| | msi_int | 输入 | 32 | MSI中断向量 | | msi_enable | 输出 | 4 | MSI使能 | | intx_int | 输入 | 4 | Legacy INTx中断 |
AXI Stream接口(RQ/RC/CQ/CC)
| 接口名称 | 方向 | 位宽 | 描述 | |———-|——|——|——| | RQ接口(512bit) |||| | s_axis_rq_tdata | 输入 | 512 | 请求数据 | | s_axis_rq_tuser | 输入 | 137 | 边带信息(地址/BE/Tag等) | | s_axis_rq_tkeep | 输入 | 16 | 字节有效 | | s_axis_rq_tlast | 输入 | 1 | 包结束 | | s_axis_rq_tvalid | 输入 | 1 | 数据有效 | | s_axis_rq_tready | 输出 | 1 | 接收就绪 | | RC接口(512bit) |||| | m_axis_rc_tdata | 输出 | 512 | 完成数据 | | m_axis_rc_tuser | 输出 | 161 | 边带信息 | | m_axis_rc_tkeep | 输出 | 16 | 字节有效 | | m_axis_rc_tlast | 输出 | 1 | 包结束 | | m_axis_rc_tvalid | 输出 | 1 | 数据有效 | | m_axis_rc_tready | 输入 | 4 | 接收就绪 | | CQ接口(512bit) |||| | m_axis_cq_tdata | 输出 | 512 | 请求数据 | | m_axis_cq_tuser | 输出 | 183 | 边带信息 | | m_axis_cq_tkeep | 输出 | 16 | 字节有效 | | m_axis_cq_tlast | 输出 | 1 | 包结束 | | m_axis_cq_tvalid | 输出 | 1 | 数据有效 | | m_axis_cq_tready | 输入 | 1 | 接收就绪 | | CC接口(512bit) |||| | s_axis_cc_tdata | 输入 | 512 | 完成数据 | | s_axis_cc_tuser | 输入 | 81 | 边带信息 | | s_axis_cc_tkeep | 输入 | 16 | 字节有效 | | s_axis_cc_tlast | 输入 | 1 | 包结束 | | s_axis_cc_tvalid | 输入 | 1 | 数据有效 | | s_axis_cc_tready | 输出 | 1 | 接收就绪 |
时序特性
- 时钟域: core_clk与user_clk为异步时钟域,需要CDC处理
- 数据对齐: 支持地址对齐和非对齐传输
- 反压机制: 支持ready信号反压和暂停(Halt)机制
- 包连续性: 支持back-to-back包传输
📝 知识点梳理
按技术层级分类
物理层(PHY)
- SERDES PHY资源分配和约束
- PIPE接口定义
- 参考时钟要求(100MHz差分)
- Lane Reversal支持
- 链路训练和LTSSM状态机
数据链路层
- 链路训练(Link Training)
- LTSSM状态机转换
- 流量控制(Flow Control)
- 错误检测(ECRC/LCRC)
- 电源管理(ASPM/L1子状态)
事务层
- TLP包格式(Request/Completion)
- 配置空间访问(Type 0/Type 1)
- 地址路由和过滤
- 完成包查找表和超时
- Extended Tag支持
按接口类型分类
Native接口
- XALI0/XALI1发送时序
- TRGT1接收时序
- BYPASS接收时序
- ELBI简单访问时序
- DBI配置空间访问时序
AXI接口
- RQ请求包格式(128bit描述符+数据)
- RC完成包格式(96bit描述符+数据)
- CQ请求包格式(128bit描述符+数据)
- CC完成包格式(96bit描述符+数据)
- Stream模式支持
定制IP接口
- mgmt接口配置访问
- msi中断发起
- cfg_mgmt接口访问
按应用模式分类
RC(Root Complex)模式
- RC配置和初始化
- Type 1配置空间
- 下游设备枚举
- 端口路由
- INTx中断检测
EP(Endpoint)模式
- EP配置和初始化
- Type 0配置空间
- BAR空间映射
- 中断发起(INTx/MSI/MSI-X)
- DMA主动发起
🔍 深入分析
关键问题1:Native接口 vs AXI Stream接口
分析:安路科技提供了两种接口方案:
- Native接口: 直接连接PCIe硬核,性能最优,但需要熟悉安路自定义协议
- AXI Stream接口: 通过桥接转换,兼容AMBA生态,便于移植
结论:
- 新设计且追求极致性能:推荐使用Native接口
- 需要移植现有AMBA IP:推荐使用AXI Stream接口
- 参考设计提供了两种接口的完整实现,可根据需求选择
关键问题2:Block DMA vs Scatter-Gather DMA
分析:
- Block DMA: 传输物理连续的单个数据块,实现简单
- Scatter-Gather DMA: 支持多个不连续块,减少CPU参与,提高效率
结论:
- 小数据量传输:Block DMA足够,资源消耗少
- 大数据量传输:SGDMA优势明显,中断次数少
- 安路提供两种DMA方案,可根据应用场景选择
关键问题3:PH1A/PH1P vs PH2A差异
分析: | 特性 | PH1A/PH1P | PH2A | |——|———-|——| | PCIe版本 | Gen1-Gen3 | Gen1-Gen4 | | 最大宽度 | X4 | X8 | | AXI数据位宽 | 64/128bit | 512bit | | 应用场景 | 中端应用 | 高端应用 | | 价格 | 较低 | 较高 |
结论:
- PH1A/PH1P:性价比高,适合中端应用
- PH2A:性能更强,适合高端应用
- 根据带宽需求和成本预算选择
🔗 跨文档关联
版本演进关系
PH1A/PH1A100/PH1P → PH2A
├─ Native接口 → AXI Stream接口
├─ Gen1-Gen3 → Gen1-Gen4
├─ X4 → X8
└─ 64/128bit → 512bit
功能扩展关系
- 基础功能: PCIe硬核,Native接口
- 接口转换: Native → AXI Stream (APUG032/APUG050/APUG089)
- DMA加速: Block DMA (APUG033) → SGDMA (APUG069)
- 系统验证: RC-EP连接 (APUG039)
- 资源共享: SERDES共享 (APUG053)
参考设计关系
IP用户手册(IPUG011/028/160)
↓
PCIe硬核配置
↓
参考设计(APUG032/033/039/050/053/069/089)
↓
实际应用
💡 关键洞察
洞察1:接口策略的双轨并行
安路科技采用Native + AXI Stream双轨策略:
- Native接口发挥硬核性能优势
- AXI Stream接口降低迁移门槛
- 参考设计提供两种方案,灵活应对不同需求
洞察2:DMA方案的梯度设计
从简单的Block DMA到复杂的SGDMA:
- Block DMA: 入门简单,适合学习和小应用
- SGDMA: 性能优异,适合生产环境
- 两种方案形成完整的产品矩阵
洞察3:产品线的清晰定位
- PH1A/PH1A100/PH1P: 主流中端,Gen1-Gen3
- PH2A: 高端旗舰,Gen1-Gen4
- 产品定位明确,覆盖不同应用场景
📝 结论与建议
主要结论
- 技术完整: 安路科技PCIe解决方案涵盖硬件、IP、参考设计,技术栈完整
- 接口灵活: Native和AXI Stream双接口,满足不同应用需求
- 参考设计丰富: 从基础TLP到高级DMA,覆盖各种应用场景
- 产品线清晰: PH1A/PH1P中端 + PH2A高端,定位明确
行动建议
设计选型建议
- 高性能应用: 选择PH2A + Native接口 + SGDMA
- 成本敏感应用: 选择PH1A/PH1P + AXI Stream + Block DMA
- 快速原型: 使用参考设计直接开发
- 定制开发: 基于IP用户手册定制配置
学习路径建议
- 入门: 阅读IP用户手册,理解PCIe基础配置
- 进阶: 研究Native接口,掌握高性能设计
- 实践: 运行参考设计,验证设计方案
- 深入: 学习DMA设计,提升系统能力
开发流程建议
- 确定FPGA型号和PCIe规格
- 选择接口方案(Native或AXI Stream)
- 配置PCIe硬核(IP GUI)
- 实现用户逻辑或集成DMA
- 仿真验证
- 上板测试
📚 术语表
核心术语
| 术语 | 英文全称 | 定义 | |——|———-|——| | PCIe | PCI Express | 高速串行计算机扩展总线标准 | | TLP | Transaction Layer Packet | PCIe事务层数据包 | | BAR | Base Address Register | 基地址寄存器 | | DMA | Direct Memory Access | 直接存储器访问 | | EP | Endpoint | 端点设备 | | RC | Root Complex | 根复合体 | | MPS | Max Payload Size | 最大载荷大小 | | MRRS | Max Read Request Size | 最大读请求大小 |
缩略词
| 缩略词 | 全称 | 说明 | |——–|——|——| | LTSSM | Link Training and Status State Machine | 链路训练和状态状态机 | | ELBI | External Local Bus Interface | 外部本地总线接口 | | DBI | Data Bus Interface | 数据总线接口 | | MSI | Message Signaled Interrupt | 消息信号中断 | | SGDMA | Scatter-Gather DMA | 分散-聚集DMA | | AXI | Advanced eXtensible Interface | 高级可扩展接口 |
📎 附录
A. 参考文档
- UG713: PH1A100系列PCIe用户手册
- UG913: PH1A系列PCIe用户手册
- UG1313: PH1P系列PCIe用户手册
- UG1112: PH2A系列PCIe用户手册
- IPUG011: PH1A系列PCIe定制向导IP
- IPUG028: PH1P系列PCIe定制向导IP
- IPUG160: PH2A系列PCIe定制向导IP
B. 参考设计
- APUG032: Native接口转AXI Stream参考设计
- APUG033: Block DMA参考设计
- APUG039: RC连接EP参考设计
- APUG050: PH1A Native转AXI Stream参考设计
- APUG053: PCIe与SERDES共享参考设计
- APUG069: SGDMA参考设计
- APUG089: PH2A Native转AXI Stream参考设计
C. 工具和资源
- TD软件: 安路科技FPGA开发工具
- ModelSim: 仿真工具
- Linux驱动: PCIe驱动示例
- Demo板: AP101/AP103/AP201开发板
报告生成完毕
本报告基于17份安路科技PCIe技术文档分析生成,如有疑问请参考原始资料。