片上总线Wishbone 学习(四)接口信号定义

所有的Wishbone接口信号都是高电平有效,设计成高电平有效的主要原因是由于低电平有效信号的书写问题,不同的设计者表达低电平有效信号的方式不同,拿最常见的低电平有效的复位信号来说,其表示方法就有_RST_I、N_RST_I、#RST_I和/RST_I,而高电平有效的信号其表达方式通常只有一种。 所有的Wishbone接口信号都以_I或者_O结束。_I表示输入,_O表示输出。()表示该信号为总线信号,总线的宽度可以为1,也可以为大于1的任何值。

信号分类

SYSCON模块信号

CLK_O:输出信号,系统时钟,作为MASTER和SLAVE的时钟输入:
RST_O: 输出复位信号,作为MASTER和SLAVE的复位输入,使得WISHBONE接口内部的状态机全部恢复到起始态。

MASTER和SLAVE的共有信号

CLK_I:输入信号,MASTER和SLAVE的时钟输入端,所有WISHBONE输出信号都在CLK-I的上升沿有效;
DAT_O():数据输出信号,最大位宽为64位;
RST_I:输入信号,使得WISHBONE接口内部的状态机全部恢复到起始态;
TGD_I():输入信号,数据标签类型;
TGD_O():输出信号,数据标签类型;

MASTER端信号

ACK_I:输入信号,确认信号,当该信号有效时,表明一个总线周期结束;
ADR_O():输出信号,地址输出;
CYC_O:周期输出信号,当该信号有效,表明进程中的总线是有效的,即它确定了总线周期的持续时间。CYC_O从数据传输的第一个比特开始有效,到数据传输结束为止。
ERR_l:输入信号,当该信号有效,表明总线周期非正常结束,表示有错误发生:
LOCK_O:输出信号,当该信号有效,表明当前总线周期锁定,不能被其他进程中断;
RTY_I:输入信号,当该信号有效,表明MASTER还没有准备好接收或发送数据,重新请求总线;
SEL_O():输出信号,用于选择数据信号线的输出;
STB_O:输出信号,表明一个有效数据传送周期;
WE_O():读使能信号,决定信号的读和写功能。

SLAVE端信号

ACK_O:输出确认信号,表明总线周期结束;
ADR_I():地址输入信号:
CYC_I:输入信号,当该信号有效,表明进程中的总线是有效的,即它确定了总线周期的持续时间。CYC一0从数据传输的第一个比特开始有效,到数据传输结束为止。
ERR_O:错误输入信号,表明由于发生错误,周期终止;
LOCK_I:输入信号,当该信号有效,表明当前总线周期锁定,不能被其他进程中断;
RTY_O:输出信号,当该信号有效,表明SLAVE还没有准备好接收或发送数据,重新请求总线;
STB_I:输入信号,表明SLAVE被选中和主端通信;
WE_I:读写使能输入信号;

图1 Wishbone总线规范中使用的主要信号(一个点到点互联的例子)

在图1中,主设备具有遵守Wishbone规范的主设备接口,从设备具有遵守Wishbone规范的从设备接口,INTERCON模块将主设备和从设备的对应数据、地址和控制线连接起来,SYSCON模块提供时钟和复位信号,这两个信号被送入主设备和从设备。图1给出了Wishbone接口的常见信号,这些信号有些是必须的,有些是可选的。这些信号的基本功能描述如下:

CLK_O/CLK_I:时钟信号。时钟信号由SYSCON模块产生,并送入各个主设备和从设备。SYSCON通常内部存在一个锁相环,将来源于芯片外的晶体振荡器或者时钟输入信号整形、分频或者倍频为芯片内所需要的时钟信号。所有Wishbone信号都同步到时钟信号上,包括复位信号。

RST_O/RST_I:同步复位信号,高电平有效。复位信号由SYSCON模块产生,并送入各主设备及从设备。

DAT_O()/DAT_I():主设备和从设备的之间的数据信号,数据可以由主设备传送给从设备,也可以由从设备传送给主设备。一对主设备和从设备之间最多存在两条数据总线,一条用于主设备向从设备传输数据,另外一条用于从设备向主设备传输数据。Wishbone规定数据总线的最大宽度为64位,这一规定实际上是考虑到目前商用处理器的最大位数为64,实际上数据总线的宽度可以是任意值。就笔者看来,在64位处理器以后,处理器将向多核方向发展,总线将向高速串行方向发展。

