FPGA基础中的FPGA芯片是什么

发布时间:2021-11-23 14:28:50 作者:柒染
来源:亿速云 阅读:173

这篇文章给大家介绍FPGA基础中的FPGA芯片是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

FPGA芯片简介

在介绍FPGA芯片之前,首先介绍一下等效电路。

先解释一下“等效”。

等效是指效用相同。通俗的解释就是不关心过程,结果是相同的。

FPGA基础中的FPGA芯片是什么

图1 :行走路径图

举例说明:小明现在在A点,想要到C点去。从图1中我们简单分析出,可以是A点 —> B点 —> C点,也可以A点 —> D点 —> C点。如果小明不嫌弃累的话,也可以A点 —> B点 —> A点 —> D点 —> C点。在我们不考虑不过程的情况下,只考虑最后小明的位置,那么无论哪种方案,最终的结果都是相同的。

在做电路的设计和分析的时候,我们也经常引入等效的概念,来解决复杂的问题。例如:诺顿定理(Nortons theorem)和戴维南定理(Thevenin's theorem)。在这里这两个定理不做过多介绍,有兴趣的读者可以自行查询。

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

FPGA基础中的FPGA芯片是什么

图3 :功能表

根据对功能表的分析,可以认定图2所示数字电路完成了二输入与门的功能。那这个电路里面一定是一个二输入与门吗?答案是:不一定。

FPGA基础中的FPGA芯片是什么

图5 :利用三个与非门构成的或门

FPGA基础中的FPGA芯片是什么

图7 :二选一多路选择器示意图

当S=0时,Y=A;当S=1时,Y=B。根据已知功能,列出真值表(图2-8)。

FPGA基础中的FPGA芯片是什么

图9 :存储器模型

存储器中被分为了很多“小格子”,每一个“小格子”里面都可以放下很多的二进制数码。每个小格子都会有自己独特的标识,就像我们的门牌号一样,每个屋都是不同的。逻辑功能是当外部输入一个“门牌号”,对应的“小格子”里面的二进制数码就会输出。

存储器中的“小格子”的数量,在制造时,就已经确定。“小格子”的数量确定了,那么“门牌号”的形势也就被确定了。例:我们有100个房间,我们只有两个十进制的数码就可以表示了,00至99。在存储器中,“门牌号”也只能用二进制数来表示,例如:有4个“小格子”,那么“门牌号”就要用两个二进制码来表示,00~11。每个“小格子”里面存放的二进制数的个数,在制造时,也就确定好了。

通常我们把“门牌号”称为地址,“小格子”称为单个地址的存储空间,每个“小格子”能放下的二进制数码的个数称为“存储器的存储位宽”。

制作一个拥有8个地址,单个地址空间为1个二进制数码的存储器。此时,地址码应该有三位,每个地址对应的存储二进制数码 的个数为1个。要求:000地址中,放入0;001地址中,放入0;010地址中,放入1;011地址中,放入1;100地址中,放入0;101地址中,放入1;110地址中,放入0;111地址中,放入1;

FPGA基础中的FPGA芯片是什么

图11 :存储器的功能表

将存储器的功能表图11和二选一多路选择器的真值表图8相对比,我们会发现,除了自定义的信号名称不相同外,逻辑功能是相同的。那么也就是说,在黑盒设计时,我们可以将一个带有预设值的存储器放进去,它所对外的功能,也是可以实现二选一多路选择器的。此时,我们可以带有预设值的存储器可以等效为二选一多路选择器。

仔细观察,我们发现,任意真值表都可以用存储器来等效。那也就是说,存储器电路可以等效为任意组合逻辑的电路。

存储器电路的优势:不用做任何逻辑化简,不受基本逻辑门电路的样式限制,可以很快的得出最终的电路功能。如果存储器可以任意修改预设值的话,那么同一个存储器就可以随着不同的预设值等效为各类的电路。如果是基本门电路构成的话,就需要受到数量和样式的限制。

存储器电路的劣势:对于简单的门电路,用存储器实现是一种浪费。存储器电路也是一种相对复杂的电路。另外存储器电路的延迟一般偏大,原因同上。

在做数字组合逻辑电路设计时,如果采用门电路的设计方式,需要更新电路功能时,就需要重新布置电路结构,更换基本电路元器件;如果采用存储器等效的设计方式,只需要更改预设值即可。这种方法为我们做电路升级提供了一个很好的解决途径。

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

在介绍FPGA芯片结构之前,首先就FPGA和单片机做一个简单的对比。

单片机是一种微处理器,类似于电脑CPU。它的电路是固定的,是通过软件编程语言描述软件指令控制微处理器进行工作;它的所有指令都是微处理器顺序执行的;

FPGA基础中的FPGA芯片是什么

图13 :与门逻辑功能示意图

要求实现两路信号的与操作,将结果作为一路信号输出。那么在单片机中和FPGA中都是如何实现此功能的呢?

在单片机中,假设我们已经将对应的变量和引脚已经分配结束。我们会编写如下一段代码:

FPGA基础中的FPGA芯片是什么

图14 :CYCLONE IV E 可编程最小单元示意图

CYCLONE IV E是INTEL FPGA中CYCLONE系列的第四代。在上图中,四输入查找表(Four – Input LUT)其实就是一个有16存储空间,每个存储空间只有1个二进制数字的存储器,LUT(Look Up Table)就是查找表。设置合理的预设值,就可以实现一定的数字组合逻辑电路功能。

那为什么要固定为16存储器空间呢?如果我们要实现一个5输入的与门,那16个存储空间就不够用了。那么此时我们应该怎么办?

其实也很简单,只需要将5输入的与门分为一个四输入的与门,然后把结果和另外一个输入进行相与即可。对于存储器电路也可以这样做。

如果可以级联的话,那么做成2输入的是不是也可以的。原则上是可以的,但是如果我们实现的逻辑功能比较复杂的话,那么就会级联特别长,延时就会很大。那做成1000输入的话,是不是就好了,再复杂的话,都不用级联。可是在设计时,我们做的不仅仅是复杂逻辑,还有很多的不复杂的,那么一个二输入与门的设计也要占用一个1000输入,那就得不偿失了。所以经过衡量,最终设计者将输入做成了4输入的查找表。

经过不断的发展,FPGA在各个场合的应用越来越多,所做的设计越来越复杂,要求的延迟越来越小。于是新出的FPGA系列拥有更多的输入查找表。

在图2-14中,后面还有一个时序逻辑器件。这个时序逻辑器件是FPGA厂商直接做到FPGA内部的,我们设计电路时,不需要设计,只需要调用出来即可。

由此,我们就可以实现组合逻辑和时序逻辑的一个小部分了。但是复杂的设计,往往是需要级联的。

FPGA基础中的FPGA芯片是什么

图16 :CYCLONE IV的IO单元

在IO单元中,我们可以发现整个IO单元可以被配置为输入、输出、输入出。并且其中可以是否配置上拉电阻,以及电路延迟等等功能。

FPGA的IO数量较多,在需要同时控制多个外设时,不需要级联,一致性会比较好。

图17 :CYCLONE IV E的某块FPGA的IO供电bank

图17 :CYCLONE IV E的某块FPGA的IO供电bank

在FPGA中,内部逻辑运行是一种电压。输入输出被分为了好多个块(bank),每一个块都可以有自己的电平标准,这就让FPGA可以在不用转换电路的情况下,驱动多个不同电压标准的接口。

在图17中可以看到FPGA的内部逻辑电压相对较低,所以FPGA的功耗也相对较低。

通过上述的三种结构,一个简单的FPGA芯片就可以实现了。

在FPGA应用时,我们发现经常用到一些缓存和特殊电路,并且对这些电路的要求比较高,用FPGA实现不太现实。那么FPGA就会将其集成到FPGA内部,用大量的互联资源引出接口,供给内部逻辑进行控制或者通信。

设计者可以利用FPGA的资源实现CPU的功能,构成SOPC。

现在的很多FPGA将ARM的硬核放入到自己内部,构成SOC。

本文只是简单介绍FPGA内部结构,后续在设计时,需要详细了解结构时,会单独列出来详细讲解。有兴趣的同学可以自己查询FPGA的介绍文档。

FPGA是一种芯片,有很多的厂商都在生产和销售,下面简要介绍几个厂家以及他们的芯片。

FPGA的厂商有很多,但是基本的内部结构和开发流程是比较接近了,只要掌握一种FPGA的开发方式,其他的FPGA开发就会容易上手很多。

目前学习FPGA设计,使用INTEL FPGA和Xilinx FPGA的居多,这两家的FPGA芯片也是应用最多的。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA的特点有以下几点:

采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

FPGA的应用大可分为以下几种:

数据采集领域:自然界的大部分信号是模拟信号,在高速采集时,信息无法直接传入MCU或者DSP。此时,需要FPGA进行一定的转换和速率匹配。

逻辑接口领域:CPU在于外界通信时,需要各种专门的接口,而接口电路所引入的接口电路很庞大。加入FPGA,就可以CPU与FPGA做单独通信,由FPGA实现其他各种接口的扩展。

电平接口领域:不同的器件支持的电平不尽相同,如果需要连接各种接口时,就需要各种接口标准或者转换电路。对于FPGA来说,FPGA分为不同的BANK,可以直接支持不同的电平标准。

数字信号处理领域:通信、图像等领域近些年对计算量提出了更高的要求,FPGA支持并行计算,可以大大缩短计算的时间。

IC设计领域:IC在设计时,首先会使用FPGA设计出基础的电路模型进行各种理论验证,等验证通过后,才会进行IC制造等等。

通过上述的叙述,了解FPGA内部都是使用等效电路实现功能,那么它的速度是不是赶不上ASIC?

既然要做对比,就要说明一部分情况。例:如果是同等工艺条件下,FPGA是没有ASIC跑的快。各大FPGA厂商都是利用世界先进工艺做出的片子,如果某些应用类型公司尝试利用的最先进工艺做片子,那么风险比较高,费用也比较昂贵,如果采用成熟工艺去做片子,那么asic的速度不一定会有FPGA速度快。

关于FPGA基础中的FPGA芯片是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. FPGA设计——HDMI
  2. FPGA设计——VGA显示

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fpga

上一篇:Windows磁盘空间保护原则有哪些

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》