随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。如此密集的集成度使我们现在能够在一小块芯片上把以前由 CPU 和外设等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统。

 

IP 复用是片上系统时代的核心技术之一。由于 IP 核的设计千差万别,它们要能够直接连接,就要遵守相同的接口标准。在片上系统中,处理器核和所有外设通过共享总线互通互联,因此这些 IP 核必须遵守相同的总线规范。总线规范定义的是 IP 核之间的通用接口,因此它定义了一套标准的信号和总线周期,以连接不同的模块,而不是试图去规范 IP 核的功能和接口如何实现。一个片上总线(On-Chip Bus,OCB)规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。

 

芯片与电路板的资源和环境的不同,导致片上总线与板上总线存在若干明显差异,包括:

 

①片上总线多采用单向信号线,而板上总线多采用三态信号。片上三态总线无论在功耗、速度、可测性上都存在很大缺陷,而且一旦出现多驱动情况便会损毁芯片(比如若应该输出"Z"的信号实际输出为"1",而另有一个信号输出为"0",就形成一个低电阻通路,导致局部电流过大,热量难以及时释放,从而增加芯片功耗和大大降低芯片寿命)。由于片上布线资源较为丰富,因此片上总线多采用单向信号线。由于电路板上布线资源较为昂贵,因此板上总线多采用三态总线,但是由于三态总线的功耗问题和速度限制,目前板上总线也在向串行和非三态方向发展,如 USB 和 PCI Express。

 

②片上总线比板上总线更加简单灵活。首先片上总线结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与 IP 核连接的复杂度。片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。其一,多数片上总线的数据和地址宽度都可变,其二,部分片上总线的互连结构可变,如 Wishbone 总线支持点到点、数据流、共享总线和交叉开关四种互连方式;其三,部分片上总线的仲裁机制灵活可变,如 Wishbone 总线的仲裁机制可以完全由用户定制。而板上总线则较为死板,时序也更加苛刻。

 

目前比较常见的片上总线规范有 ARM 公司的 AMBA、Silicore 的 Wishbone、IBM 公司的 CoreConnect 和 Altera 公司的 Avalon。其他三种总线各有特点,其适用范围也不同。AMBA 总线规范因 ARM 处理器的广泛使用而拥有众多第三方支持,被 ARM 公司 90%以上的合作伙伴采用,已成为广泛支持的现有互连标准之一。IBM 公司的 CoreConnect 因为 IBM 的业界地位也有广泛的应用。Avalon 主要用于 Altera 公司系列 FPGA 中,最大的优点在于其配置的简单性,可由 EDA 工具快速生成。这三种片上总线虽然都是公开标准,但都不是免费的。而 Wishbone 则是一个真正开放和免费的规范。它最先是由 Silicore 公司提出的,目前由 OpenCores 组织维护。由于其开放性,因此 OpenCores 上的免费的 IP 核,大多数都采用 Wishbone 标准。Wishbone 的优势除开放、免费、拥有众多免费 IP 核外,还有简单、灵活、轻量的特点,特别适合大型 IP 内部的小型 IP 之间的互联。在很多 OpenRISC 处理器设计中,各个模块间的互联接口中大量的采用了 Wishbone 总线规范。

 

Wishbone 已被 OPENCORE 联盟采用,并且有可能成为 IEEE 标准。因此,Wishbone 总线从技术上讲简单、灵活、功能强大及易于移植,从经济角度考虑又全部免费,易于全面推广。我们认为它极有可能成为未来 SoC 片上总线的通用标准,其前景看好。

 

Lattice 在 MachXO3 等系列的产品中采用基于 Wishbone 总线的 IP 核设计,包括软核和一些硬核(Harden I2C、SPI、Timer/Counter)。学习 Wishbone 的基本原理,对我们在使用和设计 IP 时都是很有帮助的。Wishbone 作为一个轻量级片上总线,比 AMBA 等总线简单的多,很适合片上总线的入门者学习。