面向 Xilinx VU13P + SI5340 / AD9640 / AD9117 的 FPGA 调试与验证框架:UART 命令、三芯片 SPI 自动 boot、ADC IQ DSP 链、DAC 2× DDR 发射,以及 PySide6 / Python 测试工具链。
Vivado 顶层模块: rf_adda_top
本仓库为开源 FPGA 验证参考实现。不含板级原理图或未公开的硬件资料。引脚约束需结合具体板卡自行准备(参考
fpga/constraints/adda_io.template.xdc),clone 后不能直接综合上板。
许可证:MIT(第三方模块见 THIRD_PARTY_NOTICES.md)
同 VU13P 平台开源 FPGA 验证框架(统一 fpga/ + tools/ 仓库布局):
| 仓库 | 说明 |
|---|---|
| sensor-test-framework-soft-core | MIPI CSI-2 — MicroBlaze 固件 + Vitis(IMX298) |
| sensor-test-framework-pure-rtl | MIPI CSI-2 — 纯 RTL 控制(IMX298) |
| adda-test-framework | 本仓库 — ADDA RF 调试(SI5340 / AD9640 / AD9117) |
| 方向 | 内容 |
|---|---|
| 端到端调试 | UART Ping → SPI → 自动 boot → ADC 采集 → DAC 波形 |
| UART 协议 | 921600 8N1;SPI、boot、ADC 快照/流式、DAC 音调/波形、RX 链配置 |
| 零 PC boot | boot_fsm + boot_rom 驱动三芯片上电初始化 |
| RX DSP 链 | CIC → DDC → IQ 平衡 → FIR → BRAM 快照 / UART 流式输出 |
| TX 2× DDR | 半带插值 + ODDRE1 I/Q 交织;DCLKIO 相位可选 |
| 主机工具 | PySide6 GUI + CLI 采集 / FFT / 波形上传 |
| 仿真 | 11 个测试台(UART、boot、TX/RX 链路) |
adda-test-framework/
├── fpga/
│ ├── rtl/ # rf_adda_top、rf_ctrl_path、rf_datapath 等
│ ├── data/ # boot_rom.mem、各芯片 init 表
│ ├── constraints/ # adda_io.template.xdc(需复制为 adda_io.xdc)
│ ├── scripts/ # create_project.tcl、cbpro_to_mem.py
│ ├── sim/ # 模块级 testbench + run_sims.ps1
│ └── vivado/ # 生成工程目录(.gitignore,本地构建产物)
├── tools/ # PySide6 上位机 + UART 协议库 + CLI
├── docs/
└── README.md
rf_adda_top
├── clk_wiz_0 / clk_wiz_1 + dac_dclk_phase_mux
├── rf_ctrl_path ← UART + SPI + boot + DAC
├── adc_iq_rx_chain
├── dac_tone_gen / dac_wave_player → tx_iq_dsp → tx_ddr_out
└── led_status
PySide6 综合 ADDA 测试 GUI 提供 UART 连接、ADC 快照/流式采集、DAC 波形上传与链路诊断。详见 tools/README.md。
环境: Vivado 2024.2 · Python 3.10+
-
复制引脚模板,按实际原理图填写
PACKAGE_PIN:cp fpga/constraints/adda_io.template.xdc fpga/constraints/adda_io.xdc
Windows CMD:
copy fpga\constraints\adda_io.template.xdc fpga\constraints\adda_io.xdc -
如需调整时钟配置,重新生成 boot ROM,参考
fpga/data/README.md;默认配置(122.88 MHz)已就绪。 -
生成 Vivado 工程:
vivado -mode batch -source fpga/scripts/create_project.tcl
注:
clk_wiz_0/clk_wiz_1/ ILA IP 须按fpga/rtl/rf_adda_top.v注释在 Vivado 中配置;综合与实现请在 Vivado GUI 中完成。 -
安装主机工具并启动 GUI:
cd tools pip install -r config/requirements.txt ./run_gui.sh # Linux / macOS run_gui.bat # Windows
-
连接串口 → Ping 确认链路 → ADC 快照 / DAC 波形上传验证。
| 文档 | 说明 |
|---|---|
docs/uart_command_protocol.md |
UART 命令协议完整参考 |
tools/README.md |
Python 工具目录说明 |
docs/wave/README.md |
DAC 参考波形格式与幅度约定 |
fpga/data/README.md |
boot ROM 生成流程 |
fpga/scripts/create_project.tcl |
Vivado 工程一键生成 |
fpga/scripts/cbpro_to_mem.py |
boot ROM 初始化表生成 |
芯片数据手册请从厂商官网获取:
| 芯片 | 官网 |
|---|---|
| SI5340 | silabs.com |
| AD9640 | analog.com |
| AD9117 | analog.com |
将仿真顶层设为 tb_uart_cmd_parser,在 XSim 中运行 run -all,预期输出 tb_uart_cmd_parser: PASS。
批量运行:fpga/sim/run_sims.ps1(需本地 Vivado simulator)。
- 目标器件:
xcvu13p-fhga2104-2-i(请按实际板卡调整)。 SYS_CLK_HZ=122_880_000,须与clk_wiz_0输出频率一致。- 不含板级原理图、真实管脚约束或未公开的硬件资料。
- 芯片厂商寄存器表、数据手册等受版权约束的文件未包含或未跟踪;初始化表仅为参考配置,不代表厂商推荐设置。
- Xilinx IP 与第三方模块遵循各自许可条款(见 THIRD_PARTY_NOTICES.md)。
