在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
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9MAaTpp5-1650087173425)(./pic/2.png)]](https://i-blog.csdnimg.cn/blog_migrate/171d6eae5972dbe03b317ded6ce65a42.png)
read transaction
使用 the read address and read data channels.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0hl6ZJ4I-1650087173427)(./pic/3.png)]](https://i-blog.csdnimg.cn/blog_migrate/dcde15a34f11b5c2771c96beebac18cf.png)
信号描述
时钟和复位
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都为高时,握手成功。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S7Hq9HjN-1650087173428)(./pic/4.png)]](https://i-blog.csdnimg.cn/blog_migrate/74f1d9f633b74f218218c99e65d909d5.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TckPSI0N-1650087173428)(./pic/5.png)]](https://i-blog.csdnimg.cn/blog_migrate/0dae952f516f2f43ea6e52bca00e80e2.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GsEvNJ9c-1650087173429)(./pic/6.png)]](https://i-blog.csdnimg.cn/blog_migrate/774fb5f947892534a2b9abaae2b808a7.png)
通道握手信号
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1SpszhJj-1650087173429)(./pic/7.png)]](https://i-blog.csdnimg.cn/blog_migrate/8c260113cf5bc910803ae9942f8596ff.png)
通道信号要求
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。
以上过程完成接收数据流程。
本文详细介绍了Zynq开发过程中AXI总线的结构和通道,包括读写交易的信号分类。AXI协议通过读写地址、数据和响应通道进行通信。写交易涉及writeaddress、writedata和writeresponse,读交易涉及readaddress和readdata。每个通道的VALID/READY信号用于握手,确保数据传输的正确同步。理解这些信号对于有效地进行Zynq系统设计至关重要。
3953

被折叠的 条评论
为什么被折叠?



