什么是SoC、SOPC、SoC FPGA?用在什么场景?

电子说

1.3w人已加入

描述

说一说

开始SoC FPGA的学习路程还是蛮难的,不仅要熟悉整个的设计流程,而且还要掌握FPGA以及软件方面的知识,尤其大概看了一下后面的整体设计部分,操作起来还是较为繁琐的,以至于让人晕头转向。尽管如此,先了解一下SoC FPGA是什么,相对于SOPC、SoC有什么优缺点,甚至常用在什么场景中还是比较轻松的,这些知识能对SoC FPGA嵌入式设计有初步的了解及认识,将为后续具体的开发研究做铺垫。

处理器

一、关于SoC

概念: SoC(System OnChip)为片上系统或系统级芯片,就是在单一芯片上集成处理器、存储单元、图像处理单元GPU、各种功能部件等,且都由一个中央控制单元通过总线来控制它们的工作。 优缺点: 低功耗、高性能、高集成、高带宽、设计复杂度较高、对知识的掌握要求更高。

二、关于SOPC

概念:

SOPC为片上可编程系统(System On a Programmable Chip),将处理器、存储器(RAM、ROM或闪存)及各种功能模块等集成到一片FPGA中,其处理器为软核处理器,即采用FPGA的通用逻辑资源和存储单元来搭建软核CPU。典型的则是Altera的Nios II 嵌入式软核处理器。

简言之,SOPC就是软核处理器+FPGA,并用Avalon总线来通信。

优缺点

优点:由于它的处理器CPU是由FPGA的通用逻辑资源搭建,因此该处理器更灵活,可裁剪可定制,还可添加多个CPU,以实现多核系统的搭建,进而完成多核CPU的协调工作;还能灵活为CPU增添外设(UART,SPI,IIC 等);

缺点:由于处理器是由FPGA的通用逻辑资源搭建,因此占用更多FPGA的资源,另外搭建出来的处理器运行的最高时钟主频也更低一些(最高160/170MHz),所以SOPC方案仅适用于对处理器整体性能要求不高的应用,通用性不强。

三、关于SoC FPGA(Intel Cyclone V SoCFPGA)

处理器

 概念:

SOC FPGA高集成度芯片是在同一个芯片上集成FPGA和HPS(HardwareProcessor System)系统,即FPGA+硬核处理器。

Intel Cyclone V SoC FPGA :是在单一芯片上集成了双核的 ARM Cortex-A9 处理器和FPGA的新型 SoC 芯片,主频可达到925MHz,所以它能同时拥有ARM和FPGA的优势。二者之间用高达128 位数据位宽的 AXI 高速总线进行通信。  优缺点:

SOC FPGA拥有ARM 硬核处理器灵活逻辑控制、图形界面显示和网络传输等优势,而且还能运行成熟的 Linux 操作系统,同时还拥有 FPGA 高速流水并行处理、可灵活定制、丰富I/O单元等优势; 由于FPGA和ARM之间采用片上高速互联结构(AXI),AXI总线可根据具体的需求进行配置(128位/64位/32位),另外使用时可以将 FPGA 上的通用逻辑资源进行配置,从而映射为 ARM 处理器的一个或多个具有特定功能的外设,从而添加了一个符合特定需求功能的模块。 SoC FPGA的HPS 部分可运行成熟的 Linux 操作系统,并提供了统一的系统 API,相对来说,能降低开发者的软件开发难度。工作的时钟频率也比软核处理器更高,因此可单位时间内能够执行更多的指令。 虽然SoC FPGA兼具了硬核处理器及FPGA的优势,但也对开发者提供了个更高的要求,不仅要有Verilog代码能力,而且还需要有软件开发经验,还需掌握基础的Linux系统知识,但Linux的加入并不像所想的增加知识量及操作难度,相反地,可以降低我们的开发难度。 常见应用场景:

视频监控(高清视频分析)、自动辅助驾驶(视频处理分析、通信)、国防航天(夜视、保密通信)、广播(视觉、专业音频、PCIe采集)等要求低功耗、低成本、轻量化的应用领域中,距离我们更近的就是智能手机、智能车载、物联网等市场中的应用。

四、SoC FPGA和独立的FPGA系统对比

FPGA实现的是硬件逻辑功能,有着高速流水并行处理架构、丰富I/O单元和功能模块复用的优势,非常适合做图像预处理中滤波等重复性的操作,但当需要用到灵活的控制和复杂的协议通信的时候,FPGA不占优势,而SoC FPGA恰恰将FPGA和ARM的优势集合在了一起。

五、SoC FPGA和传统的处理器+FPGA架构对比

传统处理器(英特尔X86架构CPU、Cortex-M系统单片机等)+FPGA架构中因为使用了独立的器件,所以电路板的设计相对复杂,另外在用单片机与FPGA通信的时候,速率也因为硬件电路板或者高位宽并行总线间的竞争冒险情况等而受到限制。而SoC FPGA采用片上集成的方式,且ARM和FPGA之间的高速互联桥也能打破带宽和通信速率的限制,另外处理器、外设存储单元可定制,因此也突破了硬件上的限制。

六、SoC FPGA 和 SOPC 对比

同: SoC FPGA 和 SOPC 都是由FPGA和处理器组成。

异: SoC FPGA 采用的是硬核处理器(ARM,性能更高),SOPC 采用的是软核处理器(NIOS II)。其中SoC FPGA中的ARM和FPGA是相互独立的,供电电源相互独立,意思就是如果FPGA或者ARM中的任意一方断电,另一方仍是可以正常工作的,彼此之间不会受到影响,但是如果设计中无需使用ARM部分,ARM部分占用的芯片资源却是不能被释放的。

而SOPC的处理器由FPGA通用资源搭建,也就是软核处理器,所以当不用CPU的时候,资源可释放,全部的资源均可当作FPGA资源来使用,但它的性能却低于ARM硬核处理器。。

七、SoC FPGA 的总结

SoC FPGA 器件发挥了FPGA的可编程、并行处理等优势,与ARM处理器协同工作,突破硬件中无法灵活控制等的限制,最终基于SoC FPGA实现的系统也拥有高集成、低功耗等有点。随着半导体工艺的发展,这种ARM+FPGA 集成架构的芯片(SoC FPGA)将有更大的市场和应用前景。

处理器

了解之后,可以阅读一些有关SoC FPGA方面的文献,有了一定的理论知识支撑后,去动手尝试一些有关的实践项目。  

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分