【FPGA开发】AXI-Lite总线协议解读、Verilog逻辑开发与仿真、Alex Forencich代码解读

AXI是什么

AXI为ARM AMBA的一部分,是一种微控制总线。
2003年,AMBA3.0发布,其中包含第一版AXI;
2010年,AMBA4.0发布,其中包含第二版AXI,称为AXI4;
时至今日,AXI已经有了AXI5版本,可以在ARM官方网站下载到源文件,可自行下载:
ARM官网中各版本AMBA文件

AXI包括三种接口形式:

名称 特点
AXI4 高性能的内存映射需求
AXI4-Lite 简单的、低吞吐量的内存映射通信(例如,控制寄存器和状态寄存器)
AXI4-Stream 用于高速流数据

AXI是如何工作的

AXI是内存映射接口,在一个地址周期内,允许至多256个数据的传输,无论是AXI4还是AXI4-Lite接口,都有五个不同的通道。
在这里插入图片描述
数据可以同时在主机和从机之间的两个方向上移动,并且数据传输的大小可以变化。AXI4中的限制是最多256个数据传输的突发事务。AXI4-Lite只允许每个事务传输1个数据。主从机之间数据读取、写入的通道架构如下所示。
读通道的架构
写通道的架构
需要注意的事,上面虽是两张图,只是为了方便区分读、写操作对应的通道,实际上主、从机应该同时具有5个通道,主机发起读写请求,从机响应主机的读写请求。

AXI-Lite定义

AXI-Lite的关键特性

  • 所有的传输突发长度均为1
  • 所有的数据访问都使用数据总线的全宽度(只能是32-bitsZ或64-bits)
  • 所有的访问都是不可修改的,不可缓冲的
  • 不支持独占访问

AXI-Lite信号列表

在这里插入图片描述
前缀解析
AW:Address Write,写请求通道,对应图中写地址通道
W : Write,写数据通道
B: 写响应通道
AR: Address Read,读地址通道
R: Read,读数据通道
在这里插入图片描述

AXI-Lite信号时序

时钟和复位

在这里插入图片描述

握手机制

同前缀的 VALID/READY信号为一组握手信号,握手协议用来传输地址、控制信息、数据等内容。
这种双向的协议,能够保证主、从机都能够控制传输速率。源端产生VALID信号,指示现在的地址、控制信息、数据都是有效的;目的端产生READY信号,指示现在可以接收信息了,传输发生在二者均为HIGH的时候。

主、从机之间的接口,输出->输入接口之间,一定不能有组合逻辑路径

READY和VALID信号,谁先“伸出手”都无所谓,READY可以在先,VALID可以在先,也可以同时。

下图是同时伸手的时序样例:
在这里插入图片描述

写请求通道(AW)

控制信号如下两个。
在这里插入图片描述
主机只有在要产生有效请求时才能拉高AWVALID信号,一旦拉高,就得保持到从机拉高AWREADY后的时钟上升沿。

AWREADY的默认值是高是低都可以,推荐默认值为高。
AWREADY为高是,从机必须能够接收提供给他的所有有效请求。
不建议AWREADY 默认为LOW是因为,它强制传输至少需要两个周期,一个用于拉高AWVALID,另一个用于拉高AWREADY

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值