从硬件角度讨论FPGA开发框架

ntent g-fz-14 article">FPGA采用了逻辑单元阵列概念,内部包括可配置逻辑模块、输出输入模块和内部连线三个部分 。 每一块FPGA芯片都是由有限多个带有可编程连接的预定义源组成来实现一种可重构数字电路 。
长久以来新型FPGA的功能和性能已经为它们赢得系统中的核心位置,成为许多产品的主要数据处理引擎 。
鉴于FPGA在如此多应用中的重要地位,采取正式且注重方法的开发流程来处理FPGA设计比以往更加重要 。 该流程旨在避免开发周期后期因发现设计缺陷而不得不进行费时费钱的设计修改,而且该缺陷还可能对项目进度计划、成本和质量造成灾难性影响 。
本文所介绍的的框架覆盖从系统架构考量到FPGA开发与测试规划等各个环节 。 我们从FPGA硬件的角度重点详细介绍该框架,通过介绍希望其他工程团队能够发现该框架在复杂的FPGA设计项目里面的优点 。
该框架是一种在FPGA中设计硬件的自上而下的迭代设计方法 。 首先规划从系统架构层面出发决策FPGA功能 。 随后我们根据FPGA器件的已知功能和性能逐步优化FPGA设计的特性 。
另外,大型FPGA设计的实现需要制定完备的开发、仿真和验证规划 。 该框架的作用就是帮助我们制定这些规划 。 简而言之,该框架可归纳为图1所示的流程图 。 本文的讨论将集中在规划和技术文档部分(顶部) 。
系统架构
就本讨论范围而言,系统架构指在系统软件和硬件之间的功能划分 。 尤其,重点是将硬件功能细分到FPGA以及其它微芯片组件上(假设已经明确产品层面需求),例如市场营销或产品定义部门可能已经参与进来并明确产品需求 。
在系统架构阶段,思路是如何明确地让这些产品需求在真实产品中得以实现 。 就FPGA来说,主要的决策围绕着应将哪些特性和功能在FPGA中实现,以及进一步,哪些特性和功能适合在FPGA中实现 。
通过提前定义FPGA的高级要求,就能避免开发流程已接近尾声时进行成本不菲的设计及需求修改 。 在设计早期阶段明确系统架构有助于指导用户做出对开发时间和产品成本至关重要的多项重大决策 。
在这个层面上探讨,只需要一般性地概略介绍FPGA特性 。 详细特性和实现需求将在FPGA需求定义过程的后续阶段进行定义 。 本次探讨的参与者应包括熟悉系统级要求的、了解系统级架构设计的,以及熟悉FPGA特性与功能的等不同人员 。
具体就FPGA而言,需要回答十大问题:
1. 要在FPGA中实现的特性列表是什么样的?
2. 在FPGA中实现特性与使用非FPGA组件实现特性相比,需在技术上做怎样的权衡取舍?
3. 在FPGA中实现与使用非FPGA组件实现相比,设计工作量/成本分别如何?
4. 需要什么样的定制特性或处理?
5. FPGA的灵活性对功能有什么好处?
6. 您应该考虑的未来风险缓解措施是什么?
7. 能否把多个非FPGA组件的特性集中到FPGA中?
8. 根据准备实现的设计特性,如何选择FPGA器件?
9. 特性是否能在FPGA中实现?
10. 需要什么样的非FPGA器件,如何让这些非FPGA器件与FPGA接口相连?
FPGA架构
FPGA架构属于FPGA器件上物理层的微架构级和芯片级数据流设计 。 您的团队应与系统级架构同步设计该架构,以确定器件尺寸、选择器件和可行性 。
定义FPGA架构的目的,是确保系统架构需求是准确、现实、切实可行的设计要求,能够在FPGA中实现 。

从硬件角度讨论FPGA开发框架

文章插图

图1 - FPGA开发框架
这个层面的探讨需要对FPGA架构和资源的特性与功能有深入的认识 。 因此应该由经验丰富的FPGA设计人员参与完成 。 在这个阶段,您必须考虑与FPGA性能目标、潜在风险因素和FPGA资源利用率 。