Avalon總線的地址對齊與NIOS編程

首先關於地址對齊的概念我不詳述了,你們能夠參考這篇文章:Avalon總線的地址對齊:Dynamic Addressing和Native Addressing
html

假設咱們定製了一個外設,數據寬度是32位,地址是2位。若是咱們想讓地址線乾點其餘的事,而不是傳地址,例如:ios

1 if(cs&wr)
2 begin
3 case(addr)
4     2'b00:  //自定義
5     2'b01:  //自定義
6 endcase
7 end

那在Nios EDS中,如何肯定addr呢?也就是說咱們使用IOWR_32DIRECT(BASE, OFFSET, DATA)時,怎麼肯定OFFSET?spa

相信你們已經想到答案了,答案其實很簡單:OFFSET爲0x00對應addr爲2'b00,OFFSET爲0x04對應addr爲2'b01,OFFSET爲0x08對應addr爲2'b10,OFFSET爲0x0C對應addr爲2'b11。code

其餘數據寬度也是同樣,假設數據寬度是8位,地址是2位,IOWR_32DIRECT(BASE, 0x00, DATA)就是對應addr的2'b00,IOWR_32DIRECT(BASE, 0x01, DATA)就是對應addr的2'b01,其他類推便可。htm

還有一篇文章你們也能夠參考一下:理解Avalon總線的靜態地址對齊與動態地址對齊blog

相關文章
相關標籤/搜索