基于FPGA的OPB_AHB總線橋接器的設(shè)計(jì)
實(shí)現(xiàn)兩種總線的互聯(lián),關(guān)鍵是完成控制信號(hào)之間的轉(zhuǎn)換以及數(shù)據(jù)和地址的傳輸,本設(shè)計(jì)采用的方法包括。
(1)流水線方式, (2)將所有輸入的控制信號(hào)和數(shù)據(jù)地址總線都寄存一拍。
(3)控制信號(hào)都采用同 (4)步設(shè)計(jì)方法, (5)在OPB_Clk的上升沿觸發(fā)。
(6)數(shù)據(jù)的讀寫操作為同 (7)步讀寫。
4.1OPB2AHB_Brg的實(shí)現(xiàn)
(1) 所有控制信號(hào)采用同步設(shè)計(jì)思想,在 SOPB_Clk的上升沿觸發(fā)。 SOPB_Rst高電平有效,為同步復(fù)位,當(dāng)其有效時(shí),所有信號(hào)輸出 0狀態(tài)。
(2) 當(dāng)橋接器檢測(cè)到 SOPB_Sel信號(hào)有效時(shí),即表明橋接器被選中,成為 OPB總線上的從設(shè)備,或者檢測(cè)到 AHB_Resp信號(hào)狀態(tài)為RETRY,此時(shí) OPB2AHB_Brg作為AHB總線上的主設(shè)備向 AHB仲裁器發(fā)出請(qǐng)求總線信號(hào) AHB_BusReq。
(3) 當(dāng)OPB2AHB_Brg檢測(cè)到 AHB總線側(cè)的允許信號(hào) AHB_Grants時(shí),說明橋接器的請(qǐng)求得 到允許,此時(shí)當(dāng) AHB_Ready有效時(shí),可以根據(jù) SOPB_BE判斷傳輸數(shù)據(jù)的大小,決定 AHB_Size的狀態(tài),當(dāng) SOPB_BE為1111時(shí),AHB_Size為010(32bit),SOPB_BE為1100或0011時(shí),AHB_Size為001(16bit),SOPB_BE為0001、0010、0100、1000時(shí),AHB_Size為000(8bit)。
(4) 當(dāng)SOPB_RNW為高電平時(shí),為讀取數(shù)據(jù),數(shù)據(jù)流向是從 AHB_Rdata到Sl_Dbus,當(dāng) SOPB_RNW為低電平時(shí),為寫數(shù)據(jù),數(shù)據(jù)流向從 SOPB_Dbus到AHB_Wdata。地址總線相連,即SOPB_Abus連接AHB_Addr。
(5)當(dāng)一次數(shù)據(jù)傳輸完成后, (6)置位Sl_xferAck信號(hào), (7) 讓其輸出一個(gè)時(shí)鐘周期的高脈沖。
4.2 AHB_OPB_Brg的實(shí)現(xiàn)
(1) 當(dāng)橋接器檢測(cè)到 AHB_Sel信號(hào)有效時(shí),即表明橋接器被選中,成為AHB總線上的從設(shè)備,此時(shí)AHB2OPB_Brg作為OPB總線上的主設(shè)備向 OPB仲裁器發(fā)出請(qǐng)求總線信號(hào) M_req。
(2)當(dāng)橋接器接收到 OPB仲裁器發(fā)出的允許信號(hào) OPB_Mgrant信號(hào)時(shí), (3)表明橋接器可以
開始工作,(4)這個(gè)信號(hào)會(huì)激勵(lì) M_Sel信號(hào)有效, (5)根據(jù) IP核 BK3721的功能特性, (6) M_BE總是輸出 1111,(7) M_SeqAddr和M_busLock輸出為0。
(3) 當(dāng)AHB_Write為高電平時(shí),為寫數(shù)據(jù)有效,此時(shí) AHB主設(shè)備向從設(shè)備橋接器寫數(shù)據(jù),同時(shí)橋接器作為 OPB總線上的主設(shè)備向選中的 OPB從設(shè)備寫數(shù)據(jù),數(shù)據(jù)流向?yàn)?AHB_Wdata到 M_Dbus。當(dāng)AHB_Write為低電平時(shí),為讀數(shù)據(jù)有效,此時(shí) AHB主設(shè)備從橋接器(作為 AHB總線上的從設(shè)備)讀取數(shù)據(jù),同時(shí)橋接器作為 OPB總線的主設(shè)備從選中的 OPB從設(shè)備讀取數(shù)據(jù),數(shù)據(jù)流向?yàn)镺PB_DBus到AHB_RData。
(8)當(dāng)數(shù)據(jù)傳輸指 (9)示信號(hào)OPB_xferAck被檢測(cè)有效時(shí), (10) AHB_Ready信號(hào)輸出高電平有效信號(hào), (11)表示數(shù)據(jù)傳輸結(jié)束。
5.OPB_AHB橋接器的驗(yàn)證
5.1 OPB2AHB_Brg的驗(yàn)證
用verilog編寫testbench,在testbench中虛擬設(shè)備一個(gè) AHB從設(shè)備存儲(chǔ)器 AHB_mem,存儲(chǔ)器的數(shù)據(jù)位寬和地址位寬都是 32位,通過測(cè)試平臺(tái)可以對(duì)虛擬存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀寫,并將數(shù)據(jù)的讀寫結(jié)果保存到 Wdata.txt文件中。
利用ModelSim工具對(duì)測(cè)試平臺(tái)進(jìn)行仿真。在主設(shè)備向虛擬從設(shè)備寫數(shù)據(jù)時(shí), SOPB_RNW為低電平,橋接器作為AHB上的主設(shè)備將 SOPB_DBus數(shù)據(jù)線上的數(shù)據(jù)通過 AHB_Wdata寫到 AHB_mem存儲(chǔ)器中,并在 WData.txt文件中顯示出來,仿真結(jié)果如圖 3 (a)所示。
圖3 (a) OPB2AHB_Brg寫數(shù)據(jù)仿真波形
評(píng)論