浅析FPGA现场可编程门阵列

  • A+
所属分类:网络安全

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

参加某个公益活动,做了个FPGA显示1024的小程序,成果如下:

浅析FPGA现场可编程门阵列 

接触过的人应该了解,Altera-DE0开发板。程序很简单,初学级别的吧。程序主要的内容包括,VerilogHDL的程序和Tcl的脚本管脚定义,QuartusII 10.1编译实现。

浅析FPGA现场可编程门阵列
浅析FPGA现场可编程门阵列

在接收FGPA之前,首先介绍两位伟大的数学家。第一位是发现二进制的莱布尼茨(弗里德•威廉•莱布尼茨,Gottfried Wilhelm Leibniz,1646-1716),虽然大家对他发明的微积分更熟悉,但二进制应用于计算机,说具有划时代意义一点不为过;第二位是多逻辑运算做出突出贡献的布尔(乔治•布尔,George Boole,1815-1864),学过离散数学的人应该对“与、或、非”三种基本逻辑运算还有印象吧。
好了,闲话休提,言归正传。

FPGA介绍
PLD(可编程逻辑器件,Programmable Logic Device)的发展经历了可编程只读存储器PROM (Programmable Read only Memory),可编程逻辑阵列器件PLA ( Programmable Logic Array);可编程阵列逻辑PAL (Programmable Array Logic);通用阵列逻辑GAL ( Generic Array Logic);复杂可编程逻辑期间CPLD(Complex Programmable Logic Device)和现场可编程逻辑阵列FPGA(Field Programmable Gate Array)阶段。FPGA拥有大量的寄存器资源使其能非常好的应对复杂的高速控制应用和数据处理,小到MP3,大到地球卫星,飞船都有其用武之地。

主要的FPGA供应商是Xilinx,Altera,Actel,有兴趣的可以去搜索看看,其中Actel主要做航空和军用产品。Xilinx期间采用ISE软件做编程编译和下载,这里的下载是将程序编程FPGA中的电路,Altera采用QuartusⅡ,个人对QuartusⅡ更为熟悉。当然还有其他的编译综合工具,仿真工具,如synopsys,ModelSim等。有兴趣的可以去百度。

硬件描述语言

硬件编程和软件编程最大的不同在于,硬件实现的是电路功能,要考虑时序问题(时间顺序先后,各个寄存器的变化,控制信号的传递等等),主要的难点也在于电路的时序。接触过74或者40系列芯片的同学应该知道与门和加法器有着非常大的差别。

常用的硬件描述语言(Hardware Description Language)有VHDL和Verilog HDL,IEEE都有相应的标准。个人感觉VHDL形式更严谨,Verilog更接近于C语言。入门学习VHDL虽然比较难,但对于建立硬件编程的思想很有帮助。

学习FPGA的基础

想要学习FPGA首先要有耐心,如果说调MATLAB都嫌烦的话还是不要接触这个了,虐心。其次要细心,一个寄存器的小小的问题都会导致程序有错误或者功能不对。对于基本知识,会算100以内的加减法,有写数字电路的逻辑就够。

最重要的是要多看,大量的用户手册会很有帮助,当然几乎都是英文的。

就扯这些吧,抛砖引玉吧,有兴趣的同学可以去百度。文中有不妥的地方也希望大家指出。

有同学说这个比较小众,不能否认用的人不是特别多,但优势还是有的,看应用的领域吧。还有就是说没接触的不懂,其实是简单介绍下而已,没有提到技术的问题,就当多听个名词吧。

更新应该不会了,有兴趣可以去了解。百度,谷歌。

文/Black_Global (2014)  QQ:[email protected]

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: