您的位置 首页 数字

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

异步周期结束方式单次读操作每次操作只完成一次读或者写,是最基本的总线操作方式。但是,Wishbone主设备或者从设备也可以不支持单次读写

异步周期完毕方法

单次读操作每次操作只完结一次读或许写,是最基本的总线操作方法。可是,Wishbone主设备或许从设备也能够不支持单次读/写操作,乃至没有地址和数据总线。

单次读操作如图1。在时钟上升沿0,主设备将地址信号ADR_O()、TGA_O()放到总线上,将WE_O置为低标明读操作,将恰当的SEL_O()信号置高告诉从设备将数据放在数据总线的恰当方位,将CYC_O和TGC_O置高标明操作正在进行,将STB_O置高标明操作开端。

在时钟上升沿1抵达之前,从设备检测到主设备建议的操作,将恰当的数据放到主设备的输入信号DAT_I()和TGD_I(),将主设备的ACK_I置高作为对主设备STB_O的呼应。

在时钟上升沿1,主设备发现ACK_I信号为高,将DAT_I()和TGD_I()采样,并将STB_O和CYC_O置为低标明操作完结。从设备发现STB_O置低后,也将主设备的输入信号ACK_I置低。

在图1中,从设备能够上升沿0和上升沿1之间刺进恣意多个等候周期。

图1Wishbone总线的单次读操作(周期异步完毕方法)

同步周期完毕方法
图2Wishbone总线的单次读操作(周期同步完毕方法)
在时钟上升沿0:
  • Master在[ADR_O()]和[TGA_O()]宣布有用的地址
  • Master拉低[WE_O],标明是一个读周期
  • Master宣布有用数据挑选信号[SEL_O()]标明哪些数据是有用的
  • Master宣布[CYC_O]和[TGC_O()]标明总线周期的开端
  • Master宣布[STB_O]标明操作的开端
在时钟上升沿1:
  • Slave检测到主设备建议的操作,预备宣布[ACK_I]
  • Slave在[DAT_O]和[TGD_O()]宣布有用的数据
  • Slave宣布[ACK_I]应对[STB_O],标明数据有用,能够读取数据了
  • Master发现[ACK_I],预备锁存[DAT_I]和[TGD_I()]
留意:Slave能够在宣布[ACK_I]前刺进等候周期(-WSS-),以操控传速度。能够刺进恣意多个等候周期。
在时钟上升沿2:
  • Master锁存[DAT_I]和[TGD_I()]
  • Master拉低[STB_O]和[CYC_O],标明总线周期的完毕
  • Slave发现Master拉低[STB_O],也将[ACK_I]拉低

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/232831.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部