两种定义可以更好地描述FPGA

FPGA是一堆晶体管,您可以将它们连接起来以制作所需的任何电路。

它就像一个纳米级面包板。

使用FPGA就像将芯片带出来,但是您只需要购买该芯片即可构建不同的设计。

作为交换,您需要付出一些效率代价。

从字面上来讲,这种说法是错误的,因为您无需重新连接FPGA,它实际上是通过路由网络连接的查找表的二维网格,以及一些算术单元和存储器。

FPGA可以模拟任何电路,但实际上它们只是在模仿,就像软件电路模拟器可以模拟电路一样。

使这个答案不合适的原因是,它简化了人们实际使用FPGA的方式。

接下来的两个定义可以更好地描述FPGA。

电路仿真是FPGA的经典主流用例,这也是FPGA首次出现的原因。

FPGA的关键是硬件设计是用HDL编码的,并且可以通过购买一些廉价的硬件来获得与ASIC相同的效果。

当然,您不能在FPGA和实际芯片上使用完全相同的Verilog代码,但至少它们的抽象范围是相同的。

这是与ASIC原型设计不同的用例。

与电路仿真不同,计算加速是FPGA的新兴用例。

这就是Microsoft最近成功加速搜索和深度神经网络的原因。

关键在于,该计算示例不依赖于FPGA与真实ASIC之间的关系:开发人员为基于FPGA的加速编写的Verilog代码不需要与用于流片的Verilog代码有任何相似之处。

在编程,编译器和抽象方面,这两个示例之间存在巨大差异。

我更加关注后者,我将其称为“计算FPGA编程”。

(计算FPGA编程)。

我的观点是,当前用于计算FPGA的编程方法都是从传统的电路仿真编程模型中借用的,这是错误的。

如果要开发ASIC原型,则Verilog和VHDL都是正确的选择。

但是,如果目标是计算,我们可以并且应该重新考虑整个堆栈。

让我们直接说吧。

FPGA是一种非常特殊的硬件,用于有效执行模拟电路描述的特殊软件。

FPGA配置需要一些底层软件-这是为ISA编写的程序。

在这里,您可以将GPU用作类比。

在深度学习和区块链变得流行之前,有一段时间使用GPU来处理图形。

在21世纪初,人们意识到在处理没有图形数据的计算密集型任务时,他们还将GPU用作加速器:GPU设计人员建造了更多的通用机器,而3D渲染只是其中的一种应用。

FPGA的定义与GPU的模拟计算FPGA遵循相同的轨迹。

我们的想法是大量使用这种时髦的硬件,当然不是为了电路仿真,而是使用适合电路执行的计算模式,并以类似的方式看待GPU和FPGA。

为了使GPU成为当今的数据并行加速器,人们必须重新定义GPU输入的概念。

我们曾经认为GPU接受视觉效果的特殊,强大,特定于领域的描述。

我们已经实现了GPU执行程序,从而释放了它们的真正潜力。

这样的实现允许GPU的目标从单个应用程序域发展到整个计算域。

我认为计算FPGA也在经历类似的转变,并且没有简洁地描述FPGA擅长的基本计算模式。

但这与潜在的不规则并行性,数据重用和大多数静态数据流有关。

像GPU一样,FPGA也需要可以反映此计算模型的硬件抽象。

Verilog用于计算FPGA的问题在于,它在低层硬件抽象中不能很好地工作,而在高层编程抽象中则不能很好地工作。

让我们通过矛盾想象一下,如果我们将这些角色替换为RTL(寄存器传输级别)。

即使是RTL专家也可能不会相信Verilog是有效开发主流FPGA的一种方式。

它不会将编程逻辑推向主流。

对于有经验的硬件黑客来说,RTL设计似乎是友好而熟悉的,但是它与软件语言之间的生产力差距是无法估量的。

实际上,对于当前的计算FPGA,Verilog实际上是ISA。

主要的FPGA供应商工具链将使用Verilog作为输入,而高级语言编译器将使用Verilog作为输出。

供应商通常将比特流格式保密,因此Verilog在抽象层次结构中应尽可能低。

将Verilog用作ISA的问题在于,它与硬件之间的距离太远了。

RTL和FPGA硬件之间的抽象差距很大。

从传统的角度来看,它必须至少包括综合,技术

联系方式

NITSUKO日通工公司致力于设计、制造和生产。金属化薄膜电容器的销售始于80多年前。我国电容器在海外市场的良好声誉以及国内市场使我们成为最大和最有经验的供应商之一。我们实际制造的金属化薄膜电容在2000达到了25亿。通过我们的经验,我们可以满足任何需求。知识和广博的资源成为客户的首选。

查看详情

在线咨询