4. Versal可编程逻辑资源
Versal 的可编程逻辑(PL)部分并不是“把 FPGA 换个名字”,而是在传统 CLB、DSP、Block RAM 基础上,加入了与 AI Engine、NoC、DDR 控制器紧耦合的接口资源。做高速网络数据面加速时,PL 既要承担报文解析、流表查找、CRC 校验、流量整形等硬实时任务,又要通过 NoC 或 AXI 把数据送到 AI Engine 或 DDR。因此,理解 CLB、DSP、BRAM/URAM、时钟资源和 I/O 的容量与连接关系,直接决定了架构能不能落地。
CLB:逻辑与时序的承载单元
Versal 的 CLB 由多个 slice 组成,每个 slice 内含查找表(LUT)、进位链和触发器。LUT 负责组合逻辑,触发器负责时序寄存。对网络数据面而言,CLB 主要消耗在:报文头字段提取、状态机跳转、计数器、仲裁逻辑和跨时钟域同步。一个常见误区是只按 LUT 数量估算资源,而忽略触发器与进位链的配比。例如实现 100G 报文解析时,若每拍处理 512 bit,需要大量并行比较器和移位逻辑,触发器用量往往接近 LUT 用量,必须同时核对两者余量。
此外,CLB 的布线延迟与位置强相关。跨 SLR(Super Logic Region)的长线会显著增加时序压力。规划时应把同一数据通路的解析、查表、修改逻辑约束在相邻区域,避免关键路径跨越多个 clock region。
DSP:乘加与数字信号处理
Versal DSP58 支持 27×18 乘法、预加器、累加器和浮点运算模式。在高速网络场景中,DSP 的典型用途包括:流量统计中的加权计算、队列调度中的令牌桶计算、以及配合 AI Engine 做特征预处理。若只是做简单的位宽比较或计数,应优先用 LUT 实现,避免浪费 DSP。判断原则是:出现“乘法、乘累加、复数运算、浮点”时才考虑 DSP;纯逻辑运算交给 CLB。
BRAM/URAM:片上存储的分工
BRAM 容量小、端口灵活,适合做小表项、FIFO、跨时钟域缓冲;URAM 容量大、位宽高,适合做大容量流表、连接跟踪表和报文缓存。以 100G 端口为例,若每包需缓存 256 字节、支持 64 个未完成事务,则约需 16 KB 缓冲,用 BRAM 即可;但若要做 100 万条流表,每条 64 bit,则约 8 MB,必须用 URAM 或外挂 DDR。规划时要先算容量,再看端口带宽是否满足每拍读写需求。
时钟资源:高速接口的“心跳”
Versal 的时钟网络分为全局时钟、区域时钟和 I/O 时钟。GT 收发器从线路恢复出的时钟不能直接驱动整个 PL,需要经过 MMCM/PLL 或 BUFG_GT 转换为用户时钟。做 100G 数据面时,常见做法是:GT 恢复时钟经 BUFG_GT 进入用户逻辑,再通过异步 FIFO 跨到核心时钟域。这里必须注意两点:一是 GT 参考时钟要按 Quad 独立规划,不能随意共享;二是时钟域数量要控制,过多会增加约束和布线难度。若一个设计出现十几个时钟域,通常说明架构需要收敛。
I/O 规划与网络接口选型
网络接口选型的第一步是确定速率和协议。100G 通常用 CAUI-4(4×25.78125 Gbps)或 AUI-8,对应 GTY/GTM 通道;25G 用 25G Ethernet;10G 用 XFI/SFI。选型时要核对:GT 通道数量是否够、参考时钟频率是否匹配、PCB 走线是否满足损耗要求。例如 100G CAUI-4 需要 4 对收发差分线,参考时钟常用 156.25 MHz 或 161.1328125 MHz,具体取决于协议和器件手册。
一个实用的规划顺序是:先定端口速率和协议 → 再定 GT 类型与数量 → 再分配参考时钟和复位 → 最后约束引脚和时钟域。下面给出一个 100G 网络加速卡的 PL 资源规划示例,参数为教学假设,实际需以器件手册和 Vivado 报告为准。
| 资源 | 规划用途 | 示例用量 | 核对要点 |
|---|---|---|---|
| CLB LUT | 解析、状态机、仲裁 | 约 120K | 与 FF 同步核对 |
| CLB FF | 流水寄存、CDC | 约 110K | 避免跨 SLR 长路径 |
| DSP58 | 令牌桶、加权统计 | 约 48 个 | 纯逻辑勿占 DSP |
| BRAM | FIFO、小表项 | 约 180 块 | 端口带宽是否够 |
| URAM | 大流表、报文缓存 | 约 64 块 | 容量与位宽匹配 |
| GTY | 100G CAUI-4 | 4 通道 | 参考时钟配对 |
最后强调接口选型的判断逻辑:若目标是 100G 线速转发,优先选 GTY/GTM + CAUI-4,并把解析和查表放在 PL,把复杂特征计算卸载到 AI Engine;若只是 10G/25G 接入,GTY 加标准 Ethernet MAC 即可,PL 资源压力小很多。资源规划不是一次完成,而是随综合报告迭代收敛的过程。