摘要:FPG 在各行各业中应用越来越广泛,其在硬件电路高度集成领域的优势越
来越明显,因此 FPGA 软件测试验证在产品设计开发中越来越受到重视,它保证
了设计的正确性和强壮性,大大提高了 FPGA 的产品质量。本文结合 FPGA 开发流
程的特点,将测试验证流程嵌入进去,梳理了试验证流程,并阐述了 FPGA 测试
验证方法。
FPGA(现场可编程门阵列,Field- Programmable Gate Array)是在 PAL、GAL、
CPLD 等可编程器件基础上进一步发展的产物,作为专用集成电路(ASIC)领域中的
一种半定制电路而出现。随着现代电子技术的发展,对硬件电路集成度的需求越
来越高,系统设计的规模也日益庞大,具备更高可集成性、可重用性、可编程设
计等特点的 FPGA 在硬件电路设计中得到了广泛的应用。
目前,基于 HDL(硬件描述语言)的综合方法是工业界普遍采用的主流设计方法,
具有模块化设计、方便移植、设计灵活等优点。随着设计需求的复杂度提高,未
经验证的 FPGA 产品很可能提高后期硬件调试电路的复杂度,无法精确定位故障
所在,潜在问题也很难发现,导致人员、时间、成本上的资源浪费。因此为了保
障最终设计产品的安全性、合规性、强壮性,对 FPGA 软件的工程设计进行测试
验证就变得尤为重要。
目前,典型的 FPGA 设计是利用 EDA 工具针对 FPGA 芯片进行开发。一般包括
设计输入、功能验证、逻辑综合、实现和布局布线、时序验证、芯片编程与调试
流程。
设计输入:分析设计需求,根据性能指标进行 FPGA 芯片选择,采用自顶向
下或层次化的设计方法将所设计的系统划分功能模块,并将各个功能模块采用
HDL 语言进行行为级描述,实现 FPGA 设计向 EDA 工具输入的过程,此阶段可对
设计添加约束。
逻辑综合:所谓综合,是指将较高级抽象层次的描述转换为低层次的描述。
即将行为级的代码语言描述编译成由与门、或门、非门、RAM、触发器等基本逻
辑单元实例组成的逻辑连接网表,相对于行为级描述,门级描述可综合性更强,
但在可读性、灵活性上较差,对设计人员的专业素养要求也更高。
实现与布局布线:实现是将综合后生成的逻辑网表文件加载到 FPGA 芯片,
布局将逻辑网表中的硬件原语和底层单元映射到芯片内部固有的硬件资源上。布
线则是利用连线资源将布局后的拓扑结构中的各个硬件资源根据时序需求进行连
接。此流程根据布局布线后的硬件结构生成逻辑网表文件以及根据硬件结构间的
连线信息生成标准时延文件,因此此流程生成的逻辑网表文件相较逻辑综合流程
更贴近实际工作状态。
芯片编程与调试:将布局布线后的位数据流文件烧录固化到目标 FPGA 芯片
中,对目标芯片进行配置,以实现用户的功能需求。
一个完整的 FPGA 软件开发流程,从设计输入到芯片烧录实现,会形成各类
的文档、HDL 代码文件、工程文件以及目标实物。
文档:一般包括设计任务书、软件需求规格说明、详细设计说明以及接口需