现场可编程门阵列(FPGA)是一种包含数字逻辑电路的电子设备,您可以对其进行编程以自定义其功能。由于FPGA中的逻辑是专门为执行应用程序而编程的,因此与通用应用处理器上运行的软件指令相比,它可以更快地执行此功能,并且功耗更低。在设备上还包括处理器的FPGA称为片上系统,或SoC FPGA.
如何编程FPGA?
如果您是从MATLAB中的算法开始®或Si金宝appmulink®,您将首先需要从刺激和分析中分区设计,定义硬件分区的输入和输出。
FPGA编程的主要步骤包括:
- 硬件架构设计。在SoC FPGA的情况下,硬件-软件SoC架构。
- 设计。这是创建硬件逻辑本身的过程,通常通过使用硬件描述语言(HDL),如VHDL,编写寄存器传输逻辑(RTL)®或者verilog.®. 目标是在对连续数据流进行操作时匹配算法的功能,使用定点操作提高效率。
- 确认。这一步确保了设计在FPGA编程之前按预期工作。这可以简单到VHDL或Verilog Testbench;商业项目通常使用诸如普遍验证方法的方法(uvm.).
- 合成。该技术将RTL转换为数字逻辑门,并尝试满足您的寄存器到寄存器时钟频率目标,同时最大限度地减少FPGA上的资源的使用。
- 整合。FPGA包含许多专用资源已经是引脚,时钟信号,输入/输出处理,例如模数转换器(ADC),以及电路板上的片外存储器的接口。SOC FPGA还具有专用寄存器,即硬件和软件都可以使用彼此通信。您的设计需要插入此“参考设计”。
- 实施。这是确定FPGA上的哪些物理资源与哪些逻辑进行编程以及如何连接(路由)它们的过程。这将生成加载到设备上用于FPGA编程的位流。
- 实验室测试和调试。在FPGA编程之后,您可以使用实际输入或测试输入来运行。第一个尝试通常涉及弄清楚为什么它不起作用以及如何解决它。大部分时间都是由于在验证步骤中未识别的设计步骤中的问题。
用MATLAB和Simulink进行FPGA编程金宝app
如果您在Matlab和Simulink中绘制算法,则可以专注于设计算法和硬件架构。金宝app使用MATLAB和SIMULINK进行FPGA编程的主要步骤是:金宝app
- 添加硬件架构。您将需要调整算法,以添加硬件体系结构来处理连续的数据流,通常使用定点数据类型. 金宝appSimulink为用户提供了基于时间的可视环境硬件架构设计.最好的做法是模拟您的设计版本,并将结果与黄金算法结果进行比较。
- 代码生成。一旦有了硬件就绪的设计,HDL编码器™使用链接生成独立于无关的Verilog或VHDL RTL,用于调试和可追溯性的模型,以实现功能安全工作流程,如DO-254和ISO 26262.
- 整合。您仍然需要一个用于HDL编码器的参考设计,将算法插入FPGA编程。许多人都可以硬件支持包金宝app,或从您的FPGA板供应商处购买。
- 综合与实施。HDL编码器可以生成RTL综合的脚本和项目,它与合成和实施工具集成了锡林克斯,英特尔, 和微笑提供自动化的FPGA编程工作流程。
- 确认。验证RTL功能是否与算法相同的最简单方法是使用HDL验证器™ 协同模拟在Mentor Graphics中运行的RTL®奎斯塔®或者®尖晶石™ 以及您在MATLAB和Simulink中的设计和测试平台。在FPGA编程之前,请确保测试尽可能多的场景和关键案例,因金宝app为在FPGA上进行调试的可见性要低得多,并且需要更长的迭代时间。你可以用金宝appSimulink Test™以编程方式运行和管理您的测试用例,金宝app模拟链路覆盖™来衡量您对设计的验证程度。
- 实验室测试和调试。HDL验证器使您可以将逻辑从MATLAB作为AXI主站插入到FPGA中的数据,并插入逻辑以捕获来自FPGA内部的信号以进行调试。您可以使用Matlab和Simulink直接调金宝app试FPGA,无论您是否正在使用它们,请为您的FPGA编程工作流程使用。