FPGA验证学习(五):SoC的总线架构

前言

SoC的发展离不开应用领域的需求牵引。在根据需求进行片上系统设计时,不仅要考虑SoC本身,而且还要考虑SoC应用产品的需求,重点关注特定IP获取和系统总体结构(性能、功耗、成本、可靠性、适用性)的评估。

为了提高开发模块的重复利用率,降低开发成本,

  • 用户采用SoC总线(芯片内部)、
  • 芯片间总线(如SPI、I2C、UART、并行总线)、
  • 板卡间总线(如ISA、PCI、VME)、
  • 设备间总线(如USB、1394、RS-232)等。

不同的是,SoC总线为用户提供了一个堪称“理想”的环境:片上系统模块间避免了干扰、匹配等传统问题,但是片上系统要求时序异常严格。

在实施过程中,SoC设计者的核心工作不再是某个新功能的设计实现,而是如何去评估、验证和集成多个已经存在的软硬件模块,重视软硬件划分、IP核复用、嵌入式软件开发、多层次软硬件协同验证等方面。

由于OpenCore和其他致力于开放知识产权(Open Intellectual Property)组织的大力推广(开发设计了大量基于标准化片上总线的免费模块),用户在片上系统总线的选择上更倾向于采用那些标准化、开放化的方案。

片上总线与板上总线应用范围不同,存在着较大的差异,其主要特点如下:

  • ① 片上总线要尽可能简单。首先结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;最后接口要简单,这样可降低与IP核连接的复杂度。

  • ② 片上总线有较大的灵活性。由于片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。

    • ● 多数片上总线的数据和地址宽度都可变,如AMBA AHB支持32~128位数据总线宽度;
    • ● 部分片上总线的互连结构可变,如Wishbone,总线支持点到点、数据流、共享总线和交叉开关4种互连方式;
    • ● 部分片上总线的仲裁机制灵活可变,如Wishbone总线的仲裁机制可以完全由用户定制。
  • ③ 片上总线要尽可能降低功耗。因此,在实际应用时,总线上各种信号尽量保持不变,并且多采用单向信号线,这降低了功耗,同时也简化了时序

上述三种片上总线的输入数据线和输出数据线都是分开的,且都没有信号复用现象。片上总线有两种实现方案,

  • 一是选用国际上公开通用的总线结构;
  • 二是根据特定领域自主开发片上总线。

下面就目前SoC上使用较多的4 种片上总线标准

  • IBM的CoreConnect总线、
  • ARM的AMBA、
  • Silicore的Wishbone
  • Altera的Avalon

进行讨论,对它们的特性进行分析和比较。

一、CoreConnect总线

IBM公司的CoreConnect提供了三种基本结构:

  • 处理器内部总线(Processor Local Bus,PLB)、
  • 片上外围总线(OPB)
  • 设备控制总线(DCR)。

① PLB标准是为总线传输的主要发出者和接收者之间提供高带宽、低延迟的连接。其主要特征如下:

  • ● 高性能处理器内部总线;
  • ● 交叠的读写功能(最快每周期传输两次);
  • ● 支持分段传输;
  • ● 读和写分开;
  • ● 32~64位数据总线;
  • ● 32位地址空间;
  • ● 支持16~64位突发传输模式;
  • ● 4级仲裁优先权;
  • ● 特殊DMA(Direct Memory Access)模式。

② OPB标准为连接具有不同的总线宽度及时序要求的外设和内存提供了一条途径,并尽量减小对PLB性能的影响。其主要特征如下:

  • ● 片上外围总线、支持多个主设备;
  • ● 32位地址空间;
  • ● 读写数据总线分开;
  • ● 8~32位数据总线;
  • ● 动态总线宽度;
  • ● 支持重试模式(如果主设备要求的从设备忙,主设备隔一段时间再次请求);
  • ● 支持突发(Burst)传输模式;
  • ● 支持DMA。

③ DCR是用来规范CPU通用寄存器设备,控制寄存器之间传输数据。DCR总线在内存地址映射中取消了配置寄存器,减少取操作,增加处理器内部总线的带宽。其主要特征如下:

  • ● 10位地址总线;
  • ● 32位数据总线;
  • ● 同步和异步的传输;
  • ● 分布式的结构。

CoreConnect拥有完备的一整套技术文档,在技术上可行性较强,可以应用在类似于工作站这样的高性能系统的连接,对于简单的嵌入式应用来说可能有点太复杂,提供的许多特性无法用到。

二、AMBA总线

AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可复用性。

AMBA总线规范是一个开放标准,可免费从ARM获得。目前AMBA拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM处理器内核的SoC设计中已经成为广泛支持的现有互连标准之一。

AMBA总线规范2.0于1999年发布,该规范引入的先进高性能总线(AHB)是现阶段AMBA实现的主要形式。AHB的关键是对接口和互连均进行定义,目的是在任何工艺条件下都可以实现接口和互连的最大带宽。AHB接口已与互连功能分离,不再仅仅是一种总线,而是一种带有接口模块的互连体系。

