在zynq開發(fā)過程中,AXI總線經(jīng)常遇到,每次看到AXI總線相關的信號時都一頭霧水,仔細研究一下,將信號分分類,發(fā)現(xiàn)其實也不難。
AXI 結(jié)構(gòu)
AXI協(xié)議通道
? 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,
寫數(shù)據(jù)通道信號
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,
讀數(shù)據(jù)通道信號
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有效時輸出地址、數(shù)據(jù)和控制信息。READY 信號有效表示可以接收信息。只有當VALID和READY 都有效時才可以進行通信。
主機發(fā)出VALID,從機發(fā)出READY ,當VALID和READY都為高時,握手成功。
通道握手信號
通道信號要求
write transaction
寫地址通道
主機輸出有效地址和控制信息時將AWVALID 信號置1,AWVALID 置1后必須等待從機AWREADY 置1。完成寫地址操作,進入寫數(shù)據(jù)操作。
寫數(shù)據(jù)通道
在寫數(shù)據(jù)操作時,輸出有效數(shù)據(jù)時將WVALID 置1。WVALID 置1后等待從機WREADY 置1。在寫入最后一個數(shù)據(jù)時,將WLAST信號置1。之后主機等待從機寫反饋。
寫反饋通道
主機接收到從機發(fā)出BVALID信號時,將BREADY 信號置1,接收從機反饋信息。主機BREADY 信號可以默認為1。
以上過程完成主機到從機發(fā)送數(shù)據(jù)流程。
read transaction
讀地址通道
主機輸出有效地址和控制信息時將ARVALID信號置1,ARVALID 置1后必須等待從機ARREADY 置1。完成讀地址操作,進入讀數(shù)據(jù)操作。
讀數(shù)據(jù)通道
當從機輸出有效數(shù)據(jù)時將RVALID置1,RVALID置1后等待主機RREADY置1,從機發(fā)送最后一個數(shù)據(jù)時將RLAST置1。
以上過程完成接收數(shù)據(jù)流程。
-
信號
+關注
關注
11文章
2852瀏覽量
78281 -
時鐘
+關注
關注
11文章
1901瀏覽量
133231 -
AXI總線
+關注
關注
0文章
66瀏覽量
14556 -
Zynq
+關注
關注
10文章
615瀏覽量
48251 -
AXI
+關注
關注
1文章
136瀏覽量
17251
發(fā)布評論請先 登錄
電氣CAD文件中高效的工作流程
FPGA的UART工作流程 UART是怎么工作的
Simulink是什么?Simulink的工作流程是怎樣進行的?
工作流程圖怎么用?有哪些繪制工作流程圖的軟件
NX CAD軟件:數(shù)字化工作流程解決方案(CAD工作流程)

評論