什么是FPGA编程?

上次,我详细介绍了FPGA的确切含义以及它的优势 现场可编程门阵列 过度 专用集成电路 和微控制器。 现场可编程门阵列没什么,但是可重配置逻辑块和互连可以通过硬件描述语言进行编程,例如 Verilog/ 甚高密度脂蛋白 执行特定功能。

今天,我将介绍实际 现场可编程门阵列 编程,如何开始使用FPGA编程以及FPGA编程设计流程。 现场可编程门阵列编程和 软件编程 还将进行讨论。

什么是FPGA编程?

1.什么是FPGA编程?


如前所述 现场可编程门阵列发布现场可编程门阵列是什么,而是可重新配置的逻辑块(逻辑门,存储元件,DSP组件等)和互连。 现场可编程门阵列编程实际上是在使用以下方法(重新)配置FPGA: 硬件描述语言 (Verilog / 甚高密度脂蛋白)连接这些逻辑 块和互连可以执行特定功能(加法器,乘法器,处理器,滤波器,除法器等)。 


2.什么是FPGA编程语言?


现场可编程门阵列编程语言通常被称为硬件描述语言,因为它实际上用于描述或设计硬件。 两种主要的硬件描述语言是Verilog HDL和VHDL。 


Verilog =“验证” +“逻辑”,最初由P. Moorby,P。Goel,C.-L创建。 Huang和D. Warmke在1984年对门进行建模并在逻辑仿真器中执行仿真。 Verilog在1990年被Cadence收购,并在1995年成为IEEE标准1364。现在,Verilog通常用于设计和验证数字电路以及模拟或混合信号电路。 

甚高密度脂蛋白 是VHSIC(超高速集成电路)硬件描述语言,最初由美国开发 国防部在1980年代研究和开发超高速集成电路。 VHDL于1987年成为IEEE标准1076。现在,VHDL主要用于对数字和模拟混合信号电路(如FPGA和ASIC)建模。 

Verilog HDL与C编程语言类似,例如区分大小写,关键字,运算符等。 甚高密度脂蛋白与Ada相似 编程语言,因为它最初是基于Ada构建的。介绍了Verilog和VHDL之间的区别 这里. 尽管HDL(Verilog,VHDL)和 软件编程 语言(C,Ada),FPGA编程与软件编程完全不同。 

3. 现场可编程门阵列编程和软件编程之间的主要区别是什么?


什么是FPGA编程?

现场可编程门阵列编程和软件编程之间的显着区别是其指令的执行方式。 就指令的执行而言,软件编程(C,Ada等)中的指令顺序执行,而FPGA编程中的Verilog / 甚高密度脂蛋白指令则大多并行执行(除了Verilog中的阻塞分配和VHDL中的进程内的变量分配) 。更重要的是, FPGA编程或FPGA设计是关于设计数字逻辑电路以定义FPGA的行为,而软件编程则是执行一系列顺序指令以在软件中执行特定行为。 


开始FPGA编程时,您应该忘记软件编程中的编码行为。许多学生直接将他们在软件编程中的编程方式(For Loop,While Loop等)复制到FPGA编程中,以便在FPGA上设计和实现可合成的数字电路。这是非常糟糕的FPGA编码行为。 

合成工具可能需要很长时间才能合成这种类型的代码,甚至更糟的是,合成软件会一直进行合成,直到RAM计算机溢出为止,您必须关闭该软件并重新运行。 因此,在对FPGA进行编程时,请始终考虑实现所需功能的逻辑电路。这就是为什么在FPGA编程中,人们通常在开始编码之前首先根据项目的规格设计基本架构或逻辑电路。.

4.如何开始使用FPGA编程,FPGA编程设计流程是什么?


一种。数字逻辑设计背景


要开始进行FPGA编程,您需要具有良好的数字逻辑设计背景,以便熟悉逻辑值,逻辑门,组合和顺序逻辑电路。 这个 是一个很好的资源。 

b。 Verilog / 甚高密度脂蛋白语言


然后,您可以开始学习 Verilog / 甚高密度脂蛋白 用于对FPGA进行编程。 Verilog / 甚高密度脂蛋白是硬件描述语言,因此,正如我提到的那样,您需要忘记软件编码行为,并开始考虑逻辑门和电路以实现要在FPGA上运行的功能。要学习编程语言,我建议的方法是在有时间的时候继续练习设计和编码。 

C。模拟


为了练习FPGA编程,仿真是综合和实现之前的关键步骤。仿真是为了验证您编写的Verilog / 甚高密度脂蛋白代码的功能正确性。有许多 模拟器 在那里,但是Modelsim是我用于功能仿真的最常用的仿真器。还有一件事,您需要编写一个测试台,该测试台提供输入值的所有可能组合以验证设计。测试平台的编码样式可能不太受限制,就像可综合的编码样式一样,因此您可以使用软件行为样式(For循环,While循环等)生成用于功能仿真的输入模式。 

d。综合与实施


在功能仿真中成功验证了设计之后,您可以考虑下一步的综合和实现。针对FPGA的两个最受欢迎的综合和实现工具是Xilinx ISE / Vivado设计套件,用于 赛灵思 现场可编程门阵列和Quartus II用于 英特尔Altera 现场可编程门阵列。还需要注意的是,您可以使用这些工具来仿真设计。模拟器(Xilinx ISIM,ModelSim-Altera)已集成到Xilinx ISE / Quartus II中。该工具可以合成代码并生成位流文件以进行FPGA编程。

e。 现场可编程门阵列开发板


什么是FPGA编程?

从Xilinx ISE / Vivado / Quartus II获得比特流文件后,我们将比特流下载到FPGA板上进行演示。我已经推荐了非常便宜的FPGA板,如下所示:

面向学生的推荐且价格合理的Altera 现场可编程门阵列板
您需要购买一块FPGA板来练习FPGA编程,并使用编写的代码查看实际电路中到底发生了什么。 
基本上,这就是开始进行FPGA编程以及在FPGA板上完成FPGA编程的基础。我将很快发布关于如何在Xilinx / 英特尔Altera 现场可编程门阵列板上启动第一个FPGA项目的FPGA教程。 
针对您的实践的FPGA / Verilog / 甚高密度脂蛋白项目: 现场可编程门阵列项目Verilog项目甚高密度脂蛋白项目
推荐的 现场可编程门阵列项目 for students:
现场可编程门阵列 Verilog 甚高密度脂蛋白课程

2条评论:

  1. 很好的解释!这确实是学习FPGA的难点。并且是再次编程FPGA来掌握这种差异的主要方法& again

    回复删除
  2. 对于FPGA学习者而言,这确实是一个很好的开始

    回复删除

热门FPGA项目