<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 片上總線(xiàn)Wishbone 學(xué)習(十)總線(xiàn)周期之塊讀操作

片上總線(xiàn)Wishbone 學(xué)習(十)總線(xiàn)周期之塊讀操作

作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò ) 收藏
異步周期結束方式

塊讀/寫(xiě)操作每次讀/寫(xiě)數據多次。塊讀/寫(xiě)操作實(shí)際上是由順序進(jìn)行的多個(gè)單次讀/寫(xiě)操作組合而成的。在同時(shí)存在多個(gè)主設備時(shí),塊讀/寫(xiě)操作非常有用,一個(gè)塊讀寫(xiě)一般是不能打斷的,比如一次DMA,如圖9所示,在一次塊操作中,CRC_O信號必須保持為高。同時(shí)為了保證整個(gè)塊操作不被打斷,LOCK_O也可以置為高,但是LOCK_O不必須為高。典型地,主設備進(jìn)行一次DMA連續傳輸4個(gè)或者8個(gè)總線(xiàn)寬度單位的數據,然后主動(dòng)釋放總線(xiàn),其后又試圖占用總線(xiàn)重新進(jìn)行DMA,直到所有的數據都傳輸完畢。這樣做的好處是允許其他優(yōu)先級更高的主設備在兩次DMA之間插入操作以完成更加緊急的任務(wù)。

本文引用地址:http://dyxdggzs.com/article/201612/330212.htm

圖1Wishbone總線(xiàn)塊操作中CYC_O信號的用法

塊讀操作如圖2所示。塊操作最多能夠在每個(gè)時(shí)鐘周期進(jìn)行一次數據讀或者寫(xiě),但是主設備和從設備都可以通過(guò)插入等待周期控制塊操作的速度。一次塊操作包括多次子操作。每一次子操作都是塊操作的一個(gè)階段,完成一次數據讀或者寫(xiě)。圖10的塊操作由五次讀操作完成,其過(guò)程如下:

在時(shí)鐘上升沿0,主設備將地址信號ADR_O()、TGA_O()放到總線(xiàn)上,將WE_O置為低表示讀操作,將適當的SEL_O()信號置高通知從設備將數據放在數據總線(xiàn)的適當位置,將CYC_O和TGC_O()置高表示操作正在進(jìn)行,將STB_O置高表示一次子操作開(kāi)始。CYC_O和TGC_O()從無(wú)效變?yōu)橛行Э梢园l(fā)生在上升沿0以前的任何時(shí)刻。

在時(shí)鐘上升沿1到達之前,從設備檢測到主設備發(fā)起的操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時(shí)鐘上升沿1,主設備發(fā)現ACK_I信號為高,將DAT_I()和TGD_I()采樣,完成第一次子操作。主設備將新地址信號ADR_O()、新TGA_O()放到總線(xiàn)上,將新的SEL_O()信號置高通知從設備將數據放在數據總線(xiàn)的適當位置。

在時(shí)鐘上升沿2到達之前,從設備檢測到主設備發(fā)起的第二次操作,將適當的數據放到主設備的DAT_I()和TGD_I(),繼續將主設備的ACK_I置高。

在時(shí)鐘上升沿2,主設備發(fā)現ACK_I信號為高,將DAT_I()和TGD_I()采樣,完成第二次子操作。主設備將STB_O信號置低表示插入等待周期。

在時(shí)鐘上升沿3到達之前,從設備檢測到STB_O信號為低,將ACK_I置低。

在時(shí)鐘上升沿3,主設備發(fā)起第三次操作,將新的地址信號ADR_O()、新的TGA_O()放到總線(xiàn)上,將WE_O置為低表示讀操作,將適當的SEL_O()信號置高通知從設備將數據放在數據總線(xiàn)的適當位置,將STB_O置高表示第三次子操作開(kāi)始。

在時(shí)鐘上升沿4到達之前,從設備檢測到主設備發(fā)起的第三次子操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

