OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn)_第1頁(yè)
OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn)_第2頁(yè)
OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn)_第3頁(yè)
OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn)_第4頁(yè)
OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、【W(wǎng)ord版本下載可任意編輯】 OPB總線仲裁器的RTL設(shè)計(jì)與FPGA實(shí)現(xiàn) 0 引言 隨著 SOC 設(shè)計(jì)技術(shù)的發(fā)展,為了使IP 核集成更快速、更方便,縮短進(jìn)入市場(chǎng)的時(shí)間, 迫切需要一種標(biāo)準(zhǔn)的互聯(lián)方案。CoreConnect 正是在這一背景下為SOC 設(shè)計(jì)的總線架構(gòu)。按 照數(shù)據(jù)訪問速度它可分為三層總線,分別是處理器內(nèi)部總線PLB(Processor Local Bus)、片上 外圍總線OPB(On-ChipPeripheral Bus)和設(shè)備控制總線DCR(Device Control Register)。 OPB 總線是為UART、GPIO 等慢數(shù)據(jù)率設(shè)備提供接口的總線。由于集成到總線中的功能

2、模 塊越來越多,對(duì)于共享總線系統(tǒng),片上仲裁是使得各個(gè)模塊有效運(yùn)作的必要手段。目前關(guān)于 OPB 總線仲裁器這方面的研究報(bào)道較少,為了探尋在不同的系統(tǒng)負(fù)載和系統(tǒng)應(yīng)用下選擇 佳的OPB 總線仲裁方案,本文基于固定優(yōu)先級(jí)和LRU 兩種算法,利用自頂向下的設(shè)計(jì)方法, 設(shè)計(jì)了OPB 總線的仲裁器,并對(duì)其綜合結(jié)果做了比較。 1 OPB 總線仲裁機(jī)制 OPB 總線支持32 位數(shù)據(jù)/地址位寬,讀和寫數(shù)據(jù)總線分開,支持重試模式,支持突發(fā) (burst)傳輸模式,支持DMA,檢測(cè)總線超時(shí)功能,支持多個(gè)主設(shè)備的仲裁。OPB 總線的 系統(tǒng)構(gòu)造分為三個(gè)部分:主設(shè)備(Master),從設(shè)備(Slave)和總線邏輯。信號(hào)命名

3、有三種: Mn_打頭的,是Master 的輸出;Sln_打頭的,是Slave 的輸出;OPB_打頭的,是總線邏輯 的輸入或輸出。OPB 總線允許有多個(gè)master,當(dāng)這幾個(gè)master 同時(shí)發(fā)出請(qǐng)求要求使用總線時(shí), 就必須對(duì)他們的請(qǐng)求開展仲裁,并確定他們使用總線的優(yōu)先級(jí),這就是仲裁器的作用。OPB 總線仲裁器的輸入輸出信號(hào)如圖1 所示。 SYSCLK 和RESET 為OPB 總線的系統(tǒng)時(shí)鐘和復(fù)位信號(hào)。Mn_REQUEST 為4 個(gè)master 的請(qǐng)求信號(hào),OPB_MnGRANT 為仲裁器發(fā)出的授權(quán)信號(hào),OPB_SELECT 是master 收到授 權(quán)信號(hào)后發(fā)出的占用總線信號(hào),OPB_ABUS

4、為地址總線,OPB_DBUS 為數(shù)據(jù)總線, OPB_XFERACK 為slave 數(shù)據(jù)傳輸完的響應(yīng),OPB_RNW 是讀寫使能信號(hào),OPB_BUSLOCK 是master 鎖定對(duì)總線使用權(quán)的信號(hào),ARB_DBUS 和ARB_DBUSEN 是仲裁器的數(shù)據(jù)總線和 使能信號(hào),ARB_XFERACK 是仲裁器傳輸數(shù)據(jù)完成的響應(yīng)信號(hào)。OPB_TOUTSUP 是slave 超時(shí)禁止的信號(hào),OPB_TIMEOUT 是總線超時(shí)信號(hào)。 仲裁過程說明如下: Master 首先發(fā)出Mn_REQUEST 信號(hào)申請(qǐng)占用總線,仲裁器根據(jù)總線占用情況和優(yōu)先權(quán) 算法發(fā)出OPB_MnGRANT 信號(hào),得到優(yōu)先權(quán)的master

