|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——片上总线Wishbone 学习(一)片上总线综述 " V$ P# y/ E" u8 [2 S4 c3 _: h
0 _7 v' u1 s: v. l* ~' V1 引言
8 I, i, Z+ K; H 传统的IC设计方法已无法适应新的SoC设计要求,需要根本的变革,即从以功能设计为基础的传统IC设计流程转变到以功能整合为基础的SoC设计全新流程。SoC设计以IP的设计复用和功能组装、整合来完成。SoC设计的重点为系统功能的分析与划分、软硬件功能的划分、IP 的选择与使用、多层次验证环境和外界设计咨询服务等。随着以IP核复用为基础的SoC设计技术的发展,如何有效地对众多IP供应商提供IP核,在实际设计时进行有效互联的问题日益受到重视。为了使IP核集成更快速、更方便,缩短进入市场的时间,迫切需要一种标准的互联方案。在这一背景下产生的片上总线OCB(on-chip bus)技术,基于IP 核互联标准技术的发展,目前已形成较有影响力的三种总线标准为:IBM公司的CoreConnect,ARM 公司的AMBA(Advanced MicrocontrollerBusArchitecture)和SilicoreCorp公司的Wishbone。
' A0 D+ u+ T1 H; L$ J$ \6 A" [4 B; Y2 片上总线与板上总线的差异 ; z+ e Q' }* E, s2 A
①片上总线多采用单向信号线,而板上总线多采用三态信号。片上三态总线无论在功耗、速度、可测性上都存在很大缺陷,而且一旦出现多驱动情况便会损毁芯片(比如若应该输出"Z"的信号实际输出为"1",而另有一个信号输出为"0",就形成一个低电阻通路,导致局部电流过大,热量难以及时释放,从而增加芯片功耗和大大降低芯片寿命)。由于片上布线资源较为丰富,因此片上总线多采用单向信号线。由于电路板上布线资源较为昂贵,因此板上总线多采用三态总线,但是由于三态总线的功耗问题和速度限制,目前板上总线也在向串行和非三态方向发展,如USB 和PCI Express。
]; M3 J2 S3 s8 T ②片上总线比板上总线更加简单灵活。首先片上总线结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP 核连接的复杂度。片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。其一,多数片上总线的数据和地址宽度都可变,其二,部分片上总线的互连结构可变,如Wishbone 总线支持点到点、数据流、共享总线和交叉开关四种互连方式;其三,部分片上总线的仲裁机制灵活可变,如Wishbone 总线的仲裁机制可以完全由用户定制。而板上总线则较为死板,时序也更加苛刻。 d* A) a7 C6 g G+ C: L1 V
3 CoreConnect总线 ' d; o( h7 [% m9 j
CoreConnect拥有完备的一整套技术文档,在技术上可行性较强。IBM 公司的CoreConnect连接总线还提供了三种基本类型连接功能块,即处理器内部总线PLB(Processor Local Bus)、片上外围总线OPB(On-ChipPeripheral Bus)和设备控制总线DCR(Device Control Register)。CoreConnect总线的逻辑结构如图1所示,它清楚地定义了所有的系统构成部件以及它们是如何连接的,下面分别介绍PLB 、DCR 和OPB 的主要技术特征。
1 ~& o+ N; w% U" _
4 A$ k Q! F6 p5 N) k2 N3.1 PLB 3 w6 \* U( l$ u5 p/ f- N3 q
PLB标准是为总线传输的主要发出者和接受者之间提供高带宽、低延迟的连接。其主要特征为:' }5 J, q) x, A: g
● 高性能处理器内部总线;- ?+ X! r/ ^" B0 ^8 s5 Q
● 交叠的读和写功能(最快每周期两次传输);: @& K# m+ f+ x" @ h( x% Y8 z5 q
● 支持分段传输;
8 m& d) b& F7 ?4 K* {2 _● 地址流水(减少延迟);
" b1 _7 f+ _( M. V+ M$ w( G; A; b$ T! V● 读和写分开;, g. g& Y& B) [& I3 |' r: S) h, f
● 32~64位数据总线;
, B1 Y9 t6 z# T9 @. e6 `2 G● 32位地址空间;' I8 ~7 Y Y* Q
● 支持16~64字节突发传输模式;3 Z; V6 w, j- f
● 支持字节使能(非对准和3 字节传输);5 n7 g$ K4 V* I! m/ I/ e! s7 A7 Q
● 支持仲裁、R E Q、G N T 和L O C K;& a9 T4 e) G* w& j
● 延迟和隐藏仲裁(减少延迟);% t/ e2 Y8 F$ M' k: ~% O- B5 u
● 4级仲裁优先权;6 B8 Y1 q4 b7 r, b. F
● 特殊DMA(Direct Memory Access)模式,如快速的从内存到内存;
0 r4 m: D3 [# Q! f4 u: L4 p- c● 地址和数据状态扼制(Address and data phase throttling);- C: P4 |3 s- S) P6 v* i. [& d
● 延迟计数器(保证保持延迟到预想的程度)。
: @6 ^/ Y& j+ \9 o4 i4 R3.2 OPB
3 s! V$ ~0 b) H0 C8 |OPB标准为连接具有不同的总线宽度及时序要求的外设和内存提供了一条途径,并尽量减小对PLB 性能的影响。其主要特性如下:
5 t( y3 e5 t' C2 O; |● 片上外围总线;7 y% B* R4 G3 Q
● 多个主设备;
. s5 A9 c2 X* v, S● 32位地址空间;$ m9 Z% {' D! }* b8 d
● 读和写数据总线分开;
! {7 ^9 S- ]8 p6 P● 8~32位数据总线;7 ]" V: f3 G1 y: F+ q5 F
● 动态总线宽度;3 W# E* B1 B$ Z$ N2 w' J
● 支持重试模式(如果主设备要求的从设备忙,主设备隔一段时间再次请求);8 s1 d; n: ]- R' B: g8 T1 _$ H
● 支持突发(burst)传输模式;
2 v/ ]: _, K7 e● 支持D M A;' r( f" X: Q h. F8 h
● 设备可以是内存映射(支持D M A);
' _2 P f: q( f5 g$ Q; r● 检测总线超时功能(在仲裁器中);0 J( ], _, U- r( s1 }
● 支持仲裁、R E Q、G N T 和L O C K。, [) j$ Q# J. _! J2 g' u8 q
3.3 DCR - g& t4 H5 F; m2 C3 o! |1 Q0 o1 j
设备控制寄存器总线DCR是用来规范CPU通用寄存器设备,控制寄存器之间传输数据。DCR 总线在内存地址映射中取消了配置寄存器,减少取操作,增加处理器内部总线的带宽。其主要特征如下:
! N5 P1 [0 a" S8 y$ u; W● 10位地址总线;6 {& Q- y9 ?5 D. Q. I
● 32位数据总线;
+ g: w6 b/ m2 o& g) M4 k1 P● 同步和异步的传输;& z0 A$ s& |; c! z& ^2 `1 ]0 ?
● 分布式结构。* S8 P0 |! Q# c( s. Z! m: L# V
CoreConnect是一套精心设计和构造完整、通用的解决方案,可以应用在类似于工作站这样的高性能系统的连接,对于简单的嵌入式应用来说可能有点太复杂,提供的许多特性无法用到,但可以适应于未来更庞大、更复杂的系统连接。
) F, n& Y/ j( }: O1 f4 AMBA总线 " b Q) K- w# R$ K' x# ?3 s8 s% ]! h. A( [
先进的微控制器总线体系结构AMBA规范定义了三种总线:6 k* ?' C8 |' x
(1)AHB(Advanced High-peRFormance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿;) O, X- s9 ~2 U' r) O
(2)ASB(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式;% E% X8 E9 ]8 X8 Y! ]5 R: `1 q
(3)APB(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。
. Y5 A, t; n$ R$ R9 h3 r$ [ 一个典型的基于AMBA 的微控制器同时集成AHB(或ASB )和APB 接口,如图2 所示。A S B总线是旧版的系统的总线,而新版的AHB 总线增强了对性能、综合及时序验证的支持。APB 总线通常用作的局部的第二总线,作为AHB 或ASB 上的单个从属模块。+ o; i7 g D! b! S- b
' r' R, s1 y6 T- r/ }根据AMBA 的规范,连接AHB/ASP 和APB 的APB 桥的唯一功能是提供更简单的接口。任何由低性能外围设备产生的延迟会由连接高性能(AHB/ASP)总线的桥反映出来。桥本身仿佛是一个简单APB总线的主设备,它访问与之相连的从设备,并且通过高性能总线上控制信号的子集控制它们。下面给出AHB、ASP 和APB 的主要特征。
8 v; z1 e# K- K2 u; W% H8 q/ g4.1 AHB 0 B1 A) P4 b, D% W
AHB是先进的系统总线。它主要的目的就是连接高性能、高吞吐率的设备,例如CPU、DMA 和DSP。它的主要特性:
/ C) N: a8 r% B6 ?6 Z y( }1 \● 高性能新一代总线;2 O- }! h% A- v3 H" ?$ ?
● 多控制器;
) Q9 t8 u" V- g5 H- I● 分段传输;" m9 x' I- F R- w2 }' u5 b( |
● 单周期总线控制权移交;
. l3 z% `- B0 t1 d9 e● 没有三态实现方式;
% n2 k5 c$ I2 |1 e# x7 d● 32~128位总线宽;
# Z8 v$ U: {7 R$ F. Z● 包含一种访问保护机制,用来区别特权访问和无特权访问模式,或指令和数据提取等;
6 `0 }% P' d" {2 w● 突发传输模式最大为16节;, w* d* c1 ?1 o- y9 L- e2 ^
● 访问空间限制在32 位;
* ?1 z, H0 P; w; q9 H( v9 D● 提供为较慢设备使用而扼制数据流的机制;
. R! M T5 h( Y7 |2 `/ a( P● 支持仲裁、R E Q、G N T 和L O C K;+ V* m4 R- u4 `: a9 m. m& L4 u9 J
● 支持字节、半字和字传输。
% v- V+ [$ R- j0 E9 D AHB 总线和ASB 总线有下列不同的特点:
% |, q9 a- P& H3 I' e● AHB 总线支持分开处理。有很长响应延迟的从机在准备传输的数据时让出总线从事其它传送操作;: B7 c4 @6 i" `8 R& m
● 使用单一时钟沿控制所有操作,有利于综合和设计验证(通过使用静态时序分析和其他相似工具);
3 i; ` t8 y1 _% W# v- N9 N● 使用中心多路器总线方案而不是三态驱动的双向总线;
- W# \! \5 f/ E* j: v# G8 O● 支持更宽的64位或128位数据总线配置。
- u2 m% E. H9 D4.2 ASP
7 B6 N6 ^2 [: L4 L: t! ]7 `ASP是通用系统总线,是一种微处理器和系统外设的高性能互连,主要特征如下:
+ F) l1 ?8 A) g* W) x' \0 ^● 多控制器;
! K/ Y5 `0 v7 ^4 C● 突发数据传输方式;( F% |7 e1 B- @2 S! }. \3 A$ m! E
● 流水线传送;
3 X2 P8 Y: `5 ^" c● 32-128位总线宽度;. r- ]1 I6 }) i9 e
● 包含一种访问保护机制,用来区别特权访问和无特权访问模式,或指令和数据提取等;% d0 p$ V( B! s/ c. |8 k# O/ b
● 双向数据总线;
# Z7 @: i9 b7 u a+ p% ]● 提供为较慢设备使用而扼制数据流的机制;
4 _" M% J) S8 r% W k● 仲裁支持REQ 、GNT 和LOCK。
' D) U0 @9 P! q4.3 APB ; _5 F/ r0 `: E% d% z; _8 k
APB是外围互联总线,重点是最小功耗和易于使用,主要特征如下:3 F! a+ h8 u# B$ d' u% e
● 低性能、低功率外围总线;) Y, j# r. e& P# M) L4 h2 ?
● 单控制器;
0 g' {6 E: W1 C# G: r" {2 G● 非常简单,只有4 个控制信号(加上时钟和复位);8 t& c& M& I8 i' V
● 32位地址空间;5 @8 n' Q- u6 c' t
● 多达32位数据总线;
* Z! P& n0 c/ F6 L' ^- e1 Y● 分开读和写数据总线。
+ R3 J# R7 ~ h: Y AMBA 是一种基本的SoC 总线,它分成三种总线。根据需要,系统设计者必须选择对接三种总线中的哪一种。一个高性能设备可能选择AHB 或ASP 总线,这将给IP 核集成者带来困难,因为两种总线都试图访问同一类型的设备。还没有明确的办法将设备与AHB 和ASP 总线集成。APB 桥似乎不但不会提供任何好处,而且会限制连接在上面的高性能总线。所有三种总线都包含一个地址状态和一个或多个数据状态。
2 k" L, o3 y* t6 J; `# x5 Wishbone总线 ) Y, _7 \: w+ d! F3 Q9 t3 f9 t
Wishbone总线是Silicore公司推出的片上总线协议。它的结构极其简单、灵活,又完全公开、完全免费,获得众多支持。图3 给出了Wishbone总线的逻辑结构:
. |: H$ \9 L" j2 FWishbone 总线的主要特征概括如下:* _, v" t0 _& ~$ _& g
( v, F% t* T5 ~+ }( R' q( i
● 所有应用使用一个总线体系结构;( k k. A! w: H' f* w% ?- C
● 简单、紧凑的体系结构;
- q1 [7 ?: w/ P/ y( f% ]● 支持多控制器;
) D2 j, n* ?! X! k( M+ K' ?● 64位地址空间;6 `: A0 E2 R' b
● 8~64 位数据总线(可扩展);
% r! H5 ?* `1 {) Y% b, ?" v● 单周期读和写;
5 t- ^/ y: R9 Y4 l2 q0 b● RMW(R E A D - M O D I F Y - W R I T E )周期;+ m! W! u# N" s! L$ w; `
● 事件周期;
3 o6 x9 J, G8 ~3 M% k● 支持重试;
9 h9 t5 h# P3 P+ m$ { O0 i● 支持内存映射,FIFO(FISRT IN FIRST O U T )和十字互连接口;/ X1 j2 U" I3 g$ b
● 提供为较慢设备使用而扼制数据流的机制;" U2 e' v. J6 c* I7 T1 C
● 使用者定义标志为,确定数据传输类型;
9 I- o' J: S' h● 由终端用户定义仲裁方式。2 o ^/ y7 @) C6 S" x* Z) y8 h
Wishbone 总线采用握手协议。当MASTER 准备好传输数据时置STB_O 为高,STB_O 将保持高状态直到SLAVE 将ACK_I、ERR_I 或RTY_I 之一置为高, 数据传输周期结束。这种机制下,MASTER 和SLAVE 均可控制数据传输速率。其握手时序如图4。! F1 b, n7 }) ]# |. B
% i1 ~! q4 U0 V0 K$ H+ R
Wishbone 总线有四种将MASTER 与SLAVE 连接在一起方式,分别为点对点、数据流、共享总线和十字互连。其中点对点方式可以最简单地将一个MASTER 与一个SLAVE 相连;数据流方式可以实现数据传输的流水;共享总线方式将多个MASTER和SLAVE 相连,不过任何时刻只能有一个MASTER 占据总线;十字互连则可实现多个MASTER和多个SLAVE之间同时传输数据。图5给出了采用点对点互联方式的Wishbone总线主从接口。8 {6 U' F8 y8 u! X+ B0 c
3 e1 P9 W$ e0 r; fWishbone有三种数据传输方式,分别为单读写、块读写和R M W(R E A D - M O D I F Y - W R I T E )。其中单读写为最简单。图6 给出了单读周期的时序。为了更直观地了解Wishbone总线接口连接如何简单、灵活,图7 给出了8 位SLAVE 的输出端口图。
9 b# [, c+ N* k3 ]3 W% D![]()
- A7 ` o0 b x& r4 I. c. sWishbone只定义了一种高速总线,在既需要高速总线又需要低速总线的系统中,提供了两Wishbone接口,比起设计两个不同的接口要简单得多。3 R* H; c6 X2 Z! d* _% Q
6 总结 : v! L6 K9 d0 }& {
在以上介绍的三种总线中,CoreConnect虽免费不过需要IBM 公司许可,ARM 没有明确的正式说法,可能也会免费,而Wishbone 是绝对免费的。三种总线都是同步的总线,使用时钟上升沿驱图7 8-bit SLAVE输出端口动和采样信号。总线的基本操作几乎没有区别,最大的区别在于提供的特性和规范的完整性。CoreConnect和AMBA都给设计者提供了一种系统总线的选择。系统集成设计者当试图连接为不同连接设计的设备时会遇到问题,在建立全面完整的系统时需要桥。而在Wishbone 中,所有的IP核都连接在同一标准接口上。系统设计者可以选择在一个微处理器核上实现两个接口,一个给高速低延迟设备,一个给低速低性能设备。综上所述,我们认为采取Wishbone作为IP核的基本互联的接口标准更便于设计,它的信号十分直接,如果需要可以很容易被其它接口所采用。Wishbone 总线完全公开、完全免费,易于推广,当然一个规范能否成为行业标准,除了本身的技术特性外,还要看是否被业界接受。Wishbone已被OPENCORE 联盟采用,并且有可能成为IEEE标准。因此,Wishbone 总线从技术上讲简单、灵活、功能强大及易于移植,从经济角度考虑又全部免费,易于全面推广。我们认为它极有可能成为未来SoC* {+ ]/ v% ]' d; O- g
片上总线的通用标准,其前景看好。
; r1 n1 \* P( t. |( A |
|