• 沒有找到結果。

3.2   軟硬體協同設計方法

3.2.3   Slave

實際在設計Avalon Bus 時,Slave 端電路的設計難度會比 Master 端電 路還要易於設計許多,且在設計電路時須按照Avalon Bus 所規範的訊號時 序圖來動作。表 3-6 為 Slave 端電路的訊號表,較常用的 Slave 端工作模 式將在3.2.3.1 節讀取模式 (Read Mode)、3.2.3.2 節寫入模式 (Write Mode)、

3.2.3.3 節多個等待週期的讀取模式 (Wait Request Mode For Write)、3.2.3.4 節多個等待週期的寫入模式 (Wait Request Mode For Read)個別說明。

表 3-6 Slave 端訊號表

訊號類型 寬度 方向 敘述

read、read_n 1 Input 讀取致能訊號 write、write_n 1 Input 寫入致能訊號 address 1-32 Input 位址線訊號

38

waitrequest

waitrequest_n 1 Output

當 Slave 端無法立即處理 Avalon Bus 的要求時,則 須送出此訊號。

3.2.3.1 讀取模式 (Read Mode)

圖 3-15 為 Slave 端讀取訊號時序圖,其動作原理敘述如下:

(A) Avalon Bus 在時脈訊號 clk 的第一個上升緣觸發時開始傳輸。

(B) 此時 address、byteenable、read 訊號為有效訊號。

(C) Avalon Bus 內部會對 Slave 端的位置解碼,並產生 chipselect 訊號。

(D) 當 Slave 端偵測到 chipselect 與 read 訊號時,會致能 Slave 端讀取功 能,此時會根據address 訊號到相對應的暫存器將暫存器值立即送到 readdata。

(E) 在下一個 clk 的上升緣觸發之前,Avalon Bus 會將 readdata 訊號取走。

圖 3-15 Slave 讀取模式訊號時序圖

3.2.3.2 寫入模式 (Write Mode)

圖 3-16 為 Slave 端寫入訊號時序圖,其動作原理敘述如下:

(A) Avalon Bus 在時脈訊號 clk 的第一個上升緣觸發時開始傳輸。

(B) 此時 address、byteenable、write 訊號為有效訊號。

39

(C) Avalon Bus 內部會對 Slave 端的位置解碼,並產生 chipselect 訊號。

(D) 在下一個 clk 的上升緣觸發之前,Slave 端會根據此刻的 address、

byteenable、writedata、write、chipselect 訊號,立即將 writedata 資料寫入。

圖 3-16 Slave 寫入模式訊號時序圖

3.2.3.3 多個等待週期的讀取模式

圖 3-17 為 Slave 端有多個等待週期的讀取模式訊號時序圖,其動作原 理敘述如下:

(A) Avalon Bus 在時脈訊號 clk 的第一個上升緣觸發時開始傳輸。

(B) 此時 address、byteenable、read、readdata 訊號為有效訊號。

(C) Avalon Bus 內部會對 Slave 端的位置解碼,並產生 chipselect 訊號。

(D) Slave 端會在下一個 clk 的上升緣觸發之前,送出 waitrequest 訊號,要 求Avalon Bus 等待。

(E) 在 waitrequest 訊號有效期間內,Avalon Bus 會使所有訊號保持不變。

(F) 等待 Slave 端準備好有效的 readdata 資料後,將 waitrequest 訊號設置 為無效。

(G) 在下一個 clk 的上升緣觸發之前,Avalon Bus 會將 readdata 訊號取走。

40

圖 3-17 多個等待週期的 Slave 讀取模式訊號時序圖

3.2.3.4 多個等待週期的寫入模式

圖 3-18 為 Slave 端有多個等待週期的寫入模式訊號時序圖,其動作原 理敘述如下:

(A) Avalon Bus 在時脈訊號 clk 的第一個上升緣觸發時開始傳輸。

(B) 此時 address、byteenable、write、writedata 訊號為有效訊號。

(C) Avalon Bus 內部會對 Slave 端的位置解碼,並產生 chipselect 訊號。

(D) Slave 端會在下一個 clk 的上升緣觸發之前,送出 waitrequest 訊號,要 求Avalon Bus 等待。

(E) 在 waitrequest 訊號有效期間內,Avalon Bus 會使所有訊號保持不變。

(F) 等待 Slave 端準備好寫入動作後,將 waitrequest 訊號設置為無效。

(G) 在下一個 clk 的上升緣觸發之前,Slave 端會根據此刻的 address、

byteenable、writedata、write、chipselect 訊號,立即將 writedata 資料寫入。

圖 3-18 多個等待週期的 Slave 寫入模式訊號時序圖

相關文件