5、拉高M(jìn)n_SELECT 信號(hào),其他 master 把這個(gè)信號(hào)置低,這4 個(gè)select 信號(hào)通過或邏輯形成OPB_SELECT 信號(hào)輸入給仲裁 器。 同時(shí)發(fā)送地址 Mn_ABUS,也是通過或邏輯轉(zhuǎn)變成OPB_ABUS 輸入給仲裁器。OPB 總 線有多個(gè)slave 設(shè)備,每個(gè)slave 都有自己的地址空間值,Master 發(fā)送的Mn_ABUS 正是包 含了他所要使用的slave 的地址值,slave 會(huì)對(duì)值開展比較,如果相等,master 就可以對(duì)slave 開展讀寫操作。 讀操作時(shí),master 拉高OPB_RNW,仲裁器拉高ARB_DBUSEN,并通過ARB_DBUS 輸 出數(shù)據(jù)。寫操作時(shí),

6、master 拉低OPB_RNW,通過OPB_DBUS 輸入數(shù)據(jù)。當(dāng)有效數(shù)據(jù)傳輸完 成后,仲裁器會(huì)拉高ARB_XFERACK 信號(hào)響應(yīng)。Master 在收到響應(yīng)后,會(huì)拉低Mn_SELECT 信號(hào),結(jié)束此次總線事務(wù)。 2 OPB 總線仲裁器的設(shè)計(jì) 采用自頂向下的設(shè)計(jì)方法,將設(shè)計(jì)分成4 個(gè)模塊,分別為優(yōu)先級(jí)邏輯模塊,仲裁模 塊,看門狗超時(shí)模塊和鎖定/??磕K。原理圖如圖2 所示。 圖2 仲裁器設(shè)計(jì)原理圖 1) 優(yōu)先級(jí)邏輯模塊 這個(gè)模塊采用兩種不同的算法開展設(shè)計(jì),分別是LRU(Least Recently Used)算法和固定 優(yōu)先級(jí)算法。 a) LRU 算法 LRU 算法就是根據(jù)master 的編

7、號(hào)循環(huán)得到優(yōu)先級(jí),保證每個(gè)設(shè)備都有時(shí)機(jī)獲得總線。我 們?cè)O(shè)計(jì)的是多支持4 個(gè)master 的仲裁器,所以采用一個(gè)8 位的存放器,用來存放4 個(gè)master 的二進(jìn)制編號(hào)。每個(gè)周期都要更新這個(gè)存放器值,將得到優(yōu)先級(jí)的master 編號(hào)放到 低優(yōu)先級(jí),其他3 個(gè)master 編號(hào)各進(jìn)。用這種算法設(shè)計(jì)的仲裁器的仿真結(jié)果如圖3。 其中 ARB_DBUS 讀出來的數(shù)據(jù)正是存放器中保存的master 編號(hào),優(yōu)先級(jí)從高位到低位 遞減。00,01,10,11 代表master 的編號(hào)0,1,2,3。當(dāng)4 個(gè)master 同時(shí)發(fā)出請(qǐng)求時(shí),第 一個(gè)時(shí)鐘周期將優(yōu)先級(jí)授權(quán)給master0,第二個(gè)時(shí)鐘周期時(shí),master

8、0 的優(yōu)先級(jí)降為,其 他三個(gè)優(yōu)先級(jí)遞進(jìn),所以此時(shí)授權(quán)給master1。后面的周期依次循環(huán),4 個(gè)master 將輪流獲 得授權(quán)。 b) 固定優(yōu)先級(jí)算法 固定優(yōu)先級(jí)算法將 4 個(gè)master 的優(yōu)先級(jí)按順序固定下來,不會(huì)改變。這種算法設(shè)計(jì)更 簡(jiǎn)單,不需要每周期對(duì)master 的優(yōu)先級(jí)更新。設(shè)計(jì)時(shí)優(yōu)先級(jí)存放器中的值只在總線執(zhí)行寫 操作和復(fù)位時(shí)才會(huì)改變,平時(shí)固定不變。仿真結(jié)果見圖4。 ARB_DBUS 是寫入的4 個(gè)master 的優(yōu)先級(jí)順序,master0 為,master3 。當(dāng)4 個(gè)master 同時(shí)發(fā)出請(qǐng)求時(shí),授權(quán)給master0;當(dāng)master0 不發(fā)出請(qǐng)求,其他三個(gè)master 發(fā)出 請(qǐng)

