FPGA编程

什么是FPGA编程?

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

如何编程的FPGA?

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

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

在FPGA编程的主要步骤是:

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

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

FPGA编程使用MATLAB和Simulink金宝app

如果您在Matlab和Simulink中绘制算法,则可以专注于设计算法和硬件架构。金宝app使用MATLAB和SIMULINK进行FPGA编程的主要步骤是:金宝app

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

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

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

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

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