新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VerilogHDL的SDX總線與Wishbone總線接口轉化的設計與實現

        基于VerilogHDL的SDX總線與Wishbone總線接口轉化的設計與實現

        作者: 時間:2012-09-08 來源:網絡 收藏
        規范中,使用Master/Slave結構實現靈活的系統設計,MaSTer/Slave有4種互連方式,分別為點對點、數據流、共享總線和交叉互連。且Master和Slave之間使用握手協議,當準備好數據傳輸時,Master使STB_O有效,且一直保持到Slave的響應信號ACK_O,ERR_O,或RTY_O之一有效。Master在每個時鐘的上升沿對響應信號采樣,若該信號有效,則置低STB_O,如圖5所示。

        圖5握手時序

        2.1基本傳輸周期

        支持完整的普通數據傳輸協議,包括單個讀寫周期、塊讀寫周期等。數據總線寬度為8~64位,地址總線寬度最高可達64位。Wishbone數據總線和地址總線分離,在傳輸上,保持一個地址、一個數據的傳輸結構。以下為Wishbone總線單次讀、寫時序圖。圖6為單次讀周期時序,圖7為單次寫周期時序。

        圖6單次讀周期時序

        圖7單次寫周期時序

        3系統設計與實現

        系統所有控制邏輯均在Altera的CycloneⅢ系列FPGA(EP3C40F)上實現。FPGA的信號線只有系統時鐘、串行輸入數據,由于中傳輸數據為曼徹斯特碼型,因此需將曼徹斯特碼解碼為BCD碼同時將串行輸入數據轉化為并行數據,將轉化后標準的16位并行BCD碼輸入SDX模塊對SDX協議響應,將需要數據讀、寫的消息響應同時產生數據讀、寫以及地址信號并發起Wishbone總線操作,實現在Wishbone總線上高效的數據傳輸。Wishbone總線主要使用點對點的互聯方式,將Wishbone總線中Master模塊中的輸出信號直接連接到Slave模塊,其優點是多個數據可以并行處理,從而提高系統的整體數據處理能力。系統的整體設計框圖如圖8所示。

        圖8系統的整體設計框圖

        4仿真結果分析

        為驗證設計系統的性能,使用Modelsim6.2仿真軟件對系統功能進行了仿真測試。

        圖9為Wishbone總線寫操作,且為單字寫傳輸,在時鐘上升沿,Master將DAT_O、ADR_O信號放到數據、地址總線上,將CYC_O、STB_O、WE_O置高表示寫傳輸開始,在下一個時鐘沿到達之前,Slave檢測到Master發起的操作,將ACK_O、ERR_O、RTY_O之一置高并傳輸到Master中,若Master檢測到ACK_I為高時,在下一個時鐘的上升沿將CYC_O、STB_O置低表示操作完成,若ERR_I為高,則表示該操作錯誤,取消此操作,進行下一步操作,若RTY_I表示Slave總線忙,則重試。

        圖9Wishbone寫操作仿真圖

        圖10為Wishbone總線讀操作,且為單字讀傳輸,在時鐘上升沿,Master將ADR_O信號放到地址總線上,WE_O保持為低,同時將CYC_O、STB_O置高表示讀傳輸開始,在下一時鐘沿到達之前,Slave檢測到Master發起的操作,將ACK_O、ERR_O、RTY_O之一置高并傳輸到Master中,同時將適當的數據傳輸到Master的DAT_I中,若Master檢測到ACK_I為高時,在下一個時鐘的上升沿將CYC_O、STB_O置低表示該次讀操作完成,若ERR_I為高,則表示該操作錯誤,則取消此操作,進行下一操作,若RTY_I表示Slave總線忙,則重試。

        圖10Wishbone讀操作時序圖

        5結束語

        討論了基于FPGA的與Wishbone總線的接口轉換,并介紹了不同總線的接口標準與時序,通過在Modelsim下的仿真,Quartus中綜合,可下載到FPGA中進行調試,實現了系統的整體性能,從而保證了系統快速、高效的傳輸。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彭阳县| 通河县| 阳谷县| 南昌市| 庆阳市| 合作市| 木兰县| 灵石县| 金昌市| 门源| 会泽县| 阿坝县| 吴旗县| 沈丘县| 伊川县| 墨江| 花垣县| 宜兰县| 沙坪坝区| 青铜峡市| 龙井市| 盐源县| 建瓯市| 阿克陶县| 孟州市| 石渠县| 镇原县| 沙田区| 乌拉特前旗| 宁蒗| 金坛市| 来凤县| 策勒县| 施甸县| 武隆县| 海丰县| 云和县| 东丽区| 雅安市| 济南市| 馆陶县|