FPGA入门的基本概念和知识介绍
与典型的微控制器相比,现场可编程门阵列FPGA是一种能够提供更强性能和灵活性的器件,本文通过解答几个有关FPGA的常见问题——什么是FPGA、为什么我会需要FPGA、如何为FPGA编程——为开发者提供FPGA入门所需的基本概念和知识 。
如果您是二元思维的人,那么不要错过第1到4部分内容 。在这篇博客中,我将简单介绍我最感兴趣的电子器件:现场可编程门阵列(FPGA) 。
当我和人们谈起FPGA时,我听到很多人说:“我不知道它们的工作原理”、“它们太复杂了”、“我无法用C语言编程” 。我不希望看到这样一种神奇的器件遭受如此冷遇,因此下面我将尝试解答一些常见问题(FAQ) 。
问题1:什么是现场可编程门阵列?
详细解答如下:顾名思义,有人推断它是可编程的逻辑门结构 。这种解释很接近,但又不太准确,因为内部逻辑阵列实际并不是利用门来实现的 。相反,我们将阵列中的这些块称为“逻辑单元” 。这些逻辑单元通常由查找表 (LUT)(用于实现任意逻辑功能)以及一些辅助电路(例如多路复用器、加法器和触发器)构成 。您会经常听到人们将这种逻辑单元阵列称为“FPGA结构” 。
文章插图
简而言之,我可以将FPGA比作一个盒子,里面装有各种没有商标、用于构建数字电路的彩色构件 。我可以通过适合我的应用的任何方式,将这些构件连接到一起 。
如果您能描述数字电路如何工作,就能用足够的逻辑单元在FPGA内构建该电路 。需要25个PWM输出?没问题 。需要特殊通信协议?对某些硬件进行编程来处理该协议 。
问题2:为什么我会需要FPGA?
FPGA可用于实现数字系统,但简单的微控制器通常也能够达到同样的效果 。微控制器价格低廉,而且易于放置在印刷电路板上 。虽然FPGA是一种功能强大的工具,但未必适合所有情况 。它们有更多的功耗、布局和外部电路要求,甚至可能非常苛刻 。使用成本高昂且具有诸多特殊要求的FPGA似乎有些不合时宜 。
但您也许已经猜到了需要FPGA的原因:灵活性 。您拥有可配置的逻辑块,就意味着不再受到硬件的制约 。您不会再遇到定时器或UART不够用的情况,只要您拥有逻辑单元便可创建更多定时器或UART 。它能够随着技术和要求的变化,在今后进行重新配置,从而延长产品的生命周期 。
问题3:如何为FPGA编程?
FPGA采用一种名为HDL(即硬件描述语言)的特殊语言 。它主要包含两种语言:Verilog和VHDL 。几乎所有开发套件(例如Quartus或Vivado)都支持这两种语言,所以选择哪种语言只是偏好问题 。
然后对这两种语言进行“合成”,这类似于微控制器的编译 。合成工具告诉FPGA如何连接其逻辑单元,以产生代码所描述的效果 。请记住,代码被转换为硬件指令而非CPU指令,在您开始使用时,务必牢记这一点 。
为了简化开发,FPGA供应商提供了常用代码块目录,供您轻松置入到设计中 。其中包括倍频器、RAM和通信块等 。您可对它们进行配置并添加到设计中,而无需查看涉及的HDL代码,从而加快开发速度 。
有些供应商还提供高级别合成(HLS) 工具,能够将使用C++或C++语言编写的功能转换为HDL代码块 。使用这些工具,可以通过抽除一些低级别细节,显著减少具有软件背景的开发人员的入门障碍 。
仍然不太相信?我最喜欢的FPGA功能之一是它能够使用软处理器 。软处理器是从FPGA的逻辑单元构建的完整处理器 。利用软处理器,您能够为处理器构建定制的辅助硬件,并使用C语言编写应用程序 。您可在短短几分钟内完成简单的软处理器系统设置和编程 。如果您仍然需要传统处理器,可考虑在单一封装中包含FPGA和硬ARM处理器的SoC 。
【FPGA入门的基本概念和知识介绍】 总而言之,与典型的微控制器相比,FPGA的成本更高,使用难度更大,但如果您需要,它们能够提供更强的性能和灵活性 。随着技术的改进,集成度的提高,FPGA的成本变得更低,它们甚至能够取代传统的微控制器 。
责任编辑:tzh
推荐阅读
- E22-900M22S模块的特点功能和应用场景
- 浴室镜该如何选购 需要了解这些浴室镜的选购知识
- 浴缸怎么安装_浴缸的安装方法详解
- 温暖入冬 推荐3款女生最爱的卧室墙纸搭配方案
- 泡沫地垫有色的好还是透明的好以及泡沫地垫如何保养
- 各种缤纷绚丽 婚房的各类搭配
- 秋日雨绵绵 地板铺装如何防潮
- 二手房水电设计4个注意事项
- 中式古典家具的种类介绍
- 建材大比拼:地板与地砖的脚感PK