在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文章
2841瀏覽量
77882 -
時鐘
+關注
關注
11文章
1879瀏覽量
132834 -
AXI總線
+關注
關注
0文章
66瀏覽量
14498 -
Zynq
+關注
關注
10文章
614瀏覽量
48012 -
AXI
+關注
關注
1文章
134瀏覽量
17088
發布評論請先 登錄
電氣CAD文件中高效的工作流程
FPGA的UART工作流程 UART是怎么工作的
Simulink是什么?Simulink的工作流程是怎樣進行的?
工作流程圖怎么用?有哪些繪制工作流程圖的軟件
NX CAD軟件:數字化工作流程解決方案(CAD工作流程)

評論