首页 > 编程知识 正文

fpga开发(FPGA到底是什么)

时间:2023-05-04 17:19:08 阅读:121836 作者:2727

FPGA的设计这么久了,每次介绍给别人,总觉得说话不够深入,不好意思。

这次,我将展开FPGA的硬件属性,简单地写下来,和大家分享。

我的很多朋友都是经验丰富的算法工程师、嵌入式工程师,但是他们在数学、MCU的背景下,对数学公式和嵌入式有很多了解。 因此,关于什么是FPGA以及FPGA能做什么只有模糊的概念。 每次说你的算法设计得很好,我FPGA都能给你高效的实现。 他们总是不相信。 你为什么会有效率? 为什么有效率? 你能比现在的人工智能芯片更厉害吗? 留下了很多零散的说明。 我们总是喜欢刨根问底,如果你问得很急,他们会说:“组成FPGA可以让你做不同的事情。”但是他们真的会问FPGA里面有什么,或者如何在设计中使用FPGA这种高级产品呢

事实上,MCU适用于某些任务,但对某些控制和复杂计算可能特别不利。 例如,如果需要并行执行大量计算任务,FPGA可能会让你高兴。

# # # #

FPGA的基本结构如下。

查找表(lut ) :逻辑操作查找表; 通常输入n个LUT,需要2n个存储单元,一般为4输入查找表结构。 LUT可以用于计算,也可以用作存储器。

闪存(闪存) :触发器可以存储LUT操作的结果,并控制输出数据的时钟周期,包括时钟控制等。

wire:总线连接

I/O:数据通过I/O与FPGA和其他设备通信

DSP:算法计算逻辑单元由加法器和乘法器组成。

BRAM :在FPGA上配置双端口RAM,以便在片上存储大数据,并在相同的时钟周期内访问不同的ram位置。

在介绍一点补充LATCH、DFF :

LATCH :是锁存器。 由级别触发,异步控制。 使能信号有效时latch相当于路径,使能信号无效时latch维持输出状态。

LUT和LATCH的共同点都属于组合逻辑。

不同之处在于,LUT是FPGA的最小单元配置,而LATCH不是。

DFF是d类触发器。 由边缘引起,分为时序逻辑。 reg由DFF构成。 定义8位寄存器意味着使用了8个同步的d触发器。

# # # #

FGA采用逻辑单元阵列LCA这一概念,内部有可配置逻辑模块CLB输出输入模块IOB内部连线三部分。

FGA通过小型查找表实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器驱动其他逻辑电路或驱动I/O

组合逻辑功能FPGA的逻辑通过将编程数据加载到时序逻辑功能中来实现,根据存储在存储器单元中的值,逻辑单元的逻辑功能和

将程序烧到MCU,程序固件写入MCU片上存储器ROM,大多数现代MCU片上存储器ROM是闪存,可以断电保存数据,即使关闭,程序也可以

另一方面,对于Altera和Xilinx两个FPGA芯片来说,FPGA芯片是基于SRAM的查找表(LUT ),因此在将. sof下载到FPGA芯片之后,这些数据直接用于SRAM的查找解决方法是在FPGA芯片的外部放置即使关闭电源也不会丢失数据的存储器。 例如,在一般的EPCS、QFLASH等中,在FPGA内部设计专用的硬件电路,芯片接通电源后立即积极地读取其存储器中的固件,配置在FPGA芯片上。

接通电源时,FPGA芯片将EPROM内的数据读取到片上编程存储器中,配置完成后,FPGA进入工作状态。

关闭电源后,FPGA返回白色薄片,内部逻辑关系消失,因此FPGA可重复使用。

FPGA内部不存在计算概念,所有结果大多由硬件直接给出,因此计算速度快,计算延迟准确到多少个时钟? FPGA进行并行计算的性能功耗分配了几个GPU (也并不夸张),但其代价是开发难度的增大。 看来会写Verilog的老司机还是比会写Verilog的老司机少,所以Xilinx一直试图推进HLS,在Verilog上开发FPGA。 但是,这类似于程序集和FPGA之间的关系。 关于终极性能,Verilog肯定更好。

# # # #

########

FPGA计算能力分析

FPGA作为一种高性能、低功耗的可编程芯片,可以根据客户定制来做针对性的算法设计。所以在处理海量数据的时候,FPGA 相比于CPU 和GPU,优势在于:FPGA计算效率更高,FPGA更接近IO。

FPGA不采用指令和软件,是软硬件合一的器件。对FPGA进行编程要使用硬件描述语言,硬件描述语言描述的逻辑可以直接被编译为晶体管电路的组合。所以FPGA实际上直接用晶体管电路实现用户的算法,没有通过指令系统的翻译。

FPGA的英文缩写名翻译过来,全称是现场可编程逻辑门阵列,这个名称已经揭示了FPGA的功能,它就是一堆逻辑门电路的组合,可以编程,还可以重复编程。

这里用Xilinx的V7-690T进行分析FPGA计算能力,V7-690T包含3600个DSP(Digital Signal Processing),DSP就是FPGA的计算单元。每个DSP可以在每个时钟周期可以做2个单精度浮点计算(乘和加)。
FPGA峰值浮点计算性能 = DSP个数 X FPGA频率 X 每周期执行的浮点操作数。
V7-690T运行频率已250MHz来计算,V7-690T峰值浮点计算性能 = 3600(DSP个数) X 250MHz X 2(乘和加)=1.8T FLOPs/s即每秒1.8T峰值浮点计算能力。

FPGA芯片结构是否可以充分发挥浮点计算能力?FPGA由于算法是定制的,所以没有CPU和GPU的取指令和指令译码过程,数据流直接根据定制的算法进行固定操作,计算单元在每个时钟周期上都可以执行,所以可以充分发挥浮点计算能力,计算效率高于CPU和GPU。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。