文档章节

AXI4_full协议详解

whoisliang
 whoisliang
发布于 07/07 16:56
字数 1388
阅读 229
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

AXI4-full协议介绍
AXI4.0-full包含突发控制信号,所以可以进行突发传输,在只指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。主要用于往DDR或者OCM中写入大量数据时使用。

信号线详细描述
下面信号包含五个通道的所有信号。其中每个通道都有其自己的双向握手机制信号线xxVALID和xxREADY,这俩信号线的介绍,详见AXI总线介绍。

全局信号
ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。
ARESETn 全局复位信号,低电平有效。在复位期间,所有的xxVALID信号必须复位为低电平。其他的信号可以是任意值。
写地址通道信号
主机(master)控制的信号
AWID 交易标识符,乱序时使用。初学者就先默认为0吧。
AWADDR 地址信号线,传输地址信息。
AWLEN 指定突发写长度,Burst_Length = AxLEN[7:0] + 1。如要一次传输16个数据,那么AWLEN=15.注意事项如下
突发事件不能跨越4KB地址边界。即起始地址到结束地址(AWADDR + AWLEN * (WDATA位宽/4))都必须在0xxxxxx000-0xxxxxxFFF。也就是x代表的位必须一致。
AWBURST类型为INCR时,支持1-256长度的传送。
AWBURST类型为其他时,支持1-16长度的传送。
AWSIZE 每次传输的字节,和WDATA宽度相关。如WDATA为32位。那么AWSIZE=log2(32/8)=2。
AWBURST 突发类型
FIXED: 0 固定模式,Xilinx不建议使用此模式。
INCR: 1 递增模式(Incrementing),递增值依赖于传送宽度。比如数据总线AWADDR为32位,那么next_AWADDR_value = current_AWADDR_value + 32/8;
WRAP: 2
Reserved: 3
AWLOCK 总线锁信号,可提供操作的原子性。一般赋值为0。
AWCACHE 内存类型。xilinx建议赋值为4'b0011。
AWPROT 访问权限信号线,xilinx建议赋值为3'b000.xilinx IP 一般忽略此信号。
AWQOS 服务质量,xilinx使用其值0b0000.表示接口不参与任何QoS方案。AXI4协议没有指定QoS标识符的确切使用。该规范建议将AxQOS用作相关的写或读事务的优先级指示器。更高的值表示更高的优先级事务。
AWUSER 用户自定义信号。ip交互中一般用不到。赋值为1.
AWVALID
从机(slave)控制的信号
AWREADY
AWREGION 区域标志,能实现单一物理接口对应的多个逻辑接口。xilinx主机接口没有此信号线,从机有。初学者就默认为0吧。
写数据通道信号
主机(master)控制的信号
WDATA 数据信号线,传输数据信息。
WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于4'b0010,那么代表WDATA[15:8]中的数据有效。其他无效。如果要求WDATA[31:0]32位全有效,那么WSTRB就应该等于4'b1111.
WLAST 置高表示突发数据中的最后一个数据。
WUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
WVALID
从机(slave)控制的信号
WREADY
写应答通道信号
主机(master)控制的信号
BREADY
从机(slave)控制的信号
BID 交易标识符
BRESP
OKEY 0 正常访问成功
EXOKEY 1
SLVERR 2 从机错误
DECERR 3 解码错误,比如没有从机的地址。
BUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
BVALID
读地址通道信号
主机(master)控制的信号
ARID 读地址通道信号的意义跟写地址通道的相似。
ARADDR
ARLEN
ARSIZE
ARBURST
ARLOCK
ARCACHE
ARPROT
ARQOS
ARUSER
ARVALID
从机(slave)控制的信号
ARREADY
ARREGION
读数据通道信号
从机(slave)控制的信号
RREADY
从机(master)控制的信号
RID 读数据通道信号的意义跟写数据通道的相似。
RDATA
RRESP
RLAST
RUSER
RVALID
读写时序和握手时序
关于AXI4.0-full的读写时序和握手时序请参看AXI总线介绍。

