什么是FPGA编程?

现场可编程门阵列(FPGA)是一种电子装置,其包括数字逻辑电路可以编程来定制它的功能。因为在FPGA逻辑被编程具体来执行应用程序时,它能够更快地执行该功能并与电力消耗比在通用应用处理器上运行的软件指令以下。的FPGA还包括所述装置上的处理器被称为系统级芯片或的SoC FPGA

如何编程的FPGA?

如果你是从MATLAB算法开始®或者S金宝appimulink的®,首先需要设计从刺激和分析分区,定义硬件分区的输入和输出。

你的分区试验台从供硬件定位算法的元素。

在FPGA编程的主要步骤是:

  1. 硬件架构设计。以SoC FPGA,硬件,软件,SoC架构的情况下。
  2. 设计。这是使用硬件描述语言(HDL)创建硬件逻辑本身,通常通过写寄存器传输逻辑(RTL)如VHDL的过程®或Verilog®。我们的目标是当在连续的数据流进行操作以匹配算法的功能性,使用定点运算效率。
  3. 验证。此步骤可确保设计工作的FPGA编程之前预期。这可以简单的VHDL或Verilog测试;商业项目通常使用的方法,如通用验证方法学(UVM)。
  4. 合成。该技术将在RTL数字逻辑门和尝试,以满足您的寄存器到寄存器的时钟频率的目标,同时尽量减少使用FPGA上的资源。
  5. 积分。一个FPGA含有大量的专用资源已经销,时钟信号,输入/输出处理,诸如模拟到数字转换器(ADC),和接口到片外存储器并且在电路板上的其它设备。的SoC FPGA还具有专用寄存器,无论是硬件和软件可以使用与彼此通信。您的设计需要插入这个“参考设计”。
  6. 实现。这是确定在FPGA哪些物理资源来计划与逻辑,以及如何连接(路由)它们的过程。这产生了被加载到FPGA编程设备中的比特流。
  7. 实验室测试和调试。FPGA编程后,您可以运行使用真实的输入或测试输入。第几次尝试往往需要弄清楚为什么它不工作,以及如何解决它。在大多数情况下,这是由于在未在验证步骤确定的设计步骤的问题。

从算法设计到FPGA编程典型的工作流程。

FPGA编程使用MATLAB和Simulink金宝app

如果您在建模MATLAB和Simulink你的算法,你可以专注于设计算法和硬件架构。金宝app对于FPGA与MATLAB和Simulink编程语言的主要步骤是:金宝app

  1. 添加硬件架构。您需要调整您的算法来增加硬件架构来处理数据的连续流,通常与定点数据类型。金宝appSimulink中提供了基于时间的视觉环境硬件架构设计。最好的做法是模拟这种版本的设计,并将结果与​​你的金算法比较结果。
  2. 代码生成。一旦你有一个硬件就绪的设计,HDL编码器™生成目标无关的Verilog或VHDL RTL与链接回到模型用于调试和可追溯性功能安全为工作流,例如DO-254ISO 26262
  3. 积分。您仍需要一个参考设计HDL编码器堵塞你的算法到FPGA编程。许多可作为硬件支持包金宝app或从FPGA板供应商。
  4. 合成和实施。HDL编码器可以生成RTL综合脚本和项目,它集成了综合和实现工具从赛灵思英特尔Microsemi的提供自动化FPGA编程的工作流程。

炼用硬件细节的算法,然后生成综合的RTL到目标的FPGA开发套件或者定制电路板。

  1. 验证。最简单的方法来验证您的RTL功能与您的算法是使用HDL验证™来在协同仿真Mentor Graphics的运行RTL®奎斯塔®Cadence公司或®Xcelium™与您的设计和测试平台在MATLAB和Simulink在一起。金宝app一定要测试尽可能多的场景和角落的情况下,你可以FPGA编程之前调试,因为在FPGA上提供远不如知名度和需要更长的迭代。您可以使用金宝appSimulink的测试™以编程方式运行和管理测试用例,并金宝appSimulink的覆盖™来衡量你们如何证明你的设计。
  2. 实验室测试和调试。HDL验证可以插入逻辑数据驱动到从MATLAB中的FPGA作为AXI万事达,并从调试内部的FPGA信号插入逻辑来捕获数据。您可以使用MATLAB和Simulink直接调金宝app试FPGA,无论你是使用他们的FPGA编程的工作流程与否。

您实现设计支持模拟器或在FPGA板上运行Cosimulat金宝apping您的MATLAB和Simulink在一起。金宝app

也可以看看:HDL编码器HDL验证