FPGA与CPU、DSP和GPU的区别
FPGA是硬件可编程,其他芯片为软件可编程。
FPGA具有丰富的硬件计算单元以及分布式并行内存,其他芯片只有非常有限的计算资源,比如CPU只有几个高性能ALU,另外其他芯片一般使用一个共享内存,在任何是有只能进行一次的读或者写 *** 作。
FPGA灵活的硬件资源导致所使用的HDL语言抽象级别非常低,为RTL级,而其他芯片的编程语言都是在算法级或者系统级。
CPU适用于调度和管理的场景,比如文件管理,人机交互。
DSP适合数据处理,尤其是递归调用
GPU适合大容量数据流处理
FPGA的优势
传统的CPU提高性能的常见方式有:
提高时钟频率ff
增加核的数目
由于芯片的功耗PP同频率ff和芯片工作电压VV有如下关系:
P=12fV2P=12fV2
因此FPGA通过较低频率如500MHz以及非常低的核电压0.8V、1.35V等来降低功耗,同时通过大量的硬件并行计算提高性能。FPGA有如下优势:
低功耗
高度并行,体现在并行的计算单元和内存单元
当前FPGA中嵌入了CPU软核和硬核,是的FPGA同时具有非常好的逻辑控制和高性能数据计算的能力
Xilinx的FPGA架构
Xilinx FPGA有两种内存形式:
由2个18Kb的内存组成的BRAM,可以有多种配置(单端/双端、ROM/RAM)
SLICEM中的LUT,可以配置为多种模式的分布式RAM,可以有多种配置(单端/双端、位宽)
使用C++/C++ 来开发FPGA时需要关注的方面
算法的不同部分的功能
FPGA底层单元的 *** 作
算法不同部分同FPGA底层单元的映射关系
算法的FGPA资源使用率
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)