RISC-V 开发工具包 · FPGA 原型验证

FPGA 原型验证

流片前的真实硬件验证载体:把芯片 RTL 落到 FPGA 原型板上,用与量产芯片完全一致的软件栈、编译器与调试链完成驱动开发、功能验证与性能评估。

一、平台定位

FPGA 开发板示意,展示主芯片、存储器、扩展连接器及板载接口
图 1 FPGA 原型开发板示意

FPGA 原型验证位于仿真模型量产芯片之间:它以真实时钟、真实外设引脚 和真实外部器件运行芯片 RTL,通常比 RTL 软件仿真更适合长时间运行,又不必等待流片。软件栈在这三种载体上 共用同一套工具链与调试命令——平台适配层集中处理 FPGA 与量产平台的差异, 同一份应用代码只需切换构建配置即可迁移。

硬件与软件汇合 FPGA VALIDATION
芯片 RTL综合、布局布线与时序检查
配置比特流绑定 RTL 版本与板卡约束
FPGA 原型板配置器件并检查时钟、复位
软件验证 · 配套 SDK 构建 → GDB / OpenOCD → 下载固件、运行测试
发现 RTL 问题 → 修改与回归 → 重新出流,更新配套版本
图 2 比特流配置与固件下载是两项操作,交付版本应配套。
REAL HARDWARE
真实硬件行为
真实时钟域、真实引脚时序与真实外部器件,可验证板级连接与协议交互;芯片电气特性仍需实硅验证。
SPEED
接近实时的执行速度
支持长时间压力测试、RTOS 调度验证与整体性能评估,而非仅跑短片段。
SAME TOOLING
工具链零切换
编译、调试、烧录与 IDE 使用方式与量产芯片完全一致,调试脚本无需分叉维护。
CO-DESIGN
软硬件并行推进
软件问题回归 RTL、RTL 修改重新出流,形成硬件与软件的迭代闭环。

二、验证载体的分工

仿真模型、FPGA 原型与量产芯片并非互相替代,而是覆盖研发不同阶段的三个层次:越靠前越早可用、 内部可观测性越强,越靠后越接近真实、执行速度越快。

验证载体的分工 EVP → FPGA → SILICON
EVP 仿真RTL 就绪后启动软件验证
优势:内部信号可观测
FPGA 原型板级连接与长时间运行
优势:软硬件联合验证
量产芯片实际工艺与目标系统
验证:性能、功耗与电气特性
共同复用工具链与调试方法,按载体选择配置与平台适配。
图 3 三种载体覆盖不同验证范围,测试结论需结合各自的时钟与硬件约束。
表 1 三种验证载体对比
维度仿真模型FPGA 原型量产芯片
可用时点最早,RTL 就绪即可RTL 收敛后出流流片回片后
执行速度慢(周期级仿真)快(接近实时)实时
硬件依赖无,纯主机运行原型板 + 扩展板芯片 + 目标板
内部可观测性最强,波形可下钻全层次中,片上逻辑分析仪弱,仅调试模块可见
模拟 / 电气特性不覆盖部分覆盖完全真实
典型用途启动流程、总线访问、驱动 bring-up驱动验证、协议联调、性能评估量产验证、功能安全签核
调试链路调试服务 + GDB(虚拟适配器)调试服务 + GDB(JTAG)调试服务 + GDB(JTAG)

三、比特流交付

FPGA 版本以比特流形式随项目发布,按版本号归档。每个版本可包含主芯片专用功能模块两条并行的比特流线,便于按验证目标单独加载——例如单独验证复杂定时器 模块时,只加载该模块的专用比特流,缩短综合与验证周期。

表 2 比特流交付物类型
类型用途
配置比特流通过 FPGA 下载工具直接配置器件,适合频繁迭代的开发阶段
二进制镜像烧写到板载配置 Flash,上电自动加载,适合长期固定使用的原型板
探针描述文件片上逻辑分析仪的信号描述,用于在线抓取 FPGA 内部信号波形
专用模块比特流针对某一复杂模块单独出流,用于该模块的功能与波形验证
命名与归档约定

交付物文件名统一包含模块标识、版本号与出流日期,并按版本号分目录归档。 这样即使文件脱离目录结构被单独传递,也能自证来源与新旧,避免上板时误用旧版本。

四、版本配套

比特流是硬件与软件的接口契约:调试目标定义、寄存器布局与外设行为随 RTL 变化, 因此比特流、调试服务与软件包必须成套发布、成套使用

  • 版本号对齐:三者采用对齐的版本编号,发布说明中明确记录相互适配的版本区间。
  • 先对版本再上板:调试目标定义与硬件不匹配时,典型表现是连接失败、 核心识别异常或寄存器读值不合理,往往被误判为硬件故障。
  • 问题闭环:FPGA 上暴露的问题若定位到 RTL,回归 RTL 修改后重新出流, 新比特流与对应软件版本一并发布,保持软硬件版本闭环。

五、软件侧配置

软件通过构建配置区分目标载体,同一份代码不必为 FPGA 单独维护分支:

表 3 平台相关配置项
配置项作用
FPGA 目标开关启用后编译针对 FPGA 板卡的目标(时钟频率、外设裁剪等差异);禁用后用于量产芯片或其他平台
仿真目标开关启用仿真专用链接脚本,代码运行于片上 RAM,适用于 RTL 仿真环境
核心选择指定目标处理器核,决定指令集扩展、启动代码与链接脚本
运行时选择裸机或 RTOS,决定调度与中断框架

随包提供的外设驱动示例已针对 FPGA 扩展板做过适配, 可直接在原型板上运行并观察外设波形,作为驱动开发与协议联调的起点。

六、上板调试

FPGA 原型板通过 JTAG 与主机连接,调试服务的目标定义、GDB 端口分配与 Flash 编程流程 与量产芯片完全相同,同一份调试脚本无需为 FPGA 单独维护一套。

表 4 支持的调试适配器类型
类型说明
CMSIS-DAP开放标准调试探针,即插即用,默认推荐
商用 JTAG 调试器主流商用探针,多台设备并存时可按序列号指定
FTDI 高速 JTAG 线缆FPGA 开发环境中常用的高速调试线缆

七、使用建议

  • 先对版本:确认比特流、调试服务与软件包三者版本配套,再上板调试。
  • 按目标选流:验证专用模块功能时加载对应的模块比特流,其余场景使用主芯片比特流。
  • 固化配置:长期使用的原型板建议把镜像烧写到板载配置 Flash,避免每次上电重新下载。
  • 用好片上探针:怀疑 RTL 行为异常时,配合探针描述文件在线抓取内部信号, 而非只在软件侧反复试探。
  • 及时回归:问题定位到 RTL 后应回归修改并重新出流,保持软硬件版本闭环。
RISC-V 开发工具包 一站式芯片开发平台,从仿真到流片全链路支持

需要技术支持?

我们的工程师团队随时为您提供工具链使用、调试问题排查与定制开发支持。