wishbone
wishbone
Wishbone 匯流排最先是由Silicore公司提出,現在己被移交給OpenCores組織維護,它通過在IP核之間建立一個通用介面完成互連。可以用於在軟核、固核以及硬核之間進行互聯。
Wishbone規範具有如下特點:簡單、緊湊,需要很少的邏輯門;完整的普通數據據傳輸匯流排協議,包括單讀寫、塊讀寫、讀一修改一寫周期、事件周期;數據匯流排寬度可以是8-64位;支持大端(big-endian)和小端(little-endian),介面自動完成兩者之間的轉換。支持存儲器映射、FIFO存儲器、交叉互聯;握手協議,允許速率控制;可以達到每個時鐘周期進行一次數據傳輸;支持普通周期結束、重試結束、錯誤結束等匯流排周期形式;支持用戶自定義的標誌:採用MASTER/SLAVE體系結構;支持多點進程(Multi-MASTER):仲裁演演算法用於定義;支持各種各樣的IP核互聯,包括USB、雙向匯流排、復用器互聯等;同步邏輯設計;非常簡單的時序標準;與硬體實現技術無關(FPGA, ASIC等);與設計工具無關。
相對於其他的IP核介面規範來說,Wishbone介面規範具有簡單、開放、高效、利於實現等特點而且完全免費,並沒有專利保護。基於上述優點,因此採用Wishbone匯流排進行介面設計。本文對Wishbone匯流排介面的設計參考了OpenCore上的有關設計。
WISHBONE為我們提供了靈活的連接結構,使我們能非常容易的定製自己的所需用途。它通過提供標準的數據交換協議,使用戶非常方便進行TEAMWORK,把系統組件化,增加了模塊的重用性。節省了二次開發的時間。 WISHBONE地址和數據位都是32位(如果小於32位也可以進行通信),最多可以連接8個主設備,16個從設備,當多個主設備申請控制時,通過仲裁機制決定什麼時候哪個主設備能訪問共享匯流排。
WISHBONE具有靈活的可變性連接方式,允許系統通過四種不同的方式實現IP CORES之間的互聯:
(point-to-point interconnection)這是IP CORES之間最簡單的連接方式,只需要一主一從兩個IP CORES之間進行數據通信,例如,主設備可以是微處理器IP CORE ,從設備可以是串口的I/O PORT.
(data flow interconnection)這種連接方式用於數據以時序的方式進行處理。一些時候,這種方式可用作流水線作業。比如下圖三個IP CORES都是實現浮點運算,假設它們工作的時間都相同,這樣三個IP CORES互聯在一起,可以實現高速的類似并行化的時序操作,使處理數據的時間節省三分之二。
(share bus interconnection)這種方式通常用於兩個或以上主設備和一個或以上從設備之間的互聯,仲裁機制決定什麼時候哪個主設備能夠訪問匯流排,這種連接方式的主要優點是結構緊湊,能夠用較少的邏輯資源去實現相關結構。缺點是:每次只能有一個主設備訪問匯流排,其他的主設備在匯流排忙時只能處於等待狀態,降低了數據傳輸的速度。這種共享匯流排的連接方式我們可以在一些標準的匯流排中看到,例如PCI,VMEbus。