面向 FPGA 的 5G NR 小区搜索接收机:从基带 I/Q 采样,到小区编号,再到手机开机时读到的 那份广播消息。它盲检主同步信号、算能量并设自适应门限、定位并提取 SSB、用 256 点 FFT 做 OFDM 解调,再走完广播信道到主信息块的完整译码。整机以逐比特一致的 RTL 自动生成,对照 MATLAB 5G 工具箱验证,部署在 Kria KV260 上,同步前端在 FPGA 逻辑里满速运行、广播译码放在 主机。它把三个真实空口小区都译了出来,每个都读到一份一致的广播消息。
一段真实的 5G 下行被空口录了下来,再送进这台自动生成的接收机译码。 下面每一个数字都来自硬件实测,不是仿真。
资源与时序均为 Kria KV260(XCK26)上的 Vivado 布局布线结果。 检测器对比采用参考 IP 自己的芯片。
| 指标 | 结果 | 来源 |
|---|---|---|
| 译出广播消息的真实空口小区 | 3 / 3 CRC 通过 | 三个小区读到一致的主信息块 实测 |
| 检测器逻辑对比商用 HLS 参考(同一颗芯片) | 少用 38% 查找表 | 5,124 对 8,669 查找表,触发器少 75% 实测 |
| 检测器逻辑,布局布线(KV260) | 5,124 LUT / 5,944 FF / 298 DSP / 1 BRAM | Vivado 资源报告 实测 |
| 完整接收机时钟,布局布线(KV260) | 256 MHz | Vivado 时序总结报告 实测 |
| 完整接收机逻辑,布局布线(KV260) | 6,175 LUT / 6,709 FF / 314 DSP / 4 BRAM | Vivado 资源报告 实测 |
| 部署 overlay 时序(KV260,200 MHz 链路) | 收敛,余量 +0.403 ns | 完整 overlay 布局布线 实测 |
| 硅上频谱对照参考模型 | 0 误差 / 2,540 拍 | KV260 上的 DMA 往返 实测 |
| 稳健性测试,全参数空间,干净信道 | 300 / 300 逐比特一致 | 全部 1,008 个小区编号、任意广播消息 实测 |
| 衰落加载波频偏加噪声 | 200 / 200 | 损伤扫描 实测 |
| 定点前端(16 位与 12 位频谱) | 各 300 / 300 | 量化后的栅格,性能不掉 实测 |
检测器带着九个主同步相关器,这是同时搜索三个候选小区分组、用复数匹配滤波 所必需的算力。每个相关器都以框架里最高效的折叠 FIR 结构生成,所以检测器在同一颗芯片上比 商用高层次综合参考实现少用 38% 查找表,同时保持线速运行。
输入是射频前端下变频之后送出来的基带 I/Q 采样流。接收机分四步把这段 采样变成一个小区编号和译好的广播消息,每一步都对应 5G NR 标准里的一环。
开机时接收机并不知道小区属于哪一组,于是同时拿三个候选的主同步序列做相关,九个折叠 相关器并行跑起来,在采样流里找出标记同步块的那个相关峰。
用能量测量加自适应门限、再加一个峰值定位器找到真正的块起点,把它从采样流里切出来。 每个符号去掉循环前缀,256 点 FFT 恢复出资源栅格上的 240 个子载波。
辅同步信号把小区编号精确定下来。广播导频给出信道估计,每个子载波做均衡,星座点被 软解调成每个比特的可信度。
解扰、极化码列表译码、24 位 CRC 校验,一起还原出 32 比特的广播净荷,再解交织、解析成 主信息块:系统帧号、子载波间隔,以及手机初始接入所需的那些指针。
同步与解调前端在 FPGA 逻辑里满速运行;控制密集的 广播译码放在主机,切分点选在整条链路最窄的那个接口,也就是恢复出来的频谱。需要发射链路, 或是另一种蜂窝标准?同一套流程会生成并重新验证新的配置。 了解 IP 定制。
下面的分析器回放的是一串多样化的同步块,走的正是 KV260 前端频谱在主机上 的同一条译码链路。随着信道变差,星座点从紧凑的 QPSK 一圈圈散开成噪声云,信号质量的历史 曲线跟着爬高,广播译码一路逐比特正确,直到抗噪极限才失败。
分析器直接在你的浏览器里跑,没有服务器、不接 电台,把接收机在整个参数空间和一段越来越差的信道上跑一遍。每一帧都被译成广播消息,并跟 发出去的逐比特核对。