SOC与SOPC

SOPC

在 SoC FPGA 技术推出之前,各大 FPGA 厂家已经推广了十多年的 SOPC技术。从架构角度来说,SOPC 和 SoC FPGA 是统一的,都是使用 FPGA 和 CPU共同完成系统的设计。但是与 SoC FPGA 不相同的是,
SOPC 是在单纯的 FPGA芯片上使用 FPGA 的可编程逻辑资源和嵌入式存储器资源搭建一个软核 CPU 系统,由该软核 CPU 实现所需处理器的完整功能,该 CPU 是由 FPGA 通用逻辑资源和存储器通过配置实现的,其本质依旧只是一个复杂的 FPGA 设计模块。

基于该结构的设计在保证系统性能的同时,增加了系统的灵活性。另外,如果单个软核 CPU 无法满足用户需求,则可以添加多个 CPU 软核,搭建多核系统,通过多核 CPU 协同工作,让系统拥有更加灵活便捷的控制和运算能力。

CPU 是使用 FPGA 的通用逻辑资源搭建的,所以相较使用经过
布局布线优化的硬核处理器来说,软核处理器够运行的最高时钟主频要低一些,而且搭建软核 CPU 也会消耗较多的 FPGA 逻辑资源以及片上存储器资源。因此SOPC 方案仅适用于对处理器整体性能要求不高的应用

SoC FPGA 与 SOPC 之间的差异

从架构的角度来说,SOPC 和 SoC FPGA 是统一的,都是由 FPGA 和处理器组成。在 SoC FPGA 中,嵌入的是 ARM 公司 32 位的 Cortex-A9 硬核处理器,简称 HPS(Hardware Processor System)。SOPC 技术中,嵌入的是由 Intel 自己开发的 32 位 NIOS II 软核处理器,两者指令集与处理器性能均有差异。Cortex-A9硬核处理器性能远远高于 NIOS II 软核处理器。
Cyclone V SoC FPGA 片上的 HPS 部分,不仅集成了双核的 Cortex-A9 硬核处理器,还集成了各种高性能外设,如 MMU、DDR3 控制器、NAND FLASH控制器等,有这些外设,HPS 部分就可以运行成熟的 Linux 操作系统,提供统一的系统 API,降低开发者的软件开发难度。而 NIOS II 软核 CPU 虽然可以通过配置,用逻辑资源来搭建相应的控制器以支持相应功能,但是从性能和开发难度上来说,无法与之媲美。因此,采用基于 SoC FPGA 架构进行设计开发是比较好的选择。
此外,虽然 SoC FPGA 芯片上既包含了有 ARM,又包含了有FPGA,但是两者一定程度上是相互独立的,SoC芯片上的ARM处理器核并非是包含于FPGA逻辑单元内部的,而是与 FPGA 一同封装到同一个芯片中,JTAG 接口、电源引脚和外设的接口引脚都是独立的。因此,如果使用 SoC FPGA 芯片进行设计,即使不用片上的 ARM 处理器,ARM 处理器部分占用的芯片资源也无法释放出来,不能用作通用的 FPGA 资源。而 SOPC 则是使用 FPGA 通用逻辑和存储器资源搭建的 CPU,当不使用 CPU 时,CPU 占用的资源可以被释放,重新用作通用FPGA 资源。

SoC FPGA 架构的优势

在 SoC FPGA 架构出现之前,一般的嵌入式系统通常使用各种处理器或单片机作为系统核心,如基于 ARM 架构的 CPU、基于因特尔 X86 架构的 CPU、基于 IBM PowerPC 架构的 CPU 等。
SoC FPGA 芯片上 FPGA 和 HPS 部分独特的高速互联架构,FPGA 侧设计的功能电路可以直接连接到 HPS 的总线上,从而映射为 HPS 的一个外设,由 HPS 对其进行读/写操作,该操作就像处理器操作本身片上含有的外设一样简单方便。

相较于FPGA架构的优势

单独的 FPGA 设计的系统也有其不足之处,由于 FPGA 实现功能都
是通过功能固定的逻辑电路实现的,那么当应用中需要灵活的控制和人机交互或者复杂的以太网协议通信时,使用 FPGA 实现就会有较大的难度,即使使用复杂的状态机能够勉强实现功能,也面临着功能固定、修改难度大的问题。例如在上述多路采集系统之中,当需要将多路采集到的数据在液晶显示屏上绘制为波形,或者使用TCP/IP协议传输到远端服务器时,单纯的FPGA就难以胜任了,而ARM处理器,尤其是运行了嵌入式操作系统的 ARM 处理器,在图形界面显示和网络
传输方面有较大的优势,如果将 FPGA 实现的多路高速数据采集系统的采集结果交给 ARM 处理器来实现波形显示或者网络传输,那么只需要简单的软件编程即可实现。

上一篇:如何查看电脑CPU实时功耗


下一篇:Section Seven: Weird and Innovative Chips