2. PolarFire器件架构与高速资源解析
PolarFire 系列 FPGA 的高速能力并不是靠单一模块堆出来的,而是由“收发器通道 + 时钟网络 + CDR/PLL + 硬核控制器”共同构成的一条完整信号链。理解这条链路的层级关系,比记住某个模块的名字更重要:外部差分信号先进入收发器通道,由 CDR 从数据中恢复时钟,再经 PLL 与全局时钟网络分配到 DDR 硬核或 PCIe 硬核,最终由协议控制器完成事务层与链路层处理。本节围绕这条主线,逐层解析关键资源及其约束。
一、收发器通道布局:物理位置决定可用组合
PolarFire 的 SerDes 收发器以“通道(Lane)”为最小单位,多个通道组成一个 Quad(四通道组),Quad 再按器件型号分布在芯片边缘。每个通道包含发送端(TX)、接收端(RX)、均衡器、CDR 以及本地 PLL 资源。通道布局的关键约束在于:并非任意通道都能独立工作。同一 Quad 内的通道共享部分时钟资源,若某个通道被用作 PCIe 的参考时钟输入,则相邻通道的参考时钟选择会受到限制。
以 MPF300 器件为例,其高速收发器分布在器件左右两侧,每侧包含若干 Quad。设计时通常先确定协议需求:PCIe Gen2 x4 需要 4 个连续通道且必须位于同一 Quad 或相邻 Quad 的连续编号上;而 SGMII、SRIO 等低通道数协议对位置要求较宽松。因此,通道分配应在引脚规划阶段完成,而不是等到布局布线后再调整。一个常见的教学示例是:若将 PCIe x4 分配到跨 Quad 的通道 0、1、4、5,则由于参考时钟无法共享,链路训练会失败,此时必须回退到连续通道方案。
二、时钟网络与 CDR:恢复时钟如何被“驯服”
高速串行链路没有随路时钟,接收端必须依靠 CDR(Clock Data Recovery)从数据跳变中提取时钟。PolarFire 的 CDR 位于每个 RX 通道内部,其工作过程可概括为:相位检测器比较数据边沿与本地采样时钟的相位差,通过电荷泵和环路滤波器调整 VCO 频率,使采样点始终落在数据眼图中心。CDR 的锁定时间、抖动容限和环路带宽是三个关键参数。环路带宽过宽会放大高频抖动,过窄则跟踪速度慢、锁定时间长。在 PCIe 应用中,通常建议使用硬核默认的 CDR 配置,因为其已针对协议抖动容限做过优化。
恢复出的时钟并不会直接驱动整个芯片,而是先送入通道 PLL 或 Quad PLL 进行频率合成与去抖,再接入全局时钟网络。PolarFire 的时钟网络分为全局时钟(Global)、区域时钟(Regional)和局部时钟(Local)三级。全局时钟可到达任意寄存器,但数量有限;区域时钟覆盖特定象限,适合 DDR 硬核等局部高扇出场景。设计约束上,高速收发器恢复时钟应优先走专用时钟路径,避免占用普通全局时钟资源,否则可能引起时钟资源冲突或额外抖动。
三、PLL 资源:Quad PLL 与通道 PLL 的分工
PolarFire 的 PLL 分为两类:Quad PLL 和通道 PLL。Quad PLL 为整个 Quad 提供参考时钟,可驱动多个通道的发送端;通道 PLL 则位于每个通道内部,用于接收端时钟恢复后的频率调整。两者的分工决定了配置策略:发送端时钟通常由 Quad PLL 统一提供,以保证同一 Quad 内多个通道的发送时钟相位一致;接收端则依赖通道 PLL 或 CDR 恢复时钟,因为每条链路的远端时钟独立,无法共享。
在 PCIe 场景中,参考时钟通常为 100 MHz,Quad PLL 将其倍频到 2.5 GHz(Gen1)或 5 GHz(Gen2)。若参考时钟抖动过大,PLL 输出会继承抖动,导致链路误码率上升。因此,参考时钟源应选择低抖动晶振,并在 PCB 上远离开关电源。一个实用的检查方法是:在 Libero 的时序约束中查看 PLL 锁定信号是否稳定,若锁定时间超过数据手册标称值,往往说明参考时钟质量不达标。
四、DDR 硬核与 PCIe 硬核:专用资源的使用边界
PolarFire 集成了 DDR 硬核控制器和 PCIe 硬核,二者都占用专用引脚和时钟资源,不能与普通用户 I/O 随意互换。DDR 硬核支持 DDR3、DDR4 和 LPDDR4,其 PHY 层包含硬核 FIFO 和训练逻辑。使用时的关键约束是:DDR 硬核必须使用区域时钟,且地址/命令与数据组的引脚分配需遵循器件手册的 Bank 规则。例如,MPF300 的 DDR 硬核位于特定 Bank,若数据组跨 Bank 分配,则读写时序无法收敛。
PCIe 硬核则包含事务层、数据链路层和物理层的一部分,用户只需实现应用层接口。其约束集中在参考时钟、复位和通道映射上。PCIe 硬核通常要求 100 MHz 差分参考时钟,且该时钟必须连接到专用 REFCLK 引脚。若设计中使用普通 I/O 提供参考时钟,硬核将无法完成链路训练。此外,PCIe 硬核的通道映射与收发器 Quad 绑定,x1 链路可使用任意通道,但 x4 链路必须使用同一 Quad 的连续四个通道。
五、资源分配的实际判断依据
在实际项目中,资源分配的顺序建议为:先确定协议与通道数,再选择 Quad 和参考时钟引脚,最后分配 DDR 和 PCIe 硬核位置。判断依据可以归纳为三条:通道连续性(PCIe x4 必须连续)、时钟专用性(REFCLK 和恢复时钟走专用路径)、Bank 兼容性(DDR 数据组不跨 Bank)。若违反其中任意一条,常见现象是链路训练失败、DDR 校准不通过或时序报告出现大量违例。
总结来看,PolarFire 的高速资源是一个相互约束的整体:收发器通道提供物理入口,CDR 和 PLL 完成时钟恢复与合成,时钟网络负责分配,DDR 和 PCIe 硬核则消费这些时钟并对外提供协议接口。设计者的核心任务不是单独配置某个模块,而是在引脚规划阶段就让通道、时钟和硬核三者兼容。只有理解了这条信号链的层级与边界,后续的时序约束和链路调试才有稳定的基础。