圖2Wishbone總線(xiàn)的塊讀操作(異步周期結束方式)

在時(shí)鐘上升沿4,主設備發(fā)現ACK_I信號為高,將DAT_I()和TGD_I()采樣,完成第三次子操作。主設備同時(shí)發(fā)起第四次子操作,將新地址信號ADR_O()、新TGA_O()放到總線(xiàn)上,將新的SEL_O()信號置高通知從設備將數據放在數據總線(xiàn)的適當位置。

在時(shí)鐘上升沿5到達之前,從設備檢測到主設備發(fā)起的第四次子操作,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時(shí)鐘上升沿5,主設備發(fā)現ACK_I信號為高,將DAT_I()和TGD_I()采樣,完成第五次子操作。主設備同時(shí)發(fā)起第六次子操作,將新地址信號ADR_O()、新TGA_O()放到總線(xiàn)上,將新的SEL_O()信號置高通知從設備將數據放在數據總線(xiàn)的適當位置。

在時(shí)鐘上升沿5過(guò)后,從設備檢測到主設備發(fā)起的第五次子操作,但是由于數據沒(méi)有準備好,它在新上升沿到達之前將ACK_I信號置低表示插入等待周期。
上升沿5和6之間被插入了多個(gè)等待周期。當從設備準備好數據,在時(shí)鐘上升沿6到達之前,將適當的數據放到主設備的DAT_I()和TGD_I(),將主設備的ACK_I置高作為對主設備STB_O的響應。

在時(shí)鐘上升沿6,主設備發(fā)現ACK_I信號為高,將DAT_I()和TGD_I()采樣,并將STB_O和CYC_O置為低表示整個(gè)塊讀操作完成。從設備發(fā)現STB_O置低后,也將主設備的ACK_I置低。

同步周期結束方式
圖3Wishbone總線(xiàn)的塊讀操作(同步周期結束方式)
在時(shí)鐘上升沿0:
  • Master在[ADR_O()]和[TGA_O()]發(fā)出有效的地址
  • Master拉低[WE_O],表明是一個(gè)讀周期
  • Master發(fā)出有效數據選擇信號[SEL_O()]表明哪些數據是有效的
  • Master發(fā)出[CYC_O]和[TGC_O()]表明總線(xiàn)周期的開(kāi)始
  • Master發(fā)出[STB_O]表明操作的開(kāi)始
注意:Mater必須在時(shí)鐘上升沿1或之前發(fā)出[CYC_O]和/或[TGC_O()]


在時(shí)鐘上升沿1:
  • Slave檢測到主設備發(fā)起的操作,發(fā)出[ACK_I]
  • Slave在[DAT_O]和[TGD_O()]發(fā)出有效的數據
  • Slave發(fā)出[ACK_I]應答[STB_O],表明數據有效,可以讀取數據了
  • Master發(fā)現[ACK_I],準備鎖存[DAT_I]和[TGD_I()]

在時(shí)鐘上升沿2:
  • Master鎖存[DAT_I]和[TGD_I()]
  • Master拉低[STB_O]插入等待周期(-WSS-)


在時(shí)鐘上升沿3:
  • Master在[ADR_O()]和[TGA_O()]發(fā)出有效的地址
  • Master拉低[WE_O],表明是一個(gè)讀周期
  • Master發(fā)出有效數據選擇信號[SEL_O()]表明哪些數據是有效的
  • Master發(fā)出[STB_O]表明操作的開(kāi)始

在時(shí)鐘上升沿4:
  • Slave檢測到主設備發(fā)起的操作,發(fā)出[ACK_I]
  • Slave在[DAT_O]和[TGD_O()]發(fā)出有效的數據

在時(shí)鐘上升沿5:
  • Master鎖存[DAT_I]和[TGD_I()]
  • Master拉低[STB_O]和[CYC_O],結束總線(xiàn)周期



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>