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 寫入模式訊號時序圖