0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

標(biāo)準(zhǔn)Wishbone協(xié)議:流水線Wishbone協(xié)議

SwM2_ChinaAET ? 來(lái)源:未知 ? 作者:李倩 ? 2018-07-12 08:38 ? 次閱讀

握手發(fā)生在主設(shè)備和從設(shè)備之間。握手協(xié)議是主設(shè)備和從設(shè)備在握手時(shí)所遵守的共同規(guī)則。除了,B3版中的標(biāo)準(zhǔn)模式之外,B4版的Wishbone官方手冊(cè)中還新增了流水線模式。下面將依次進(jìn)行介紹。

標(biāo)準(zhǔn)Wishbone協(xié)議

如圖7所示,當(dāng)主機(jī)準(zhǔn)備傳輸數(shù)據(jù)時(shí),應(yīng)將STB_O置位,直到從機(jī)將以下任一信號(hào)(周期結(jié)束信號(hào))置位:ACK_I、ERR_I或者RTY_I。在每一個(gè)時(shí)鐘(CLK_I)上升沿,系統(tǒng)都會(huì)對(duì)周期結(jié)束信號(hào)進(jìn)行采樣。當(dāng)任一周期結(jié)束信號(hào)被置位時(shí),STB_O信號(hào)就會(huì)被復(fù)位。這就讓主機(jī)和從機(jī)接口都有機(jī)會(huì)來(lái)控制數(shù)據(jù)的傳輸速率。

圖7 標(biāo)準(zhǔn)總線握手協(xié)議,異步從機(jī)

圖8 標(biāo)準(zhǔn)總線握手協(xié)議,同步從機(jī)

允許3.10:在標(biāo)準(zhǔn)模式下,如果從設(shè)備保證能夠在主設(shè)備發(fā)起操作時(shí)及時(shí)做出操作成功的響應(yīng),此時(shí)ERR_I和RTY_I信號(hào)可以不使用,ACK_O信號(hào)可以設(shè)計(jì)為STB_I和CYC_I信號(hào)的邏輯與。因此ERR_O和RTY_O信號(hào)是可選的,而ACK_O信號(hào)是必須的。在點(diǎn)對(duì)點(diǎn)連接中,甚至可以將ACK_I信號(hào)直接置高。當(dāng)存在ERR_O和RTY_O信號(hào),主設(shè)備當(dāng)發(fā)現(xiàn)ERR_O和RTY_O信號(hào)之一有效時(shí)如何進(jìn)行響應(yīng)取決于主設(shè)備的設(shè)計(jì)。

注意3.25:在標(biāo)準(zhǔn)模式下,從機(jī)接口會(huì)置位一個(gè)周期結(jié)束信號(hào)來(lái)響應(yīng)STB_I。然而,STB_I信號(hào)只有在CYC_I信號(hào)有效地時(shí)候才有效。

注意3.30:在總線周期期間置位ERR_I信號(hào),會(huì)立即結(jié)束該周期,意味著從機(jī)通知主機(jī)在該周期期間發(fā)生了錯(cuò)誤。當(dāng)從機(jī)邏輯電路檢測(cè)到錯(cuò)誤,便會(huì)置位ERR_I信號(hào)。例如,如果從機(jī)使用了奇偶校檢,當(dāng)發(fā)生錯(cuò)誤時(shí),從機(jī)便會(huì)通過(guò)ERR_I做出反應(yīng)。

在總線周期期間置位RTY_I信號(hào),也會(huì)立即結(jié)束該周期,意味著從機(jī)通知主機(jī)在該周期期間發(fā)生了故障(Aborted)。該信號(hào)一般用于共享內(nèi)存或者總線橋接。當(dāng)本地資源處于忙狀態(tài)時(shí),從機(jī)電路便會(huì)置位RTY_I信號(hào)。應(yīng)當(dāng)注意,Wishbone規(guī)范并未強(qiáng)制要求主機(jī)何時(shí)對(duì)RTY_I信號(hào)做出相應(yīng)。

規(guī)則3.40:實(shí)際上,對(duì)于主設(shè)備,其最小配置為ACK_I、CLK_I、CYC_O、RST_I和STB_O。所有的其他信號(hào)都是可選的(optional)。

