第1课:软件工程师该怎么了解 FPGA 架构


FPGA与CPU、DSP和GPU的区别

第1课:软件工程师该怎么了解 FPGA 架构

  • FPGA是硬件可编程,其他芯片为软件可编程。
  • FPGA具有丰富的硬件计算单元以及分布式并行内存,其他芯片只有非常有限的计算资源,比如CPU只有几个高性能ALU,另外其他芯片一般使用一个共享内存,在任何是有只能进行一次的读或者写操作。
  • FPGA灵活的硬件资源导致所使用的HDL语言抽象级别非常低,为RTL级,而其他芯片的编程语言都是在算法级或者系统级。
  • CPU适用于调度和管理的场景,比如文件管理,人机交互。
  • DSP适合数据处理,尤其是递归调用
  • GPU适合大容量数据流处理

FPGA的优势

传统的CPU提高性能的常见方式有:

  • 提高时钟频率f
  • 增加核的数目

由于芯片的功耗P同频率f和芯片工作电压V有如下关系:

P=12fV2

因此FPGA通过较低频率如500MHz以及非常低的核电压0.8V、1.35V等来降低功耗,同时通过大量的硬件并行计算提高性能。FPGA有如下优势:

  • 低功耗
  • 高度并行,体现在并行的计算单元和内存单元
  • 当前FPGA中嵌入了CPU软核和硬核,是的FPGA同时具有非常好的逻辑控制和高性能数据计算的能力

Xilinx的FPGA架构

第1课:软件工程师该怎么了解 FPGA 架构

第1课:软件工程师该怎么了解 FPGA 架构

Xilinx FPGA有两种内存形式:

  • 由2个18Kb的内存组成的BRAM,可以有多种配置(单端/双端、ROM/RAM)
  • SLICEM中的LUT,可以配置为多种模式的分布式RAM,可以有多种配置(单端/双端、位宽)
    第1课:软件工程师该怎么了解 FPGA 架构

使用C/C++ 来开发FPGA时需要关注的方面

  • 算法的不同部分的功能
  • FPGA底层单元的操作
  • 算法不同部分同FPGA底层单元的映射关系
  • 算法的FGPA资源使用率

http://xilinx.eetop.cn/viewnews-2719http://xilinx.eetop.cn/viewnews-2719