AXI-lite主从交互仿真
vivado创建AXI外设。
添加主从接口。
编写仿真tb文件。仿真相关的文件见附件axi-full.zip。
下图是AXI-full主从交互的时序图,主机先通过总线写数据,然后通过读总线将其写入的数据读了出来。图中画圆圈的地方是每个通道第一次握手的时序(后续的握手时序没有标记)。


文档参考
IHI0022G_amba_axi_protocol_spec.pdf
IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
ug761_axi_reference_guide.pdf
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。


————————————————
版权声明:本文为CSDN博主「theboynoName」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_23274715/article/details/102500510

whoisliang
粉丝 5
博文 845
码字总数 352347
作品 0
武汉
私信 提问
加载中
请先登录后再评论。
OpenConnect VPN 服务器--ocserv

ocserv 全称是 OpenConnect VPN Server。实现了 AnyConnect SSL VPN 协议,兼容 OpenConnection VPN 客户端。特点是体积小、安全和可配置。依赖标准协议如 TLS 1.2 和数据报文 TLS。...

匿名
2013/03/06
8.7K
0
PHP OAuth API

PHP OAuth API可以授权访问的用户一个API使用OAuth协议。它抽象OAuth 1.0,1.0和2.0在同一个类,因此您可以使用相同的“获得一个令牌”授权访问代表当前用户的任何API支持任何版本的OAuth协议。...

匿名
2012/11/01
3.9K
0
轻量级数据存储服务--LLServer

LLServer是本人基于libevent和leveldb这两个开源软件,开发的轻量级数据存储服务器软件,借助libevent高效网络接口实现对leveldb的访问封装。 其支持http协议和memcached协议。也就是可以通过...

代震军
2012/11/06
1K
0
异步Tor控制协议的实现--txtorcon

txtorcon是一个基于Twisted的异步Tor控制协议的实现。Twisted 是一个用Python写的事件驱动的网络引擎,和洋葱路由网络Tor是一个旨在促进人们的隐私和安全的互联网。它包括单元测试有96% +覆盖...

匿名
2012/11/23
611
0
uWSGI轻量级项目--Wheatserver

Wheatserver来自于构造一个开源的uWSGI轻量级的项目,但随着项目发展,可插拔式的工程构建使得发展为通用应用服务器,分离的模块使得极易构造出适合的应用环境。通过Wheatserver,我们构建出...

yuyuyu101
2013/04/14
610
0

没有更多内容

加载失败,请刷新页面

加载更多

Python安装第三方库太慢??

今天在升级下载Python第三方库的时候特别慢,最后去升级pip的时候竟然还time out了,哇心态炸了。 问题想清楚了该怎么解决呢? 咱们可以用国内的镜像源啊,于是我在网上搜了一下国内的镜像源...

不卖萌的邓肯
今天
0
0
C语言与C++常见面试题

本篇根据各个公司的面试问的常见问题进行总结。 公众号回复“面试”,获取pdf答案 1 变量的声明和定义有什么区别 2 简述 #ifdef、#else、#endif和 #ifndef的作用 3 写出 int 、bool、 float、...

公众号C语言与CPP编程
今天
0
0
自定义CheckBox快速实现开发

在开发CheckBox过程中,经常感觉功能很简单,就是写了半天代码,尤其是设置监听和判断上,万一有10个以上的CheckBox,还会在复制时由于不小心,出现bug 天啦,这么简单常用的控件出BUG,简直没...

osc_gzy9w31p
5分钟前
0
0
写给小白看的线程和进程,高手勿入

计算机的核心是CPU,它承担了计算机的所有计算任务,CPU就像一个工厂,时刻在运行着,而操作系统管理着计算机,负责任务的调度、资源的分配和管理。 进程和线程都是计算机操作系统中的基本概...

hzjjames
今天
0
0
分布式锁,redisson是如何解决死锁问题

点击上方“小罗技术笔记”,关注公众号 第一时间送达实用干货 作者:雨点的名字 来源:http://suo.im/6748UQ 使用redis做分布式锁时大家可能都知道使用setnx容易发生死锁情况,大多数都会推荐...

javaNode
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部