FPGA 开发
790 字约 3 分钟
2026-11-14
本页说明用 Efinix Efinity 为 Tiny60-Core 建立工程、设置 I/O 与时钟,以及下载与排查方法。引脚与球位见 接口定义。
工程设置
| 项目 | 取值 |
|---|---|
| 器件系列 | Titanium |
| 器件 | Ti60F100S3F2 |
| 速度等级(Timing Model) | I3(对应料号 Ti60F100S3F2I3) |
| 参考时钟 | X1 → GPIOR_P_00_PLLIN0(球位 J5) |
Bank 电压
在 Interface Designer 的 I/O bank 设置中按下表填写电压,与板上实际供电一致:
| Bank | 电压 | 说明 |
|---|---|---|
| 1A、2A、3B、BL | 1.8 V | 板上固定 |
| 1B、3A | 与扩展模块提供的 VCCIO1B / VCCIO3A 相同 | 例如接 RF-AD9361 时为 1.8 V |
I/O 标准(单端 / 差分)与 VCCIO 的组合需满足 Efinix Titanium 数据手册的要求;同一 Bank 内的 I/O 只能使用与该 Bank 电压匹配的标准。
时钟
- X1 输出经 10 nF 电容交流耦合到
GPIOR_P_00_PLLIN0,在 Interface Designer 中把该脚设为 PLL 参考时钟输入,并按 X1 的标称频率填写 PLL 参考频率与时序约束。 - 扩展模块提供的随路时钟应分配到全局时钟脚:J1 的 CLK8 – CLK11、J2 的 CLK2 / CLK3、J3 的 CLK0 / CLK1;J2.45(L18_P)可作为 PLLIN0,J2.51(L17_P)可作为 PLL 外部反馈 EXTFB。
与 MCU 通信
CH32V305 与 FPGA 之间除 JTAG 外还有以下用户接口,FPGA 侧按普通 GPIO 使用,MCU 侧为 1.8 V 电平:
| 接口 | FPGA 引脚(球位) | MCU 引脚 |
|---|---|---|
| UART(UART7) | GPIOR_P_19_PLLIN0(A9)← MCU TX;GPIOR_N_19(A10)→ MCU RX | PC2 / PC3 |
| UART(UART3)或 I²C2 | GPIOR_P_05_CDI30(H9)、GPIOR_N_05_CDI31(H8) | PB10 / PB11 |
| SPI1(MCU 为主机) | NSS GPIOT_P_01(A4)、SCK GPIOR_N_00_CDI22(H5)、MISO GPIOR_P_01_EXTFB(K10)、MOSI GPIOR_N_01_CDI23(J10) | PA4 / PA5 / PA6 / PA7 |
UART7 所在的 Bank 3A 由扩展模块提供 VCCIO3A:未供电时不能使用,供电电压不是 1.8 V 时不要使用 UART7。各接口的实际用途由 MCU 固件决定。
下载与固化
FPGA 通过板载 CH32V305 的 USB-JTAG 下载:
- 用 USB 线连接底板或扩展模块上的 USB-C(例如 RF-AD9361 的 J3),USB D± 在核心板上接 MCU 的 PB6 / PB7。
- 在 Efinity 中完成综合、布局布线并生成比特流。
- 使用 Tiny60-Core 配套下载工具,选择写入 SRAM(掉电丢失)或写入封装内 Flash(上电自动加载)。
- 配置完成后 CDONE 变高,DONE 灯点亮。
MCU 固件可通过底层的 SWDIO / SWCLK 测试点(PA13 / PA14)用 WCH-Link 等 SWD 调试器更新,复位脚 CH32_RST 引到 J3.51。
下载或运行失败时
| 现象 | 检查 |
|---|---|
| 电脑识别不到 USB 设备 | 5 V 是否供到核心板;USB 是否接在与 J1 / J3 相连的 USB-C 上;MCU 固件是否已烧录 |
| JTAG 扫描不到 FPGA | VDD_0V95 / VDD_1V8 是否正常;CRESETN 是否被底板或扩展模块拉低 |
| 下载完成但 DONE 不亮 | 比特流的器件型号是否为 Ti60F100S3F2;VCCIO1B 是否已由扩展模块供电(TEST_N 上拉接在 VCCIO1B 上) |
| Bank 1B / 3A 的 I/O 无输出 | 扩展模块是否在 J2.39 – J2.42 提供了 VCCIO;Interface Designer 中的 Bank 电压是否与实际一致 |
| 时序报告中参考时钟错误 | PLL 参考频率是否与 X1 标称频率一致,参考输入是否选为 GPIOR_P_00_PLLIN0 |