基于Wishbone片上总线的PCI Bridge核的研究和应
摘要:讨论了PCI主桥的应用和Wishbone片上总线技术,详细介绍了基于Wishbone总线的PCI Bridge核的功能、内部结构和操作方式。实验证明,在PCI系统中使用PCI Bridge核进行开发设计,电路简洁,使用方便灵活。
关键词:PCI主桥;Wishbone片上总线;PCI桥核
自PCI协议问世以来,PCI总线应用越来越广泛,现已成为事实上的计算机总线标准。随着PCI应用和开发的深入,往往需要在复杂的PCI系统中使用PCI桥来完成设计工作,包括使用主/PCI桥来完成整个系统的初始化配置过程。PCI桥的使用已从传统的PC机领域拓展到更多的电子应用系统中。
1 PCI主桥简介
在复杂的PCI系统中,往往拥有不只一条PCI总线。为了提高PCI系统的负载能力,可用PCI-PCI桥把各条PCI总线连接起来,同时在处理器总线与PCI总线之间使用主/PCI桥来完成总线转换,以形成完整的PCI系统。常用的PCI系统结构如图1所示。
系统上电时,主CPU(处理器)对PCI目标设备的初始化也称为配置访问。由于PCI目标设备所定义的配置空间通常不在CPU的存储器和I/O空间中,所以需要一种特殊的机制来执行配置访问。这种机制通常由主/PCI桥来完成。配置软件在上电后能够扫描PCI总线,以确定现有哪些PCI设备,并根据它们的配置要求分别进行配置。配置完成后,各个PCI目标设备就可以在PCI总线控制器的协调仲裁下正常工作。
在PC兼容系统中,主/PCI桥也称为北桥,用于连接主处理器总线和基础PCI局部总线(第一级PCI总线)。北桥芯片内通常集成有主存储器控制器,因此处理速度很快。南桥芯片内一般集成有IDE控制器、USB和其它速度较慢的I/O控制器,因此处理速度相对较慢。南北桥构成芯片组。
2 Wishbone片上总线技术
片上系统SOC(System-On-Chip)技术近两年发展迅速,越来越多的厂商开始开发自己的IP核,然后提供给系统集成者。而各厂商采用自己定义的IP核接口规范来开发产品,使得系统集成成为一个棘手的问题。为了提供IP核的可重用性,实现众多厂商IP核的有效互连,片上总线OCB(On-Chip-Bus)技术就应运而生了。目前在SOC领域较有影响的三种片上总线标准为:IBM公司的Core-connect、ARM公司的AMBA和SilicoreCorp公司的Wishbone总线。其中Wishbone总线已经被全球最大的开放IP组织(Opencores)列为主要支持的SOC内部互连总线协议。遵循Wishbone总线协议的IP核可以很快有效地集成到SOC中。目前,Opencores上很多开放的IP核接口都采用Wishbone总线设计。而且越来越多的IP核商用厂商也宣布支持Wish-bone总线协议。
Wishbone总线最大的特点是结构简单灵活,需要逻辑门少;同时完全免费、完全公开。Wishbone规范支持完整的普通数据传输协议,包括单个读写周期、块传输等。数据总线宽度为8~64位(宽度仍然可以扩展),地址总线可以达到64位;最快时一个时钟周期就可进行一次数据传输;支持握手协议,速率可以调整;支持出错重试等。在Wishbone总线规范中,可使用Master/Slave结构实现非常灵活的系统设计。Master和Slave有四种互连方式,分别为:点对点、数据流、共享总线和交叉互连。其中点对点方式是连接一个Master和一个Slave最简单的方式,使用起来非常方便。图2给出了采用点对点互连方式的Wishbone主/从接口图。其中SYSCON为产生RST复位和CLK时钟信号的模块,TAGN为用户自定义信号。
Wishbone 在Master和Slave之间使用的握手协议如图3所示。当准备好传输数据时Master使STB O信号有效,STB O状态将一直保持到Slave的结束信号ACK O、ERR O 或 RTY O对Master而言是ACK IERR I和RTY I 之一声明有效。Master在每一个CLK I的上升沿对结束信号采样如果该信号有效STB O信号变低。此外,Wishbone接口的两边都能够完全控制数据传送的速率。
3 PCI Bridge核
开放IP组织Opencores提供的PCI Bridge Core提供了Wishbone片上系统总线和PCI逻辑总线的接口。PCI Bridge Core由两个相对独立的单元组成:一个单元处理由PCI总线方启动的数据交易,另一个单元则处理由Wishbone总线方启动的交易。它是一个PCI总线和Wishbone总线之间真正的桥。
PCI 桥核支持32位PCI总线接口,并完全兼容PCI2.2协议(支持66MHz规范);它含有独立的主桥、从桥功能模块和完整的命令/状态寄存器;支持Wishbone SOC互连协议B版本(包括B1和B3);此外,它可通过Wishbone接口支持32位总线操作;并可配置片上FIFO。
3.1 PCI Bridge内部结构
PCI桥核由两个相对独立的单元模块组成:PCI目标单元和Wishbone从单元。每个单元自身都有一套完整的功能来支持Wishbone和PCI总线之间的交易。Wishbone从单元可作为PCI桥中Wish-bone侧的从设备和PCI侧的主设备启动交易;PCI目标单元则可作为PCI桥中PCI侧的目标设备和Wishbone侧的主设备启动交易。两个单元互相独立。PCI目标单元用于实现PCI总线从设备接口和Wishbone总线的主设备接口;而Wishbone从单元则用于实现Wishbone总线从接口和PCI总线的主设备接口。
图4是PCI桥核的内部结构。