FPGA 初学者征程(1)可编程器件简介
0赞
发表于 4/18/2015 9:01:36 PM
阅读(2414)
自己学习FPGA也将近一年多了,一年对于我这样的菜鸟来说也总是觉得要写点什么,这下面一系列的博文都是给初学者介绍的,还请各路大神指正,希望对于以后愿意学习FPGA的小伙伴给予一点点帮助,也算给自己的一些总结,我们一起共同进步。由于本人大三,现在忙着考研的,可能博文更新的会慢些,我会抽出空来和大家一起分享这一年的成长。
下面开始我们的开始我们第一步征程,老规矩,我们先来介绍一下什么是FPGA,FPGA的用途,最后介绍一下可编程逻辑器件一般的开发流程。
先来看看比较官方的说法:随着微电子设计技术及工艺的发展,数字集成电路从电子管,晶体管,中小规模集成电路,超大规模集成电路(VLSIC)逐步发展到今天的专用集成(ASIC)。ASIC的出现降低了生产成本,提高了系统的可靠性,缩小了设计的物理尺寸,推动了社会的数字化进程。但是ASIC因其设计周期长,改版投资大,灵活性差等缺陷制约着它的应用范围。硬件工程师希望有一种更灵活的设计方法,根据需要,在实验室就能设计,更改大规模的数字逻辑,研制自己的ASIC并马上投入使用,这是提出可编程逻辑器件的基本思想。
简而言之就是说,可编程器件的产生得益于电子工艺的发展,发展与专用集成之后。什么是专用集成,专用集成就是专门用来干某件事情的集成电路,比如我们数字电路里面的TTL与非门,译码器和触发器等等,但是如上文所说专用集成电路设计周期长,改变投资大,灵活性差等等缺点制约着专用集成的发展。而可编程器件的产生极大的解决这一问题。
下面我将从比较专业的角度介绍一下为什么FPGA可以实现这一功能,里面都是我的话语,其中必定有不严谨的地方,可编程逻辑器件分为两大类 CPLD和FPGA,关于CPLD和FPGA的优劣这里就不谈了,因为对我们初学者也用不到。我们知道在数字逻辑电路,任何复杂的逻辑电路都可变表示为最近与-或式的结构,大家从卡诺图上就能知道。CPLD正式基于此,大多说CPLD都是基于乘积项的结构,CPLD内部含有与阵列和或阵列,通过编程的手段实现所需的逻辑电路。而FPGA大多数书基于查找表(LUT)结构的,实现的思路会有所不同,这里就不多介绍了。
下面介绍一下FPGA能干什么?FPGA的应用领域分为三个方面;
1) 逻辑粘和和实时控制:也就是FPGA可以实现我们数字逻辑电路中的任何数字逻辑电路(包括组合逻辑和时序逻辑),另外就是就是因为逻辑电路的并行性,实现的速度比较快,所以可变实现实时控制,比如高速的图像处理等等。
2) 信号处理和协议实现。相信很多小伙伴对于数字信号处理器(DSP)有了相当程度的了解,的确,这样的处理器就是为数字信号处理量身打造的。但是今天的FPGA已经具有和内嵌乘法器,专用运算电路并集成了大量可变配置的RAM等,再加上FPGA的并行性以及可灵活配置的位宽,这些特征使其足以和任何DSP相抗衡。并且现在许多的FPGA都是内嵌DSP,FPGA在以后的数字信号处理的过程中将会发挥着越来越重要的作用。在协议实现的方面,是因为FPGA拥有十分重要的电平接口,易于实现各种不同的通信协议,这就是往往许多通信公司用它来做基带芯片开发的重要原因。
3) 片上系统,刚开始学习FPGA的时候对这个东西很是不感兴趣,觉得这个东西就是鸡肋,看来是自己认识的太少了。我们知道数字电路的集成化越来越高,随着这一技术的发展。片上系统(SOC)的概念也应运而生,片上系统就是在一块芯片上实现整个数字逻辑电路系统。基于FPGA的片上系统的提供了这样一种解决方案,FPGA内部集成了CPU,DSP,以及各种接口控制模块,对有些存储量要求不是很大的系统,甚至可将外部的Flash和SDRAM都集成在FPGA中。
关于每个流程如何实现,在以后的博文中将会有所体现。在下面的将会介绍verilog语法。