允許3.20:主機(jī)和從機(jī)接口之間可以被設(shè)計(jì)成支持ERR_I/ERR_O信號(hào)。但是Wishbone規(guī)范并未要求主機(jī)對(duì)ERR_I信號(hào)做出什么響應(yīng),用于可以根據(jù)自己的需求設(shè)計(jì)。

允許3.25:主機(jī)和從機(jī)接口之間可以被設(shè)計(jì)成支持TRY_I/TRY_O信號(hào)。但是Wishbone規(guī)范并未要求主機(jī)對(duì)TRY_I信號(hào)做出什么響應(yīng),用于可以根據(jù)自己的需求設(shè)計(jì)。

規(guī)則3.45:當(dāng)從機(jī)支持ERR_O和TRY_O信號(hào)時(shí),應(yīng)保證從機(jī)同一時(shí)刻只能將三個(gè)周期結(jié)束信號(hào)的其中之一置位。

注意3.35:如果從機(jī)支持了ERR_O和RTY_O信號(hào),而主機(jī)不支持這些信號(hào),可能會(huì)造成系統(tǒng)的死鎖。

推薦3.10:通過(guò)設(shè)計(jì)INTERCON模塊可以阻止死鎖的情況發(fā)生。其中一種解決方法就是,設(shè)計(jì)一個(gè)看門(mén)狗定時(shí)器用來(lái)監(jiān)控STB_O信號(hào)。當(dāng)ERR_I或者RTY_I信號(hào)周期技術(shù)超出了預(yù)定義的限制時(shí),INTERCON模塊可以被設(shè)計(jì)成將Wishbone總線連接斷開(kāi)。

推薦3.15:在圖7中,從STB_O到ACK_I存在一個(gè)長(zhǎng)組合邏輯路徑,在實(shí)際系統(tǒng)中很可能成為關(guān)鍵路徑。因此,在設(shè)計(jì)中應(yīng)盡量保證STB_O是觸發(fā)器的直接輸出。如果從STB_O到ACK_I存在一個(gè)長(zhǎng)組合邏輯路徑延遲不能滿(mǎn)足設(shè)計(jì)的時(shí)序要求,可將從設(shè)備的ACK_O經(jīng)過(guò)觸發(fā)器寄存后再輸出,從而將長(zhǎng)組合邏輯打破,但系統(tǒng)的吞吐量也將因此減小。

規(guī)則3.50:從機(jī)接口必須被設(shè)計(jì)成ACK_O、ERR_O和RTY_O信號(hào)的置位或復(fù)位與STB_I信號(hào)的置位或復(fù)位有關(guān)。

允許3.30:ACK_O、ERR_O和RTY_O信號(hào)的置位允許被設(shè)計(jì)成異步邏輯(例如,STB_I與ACK_O之間的組合邏輯路徑)。

注意3.40:ACK_O、ERR_O和RTY_O信號(hào)的異步置位可以保證每一個(gè)時(shí)鐘周期可以完成一次數(shù)據(jù)傳輸。進(jìn)一步來(lái)說(shuō),可以簡(jiǎn)化多主機(jī)情況下的仲裁器設(shè)計(jì)。

注意3.45:在某些場(chǎng)合,ACK_O、ERR_O和RTY_O信號(hào)的異步置位可能不能實(shí)現(xiàn)。例如,從機(jī)等待狀態(tài)早于用寄存器實(shí)現(xiàn)的ACK_O信號(hào)。

注意3.50:在部分高速設(shè)計(jì)場(chǎng)合,ACK_O、ERR_O和RTY_O信號(hào)的異步置位可能會(huì)導(dǎo)致不可接受的延時(shí)時(shí)間,一般是由于主機(jī)和從機(jī)之間的回路延時(shí)導(dǎo)致的。使用寄存器實(shí)現(xiàn)ACK_O、ERR_O和RTY_O信號(hào)可以顯著地減少這種回路延時(shí)。

允許3.35:在特定情況下,從機(jī)接口可能被設(shè)計(jì)成保持ACK_O信號(hào)一直處于置位狀態(tài)。例如,一個(gè)單從機(jī),單主機(jī),點(diǎn)對(duì)點(diǎn)的接口,從機(jī)操作根本不需要等待時(shí)間。

