异步周期完毕方法
块写操作的比如如图1所示。图1的一次块写操作由五个彼此相关的单次写操作完结。
在时钟上升沿0,主设备将地址信号ADR_O()、TGA_O()放到总线上,将数据信号DAT_O()、TGD_O()放到总线上,将WE_O置为高标明写操作,将恰当的SEL_O()信号置高告诉从设备将数据总线上哪些信号是有用的,将CYC_O和TGC_O置高标明操作正在进行,将STB_O置高标明第一次写操作开端。
在时钟上升沿1抵达之前,从设备检测到主设备建议的操作,将主设备的ACK_I置高作为对主设备STB_O的呼应。
在时钟上升沿1,从设备将DAT_I()和TGD_I()采样;主设备发现ACK_I信号为高,得知第一次写操作完结,所以将新地址信号ADR_O()、新TGA_O()放到总线上,将新数据信号DAT_O()、新TGD_O()放到总线上,将WE_O置为高标明写操作,将恰当的SEL_O()信号置高告诉从设备将数据总线上哪些信号是有用的,将CYC_O和TGC_O置高标明操作持续在进行,将STB_O置高标明第2次写操作开端。
在时钟上升沿2抵达之前,从设备检测到主设备建议的第2次写操作,将主设备的ACK_I置高作为对主设备STB_O的呼应。
在时钟上升沿2,从设备将DAT_I()和TGD_I()采样;主设备发现ACK_I信号为高,得知第2次写操作完结,发现自己的数据还没有预备好,所以将STB_O置低标明刺进等候周期。
在时钟上升沿3抵达之前,从设备检测到STB_O为低,也将ACK_I置低。
在时钟上升沿3,主设备建议第三次操作,将新地址信号ADR_O()、新TGA_O()放到总线上,将新数据信号DAT_O()、新TGD_O()放到总线上,将WE_O置为高标明写操作,将恰当的SEL_O()信号置高告诉从设备将数据总线上哪些信号是有用的,将CYC_O和TGC_O置高标明操作持续进行,将STB_O置高标明第三次写操作开端。
在时钟上升沿4抵达之前,从设备检测到主设备建议的第三次写操作,将主设备的ACK_I置高作为对主设备STB_O的呼应。
在时钟上升沿4,从设备将DAT_I()和TGD_I()采样;主设备发现ACK_I信号为高,得知第三次写操作完结,所以将新地址信号ADR_O()、新TGA_O()放到总线上,将新数据信号DAT_O()、新TGD_O()放到总线上,将恰当的SEL_O()信号置高告诉从设备将数据总线上哪些信号是有用的,将STB_O持续置高标明第四次写操作开端。
在时钟上升沿5抵达之前,从设备检测到主设备建议的第四次写操作,将主设备的ACK_I置高作为对主设备STB_O的呼应。
在时钟上升沿5,从设备将DAT_I()和TGD_I()采样;主设备发现ACK_I信号为高,得知第四次写操作完结,所以建议第五次操作,将新地址信号ADR_O()、新TGA_O()放到总线上。
在时钟上升沿5之后新的时钟上升沿抵达之前,从设备发现由于某些原因暂时无法持续接纳数据,因而将ACK_I信号置低,刺进等候。
在时钟上升沿6,当从设备发现能够持续接纳数据,所以在在最终一个等候周期完毕且上升沿5抵达之前,将DAT_I()和TGD_I()采样;主设备发现ACK_I信号为高,得知第五次写操作完结。并将STB_O和CYC_O置低标明整个块写操作完结。
图1 Wishbone总线的块写操作(异步周期完毕方法)
同步周期完毕方法
图2 Wishbone总线的块写操作(同步周期完毕方法)
在时钟上升沿0:
- Master在[ADR_O()]和[TGA_O()]宣布有用的地址
- Master在[DAT_O()]和[TGD_O()]宣布数据
- Master宣布[WE_O],标明是一个写周期
- Master宣布有用数据挑选信号[SEL_O()]标明哪些数据是有用的
- Master宣布[CYC_O]和[TGC_O()]标明总线周期的开端
- Master宣布[STB_O]标明操作的开端
留意:Mater必须在时钟上升沿1或之前宣布[CYC_O]和/或[TGC_O()]
在时钟上升沿1:
- Slave检测到主设备建议的操作,预备宣布[ACK_I]
- Slave预备锁存[DAT_O]和[TGD_O()]
- Slave宣布[ACK_I]应对[STB_O]
在时钟上升沿2:
- Slave锁存[DAT_I]和[TGD_I()]
- Master拉低[STB_O]刺进等候周期(-WSS-)
在时钟上升沿3:
- Master在[ADR_O()]和[TGA_O()]宣布有用的地址
- Master在[DAT_O()]和[TGD_O()]宣布数据
- Master宣布[WE_O],标明是一个写周期
- Master宣布有用数据挑选信号[SEL_O()]标明哪些数据是有用的
- Master宣布[CYC_O]和[TGC_O()]标明总线周期的开端
- Master宣布[STB_O]标明第2次操作的开端
在时钟上升沿4:
- Slave检测到主设备建议的操作,预备宣布[ACK_I]
- Slave预备锁存[DAT_O]和[TGD_O()]
在时钟上升沿5:
- Master监督[ACK_I]
- Master拉低[STB_O]和[CYC_O],完毕总线周期
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/232807.html