ADR_O(n…m)/ADR_I(n…m):地址信号,主设备输出地址到从设备。n取决于IP核的地址宽度,m取决于数据总线DAT_O()/DAT_I()的宽度和粒度。数据总线的粒度指的是数据总线能够一次传送的最小比特数,很多处理器如ARM的数据总线的粒度为1个字节,但是也有一些处理器如CEVA TeakLite DSP的数据总线粒度为2个字节。一个位宽为32比特、粒度为1个字节的数据总线的地址信号应定义为ADR_O(n…2)/ADR_I(n…2)。在传送数据时,具体哪些字节有效通过SEL_O()/SEL_I()信号(见下文)控制。

 TGD_O/TGD_I()、TGA_O()/TGA_I():TGD_O/TGD_I()为数据标签,具体讲是附加于在数据总线DAT_O()/DAT_I()的标签,该标签可以用于传送关于数据总线的额外信息如奇偶校验信息、时间戳信息等。TGA_O/TGA_I()为地址标签,具体讲是附加于在地址总线ADR_O()/ADR_I()的标签,该标签可以用于传送关于地址总线的额外信息如地址总线奇偶校验信息、存储器保护信息等。Wishbone只规定了TGD_O/TGD_I和TGA_O()/TGA_I()的接口时序,用户可以定义TGD_O/TGD_I的具体含义。

TGC_O/TGC_I():TGC_O/TGC_I()为总线周期标签,该标签可以用于传送关于当前总线周期所进行操作的描述如操作类型(包括单次操作、块操作、RMW操作)、中断应答类型、缓存操作类型等。类似的,Wishbone只规定了TGC_O/TGC_I()的接口时序,用户可以定义TGD_O/TGD_I的具体含义。

   ACK_O/ACK_I、ERR_O/ERR_I、RTY_O/RTY_I:主从设备间的操作结束方式信号。ACK表示成功,ERR表示错误,RTY表示重试(Retry)。操作总是在某一总线周期内完成的,因此操作结束方式也称为总线周期结束方式。成功是操作的正常结束方式,错误表示操作失败,造成失败的原因可能是地址或者数据校验错误,写操作或者读操作不支持等。重试表示从设备当前忙,不能及时处理该操作,该操作可以稍后重新发起。接收到操作失败或者重试后,主设备如何响应取决于主设备的设计者。

 SEL_O()/SEL_I():有效数据总线选择信号,标识当前操作中数据总线上哪些比特是有效的,以总线粒度为单位。SEL_O()/SEL_I()的宽度为数据总线宽度除以数据总线粒度。比如一个具有32位宽、粒度为1个字节的数据总线的选择信号应定义为SEL_O(3:0)/ SEL_I(3:0),SEL(4’b1001)代表当前操作中数据总线的最高和最低字节有效。

CYC_O/CYC_I、LOCK_O/LOCK_I、GNT_O()/GNT_I:总线周期信号CYC_O/CYC_I有效代表一个主设备请求总线使用权或者正在占有总线,但是不一定正在进行总线操作(是否正在进行总线操作取决于选通信号STB_O/STB_I是否有效)。只有该信号有效,Wishbone主设备和从设备接口的其它信号才有意义。CYC_O/CYC_I信号在一次总线操作过程中必须持续有效,比如一次块读操作可能需要多个时钟周期,CYC_O/CYC_I信号必须保持持续有效。实际上,该信号的实际作用等同于其他总线标准中的仲裁申请信号。当存在多个主设备时,它们可能希望同时进行总线操作,主设备通过仲裁申请信号向仲裁器申请总线占有权,仲裁器通过一定的仲裁优先级逻辑向其中一个选定的主设备发送总线允许信号GNT_O()/GNT_I,表示该主设备可以占用总线。GNT_O()是仲裁器输出的允许信号,一般有多个;而对于一个主设备,其允许信号输入GNT_I却只有一个。一次总线操作可能需要多个时钟周期,比如一次块操作。在操作过程中,仲裁器可能会提前将总线占用权收回并分配给其他主设备从而打断当前主设备的操作,LOCK_O/LOCK_I有效代表本次总线操作是不可打断的。仲裁器收到LOCK_I信号,就不会提前收回总线使用权。图1中只有一个主设备和一个从设备,因此没画出仲裁器模块,该模块可以视为是INTERCON的一部分,见本章最后给出的例子。

   STB_O/STB_I:选通信号。选通有效代表主设备发起一次总线操作。只有选通信号有效(此时CYC_O/CYC_I也必须为高),ADR_O/ADR_I()、DAT_O()/DAT_I()、SEL_O()/SEL_I()才有意义。在Wishbone总线规范中,CYC_O/CYC_I是最高层的控制信号,只有该信号有效,STB_O/STB_I信号才有意义。一个信号有意义是指该信号的当前值是需要主设备或者从设备解释的,0为无效,1为有效,而一个信号没有意义是指该信号的当前值主设备和从设备不必关心,是0还是1都无效。

