Avalon Slave Transfer

Avalon Slave Transfer

以下文獻都出自於Altera官方網站文件Avalon 規格書。

1 Avalon-MM Slave read

如圖所示:

clip_image003

圖2.1 Avalon-MM Slave read

由上圖可知道,要完成的訊號有clk, address, byteenable, read, chipselect, readdata,又因為要chipselect為1的時候才能將值寫入到軟體層(通常指令都是IORD()),其他時候都不用去理它,因此我程式就寫:


if (avs_s1_address == 2'h0 && avs_s1_chipselect && avs_s1_read)

上面意思:當NIOS 執行IORD指令且Address=0 時就做什麼事

Address傳進來,是為了加以區別不同的位置要做不同的事。

2 Avalon-MM Slave write

如圖所示:

clip_image005

圖2.2 Avalon-MM Slave write

由上圖可知道,要完成的訊號有clk, address, byteenable, write, chipselect, writedata,又因為要chipselect為1的時候才能讀從軟體層傳來的值(通常指令IOWR()),其他時候都不用去讀writedata,因此我程式就寫:


if (avs_s1_address == 2'h0 && avs_s1_chipselect && avs_s1_write)

上面意思:當NIOS 執行IOWR指令且Address=0 時就做什麼事

Address傳進來,也是為了加以區別不同的位置要做不同的事。