第1课:软件工程师该怎么了解 FPGA 架构
FPGA与CPU、DSP和GPU的区别
- FPGA是硬件可编程,其他芯片为软件可编程。
- FPGA具有丰富的硬件计算单元以及分布式并行内存,其他芯片只有非常有限的计算资源,比如CPU只有几个高性能ALU,另外其他芯片一般使用一个共享内存,在任何是有只能进行一次的读或者写操作。
- FPGA灵活的硬件资源导致所使用的HDL语言抽象级别非常低,为RTL级,而其他芯片的编程语言都是在算法级或者系统级。
- CPU适用于调度和管理的场景,比如文件管理,人机交互。
- DSP适合数据处理,尤其是递归调用
- GPU适合大容量数据流处理
FPGA的优势
传统的CPU提高性能的常见方式有:
- 提高时钟频率
f - 增加核的数目
由于芯片的功耗
因此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资源使用率
http://xilinx.eetop.cn/viewnews-2719http://xilinx.eetop.cn/viewnews-2719