FPGA 原型验证是一种在芯片设计过程中广泛应用的重要验证方式。
早期开发者验证芯片设计只能等待漫长的模拟结果或流片成果,时间和经济成本都较高。如今随着技术发展,验证方法增多,如逻辑仿真、形式验证和原型验证等。功能验证基于软件,成本低但性能较差;形式验证为静态方式,不能仿真动态行为。而 FPGA 原型验证应运而生,它是 SoC 基于 FPGA 的一种验证方式,一般在前端 RTL 设计和 RTL 仿真之后。
FPGA 原型验证通常分为两类:芯片设计公司自行制作的 FPGA 板(BYO)和购买现成开发板或使用专业公司提供的商用原型验证系统。BYO 主要适用于小、中型设计,优势在于高度定制化,但稳定性可能难以保证。商用解决方案则使原型验证普及化,变成芯片设计和软件开发重要一环。
FPGA 原型验证的流程包括:进行 FPGA 设计,使用硬件描述语言将硬件原型功能转化为 FPGA 代码;将代码加载到 FPGA 开发板或模拟器中;进行功能验证,通过编写测试程序、使用调试工具或构建测试平台来测试各个功能模块;关注 FPGA 与外部接口通信和数据传输;进行性能验证,评估处理速度、资源利用率、功耗等指标;最后进行问题定位和修复。
FPGA 原型验证还可用于 ASIC 原型验证,通过将 RTL 移植到 FPGA 来验证 ASIC 的功能和性能。在对 ASIC 设计进行 FPGA 原型验证时,由于物理结构不同,ASIC 的代码必须进行一定转换后才能作为 FPGA 的输入。FPGA 原型验证比流片便宜、比仿真快,已成为开发者检验设计有效性的重要选择,能够在芯片流片前为软件团队提供调试平台,加速芯片上市时间,还可作为芯片仿真验证的补充,发现隐蔽 bug。同时,FPGA 原型验证系统搭载较大容量和多片 FPGA 芯片,适合进行复杂算法、CPU/GPU 类型芯片的验证和实现,以及 SoC 芯片或大型 IP 的开发。并且,FPGA 原型验证系统从硬件和软件上支持大型芯片功能原型的各项要求,如低延迟并行 IO 接口、高带宽 Serdes 接口、自动化设计分割到多片 FPGA 并优化性能、多片 FPGA 的信号调试等。
FPGA 原型验证的发展历程
FPGA 原型验证的发展历程可谓源远流长。199