一個總線周期由多個不可分的時鐘周期構(gòu)成,完成單次讀/寫操作、塊讀/寫操作或者讀改寫操作。總線周期也分為單次讀/寫周期、塊讀/寫周期和讀改寫周期。一次塊讀/寫總線周期完成多次數(shù)據(jù)讀/寫操作。一般情況下,一次操作由主設(shè)備和從設(shè)備控制信號間的一次握手,以及同時進(jìn)行的地址和數(shù)據(jù)總線的一次傳輸構(gòu)成。塊操作表示整個操作需要完成多次數(shù)據(jù)傳送。在總線周期中主設(shè)備和從設(shè)備預(yù)先設(shè)定好的共同遵守控制信號握手規(guī)則,以及地址和數(shù)據(jù)總線的傳輸規(guī)則稱作總線協(xié)議。
在下文(包括以后的博文中)所給圖例中給出的信號均為主設(shè)備的輸入輸出信號。因此,對操作的描述也從主設(shè)備信號的角度展開,以便于讀者對照正文理解圖例。比如"在時鐘上升沿1到達(dá)之前,從設(shè)備檢測到主設(shè)備發(fā)起的操作,將適當(dāng)?shù)臄?shù)據(jù)放到主設(shè)備的輸入信號DAT_I()和TGD_I(),將主設(shè)備的ACK_I置高作為對主設(shè)備STB_O的響應(yīng)。"的等價描述為:"在時鐘上升沿1到達(dá)之前,從設(shè)備檢測到主設(shè)備發(fā)起的操作,將適當(dāng)?shù)臄?shù)據(jù)放到其輸出信號DAT_O()和TGD_O(),將輸出信號ACK_O置高作為對主設(shè)備STB_O的響應(yīng)。"
復(fù)位操作
復(fù)位是數(shù)字系統(tǒng)最基本的操作。復(fù)位后,系統(tǒng)進(jìn)入預(yù)定的狀態(tài)。在遵守Wishbone總線規(guī)范的系統(tǒng)中,當(dāng)RST_I信號有效,系統(tǒng)開始復(fù)位。由于Wishbone規(guī)范規(guī)定的復(fù)位是同步復(fù)位,因此在復(fù)位信號有效后接下來的時鐘上升沿,所有信號和寄存器進(jìn)入預(yù)定狀態(tài)。因此,Wishbone規(guī)范要求RST_I信號有效時間至少要一個時鐘周期。在數(shù)字系統(tǒng)中,實(shí)際上更多的采用的是異步復(fù)位,而且復(fù)位信號的長度一般大于系統(tǒng)電平穩(wěn)定時間和系統(tǒng)時鐘頻率穩(wěn)定時間。如果在Wishbone接口中使用的是異步復(fù)位,設(shè)計者需要在文檔中說明,因?yàn)閃ishbone接口默認(rèn)的是同步復(fù)位。
圖6 Wishbone總線的復(fù)位操作
在圖6中,我們只給出了STB_O和CYC_O這兩個信號,而沒有給出其它信號。當(dāng)這兩個信號無效時,所有其他信號沒有意義。
規(guī)則3.00:所有的Wishbone接口必須在RST_I置位(變?yōu)?)后的第一個時鐘上升沿進(jìn)入初始化狀態(tài),直到RST_I被復(fù)位(變?yōu)?)后的第一個時鐘上升沿到來。
規(guī)則3.05:RST_I必須被置位至少一個完整的時鐘周期,才能有效地完成復(fù)位。
允許3.00:當(dāng)然,RST_I也可以被置位多個時鐘周期,但是數(shù)量必須是有限的。
規(guī)則3.10:所有的Wishbone接口必須能夠在任意時間響應(yīng)RST_I信號(優(yōu)先級足夠高)。
規(guī)則3.15:所有的Wishbone自啟動狀態(tài)機(jī)核計數(shù)器必須在RST_I置位(變?yōu)?)后的第一個時鐘上升沿進(jìn)入初始化狀態(tài),直到RST_I被復(fù)位(變?yōu)?)后的第一個時鐘上升沿到來。
規(guī)則3.20:以下主機(jī)信號必須在RST_I置位(變?yōu)?)后的第一個時鐘上升沿復(fù)位(變?yōu)?),直到RST_I被復(fù)位(變?yōu)?)后的第一個時鐘上升沿到來:STB_O,CYC_O。所有的其他主機(jī)此時不能操作這些信號,以響應(yīng)復(fù)位周期。RST_I被復(fù)位(變?yōu)?)后的第一個時鐘上升沿到來后,主機(jī)接口的STB_O和CYC_O信號可以被立即置位(變?yōu)?)。
注意3.10:在標(biāo)準(zhǔn)模式下(除了流水線之外的模式),當(dāng)STB_I被復(fù)位(變?yōu)?)時,從機(jī)接口應(yīng)自動將ACK_O,ERR_O和RTY_O置位。
推薦3.00:設(shè)計SYSCON模塊時,應(yīng)保證上電復(fù)位時將RST_O信號置位。并且RST_O信號應(yīng)該保持置位狀態(tài),直到電壓和時鐘頻率進(jìn)入穩(wěn)定狀態(tài)。最好使用同步復(fù)位的方式,以保證設(shè)計的兼容性。
注意3.15:在使用門控時鐘的情況下,如果時鐘被禁止了。此時,Wishbone總線將不能響應(yīng)RST_I信號。
建議3.00:如果一些IP核或者SoC模塊需要異步復(fù)位,應(yīng)當(dāng)將復(fù)位信號定義為非Wishbone標(biāo)準(zhǔn)信號。這樣可以保證Wishbone接口使用純同步時序,以避免造成疑惑。
注意3.20:所有的Wishbone接口信號都應(yīng)能響應(yīng)復(fù)位信號,除了IP核接口。
傳輸周期初始化
主機(jī)接口通過置位CYC_O信號進(jìn)行初始化傳輸周期,當(dāng)CYC_O信號被復(fù)位,其他所有的主機(jī)信號都被視為無效。從機(jī)也只在其CYC_I信號被置位的情況下,才會響應(yīng)其他主機(jī)信號。應(yīng)當(dāng)注意,SYSCON信號不受影響。
規(guī)則3.25:在單獨(dú)寫周期、塊讀寫周期和讀改寫周期(RMW)持續(xù)期間。主機(jī)接口必須將CYC_O信號置位。CYC_O信號置位時間必須不晚于STB_O置位后的第一個時鐘上升沿,CYC_O信號置位時間必須不早于STB_O復(fù)位后的第一個時鐘上升沿。
允許3.05:主機(jī)接口可以在任意時間置位CYC_O。
推薦3.05:仲裁邏輯經(jīng)常使用CYC_I信號進(jìn)行主機(jī)選擇。保持CYC_O一直長時間處于置位狀態(tài)可能會導(dǎo)致仲裁錯誤。因此在多主機(jī)情況下,應(yīng)當(dāng)避免使用【允許3.05】。
規(guī)則3.30:當(dāng)CYC_I被復(fù)位時,從機(jī)接口可以不響應(yīng)任何其他主機(jī)信號。但是其必須響應(yīng)SYSCON信號。
-
信號
+關(guān)注
關(guān)注
11文章
2767瀏覽量
76462 -
總線
+關(guān)注
關(guān)注
10文章
2851瀏覽量
87845 -
Wishbone
+關(guān)注
關(guān)注
0文章
16瀏覽量
10406
原文標(biāo)題:【博文連載】Wishbone總線周期之復(fù)位操作
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論