規(guī)則3.55:當(dāng)從機(jī)接口保持ACK_I信號(hào)為置位狀態(tài)時(shí),主機(jī)接口應(yīng)當(dāng)被設(shè)計(jì)為正常操作模式。

流水線Wishbone協(xié)議

在流水線模式下,握手協(xié)議主要有以下差異:

·主機(jī)在輸出下一個(gè)地址/數(shù)據(jù) 字到總線上之前,不能等待ACK_I信號(hào);

·主機(jī)接口上的STALL_I信號(hào)用于表示從機(jī)流水線此時(shí)可以接受另一個(gè)請(qǐng)求。總線仲裁器應(yīng)該選擇目標(biāo)從機(jī)STALL_O信號(hào),并將其告知主機(jī)。這種路徑應(yīng)當(dāng)被設(shè)計(jì)成非寄存式的(non-registered)。

·主機(jī)當(dāng)STALL_I信號(hào)為低電平時(shí),輸出請(qǐng)求。當(dāng)STALL_I信號(hào)被置位時(shí),則處于等待狀態(tài)。即,當(dāng)STALL_I信號(hào)被置位,流水線不能夠產(chǎn)生任何請(qǐng)求。

·如果總線周期由N個(gè)轉(zhuǎn)換構(gòu)成,則最后一個(gè)ACK_I表示轉(zhuǎn)換的終止。當(dāng)接收到最后的ACK_I脈沖后,主機(jī)結(jié)束總線周期。

·只有當(dāng)ACK_I信號(hào)為高電平時(shí),讀取數(shù)據(jù)操作才是有效的。

圖9 流水線模式 單次訪問(wèn)

規(guī)則3.57:在流水線模式下,當(dāng)CYC_I和STB_I信號(hào)被置位后,緊接著STALL_I和WE_I信號(hào)被復(fù)位時(shí),一個(gè)讀轉(zhuǎn)換操作開(kāi)始。

規(guī)則3.58:在流水線模式下,當(dāng)CYC_I、STB_I和WE_I信號(hào)被置位后,緊接著STALL_I信號(hào)被復(fù)位時(shí),一個(gè)寫(xiě)轉(zhuǎn)換操作開(kāi)始。

規(guī)則3.59:在流水線模式下,完成轉(zhuǎn)換初始化后,主機(jī)必須能在任意時(shí)間接受ACK_I信號(hào)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2741

    瀏覽量

    76181
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87711
  • Wishbone
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    10405

原文標(biāo)題:【博文連載】Wishbone總線周期之握手協(xié)議