WE_O/WE_I:写使能信号,代表当前周期中进行的操作是写操作还是读操作。1代表写,0代表读。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

片上总线Wishbone 学习(四)接口信号定义相关推荐

  1. 片上总线Wishbone 学习—— 转载请注明出处:http://blog.csdn.net/ce123

    片上总线Wishbone 学习(零)前言 声明:版权所有,欢迎转载! 转载请注明出处:http://blog.csdn.net/ce123 为了更加升入的理解片上系统,比如S3C2440等,今天开始学 ...

  2. 片上总线Wishbone 学习(一)片上总线综述

    转自http://blog.csdn.net/ce123_zhouwei/article/details/6926425 片上总线Wishbone 学习(一)片上总线综述 1 引言 传统的IC设计方法 ...

  3. 片上总线Wishbone 学习(二)Wishbone总线标准介绍

    片上总线Wishbone 学习(二)Wishbone总线标准介绍 Wishbone总线产生.发展 市场是推动技术前进的主要动力,人们对各种电子产品不断的更新,更好,更完美的追求刺激了技术的不断升级和创 ...

  4. 片上总线Wishbone 学习(十二)总线周期之块写操作

    转自http://blog.csdn.net/ce123_zhouwei/article/details/6964008 片上总线Wishbone 学习(十二)总线周期之块写操作 异步周期结束方式 块 ...

  5. 片上总线Wishbone 学习(三)Wishbone互联的类型

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 片上总线Wishb ...

  6. 片上总线Wishbone 学习(七)总线周期之握手协议

    转自http://blog.csdn.net/ce123_zhouwei/article/details/6933756 片上总线Wishbone 学习(七)总线周期之握手协议 由于在整个总线周期,C ...

  7. 片上总线Wishbone 学习(十)总线周期之单写读操作

    转自http://blog.csdn.net/ce123_zhouwei/article/details/6933926 片上总线Wishbone 学习(十)总线周期之单写读操作 异步周期结束方式 单 ...

  8. 片上总线Wishbone 学习(九)总线周期之单次读操作

    片上总线Wishbone 学习(九)总线周期之单次读操作 异步周期结束方式 单次读操作每次操作只完成一次读或者写,是最基本的总线操作方式.但是,Wishbone主设备或者从设备也可以不支持单次读/写操 ...

  9. 片上总线Wishbone 学习(六)总线周期之操作发起

    片上总线Wishbone 学习(六)总线周期之操作发起 一个总线周期由至少一次总线操作构成.操作总是由主设备发起,主设备发起的操作可以是单次读/写.块读/写或者RMW操作.当主设备将CYC_O置为高时 ...

最新文章

  1. 从特急到难产 光伏增补项目抢不抢630?
  2. [leetcode]26.删除有序数组中的重复项
  3. msdn画圆弧函数_画直线不简单!python-matplotlib告诉你为什么
  4. Java 8中使用Lambda表达式的策略模式
  5. 【单片机实验】矩阵键盘
  6. 2013年工作中遇到的20个问题:241-260
  7. Springmvc源码分析、底层原理
  8. 【CodeForces】700 D. Huffman Coding on Segment 哈夫曼树+莫队+分块
  9. rsync+rsync+crond备份
  10. VS编译的程序设置----需要以管理员身份打开
  11. 【结课报告】游戏中的知识产权
  12. 西安翼迅网络的破解尝试
  13. excel 中vb组合框_Excel 2013中的工作表组合框问题
  14. 抖音图文人物故事音乐任务实操短视频运营课程,手把手教你玩转音乐任务
  15. python编程求100以内能被5整除之和_C语言,求100以内能被3整除或能被5整除的数的和...
  16. lintcode 873 模拟松鼠(JavaScript)
  17. python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询
  18. RT-Thread 模拟器 simulator 搭建 LVGL 的开发调试环境
  19. Angular入门-Hero Editor抽丝
  20. SpringBoot druid配置datasource启动初始化数据库连接

热门文章

  1. 站内信设计(群发)实现
  2. Linux安装后的配置操作
  3. PLC PID优化系列之非线性参数整定(FC函数)
  4. 菜鸟仓库-货物格子问题编程题
  5. 【从Java转C#】第八章:委托、lambda、事件
  6. 微信扫描打开app下载提示用户打开浏览器进行下载
  7. xml 硕正报表_主要指标及功能清单
  8. 如何旋转PDF页面?两招教你轻松搞定
  9. 解决AppUpdate不能使用的问题
  10. 详解变频器、逆变器工作原理