1.引言
SoC(System on a Chip)自20世紀90年代后期出現以來,廣受學術界和工業界的關注, SoC通常將微處理器、 IP(Intelligence Property)核和存儲器(或片外存儲控制接口)集成在單一芯片上,具有小型、輕量、低功耗、多功能、高可靠和低成本化等特征,在計算機、通信、消費類電子、工控、交通運輸等領域應用十分廣泛。
隨著基于IP復用技術的 SoC設計的不斷發展,片上總線 OCB(on-chip Bus)技術成為解決 SoC發展的關鍵技術。目前主要有三大主流片上總線標準: IBM公司的 CoreConnect,ARM公司的AMBA (Advanced Microcontroller Bus Architecture)以及Silicore Corp公司的 Wishbone。本文針對兩大主流 OCB總線標準 AMBA和CoreConnect,完成AMBA高性能系統總線AHB和CoreConnect的外圍總線 OPB之間的橋接轉換,設計出 OPB_AHB橋接器。
2.OPB_AHB橋接器功能特性
AHB是ARM公司微控制器總線體系結構 AMBA規范定義的三種總線之一,它是先進的系統總線,用于連接高性能系統模塊,支持突發數據傳輸方式及單個數據傳輸方式, AHB總線可掛接多個功能模塊(主 /從),并為它們提供高帶寬、低延遲的總線連接。
OPB總線是IBM公司推出的一種芯片級的外圍設備總線, OPB總線主要連接外圍低速設備,降低外圍設備對系統性能的影響,支持突發( Burst)操作 。
Xilinx公司的軟核處理器 MicroBlaze能夠很好的支持 OPB總線協議, MicroBlaze環境的 OPB總線都是 32位的地址位寬和數據位寬,支持 8bit、16bit、32bit的數據傳輸 。本文設計的OPB_AHB橋接器主要是完成以下四個功能。
3.OPB_AHB橋接器結構
圖1是一個簡單的基于 MicroBlaze的OPB_AHB 橋接器拓撲結構圖。 MicroBlaze是一個軟核處理器,整個系統在 Xilinx的EDK環境下實現, AHB_OPB橋接器可以作為 OPB設備和 AHB設備之間數據、地址和控制命令的傳輸通道。
當OPB主設備要向 AHB從設備讀寫數據時, OPB_AHB橋接器可以作為 OPB總線這一側的從設備( Slave),同時在 AHB總線這一側充當主設備 (Master)的角色,此時 OPB_AHB橋接器主要工作是由圖 2中OPB2AHB bridge完成。當 AHB主設備要向 OPB從設備讀寫數據時, OPB_AHB橋接器可以作為AHB總線這一側的從設備( Slave),同時在 OPB總線這一側充當主設備 (Master)的角色,此時 OPB_AHB橋接器主要工作是由圖 2中AHB2OPB bridge完成[4]。
4.OPB_AHB橋接器的實現
實現兩種總線的互聯,關鍵是完成控制信號之間的轉換以及數據和地址的傳輸,本設計采用的方法包括。
(1)流水線方式, (2)將所有輸入的控制信號和數據地址總線都寄存一拍。
(3)控制信號都采用同 (4)步設計方法, (5)在OPB_Clk的上升沿觸發。
(6)數據的讀寫操作為同 (7)步讀寫。
4.1OPB2AHB_Brg的實現
(1) 所有控制信號采用同步設計思想,在 SOPB_Clk的上升沿觸發。 SOPB_Rst高電平有效,為同步復位,當其有效時,所有信號輸出 0狀態。
(2) 當橋接器檢測到 SOPB_Sel信號有效時,即表明橋接器被選中,成為 OPB總線上的從設備,或者檢測到 AHB_Resp信號狀態為RETRY,此時 OPB2AHB_Brg作為AHB總線上的主設備向 AHB仲裁器發出請求總線信號 AHB_BusReq。
(3) 當OPB2AHB_Brg檢測到 AHB總線側的允許信號 AHB_Grants時,說明橋接器的請求得 到允許,此時當 AHB_Ready有效時,可以根據 SOPB_BE判斷傳輸數據的大小,決定 AHB_Size的狀態,當 SOPB_BE為1111時,AHB_Size為010(32bit),SOPB_BE為1100或0011時,AHB_Size為001(16bit),SOPB_BE為0001、0010、0100、1000時,AHB_Size為000(8bit)。
(4) 當SOPB_RNW為高電平時,為讀取數據,數據流向是從 AHB_Rdata到Sl_Dbus,當 SOPB_RNW為低電平時,為寫數據,數據流向從 SOPB_Dbus到AHB_Wdata。地址總線相連,即SOPB_Abus連接AHB_Addr。
(5)當一次數據傳輸完成后, (6)置位Sl_xferAck信號, (7) 讓其輸出一個時鐘周期的高脈沖。
4.2 AHB_OPB_Brg的實現
(1) 當橋接器檢測到 AHB_Sel信號有效時,即表明橋接器被選中,成為AHB總線上的從設備,此時AHB2OPB_Brg作為OPB總線上的主設備向 OPB仲裁器發出請求總線信號 M_req。
(2)當橋接器接收到 OPB仲裁器發出的允許信號 OPB_Mgrant信號時, (3)表明橋接器可以
開始工作,(4)這個信號會激勵 M_Sel信號有效, (5)根據 IP核 BK3721的功能特性, (6) M_BE總是輸出 1111,(7) M_SeqAddr和M_busLock輸出為0。
(3) 當AHB_Write為高電平時,為寫數據有效,此時 AHB主設備向從設備橋接器寫數據,同時橋接器作為 OPB總線上的主設備向選中的 OPB從設備寫數據,數據流向為 AHB_Wdata到 M_Dbus。當AHB_Write為低電平時,為讀數據有效,此時 AHB主設備從橋接器(作為 AHB總線上的從設備)讀取數據,同時橋接器作為 OPB總線的主設備從選中的 OPB從設備讀取數據,數據流向為OPB_DBus到AHB_RData。
(8)當數據傳輸指 (9)示信號OPB_xferAck被檢測有效時, (10) AHB_Ready信號輸出高電平有效信號, (11)表示數據傳輸結束。
5.OPB_AHB橋接器的驗證
5.1 OPB2AHB_Brg的驗證
用verilog編寫testbench,在testbench中虛擬設備一個 AHB從設備存儲器 AHB_mem,存儲器的數據位寬和地址位寬都是 32位,通過測試平臺可以對虛擬存儲器進行數據的讀寫,并將數據的讀寫結果保存到 Wdata.txt文件中。
利用ModelSim工具對測試平臺進行仿真。在主設備向虛擬從設備寫數據時, SOPB_RNW為低電平,橋接器作為AHB上的主設備將 SOPB_DBus數據線上的數據通過 AHB_Wdata寫到 AHB_mem存儲器中,并在 WData.txt文件中顯示出來,仿真結果如圖 3 (a)所示。
在主設備從虛擬從設備讀取數據時, SOPB_RNW為高電平,橋接器作為 AHB上的主設備將AHB_mem存儲器的數據通過 AHB_Rdata讀取到Sl_Dbus數據總線上,并在 WData.txt文件中顯示出來,仿真結果如圖 3 (b)所示。
5.2 AHB2OPB_Brg的驗證
AHB2OPB_Brg驗證平臺主要分為測試激勵,被測對象以及響應輸出三部分。測試過程為:首先對測試激勵進行初始化,產生時鐘信號和復位信號及控制信號,然后向虛擬 OPB從設備(mem存儲器)寫數據,寫完數據后等待一段時間在進行讀取數據操作。在ModelSim中仿真結果如圖 4所示。
通過觀察,當寫信號時, AHB_WData數據總線上的數據能夠正確的寫入到虛擬從設備 OPB_mem中,當讀信號有效時,虛擬從誒設備 OPB_mem中的數據能夠正確通過 OPB_Dbus傳輸到AHB_RData總線上。
6.結束語
本文在分析了 AMBA總線協議和 OPB總線協議的基礎上,給出了OPB_AHB橋接器的設計和驗證方案。本文作者創新點是采用同步設計和流水線設計方法,能夠正確的轉換 OPB總線與 AHB總線之間的數據、地址、控制信號,提高了系統的運行速度和穩定性。最后通過 Xilinx的ISE綜合和時序仿真,最高頻率達到 100MHZ,并導入到 EDK環境中,選擇MicroBlaze軟核處理器構建 SoC系統,實現 OPB與AHB總線協議的互連。
責任編輯:gt
評論
查看更多