什么是fpga编程?

现场可编程门阵列(FPGA)是一种电子设备,包括您可以编程以自定义其功能的数字逻辑电路。由于FPGA中的逻辑专门编程为执行应用程序,因此它可以更快地执行此功能,并且由于在通用应用程序处理器上运行的软件指令,因此功耗更少。FPGA还包括设备上的处理器称为片上系统,或SOC FPGA.

你如何编程FPGA?

如果您从Matlab中的算法开始®或者模万博1manbetx拟®,您将首先需要从刺激和分析中分区设计,定义硬件分区的输入和输出。

从旨在为硬件定位的算法分区测试台的元素。

FPGA编程中的主要步骤是:

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

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

使用MATLAB和SIMULINK编程FPGA编程万博1manbetx

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

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

用硬件细节炼制您的算法,然后生成合成的RTL以定位FPGA开发套件或自定义板。

  1. 验证。验证您的RTL函数与算法相同的最简单方法是使用HDL验证者™以消化在导师图形中运行的RTL®Questa.®或者®Xcelium™与Matlab和Simulink的设计和测试台一起。万博1manbetx在FPGA编程之前,请务必测试尽可能多的方案和角落案例,因为FPGA的调试提供了更低的可见性,并且需要更长的迭代。你可以使用万博1manbetxSimulink Test™以编程方式运行和管理您的测试用例,万博1manbetxSimulink Coverage™测量您验证了设计的程度。
  2. 实验室测试和调试。HDL验证者使您可以将逻辑从MATLAB作为AXI主站插入到FPGA中的数据,并插入逻辑以捕获来自FPGA内部的信号以进行调试。您可以使用Matlab和Simulink直接调万博1manbetx试FPGA,无论您是否正在使用它们,请为您的FPGA编程工作流程使用。

将MATLAB和SIMULINK与您所实现的设计一起在支持万博1manbetx的模拟器或FPGA板上进行了模拟。万博1manbetx

另请参阅:HDL编码器HDL验证者