在zynq開發過程中,AXI總線經常遇到,每次看到AXI總線相關的信號時都一頭霧水,仔細研究一下,將信號分分類,發現其實也不難。
AXI 結構
AXI協議通道
? Read address, which has signal names beginning with AR.
? Read data, which has signal names beginning with R.
? Write address, which has signal names beginning with AW.
? Write data, which has signal names beginning with W.
? Write response, which has signal names beginning with B
write transaction
使用 write address, write data, and write response channels
read transaction
使用 the read address and read data channels.
信號描述
時鐘和復位
input ARESETN,
input ACLK,
寫地址通道信號
output [0:0] M_AXI_AWID,
output [31:0] M_AXI_AWADDR,
output [7:0] M_AXI_AWLEN,
output [2:0] M_AXI_AWSIZE,
output [1:0] M_AXI_AWBURST,
output M_AXI_AWLOCK,
output [3:0] M_AXI_AWCACHE,
output [2:0] M_AXI_AWPROT,
output [3:0] M_AXI_AWQOS,
output [0:0] M_AXI_AWUSER,
output M_AXI_AWVALID,
input M_AXI_AWREADY,
寫數據通道信號
output [63:0] M_AXI_WDATA,
output [7:0] M_AXI_WSTRB,
output M_AXI_WLAST,
output [0:0] M_AXI_WUSER,
output M_AXI_WVALID,
input M_AXI_WREADY,
寫反饋通道信號
input [0:0] M_AXI_BID,
input [1:0] M_AXI_BRESP,
input [0:0] M_AXI_BUSER,
input M_AXI_BVALID,
output M_AXI_BREADY,
讀地址通道信號
output [0:0] M_AXI_ARID,
output [31:0] M_AXI_ARADDR,
output [7:0] M_AXI_ARLEN,
output [2:0] M_AXI_ARSIZE,
output [1:0] M_AXI_ARBURST,
output [1:0] M_AXI_ARLOCK,
output [3:0] M_AXI_ARCACHE,
output [2:0] M_AXI_ARPROT,
output [3:0] M_AXI_ARQOS,
output [0:0] M_AXI_ARUSER,
output M_AXI_ARVALID,
input M_AXI_ARREADY,
讀數據通道信號
input [0:0] M_AXI_RID,
input [63:0] M_AXI_RDATA,
input [1:0] M_AXI_RRESP,
input M_AXI_RLAST,
input [0:0] M_AXI_RUSER,
input M_AXI_RVALID,
output M_AXI_RREADY,
Basic read and write transactions
握手過程
每個通道都有VALID/READY 信號,VALID有效時輸出地址、數據和控制信息。READY 信號有效表示可以接收信息。只有當VALID和READY 都有效時才可以進行通信。
主機發出VALID,從機發出READY ,當VALID和READY都為高時,握手成功。
通道握手信號
通道信號要求
write transaction
寫地址通道
主機輸出有效地址和控制信息時將AWVALID 信號置1,AWVALID 置1后必須等待從機AWREADY 置1。完成寫地址操作,進入寫數據操作。
寫數據通道
在寫數據操作時,輸出有效數據時將WVALID 置1。WVALID 置1后等待從機WREADY 置1。在寫入最后一個數據時,將WLAST信號置1。之后主機等待從機寫反饋。
寫反饋通道
主機接收到從機發出BVALID信號時,將BREADY 信號置1,接收從機反饋信息。主機BREADY 信號可以默認為1。
以上過程完成主機到從機發送數據流程。
read transaction
讀地址通道
主機輸出有效地址和控制信息時將ARVALID信號置1,ARVALID 置1后必須等待從機ARREADY 置1。完成讀地址操作,進入讀數據操作。
讀數據通道
當從機輸出有效數據時將RVALID置1,RVALID置1后等待主機RREADY置1,從機發送最后一個數據時將RLAST置1。
以上過程完成接收數據流程。
-
信號
+關注
關注
11文章
2789瀏覽量
76730 -
時鐘
+關注
關注
10文章
1733瀏覽量
131446 -
AXI總線
+關注
關注
0文章
66瀏覽量
14261 -
Zynq
+關注
關注
10文章
609瀏覽量
47175 -
AXI
+關注
關注
1文章
127瀏覽量
16622
發布評論請先 登錄
相關推薦
評論