赞
踩
在我们嵌入式中,有这样一朵奇葩介于软件与硬件之间,这朵奇葩就是FPGA。可能很多平时玩MCU比较多的朋友不太了解。
之前我也不太了解,但是最近两年的这两份工作都有与FPGA挂钩,所以我精通FPGA程序的烧写
(不仅如此,我还精通电脑的开关机,哈哈):
下面我们一起来简单了解一下。
FPGA (Field Programmable Gate Array )
,即现场可编程逻辑门阵列,属于专用集成电路中的一种半定制电路
,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。
FPGA 的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。
FPGA说白了就是一颗芯片,只不过是半定制的芯片,它里面的电路可以通过硬件描述语言来设计,所以灵活性很高。
为什么说FPGA是一朵介于软件与硬件之间的一朵奇葩呢。
因为说它属于硬件吧,但是也是需要写代码的,说它是软件吧,但其思想又与我们一些软件设计思想不符(FPGA程序是并行执行的),而且又得对一些数电及一些芯片规格、芯片内部原理等硬件知识了解得很深。综合来说,我觉得FPGA还是属于硬件的范畴。
FPGA使用硬件描述语言来开发, 常用的主要有VHDL、Verilog HDL、System Verilog 和 System C。其中,Verilog HDL是广泛应用的硬件描述语言,可以用于硬件设计流 程的建模、综合、模拟等多个阶段。
Verilog HDL 优点:类似C语言,上手容易,灵活。大小写敏感。在写激励和建模方面有优势。缺点:很多错误在编译的时候不能被发现。
FPGA一般应用在高性能处理、实时要求高的领域,比如高速接口、报文转发、图像处理、视频传输、辅助电机控制(比如伺服驱动器)等,还可以应用在芯片前期验证。
说个我们MCU玩家可能比较熟悉的:MCU芯片的前期设计验证。大家有没有想过STM32是怎么做出来的呢?
首先,用FPGA来设计STM32内部的电路,设计完之后就可以把这FPGA芯片当成STM32来用,然后就可以写C代码去验证一些外设。
如果发现外设功能不正常,那又可以用硬件描述语言来修改FPGA内部电路,不断修改直到FPGA的功能都正常(具有与一般MCU芯片一样的功能),然后再拿去封装成一颗颗芯片,就是我们在用的STM32。
大家不要误以为我是ST的工程师哈,以上只是一些自己接触到的东西加上自己的一些之前的学习了解到的东西。
上面用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。