fpga是什么(面试芯片与算法项目经理问FPGA)
admin
2023-10-25 12:40:16

作为一名业余硬件开发工程师,一次偶然的机会,我面试了一家互联网公司的项目经理。其实平台挺大的。这里的面试都过去了,面试过程中出现的一些问题也分享给大家。

面试有四轮,两轮技术面试,一轮综合面试,一轮hr面试,都是电话面试。

其中,我问FPGA的时候,只是第一次听说,不知道是什么。本着务实、求真、学习的态度,这篇文章就出来了。希望能在总结的同时与大家分享。

我将从三个部分向你介绍什么是FPGA,他的工作原理,以及更为复杂的FPGA架构。

什么是FPGA?

听到这个名词的时候,第一时间很熟悉。FPGA的官方解释是Field-ProgrammableGateArray,翻译过来就是现场可编程门阵列。

它是在PAL、GAL、CPLD(不可读系列)等可编程器件的基础上进一步发展的产物。与ASIC相比,它以半定制电路的形式出现,既解决了定制电路的缺点,又克服了有限可编程门阵列电路的缺点。

相信你应该有听过CPU,GPU等通用处理器吧,FPGA跟他们相比具有更高的效率,更高的速度、功耗更低等优点,但是他易于开发的程度远远不如GPU。

相比ASIC这种全职定制的电路,FPGA的开发难度更低,开发周期更短。更适合复杂多变的数据中心等应用,但它的缺点是什么?它牺牲了资源,成本更高,性能会比全时ASIC定制电路差,一定程度上不能完全替代ASIC。

FPGA的工作原理

由于FPGA需要反复烧写,无法像ASIC一样通过一个固定的与非门实现组合逻辑的结构,而只能采用一种抑郁反复配置的结构.查找表(LUT)可以很好的满足这个要求。目前,主流FPGA采用基于SRAM技术的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。

这就是FPGA的原理,通过烧文件来配置查找表的内容,从而在相同的电路情况下实现不同的逻辑功能。

那么什么是查找表呢?

查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM.目前FPGA中有很多4输入的LUT,所以每一个LUT都可以看作是一个有4位地址线的RAM。当用户通过原理图或FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM, HDL语言描述一个逻辑电路时,通过这种方式,每输入一个信号进行逻辑运算就相当于输入一个地址来查表,找出相应的内容,然后输出。

上面这段话简要概括就是:

通过开发软件,把所有可能的结果都写在LUT上,然后通过输入是什么状态直接搜索输出结果。下图应该能让你更直观的看到。它的查找表是什么?

在FPGA中,用户首先写& quoty=(ab)| c & quot;代码,并且软件工具(QUARTUS、ISE或VIVADO)分析这一行代码,得到A、B、C不同值处Y的值(总共8个不同值)。然后软件工具将结果写在LUT上,从而实现代码的功能。下图是FPGA实现的基本结构。LUT就像一个RAM,abc就相当于一个地址。通过abc的地址,你要读取值,赋给y,不难理解吧?目前为止。

FPGA——xc 2064是Xilinx公司于1985年推出的第一款FPGA,包含88=64个逻辑块的阵列,每个逻辑块包含一个四输入查找表和其他简单功能。

由于它们的容量非常有限,因此早期的FPGA只用来执行一些相对简单的任务,比如集中一些胶合逻辑,或实现基本的状态机。

但随着时间的推移和工艺节点的进步,FPGA的容量和性能不断提升,功耗却不断降低。直到大约2006年,四输入查找表被广泛使用。一些高端设备可能使用六个、七个或八个输入的查找表。这些大家伙可能被用作一个大的查找表或者被分割成许多更小的函数,例如两个四输入查找表或者一个三输入和一个五输入查找表。

在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。

如果一个逻辑功能(如计数器)是由FPGA的可编程结构实现的,那么这个功能可以说是一个& quot软功能& quot,我们称之为软内核。

相比之下,如果一个功能直接由一个芯片实现,它就被称为& quot硬功能& quot,我们一般称之为硬核。

软内核的好处是你可以让他们做任何你想做的事。注意,是数字功能,不包括模拟功能。's硬核的优点是他们是占用较少的硅片面积,具有较高的性能,并且功耗较低,并且硬内核可用于实现模拟功能.比如PLL的倍频功能需要用在模拟电路中,所以这部分用FPGA内部的硬件实现。

更为复杂的FPGA架构

可能是第一部分,什么是FPGA,了解FPGA的工作原理。

不会那么难,第三部分我更多使用文字描述的形式展现,更多也是一种定义,希望不会给你们觉得困难。

总之FPGA理解起来就是一堆的门电路组合,可以反复的进行擦写,好的甚至可以擦写百万次,其实针对FGPA的还有两部分细节我还没跟大家介绍,由于篇幅有限,下篇会跟大家补上,主要是:

带嵌入式处理器的FPGAFPGA的编程方式

让大家对它有个整体的认识,然后我就会详细的介绍他的设计与应用,也是为自己理解应用FPGA打下基础,在日后工作上有更深的理解。

欢迎大家点赞,评论,支持和收藏,你的支持是对我创作的认可!感谢!

相关内容

热门资讯

金花创建房间/微信金花房卡怎么... 1.微信渠道:(荣耀联盟)大厅介绍:咨询房/卡添加微信:88355042 2.微信游戏中心:打开微...
金花房间卡/金花房卡如何购买/... 金花房间卡/金花房卡如何购买/新超圣金花房卡正版如何购买新超圣是一款非常受欢迎的游戏,咨询房/卡添加...
牛牛创建房间/金花房卡批发/神... 微信游戏中心:神牛大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...
链接牛牛/牛牛房卡游戏代理/鸿... 鸿运大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
科技实测!牛牛房卡怎么获得/乐... 微信游戏中心:乐酷大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...