Wishbone Bus的基本架構
Wishbon Bus由Masters與Slaves和Bus的框架 (Bus Framework) 所組成。
Wishbon Bus的Masters與Slaves之介面訊號 (Interface Signals) 包括系統Bus Framework (圖1的SYSCON ) 提供的 RST, CLK; 以及由Master所輸出的ADR,WDT (或圖1 Master的DAT_O),WE,SEL,STB,CYC等訊號,及由Slave回應的RDT (或圖1 Master的DAT_I) 和ACK。
另外,還保留一些可以User Defined的擴充訊號,這些擴充訊號關於 Burst Transaction的部分,在Specification另有定義,這部分是為了得到更好的效率,本章實驗也都有應用。
圖1 Wishbon Bus的Masters與Slaves之介面訊號
Wishbon Bus可以適用多種Bus topology,最常用的為Shared Bus型態,為Cost較低,且效率亦可的架構。本章所應用的皆為此一架構。上圖Shared Bus型態,邏輯上為一共同的Bus,但實體上,有兩類實現方式:Tri-state Bus與Multiplexed Bus,如下圖[圖2 ]。前者為實體真正共用同一導線之Bus,再PCB層級較常使用(像PCI即是) ,再SoC或FPGA的On-Chip-Bus,
為了Timing與Bus contention 造成Electron migration的問題,則較少使用Tri-state Bus,而是以Multiplexed Bus的型態,此一型態Bus電流的切換,發生在事先已良好定義的Multiplexer內,一般認為較易使用,並且因為Bus負載為隔離的,而具有有較好的Timing特性。本章所應用的皆為Multiplexed Bus架構。
圖2 Wishbon Bus Shared Bus型態
圖3 Multiplexed Bus架構之Shared Bus
圖4
另外Wishbone Bus也可以應用在下圖Data Through Put最好的Cross Bar或 Pipeline Data-flow[圖6 ]的topology。
圖 5 Wishbone Bus的Pipeline Data-flow topology
左下圖[圖7 ]為Wishbone Bus Write的基本Timing圖,這是一個具有Clock的Bus,所有的信號在Clock的Postive Edge被確認。
圖6 Wishbone Bus Write/ Read的基本Timing
在此Write Timing中, Master的STB 與CYC 同時assert後, Slave 非同步地回應以ACK, 並準備在接著的Postive edge收下Master要求在位址ADR要寫的資料DAT_O,若Slave認為它無法及時接受此一寫入要求,則可以延後assert ACK,如下圖[圖8 ]。相類似地Read Timing如[圖9 ]
圖7延後assert ACK, 即Synchronous Cycle Termination
另外, 為了System Clock Cycle 邏輯閘timing delay的問題,系統可以選擇不以非同步方式回應資料與ACK,(即Asynchronous Cycle Termination) ,而是以與圖7相同的同步型態,在下一個Cycle才回應,(即Synchronous Cycle Termination) ,以減少critial path timing delay, 提高System clock frequecy 與Bus throughput。
圖8 Wishbone的Burst Synchronous Cycle或稱Advanced Synchronous Cycle Termination
圖7之laterncy為2 cycles,Throughput為2 cycles per data transfer,並不佳,在包括Wishbone的多種Bus System都會以Busrt的方式(在Wishbone Specification稱Advanced Synchronous Cycle Termination) ,如圖10,使Throughput維持為1 cycle per data transfer的較好方式。
而為方便Burst的實現,Wishbone Master會另外產生CTI (Cycle Type Identifier)與BTE (Burst Type Extension)訊號,如圖9,提供Slave作為Pre-fetch的依據.
圖 9 Wishbone CTI (Cycle Type Identifier)及BTE (Burst Type Extension)訊號
圖10是上述幾種Wishbone Cycle型態的效率比較表,本章的實驗的設計中,在一些throughput需求較高的Master與Slave採取Advanced Synchronous Cycle Termination,而一些簡單而無throughput需求的Master與Slave則採Asynchronous 或 Synchronous Cycle Termination. Wishbone Bus的定義與設計也確保這些能力不同的Master/Slave間仍可相容。
圖10幾種Wishbone Cycle型態的效率比較表