【Xilinx AXI总线】Xilinx AXI Memory Mapped Interfaces

AXI接口的两种类型:

  1. stream 流
  2. Memory Mapped 存储映射

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

AXI Stream Interface

1、数据流应用

2、最基本的一个写通道

主机向从机写数据,从机先发送READY信号,表示已经准备好接收数据,主机向从机发送VALID信号,表示有效发送

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

AXI Memory Mapped Interface(Channels)

AXI 存储映射接口(通道)

读操作:

主机对从机进行读操作,需要让主机知道读数据的地址 read address

写操作:

主机对从机进行写操作,需要知道写的地址以及写入的数据,写完之后从机要给主机一个回应,表示数据已经写成功或者失败。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

在写地址所涉及到的信号:

Write Address; AWVALID; AWADDR; AWREADY ; AWLEN; AWSIZE; AWID; AWCACHE;

主机在给从机写写地址的时候,用于数据写入的地址,接着主机会向从机发送AWVALID; AWADDR来表示地址有效,准备开始发送;接着从机发出AWREADY信号表示已经准备好接收信号,当 AWVALID,AWREADY这两个信号同时拉高时,就可以开始写地址;AWLEN表示传输的突发数量;AWSIZE表示每次传输的大小(多少bit); AWID由主机发送给从机,表示传输主机的ID,用于从机区分不同的主机,可以让从机知道数据是由哪个主机传输过来的; AWCACHE

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

在写数据所涉及到的信号:

Write Data、WVALID、WDATA、WREADY、WLAST、WSTRB

主机在给从机写数据的时候,首先也是要先进行一个握手协议,主机向从机发送WVALID、WDATA,表示已经准备好可以开始写数据,然后从机发出WREADY信号表示已经准备好接收发来的数据,从而两个达成握手协议,在发送最后一个数据时,主机向从机发送WLAST信号告诉从机这是最后一个数据,而最后的WSTRB表示当WSTRB的高/低位为1表示相应数据的高/低位有效,相反如果高/低位为0表示数据的高/低位数据无效。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

写回应所涉及的信号:

BVALID、BREADY、BRESP、BID

当写操作完成时,从机会给主机发送信号,同样的也会进行一个握手协议,但是这次是从机先发送一个BVALID信号表示已经可以开始发送了,而主机会发送一个BREADY信号表示已经准备好接收了,从而达成握手协议,此时从机发送BRESP信号给主机,如果是00则表示写成功,而如果是01则表示低位写错误,最后的BID信号表示从机要将回复信号发送给哪个主机,给出精确的主机ID避免回复错误。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

读地址时所涉及的信号:

ARVALID、ARADDR、ARREADY、ARLEN、ARSIZE、ARID、ARCACHE

和写操作前面都类似,同样先经过一个握手协议,主机给出ARADDR的读地址,并且ARVALID告诉从机地址有效可以要开始读了,从机给出ARREADY信号表示ok已经准备好了,可以来读取了。ARLEN表示传输的突发数量;ARSIZE表示每次传输的大小(多少bit),ARID同写的一样表示是哪个主机ID来对从机进行读操作、ARCACHE由主机给出表明缓存的类型。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

读回应所涉及的信号:

RVALID、RREADY、RDATA、RRESP、RLAST、RID

同样的先进行握手协议,从机发送RVALID表明准备要发信号了,此时主机给出RREADY,表明主机已经准备好了,可以接收信号了,RDATA表示从机向主机发送数据,RRESP表示从机发出这段信号表明传输数据的状态(成功或者失败),RLAST信号表示在传输书籍的最后一个,以提醒主机,RID表示传输的数据是给哪个主机ID,避免传输错误。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

还有一些其他的信号:

1、低功耗接口:

外设可以改变不同的功耗状态。

2、保护类型:

传输的安全等级。

3、为传输的效率做服务:

指定传输的优先级。

4、区域标识符

多种的存储区域为一个单独的从机设备

5、用户自定义的信号

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

从图中可以看出,在进行写操作的时候有三个通道分别是:写地址通道、写数据通道、写响应通道;而读操作的时候只有两个通道:读地址通道、读数据通道。这五个通道在执行前都需要进行握手协议。

握手协议的三种形式

1、VAILD信号先拉高,READY信号随后拉高。

01d4f4f0217d4ee38607fd69f58a24a2.png

2、 READY信号先拉高, VALID信号随后拉高。

9ee8abe16646455aba45860e4c4f1fa9.png

3、VAILD信号和READY信号同时拉高

0dd5bf6ace0c4fffa707ada55ebc96a0.png

 本文章为视频笔记,视频来源:AXI Memory Mapped Interfaces & Hardware Debugging in Vivado (Lesson 5)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13W411H7Mw?share_source=copy_web

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linest-5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值