AMBA总线规范的主要设计目的如下:

  • ● 满足具有一个或多个CPU或DSP的嵌入式系统产品的快速开发要求;

  • ● 增加设计技术上的独立性,确保可复用的多种IP核可以成功地移植到不同的系统中,适合全定制、标准单元和门阵列等技术;

  • ● 促进系统模块化设计,以增加处理器的独立性;

  • ● 减少对底层硅的需求,以使片外的操作和测试通信更加有效。

AMBA总线是一个多总线系统。规范定义了三种可以组合使用的不同类型的总线:

  • AHB(Advanced High-performance Bus)、
  • ASB(Advanced System Bus)
  • APB(Advanced Peripheral Bus)。

典型的基于AMBA的SoC核心部分如图9-10所示,
FPGA验证学习(五):SoC的总线架构_第1张图片

其中性能系统总线(AHB或ASB)主要用以满足CPU和存储器之间的带宽要求:CPU、片内存储器和DMA设备等高速设备连接在其上,而系统的大部分低速外部设备则连接在低带宽总线(APB)上

系统总线和外设总线之间用一个桥接器进行连接

三种协议

1-AHB

AMBA的AHB适用于高性能和高时钟频率的系统模块。它作为高性能系统的骨干总线,主要用于连接高性能和高吞吐量设备之间的连接,如CPU、片上存储器、DMA设备和DSP或其他协处理器等,其主要特性如下:

  • ● 支持多个总线主设备控制器;
  • ● 支持猝发、分裂、流水等数据传输方式;
  • ● 单周期总线主设备控制权转换;
  • ● 32~128位数据总线宽度;
  • ● 具有访问保护机制,以区分特权模式和非特权模式访问,指令和数据读取等;
  • ● 数据猝发传输最大为16段;
  • ● 地址空间32位;
  • ● 支持字节、半字和字传输。

2-ASB

AMBA的ASB适用于高性能的系统模块。在不必要使用AHB的高速特性的场合可选择ASB作为系统总线。它同样支持处理器、片上存储器和片外处理器接口与低功耗外部宏单元之间的连接,其主要特性与AHB类似,主要不同点是它读数据和写数据采用同一条双向数据总线

3-APB

AMBA的APB适用于低功耗的外部设备。它已经过优化减少了功耗和对外设接口的复杂度。它可连接在两种系统总线上,其主要特性如下:

  • ● 低速、低功耗外部总线;
  • ● 单个总线主设备控制器;
  • ● 操作简单,加上CLOCK和RESET,总共只有4个控制信号;
  • ● 32位地址空间;
  • ● 最大32位数据总线;
  • ● 读数据总线与写数据总线分开。

三、Wishbone总线

Wishbone最先是由Silicore公司提出的,现在由OpenCores组织维护,是OpenCores建议的片上总线标准,目前已有大量开源的IP Core使用Wishbone总线作为互连标准。

Wishbone总线只定义了信号和信号间的时序关系,因此可用于软核、固核和硬核,对硬件描述语言、综合工具和实现手段没有特殊要求。

与其他片上总线相比,Wishbone总线结构简单,互连灵活,对用户定制的支持良好,与其他片上总线的互连也较简单,因此随着SoPC技术的发展,有着广泛应用前景。我国部分具有自主知识产权的桥接芯片也采用了Wishbone。

四、AvaIon总线

Avalon总线是Altera公司设计的用于SoPC(System on Programmable Chip,可编程片上系统)中,连接片上处理器和其他IP模块的一种简单总线协议,规定了主部件和从部件之间进行连接的端口和通信的时序。

Avalon总线的主要设计目的如下:

  • ● 简单性,提供一种非常易于理解的协议;
  • ● 优化总线逻辑的资源使用率,将逻辑单元保存在PLD(Programmable Logic Device,可编程逻辑器件)中;
  • ● 同步操作,将其他逻辑单元很好地集成到同一PLD中,同时避免了复杂的时序。

在传统的总线结构中,一个中心仲裁器控制多个主设备和从设备之间的通信。这种结构会产生一个瓶颈,因为任何时候只有一个主设备能访问系统总线。Avalon总线的开关构造使用一种称为从设备仲裁(Slave-side Arbitration)的技术,允许多个主设备控制器真正同步操作。当有多个主设备访问同一个从设备时,从设备仲裁器将决定哪个主设备获得访问权。

图9-11是一个多主设备同时访问存储器的例子。在此系统中,高带宽外设如100 Mb/s以太网卡可以不需暂停CPU而直接访问存储器,通过允许存储访问独立于CPU,Avalon开关结构优化了数据流,从而提高了系统的吞吐量。

FPGA验证学习(五):SoC的总线架构_第2张图片
Avalon总线的主要特性如下:

  • ● 32位寻址空间;
  • ● 支持字节、半字和字传输;
  • ● 同步接口;
  • ● 独立的地址线、数据线和控制线;
  • ● 设备内嵌译码部件;
  • ● 支持多个总线主设备,Avalon自动生成仲裁机制;
  • ● 多个主设备可同时操作使用一条总线;
  • ● 可变的总线宽度,即可自动调整总线宽度,以适应尺寸不匹配的数据;
  • ● 提供了基于图形界面的总线配置向导,简单易用。

参考书籍:《32位嵌入式系统与SoC设计导论》

你可能感兴趣的:(数字IC,fpga开发,学习,IC)