8.1 基于FPGA的SOPC系统组成原理和典型方案
8.1.1 SoC及SOPC简介
1.SoC
SoC即System On Chip,是片上系统简称。它是IC设计与工艺技术水平不断提高的结果。SoC从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路直至器件的设计紧密结合起来,在单个(或少数几个)芯片上完成整个系统的功能。所谓完整的系统一般包括中央处理器、存储器以及外围电路等。
SoC通常应用于小型的、日益复杂的客户电子设备。例如,声音检测设备的系统芯片是在。单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入/输出逻辑控制等设备。
SoC的设计以IP核为基础,以分层次的硬件描述语言为系统功能和结构的主要描述手段,借助于以计算机为平台的EDA工具进行。
研究表明,与IC组成的系统相比,由于SoC设计能够综合并全盘考虑整个系统的各种情况,因而可以在同样的工艺技术条件下,实现更高性能的系统指标。SoC技术也大大促进了软硬件协同设计以及计算机系统设计自动化的发展。
目前,在软硬件协同设计中最为活跃的研究工作包括系统描述、软硬件划分、软硬件协同综合以及软硬件协同模拟与验证等。如图8.1所示为一个较为普遍的面向SoC软硬件协同设计流程。
SoC系统级设计方法基本采用层次化的设计思想和正交性的设计原则来完成系统级设计。目前,在学术界和工业界比较认可的SoC系统级设计方法学,从性质上基本可分为3大阵营:自顶向下,自底向上,上下结合和中间相遇。
图8.1 软硬件协同设计流程
2.SOPC
SOPC(System On a Programmable Chip:可编程芯片系统)是Altera公司提出来的一种灵活、高效的SoC解决方案。它将处理器、存储器、I/O端口、LVDS、CDR等系统设计需要的部件,集成到一个PLD器件上,构建成一个可编程的片上系统。
它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。可编程器件内,还具有小容量高速RAM资源。由于市场上有丰富的IP Core资源可供灵活选择,用户可以构成各种不同的系统,如单处理器、多处理器系统。
有些可编程器件内还可以包含部分可编程模拟电路。除了系统使用的资源外,可编程器件内还具有足够的可编程逻辑资源,用于实现其他的附加逻辑。
SOPC是PLD和ASIC技术融合的结果。集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势。所以,SOPC代表了半导体产业未来发展的方向。
下面介绍一下Xilinx及Altera两家公司的SOPC的解决方案,其中将重点介绍Altera的解决定案。
8.1.2 Xilinx的SOPC解决方案
Xilinx公司不仅提供高端32位MicroBlaze CPU软嵌入式处理器芯核,也提供免费的低端8位PicoBlaze CPU软嵌入式处理器芯核。
一般的C交叉汇编程序和用户定制的VHDL /Verilog HDL源代码,还有大量的应用说明和参考设计,均可从Xilinx公司网站下载获得,它们均适用于CoolRunner-II CPLD以及各种Spartan和Virtex FPGA系列。
Xilinx公司声称,该CoolRunner-II版本只占用107个宏单元,而适用于Spartan-IIE的PicoBlaze则需占用76个逻辑片。适用于Virtex-II系列FPGA器件的PicoBlaze,其性能可达55MIPS。
<利用MicroBlaze软处理器解决方案,Xilinx充分发挥出了嵌入式FPGA设计的全部潜能。MicroBlaze核是一个32位哈佛RISC架构,具有丰富的针对嵌入式应用而优化的指令集。处理器是软核,意味着它是通过使用通用逻辑基元而非FPGA中的硬专用模块来实现的。
Xilinx的Spartan和Virtex系列FPGA产品支持MicroBlaze软处理器。MicroBlaze解决方案被设计得很灵活,能让用户控制很多特性,如缓存大小、接口和执行单元。为了以尽可能低的成本点达到面向目标应用的必要性能,可配置性允许用户对大小进行折衷来换取性能。
MicroBlaze软核被授权成为Xilinx嵌入式开发套件(EDK)的一部分。EDK是包括外围IP核库、曾荣获大奖的Xilinx Platform Studio工具套装(可用于生成直观的硬件系统)、基于Eclipse的软件开发环境、GNU编译器、调试器以及更多工具在内的完整的嵌入式开发解决方案。MicroBlaze处理器也为第三方开发工具和实时操作系统(RTOS)所支持。
对于更高的性能要求,Xilinx在Virtex-II系列平台FPGA中植入了32位PowerPC内核来提供DMIPS性能。配合Virtex-II Pro FPGA在450 MHz时钟频率下的32位PowerPC内核可提供超过680 DMIPS的性能。由于处理器简化了设计,所用的芯片面积也非常小。例如,一个高效的设计仅使用了Xilinx 2VP50器件中不到2%的片芯面积。