9、求時(shí),則根據(jù)優(yōu)先級(jí)順序,授權(quán)給master1;依此類推。 2)仲裁邏輯模塊 從優(yōu)先級(jí)邏輯模塊得到的優(yōu)先級(jí)存放器信號(hào),將被輸入到仲裁邏輯模塊。用以對(duì)4 個(gè) master 的Mn_REQUEST 請(qǐng)求信號(hào)排序,然后優(yōu)先級(jí)從高到低排序的master 中,個(gè)拉高 請(qǐng)求信號(hào)的master 將被授權(quán)占用總線。仲裁邏輯模塊輸出的授權(quán)信號(hào)是原始的,這個(gè)信 號(hào)還要經(jīng)過鎖定/??窟壿嬆K處理才能得到終的授權(quán)信號(hào)(OPB_MnGRANT)。 3) 看門狗超時(shí)邏輯模塊 看門狗邏輯用來監(jiān)控OPB 的控制信號(hào),當(dāng)master 在16 個(gè)時(shí)鐘中期內(nèi)沒有能夠收到slave的響應(yīng)信號(hào)( OPB_XFERACK ) 和超時(shí)禁止信

10、號(hào)( OPB_TOUTSUP ), 將會(huì)拉高 OPB_TIMEOUT 超時(shí)信號(hào)。這部分的設(shè)計(jì)采用一個(gè)4 位計(jì)數(shù)器對(duì)時(shí)鐘開展記數(shù)。 4) 鎖定/??窟壿嬆K 優(yōu)先級(jí)鎖定是得到優(yōu)先級(jí)的master 同時(shí)拉高OPB_BUSLOCK 信號(hào),這樣在這個(gè)信 號(hào)被置低之前,這個(gè)master 將始終得到總線的占用權(quán),仲裁邏輯將不啟用。此時(shí)不管master 是否發(fā)送請(qǐng)求,都不會(huì)對(duì)仲裁產(chǎn)生影響。優(yōu)先級(jí)的鎖定是通過將仲裁邏輯得到的原始優(yōu)先級(jí) 信號(hào)和OPB_BUSLOCK 信號(hào)相與后產(chǎn)生的。優(yōu)先級(jí)??渴钱?dāng)沒有新的master 發(fā)出請(qǐng)求信號(hào) 時(shí),總線繼續(xù)授權(quán)給當(dāng)前占用總線的master。這里設(shè)計(jì)了一個(gè)四位存放器用來追蹤

11、近占用 總線的master 編號(hào)。 ,通過altera 公司的CycloneII FPGA 對(duì)兩種設(shè)計(jì)開展綜合,并對(duì)綜合結(jié)果開展比 較。并采用cadence 公司的conformal 開展RTL 代碼和網(wǎng)表之間的形式驗(yàn)證。表1 為綜合 和形式驗(yàn)證結(jié)果。 得出的結(jié)論是:固定優(yōu)先級(jí)算法設(shè)計(jì)簡(jiǎn)單,占用資源少,可以到達(dá)較高的應(yīng)用頻率。但 這種算法使優(yōu)先級(jí)高的設(shè)備占著總線不放,當(dāng)總線事務(wù)繁忙時(shí),優(yōu)先級(jí)低的設(shè)備將申請(qǐng)不到 總線,所以只適用于總線使用率低,負(fù)載低的應(yīng)用。而LRU 算法雖然更占資源,頻率也低 點(diǎn),但這種算法授權(quán)更加公平,使所有設(shè)備都有時(shí)機(jī)申請(qǐng)到總線,適用于總線使用率高,負(fù) 載高的應(yīng)用。 3 結(jié)束語 本文通過對(duì) OPB 總線仲裁器兩種算法的研究,比較了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論