第3章 片上总线
本章主要内容
在片上系统中,处理器核和所有外设通过共享总线互通互联,因此这些IP核必须遵守相同的总线规范。总线规范定义了IP核之间的通用接口,目前常见的片上总线标准有AMBA、WISHBONE、CoreConnect等,这些标准虽然在实现细节上有所差别,但在性能上差别甚微。DemoSoC的片上总线符合WISHBONE片上互联标准。本章以WISHBONE片上互联标准为例讲述片上总线技术。
3.1 片上总线技术综述
IP复用是片上系统时代的核心技术之一。由于IP核的设计千差万别,它们要能够直接连接,就要遵守相同的接口标准。总线规范定义的是IP核之间的通用接口,因此它定义了一套标准的信号和总线周期以连接不同的模块,而不是试图去规范IP核的功能和接口如何实现。一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
芯片与电路板的资源和环境的不同,导致片上总线与板上总线存在若干明显差异,包括如下方面。
1.片上总线多采用单向信号线,而板上总线多采用三态总线
片上三态总线无论在功耗、速度、可测性上都存在很大缺陷,而且一旦出现多驱动情况便会损毁芯片(比如若应该输出“Z”的信号实际输出为“1”,而另有一个信号输出为“0”,就形成一个低电阻通路,导致局部电流过大,热量难以及时释放,从而增加芯片功耗和大大降低芯片寿命),又由于片上布线资源较为丰富,因此片上总线多采用单向信号线。而电路板上布线资源较为昂贵,因此板上总线多采用三态总线,但是由于三态总线的功耗问题和速度限制,目前板上总线也在向串行和非三态方向发展,如USB和PCI Express。
2.片上总线比板上总线更加简单灵活
首先片上总线结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP核连接的复杂度。片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。其一,多数片上总线的数据和地址宽度都可变,其二,部分片上总线的互连结构可变,如WISHBONE总线支持点到点、数据流、共享总线和交叉开关4种互连方式;其三,部分片上总线的仲裁机制灵活可变,如WISHBONE总线的仲裁机制可以完全由用户定制。而板上总线则较为死板,时序也更加苛刻。
目前比较常见的片上总线规范有ARM公司的AMBA、Silicore的WISHBONE、IBM公司的CoreConnect和Altera的Avalon。三种总线各有特点,其适用范围也不同。AMBA总线规范因ARM处理器的广泛使用而拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,已成为广泛支持的现有互连标准之一。IBM公司的CoreConnect因为IBM的业界地位也有广泛的应用。Avalon主要用于Altera公司系列PLD中,最大的优点在于其配置的简单性,可由EDA工具快速生成。这三种片上总线虽然都是公开标准,但都不是免费的,而WISHBONE则是一个真正开放和免费的规范。它最先是由Silicore公司提出的,目前由OpenCores组织维护。由于其开放性,因此OpenCore上的免费的IP核,大多数都采用WISHBONE标准。WISHBONE的优势除开放、免费、拥有众多免费IP核外,还有简单、灵活、轻量的特点,特别适合大型IP内部的小型IP之间的互联。在本书介绍的OpenRISC处理器设计中,各个模块间的互联接口中大量采用了WISHBONE总线规范。
需要指出,任何一个总线规范,首先至少支持点对点互联,所以严格意义上讲,国内学术界普遍说的“总线规范”实际上指的是片上系统互联规范,只不过多个IP通过共享总线互联是人们最关心的,也是最广泛使用的,所以通常将片上系统互联规范称为总线规范。