SoPC即片上可编程系统(SoPC-System on a Programmable Chip),是一种灵活、高效的SoC解决方案。它将处理器、存储器、I/O口、LVDS等系统需要的功能模块集成到一个PLD器件上,构成一个可编程的片上系统。它是PLD与SOC技术融合的结果。
1 基于FPGA嵌入IP硬核的SOPC系统:
该方案是指在FPGA中预先植入处理器.最 常用的是含有ARM32位知识产权处理器核的器件。为了到达通用性,必须为常规的嵌入式处理器 集成诸多通用和专用的接口,但增加了成本和 功耗.如果将ARM或其它处理器核以硬核方式植 入FPGA中,利用FPGA中的可编程逻辑资源,按 照系统功能需求来添加接口功能模块,既能实现目标系统功能,又能降低系统的成本和功耗. 这样就能使得FPGA灵活的硬件设计与处理 器的强大软件功能有机地结合在一起,高效地 实现SOPC系统。
IP硬核直接植入FPGA存在以下不足: IP硬核多来自第三方公司,FPGA厂商无法控制费用,从而导致FPGA器件价格相对偏高. IP硬核预先植入,使用者无法根据实际需要 改变处理器结构.更不能嵌入硬件加速模块 (DSP). 无法根据实际设计需要在同一FPGA中集成多 个处理器. 无法根据实际设计需要裁减处理器硬件资源 以降低FPGA成本. 只能在特定的FPGA中使用硬核嵌入式处理器
2 基于FPGA嵌入IP软核的SOPC系统:
IP软核处理器能有效克服上述不足: 目前最有代表性的软核处理器分别是 Altera公司的Nios II核,以及Xilinx公司 的MicroBlaze核.特别是Nios II核,能很好的解决上述五方面的问题. Altera的Nios II核是用户可随意配置核构 建的32位嵌入式处理器IP核,采用Avalon总 线结构通信接口;包含由FS2开发的基于 JTAG的片内设备内核. 在费用方面,由于Nios II是由Alter公司 直接提供而非第三方厂商产品,故用户通常无需支付知识产权费用,Nios II的使用费 用仅仅是其瞻仰的FPGA逻辑资源的费用
3 基于HardCopy技术的SOPC系统:
HardCopy就是利用原有的FPGA开发工具, 将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化,从而克服传统ASIC设 计中普遍存在的问题. ASIC(SOC)开发中难于克服的问题包括:开发周期长,产品上市慢,一次性成功率低,有 最少投片量要求,设计软件工具繁多且昂贵, 开发流程复杂等.
利用HardCopy技术设计ASIC,开发软件费 用少,SOC级规模的设计周期不超过20周,转化 的ASIC与用户设计习惯的掩模层只有两层,且 一次性投片的成功率近乎100%,即所谓的FPGA 向ASIC的无缝转化用ASIC实现后的系统性能将必原来在 HardCopy FPGA上验证的模型提高近50%,而功 耗则降低40%.
HardCopy技术是一种全新的SOC级ASIC设计 解决方案,即将专用的硅片设计和FPGA至 HardCopy自动迁移过程结合在一起的技术,首 先利用Quartus II将系统模型成功实现于 HardCopy FPGA上,然后帮助设计者把可编程解 决方案无缝地迁移到低成本的ASIC上.这样, HardCopy器件就把大容量FPGA的灵活性和ASIC 的市场优势结合起来,实现对于有较大批量要 求并对成本敏感的电子产品上,从而避开了直 接设计ASIC的困难.
SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:
至少包含一个嵌入式处理器内核;
具有小容量片内高速RAM资源;
丰富的IP Core资源可供选择;
足够的片上可编程逻辑资源;
处理器调试接口和FPGA编程接口;
可能包含部分可编程模拟电路;
单芯片、低功耗、微封装。
SOPC的开发流程通常包括2个方面:基于Quartus II,SOPC Builder的硬件设计,基于NiosII IDE的软件设计.对于比较简单的 NiosII系统,一个人便可执行所有设计.对于比较复杂的系统,硬 件和软件设计可以分开进行. SOPC的开发过程中要使用到Quartus II,SOPC Builder以及Nios II IDE
SOPC Builder: 它是Nios II软核处理器的开 它是Nios II软核处理器的开 发包,用于实现Nios II系统 配置,生成以及与Nios II系统相关的监控和软件调试平台的生成;
Nios IDE: 用于完成基于Nios II系统的软件开发和调试, 并可借助其自带的Flash 并可借助其自带的Flash 编程器完成对Flash以及EPCS的编程操作.
QuartusII: 用于完成Nios II系统的分析综合,硬件优化,适配,配置文件编程下载以及硬件系统测试等;
硬件开发
用 SOPC Builder 软 件 从 NiosII 处 理 器 内 核 和 NiosII 开发套件提供的外设列表中 选 取 合 适 的 CPU , 存 储 器 以及各外围器件,并定制和 配置它们的功能; 分配外设地址及中断号; 设定复位地址; 生成系统. 用户也可以添加用户自 身定制指令逻辑到NiosII 内核以加速CPU性能; 添加用户自己设计的IP模块. 硬件开发使用Quartus II和SOPC Builder GUI 处理器库选择并配置外设.
近年来PLD 器件密度的提高,芯片规模的扩大和性能的提升为SoPC 提供了物质基础。下面以Altera 公司的SoPC 解决方案为例,介绍一下SoPC 技术的应用。Altera 公司起初是生产可编程逻辑器件及其开发工具,并拥有一些IP 核的公司。随着技术的发展,尤其是通信技术的发展,对带宽和速度的要求越来越高,Altera 率先推出自己的SoPC 解决方案,将处理器、存储器、I/O 口、LVDS、CDR 等系统设计需要的东西集成到一个PLD 器件上,构建成一个可编程的片上系统。
1.Nios 软核在2000 年,Altera 发布了Nios 处理器,推出了一个基于APEX 系列FPGA的嵌入式处理器解决方案,这是Altera Excalibur 嵌入处理器计划中的个产品,它将可编程逻辑器件和处理器的能力结合到了一起,成为业界款为可编程逻辑优化的可配置处理器。这种Nios 处理器是1 种参数化的软核,设计人员可以通过编写一些新的HDL 模块或改写已有HDL 模块中的参数来对软核进行优化,及增加外围电路的功能。使用Nios 软核的SoPC 解决方案具有如下特点:
(1) 可配置为32 位或16 位的CPU,使设计人员能够在速度与占用资源上做出选择。
(2) 带有大量的外设和接口库,如UART、时钟、DMA、SDRAM、并行I/O 等。这些特性使得SoC 的设计变得简单化,提高了设计可靠性,降低了设计成本。Nios 软核主要面向对速度的要求不高的低端应用,因为Nios 软核只占用芯片内部很少的一部分逻辑单元,所以成本较低。同ASIC 相比较,如果将处理器放到ASIC 中,不但需要付给处理器厂商专利费,而且ASIC 的投资大,风险也大。Nios 则没有这个问题,由于它是可配置的,所以还可以应用于Altera公司其他的FPGA 芯片上,如Stratix、APEX II 等。值得一提的是Stratix
系列带有DSP 功能块,将Nios 核嵌入其中,可以提供比一般的DSP 更高的性能,加上本身具有的可编程功能,它将提供更高性能的DSP 应用。
2.ARM922T 硬核在速度要求较高的高端应用,如通信领域,软核的处理速度不够,Altera就推出了基于ARM 硬核的SoPC 解决方案。例如,Excalibur EPXA1 中就使用了嵌入的ARM922T 硬核做为处理器,它具有如下特点:
(1) 芯片内嵌入了200MHz (210MIPS)的ARM922T RISC(精简指令集计算机) CPU,并带有容量各为8K 字节的指令和数据缓冲区。
(2) 芯片内包含存储器管理单元(MMU),可以给RTOS (实时操作系统)提供多线程的支持。
(3) 片上集成了存储器和多种外部设备接口,包括:SRAM/DPRAM、UART、32 位时钟、存储器控制器等。Excalibur 系列将ARM 处理器的高速计算能力和可编程功能结合到一起, 使设计人员从繁重的处理器设计工作中解脱出来,从而将大部分精力用在系统功能的实现上。当应用要求更高的性能时,Altera 还推出了更高速的硬核和更先进的PLD结构,提供给客户一个更快速的解决方案。
3.EDA 开发工具为了支持SoPC 的开发,Altera 公司还推出了一系列EDA 设计工具,如Quartus II,以及SoPC Builder。Quartus II 是一个集成开发环境,设计人员可在里面完成SoPC 的全部设计,包括系统的生成、编译、仿真,并可以下载到开发器件中,进行实时评估和验证。尤其,该软件还可以集成SoPC Builder 开发工具,令SoPC 的开发更为便捷。SoPC Builder 是一个自动化的系统开发工具,可以简化SoPC 的设计工作。它提供了一个强大的设计平台以搭建基于总线的系统,其内部包含了一系列的模块,如处理器、存储器、总线、DSP 等IP 核。使用SoPC Buider,设计人员能够快速地调用和集成内建的IP 核库,定义一个从硬件到软件的完整系统。