3.2 WISHBONE片上总线的基本特点
一般总线规范的共同特点为同时适用于软核、固核和硬核设计;对开发工具和目标硬件没有特殊要求,并且几乎兼容已有的所有综合工具;可以用多种硬件描述语言来实现;支持结构化设计方法学,以提高大团队的设计效率;灵活的数据和地址总线宽度,支持大端和小端操作;支持主从设备接口,支持多主设备,这是片上共享总线通信所必需的,多个主设备同时需要进行总线操作时,由仲裁器决定当前哪个主设备可以使用总线,仲裁逻辑用户可以自行定义。此外,在笔者看来,WISHBONE总线规范的特点还包括以下方面。
1.支持点到点、共享总线、十字交叉(Crossbar)和基于交换模块的互联
WISHBONE总线规范是“轻量级(Lightweight)”规范,它实际上更加侧重于点对点互联及复杂度不高的共享总线片上系统互联。因此,与其他总线规范相比,WISHBONE的接口更加简单紧凑,接口需要的互联逻辑非常少(见本章后续的例子),这是WISHBONE的一个重要优势。熟悉AMBA总线的读者在读完本章后就能够理解WISHBONE比AMBA总线简单得多,但是两者各有个的优势。AMBA将所有的外设分为高速设备和低速设备,高速设备连接到系统总线,通常通信的数据量也较大,如SDRAM控制器、Nandflash控制器、LCD控制器,低速设备连接外设总线,通常通信数据量小,如通用串口、计时器等。外设总线与系统总线通过总线桥接器相连。在实际系统中,处理器、系统总线、外设总线间的时钟频率的典型比值之一是4:2:1,因此整个系统的功耗被有效降低。另外一个好处是通过在总线桥接器中添加DMA引擎,系统总线和外设总线可以实现有效的速率解耦。而依照WISHBONE规范,WISHBONE总线上所有设备都要连接到同一总线,无论是高速设备还是低速设备。与WISHBONE总线相比,AMBA的缺点是设计较为复杂。但是实际上,WISHBONE总线也设计为类似AMBA总线的架构,但此时系统为双WISHBONE总线架构。
2.支持典型的数据操作,包括单次读/写操作、块读/写操作,读改写(RMW,Read-Modify- Write,细节见后文)操作
最快情况下一个时钟周期可完成一次操作,操作的结束方式包括成功、错误和重试(Retry)。一个总线周期完成一次操作,一次操作可以是单次读/写操作、块读/写操作或者读改写操作。操作总是在某一总线周期内完成的,因此操作结束方式也称为总线周期结束方式,两者说法在后文将视情况使用。成功是操作的正常结束方式,错误表示操作失败,造成失败的原因可能是地址或数据校验错误,写操作或读操作不支持等。重试表示从设备当前忙,不能及时处理该操作,该操作可以稍后重新发起。接收到操作失败或重试后,主设备如何响应取决于主设备的设计者。
3.允许从设备进行部分地址解码,有利于减少了冗余地址译码逻辑,提高地址译码速度
这一点本书将通过实例说明。
4.支持用户定义的标签
这些标签可以用于为地址、数据总线提供额外的信息如奇偶校验,为总线周期提供额外的信息如中断向量、缓存控制操作的类型等。WISHBONE规范只定义标签的时序,而标签的具体含义用户可自行定义。支持用户定义的标签是WISHBONE规范区别与其他片上总线规范的重要特征之一。
5.全同步化设计,包括复位方式
但是实际上复位方式采用同步还是异步并不影响IP的互联互通,因此兼容WISHBONE规范的IP完全可以采用异步方式,OpenCore.org上面的很多兼容WISHBONE规范的开源IP采用的就是异步复位。
总结以上内容,WISHBONE总线规范区别于其他总线规范的两个核心特点是:(1)是轻量级规范,因此接口更加简单紧凑;(2)支持用户定义的标签。