【博文连载】片上总线Wishbone学习(前言篇)
最近在学习Lattice MachXO3L的EFB(Harden I2C、SPI、Timer/Counter)时,遇到Wishbone这个神奇的东西。Lattice MachXO3L等器件内部集成了硬核的I2C、SPI、Timer/Counter,而这些IP核与其他IP或者用户设计之间需要一个总线接口进行互联,而Lattice采用的就是近来异军突起的Wishbone。Wishbone目前是由OpenCores维护的,完全免费,并且不需要授权。在查找资料时发现,今年来很多IP核设计者都将Wishbone总线作为他们的首选片上总线标准。
相比于ARM公司的AMBA、IBM公司的CoreConnect和Altera公司的Avalon,Silicore公司提出的Wishbone有着显著的优势(尤其是在中等规模的集成电路设计和IP核互联等方面)。因此,本人打算深入学习一下WIshbone总线,并将相关笔记以博文的方式与大家分享。
Wishbone总线的版本信息如下:
1999年6月,Silicore公司发布Wishbone总线标准A版,即初级版:
1999年7月,Silicore公司发布Wishbone总线标准A.1版;
2001年1月,Silicore公司发布Wishbone总线标准B版;
2001年1月,Silicore公司发布Wishbone总线标准B.1版;
2002年1月,Silicore公司发布Wishbone总线标准B.2版:
2002年9月,Silicore公司发布Wishbone总线标准B.3版
目前来说,Wishbone的最新版本是2010年发布的B.4版,下面的博文内容将以B.4版为基础,结合近年来网友分享的一些中文资料(主要是B.3版的比较多)与自己的一些理解。有兴趣的网友可以去www.opencores.org下载英文原版的资料进行阅读。
由于本人也是初学,才疏学浅,难免会有一些翻译或者是理解错误,各位如果发现,还请告知我。
博文的写作计划如下:
3.1、 片上总线概述
3.2、Wishbone总线标准介绍
3.3、 Wishbone互联类型
3.4、 Wishbone接口信号定义
3.5、 Wishbone总线周期之复位操作
3.6、 Wishbone总线周期之握手协议
3.7、Wishbone总线周期之特殊信号及标签信号
3.8、 Wishbone总线周期之单次读操作
3.9、 Wishbone总线周期之单次写操作
3.10、 Wishbone总线周期之块写操作
3.11、Wishbone总线周期之块读操作
3.12、 Wishbone总线周期之RMW操作
3.13、Wishbone总线周期之数据组织
3.14、 Wishbone总线同步结束与异步结束对比
3.15、Wishbone总线寄存反馈周期结束方式
3.16、Wishbone总线突发结束方式
3.17、Wishbone总线地址不变突发结束方式
3.18、Wishbone总线地址增加突发结束方式
3.19、Wishbone中心规范对IP文档的要求
3.20、Wishbone总线从设备接口示例
3.21、Wishbone共享总线连接示例
3.22、Wishbone总线地址译码
3.23、Wishbone总线仲裁器设计
3.24、 Soc总线比较篇(翻译Rudolf Usselmann大神的文章)
3.24.1、 CroeConnect总线介绍
3.24.2、 AMBA总线介绍
3.24.3、 Wishbone总线介绍
3.24.4、 三种总线比较
说明:博文的写作计划可能会根据实际的内容和篇幅进行调整。