文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA中的流水線設(shè)計(jì)

    `流水線設(shè)計(jì)前言:本文從四部分對(duì)流水線設(shè)計(jì)進(jìn)行分析,具體如下:第一部分什么是流水線第二部分什么時(shí)候用流水線設(shè)計(jì)第三部分使用流水線的優(yōu)缺點(diǎn)第四
    發(fā)表于 10-26 14:38

    周期精確的流水線仿真模型

    使用軟件仿真硬件流水線是很耗時(shí)又復(fù)雜的工作,仿真過(guò)程中由于流水線的沖突而導(dǎo)致運(yùn)行速度緩慢。本文通過(guò)對(duì)嵌入式處理器的流水線, 指令集, 設(shè)備控制器等內(nèi)部結(jié)構(gòu)的分析和
    發(fā)表于 12-31 11:30 ?9次下載

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?3894次閱讀

    流水線中的相關(guān)培訓(xùn)教程[1]

    流水線中的相關(guān)培訓(xùn)教程[1]  學(xué)習(xí)目標(biāo)     理解流水線中相關(guān)的分類(lèi)及定義;
    發(fā)表于 04-13 15:56 ?1001次閱讀

    基于WISHBONE總線的FLASH閃存接口設(shè)計(jì)

    本文簡(jiǎn)要介紹了AMD 公司Am29LV160D 芯片的特點(diǎn),并對(duì)WISHBONE總線作了簡(jiǎn)單的介紹,詳細(xì)說(shuō)明了FLASH memory 與WISHBONE 總線的硬件接口設(shè)計(jì)及部分Verilog HDL 程序源代碼。
    發(fā)表于 06-23 16:32 ?18次下載
    基于<b class='flag-5'>WISHBONE</b>總線的FLASH閃存接口設(shè)計(jì)

    電鍍流水線的PLC控制

    電鍍流水線的PLC控制電鍍流水線的PLC控制電鍍流水線的PLC控制
    發(fā)表于 02-17 17:13 ?36次下載

    裝配流水線控制系統(tǒng)設(shè)計(jì)

    裝配流水線控制系統(tǒng)設(shè)計(jì)
    發(fā)表于 12-17 15:26 ?14次下載

    采用單通道通訊協(xié)議設(shè)計(jì)高速異步流水線控制器STFB電路的設(shè)計(jì)

    單元GasP電路,在文中提出的準(zhǔn)延時(shí)無(wú)關(guān)QDI異步流水線控制單元WCHB(weak condition half buffer)、PCHB(precharged fullbuffer),以及在文中提出的基于單通道通訊協(xié)議的QDI異步流水
    的頭像 發(fā)表于 08-30 08:04 ?2601次閱讀
    采用單通道通訊<b class='flag-5'>協(xié)議</b>設(shè)計(jì)高速異步<b class='flag-5'>流水線</b>控制器STFB電路的設(shè)計(jì)

    FPGA之為什么要進(jìn)行流水線的設(shè)計(jì)

    流水線又稱(chēng)為裝配線,一種工業(yè)上的生產(chǎn)方式,指每一個(gè)生產(chǎn)單位只專(zhuān)注處理某一個(gè)片段的工作。以提高工作效率及產(chǎn)量;按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒
    的頭像 發(fā)表于 11-28 07:04 ?3487次閱讀

    各種流水線特點(diǎn)及常見(jiàn)流水線設(shè)計(jì)方式

    按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒流水線這七類(lèi)流水線。
    的頭像 發(fā)表于 07-05 11:12 ?7043次閱讀
    各種<b class='flag-5'>流水線</b>特點(diǎn)及常見(jiàn)<b class='flag-5'>流水線</b>設(shè)計(jì)方式

    滾筒輸流水線故障排除方法

    在工程建造中,滾筒流水線演著重要的角色。在一些工程建造過(guò)程中,經(jīng)??吹綕L筒流水線的身影。在工業(yè)不斷發(fā)展下的今天,滾筒流水線日益增長(zhǎng),走向多元化。滾筒流水線能夠長(zhǎng)距離的輸送,而且支持重量
    發(fā)表于 07-08 09:32 ?1761次閱讀

    如何選擇合適的LED生產(chǎn)流水線輸送方式

    LED生產(chǎn)流水線輸送形式分為平面直線傳輸流水線、各種角度平面轉(zhuǎn)彎傳輸流水線、斜面上傳流水線、斜面下傳流水線這四種輸送方式,企業(yè)也是可以根據(jù)L
    發(fā)表于 08-06 11:53 ?951次閱讀

    嵌入式_流水線

    流水線一、定義流水線是指在程序執(zhí)行時(shí)多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)。各種部件同時(shí)處理是針對(duì)不同指令而言的,他們可同時(shí)為多條指令的不同部分進(jìn)行工作。? 把一個(gè)重復(fù)的過(guò)程分解為若干個(gè)子過(guò)程
    發(fā)表于 10-20 20:51 ?6次下載
    嵌入式_<b class='flag-5'>流水線</b>

    CPU流水線的問(wèn)題

    1989 年推出的 i486 處理器引入了五級(jí)流水線。這時(shí),在 CPU 中不再僅運(yùn)行一條指令,每一級(jí)流水線在同一時(shí)刻都運(yùn)行著不同的指令。這個(gè)設(shè)計(jì)使得 i486 比同頻率的 386 處理器性能提升了不止一倍。
    的頭像 發(fā)表于 09-22 10:04 ?1834次閱讀

    什么是流水線 Jenkins的流水線詳解

    jenkins 有 2 種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是 jenkins 舊版本使用的流水線腳本,新版本 Jenkin
    發(fā)表于 05-17 16:57 ?971次閱讀