嵌入式 FPGA 设计:完整开发流程指南
编者按:随着智能产品设计中先进算法不断涌现,开发者常难以实现满足这些算法处理需求的嵌入式系统。FPGA 提供必要性能,器件能力与开发环境的最新进展使 FPGA 设计面向更广泛工程师群体。本文摘自《架构高性能嵌入式系统》第 4 章,全面综述 FPGA 器件、实现语言、开发流程,并提供 FPGA 设计入门实战演练。
1: 硬件资源
2: 实现语言
3: 开发流程(本文)
4: 构建项目
5: 实现
改编自《架构高性能嵌入式系统》,Jim Ledin 著。
FPGA 开发流程
跨多元应用领域,FPGA 开发遵循通用步骤序列,指导工程师从概念到功能硬件。以下章节概述典型工作流,强调关键决策与最佳实践。
定义系统需求
成功 FPGA 项目始于清晰、无歧义的系统功能、运行模式、关键特性定义。用通俗语言记录预期行为并与所有利益相关方共享达成共识。包含定量性能指标——如输入采样率、输出更新间隔、吞吐率、延迟、功耗限制——以及物理尺寸、电池寿命、温度范围、成本约束。完整需求集确保满足所有规格的设计均可行;若技术正确方案因成本等原因失败,遗漏多在需求阶段。
顶层需求达成共识后,将系统分解为连贯子系统,各自拥有功能与技术规格。实时嵌入式系统中,数字处理能力通常形成专用子系统并有自身约束集。
分配功能至 FPGA
当系统数字处理需求超出单片机或处理器能力时,考虑 FPGA。受益于高速并行硬件的架构为首选候选。即使传统处理器能满足性能,FPGA 仍可在产品生命周期提供灵活性和升级潜力。
决定使用 FPGA 后,分配相关处理任务给它。定义 FPGA 输入输出接口、更新速率、与 ADC、DAC、存储器等外围组件交互方式。
识别所需 FPGA 特性
明确 FPGA 职责与接口后,编列强制器件特性清单。考虑资源需求——逻辑单元、DSP 块、存储器——及功耗散热需求。低成本电池供电设计可用小器件被动散热,高性能系统可能需大型 FPGA 主动散热。
器件系列特性不同;如某些集成 ADC 简化板级复杂度。用需求筛选候选系列,随资源估算明确再锁定具体型号。
实现 FPGA 设计
选定候选器件并映射功能后,使用厂商工具套件——常为 Xilinx Vivado 或 Intel Quartus——开始实现。过程通常从顶层设计起步,可表达为框图或直接用 HDL(Verilog 或 VHDL)或 C/C++ 等高层综合语言编写。
迭代以下阶段,细化设计直至产出工作位流:
设计录入
用 HDL、框图或 C/C++ 代码定义系统逻辑。这些制品描述预期行为而非物理集成。
I/O 规划
分配 I/O 引脚、设定信号标准、考虑高速信号引脚位置、走线长度等物理约束。I/O 约束与时序约束共同指导综合过程。
综合
将 HDL 转换为映射至所选 FPGA 资源的网表。若约束无法满足,综合失败,设计须回溯修改。
布局布线
将网表逻辑元件放置至特定 FPGA 资源并遵守约束。布线互连完成物理布局。结果为完整指定配置。
位流生成
创建加载 FPGA 内部 SRAM 的配置文件。位流类比软件可执行文件,每上电周期必须加载,通常来自板载 Flash 或外部源。
位流产出后,执行彻底测试验证功能正确性。
测试实现
各阶段测试:仿真 HDL 逻辑、验证综合网表、在目标板上运行硬件在环测试。全面测试缓解可能破坏产品信誉的低概率 Bug。
下节将详述使用 Arty A7 板和 Vivado 工具套件的实战示例。
经 Packt Publishing 授权转载。版权所有 © 2021 Packt Publishing
Jim Ledin 是 Ledin Engineering, Inc. CEO。在嵌入式软硬件设计、开发、测试深耕,是嵌入式系统网络安全公认权威。爱荷华州立大学航空航天工程学士,佐治亚理工学院电气与计算机工程硕士。加州执业工程师、CISSP、CEH、CPT 持证者。
相关内容:
- 嵌入式 FPGA 设计:硬件资源
- 嵌入式 FPGA 设计:实现语言
- 开源工具简化 FPGA 编程
- 在 FPGA 或 ASIC 中实现浮点算法
- 利用 FPGA 进行深度学习
- 软件工具将 GPU 代码迁移至 FPGA 用于 AI 应用
- FPGA 在 Subaru Eyesight 视觉 ADAS 中取代 ASIC
订阅《Embedded》周刊,获取更多嵌入式技术资讯。
嵌入式
- 先进增材制造软件助力产能最大化
- 设计故障安全控制系统以提升安全性与可靠性
- 嵌入式系统编程:语言、架构与应用全景
- 聊天机器人入门:设计流程、架构与实战洞察
- 嵌入式系统设计:步骤、原则与现实应用
- 嵌入式系统基础与现实应用
- 在嵌入式C中用测试驱动开发构建状态机
- Analog Devices 在 Embedded World 2019 展示 AI、工业网络与电源方案
- FPGA 实现语言:从 VHDL、Verilog 到高层 C/C++
- Axiomtek tBOX400-510-FL:双处理器运输认证 PC,集成 10 口管理型 PoE 交换机
- IBASE CMI300-988:超紧凑 Mini-ITX 平台,搭载 AMD Ryzen Embedded V1807B
- MicroSys 推出 miriac MPX-LS1028A SoM:边缘计算支持 IEEE TSN 与 4K 图形