AXI协议学习和Example Design时序分析

1. 前言

FPGA开发中经常用到AXI总线协议,之前一直不知道具体过程,花了一天时间认真学习了一下,分享给大家。


2. 参考文章

建议结合博客和官方文档学习:

  1. AXI总线整理总结 -tristan_tian
  2. AXI总线协议 -sunshine816
  3. SIZE与LEN的关系

3. 实战demo

3.1 什么是AXI总线?

AXI 作为 ARM AMBA 微控制器总线的一部分,第一次出现在AMBA 3.0中。后面AMBA 4.0发布,AXI4出现了。

AXI 4总线和别的总线一样,都用来传输bits信息(包含了数据或者地址)。AXI4总线有三种类型,分别是

  • AXI4
  • AXI4-Lite
  • AXI4-Stream

AXI4 是一种高性能memory-mapped总线,AXI4-Lite是一只简单的、低通量的memory-mapped 总线,而 AXI4-Stream 可以传输高速数据流。从字面意思去理解,AXI4-Lite是AXI4的轻量版。这里保留了memory-mapped的写法,主要是为了与AXI4-Stream区分开。

memory-mapped 可以这样去理解,假设有master A , 和 slave B, A与B通过AXI4或者AXI4-Lite连接通讯,A可以把B这个外设看作A上的某个地址。当A向B传输数据时,就等同于A向这个地址传输数据。

AXI4-Stream与AXI4、AXI4-Lite不同, 它不需要地址通道。


3.2 AXI4如何读写

对于AXI4来说一次正常的读操作和写操作如下图所示:

读操作:
读通道
写操作:
写通道
AXI总结端口名称和输入输出方向:
信号分类


4.1 学习工程搭建

创建一个AXI接口的RAM

  • Basic中的interface Type 设置为AXI4
    选择AXI

  • 等综合完成Open IP Exanple Design
    打开example

  • 点击RTL ANALYSIS 发现example的实际结构就是一个BMG_STIM_GEN_INST对RAM进行读写操作
    RTL analysis

  • 打开行为仿真
    行为仿真

  • 选择bmg0, 把右边的端口全部添加进Wave Window
    在这里插入图片描述

  • 最好选择仿真时间4us
    仿真


5. 仿真结果解读

5.1 写操作

写操作截图:
在这里插入图片描述


5.1.1 写地址

如图可知
ID:1; //ID=1;
Write_addr=0x0000_0000; //写地址=0x0000_0000
len=0 //数据长度=s_axi_awlen+1=1;
size=2 //数据大小=s_axi_awsize^2=4Byte=32bit;
burst模式=1; //INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。
awvaild下降沿 //从1变0时,主机发数据

解释


5.1.2 写数据

Write_data=0x0a080604; // 符合size=2,数据为32位
wlast下降沿 //标识发送数据完成
wvaild下降沿 //高时表示数据总线数据有效


5.1.3 写回应

ID=1; //ID=1
bresp=0; //resp=0,常0表示ok
bvaild=0; //表示回应通道正常
bready=1; //一个周期表示数据写完成


5.2 读操作

在这里插入图片描述


5.2.1 读地址

ID=1; //ID=1;
read_addr=0x0000_0000; //读地址=0x0000_0000;
len=0; //长度=len+1
size=2; //大小等于32位
arvalid=1 //
arready下降沿 //
在这里插入图片描述


5.2.2 读数据

ID=1; //ID=1;
read_data=0x0a080604; //读到数据=0a080604;
resp=0; //回应常0
rlast=1; //表示最后一个数据
rvaild=1; //从机准备好
rready=1; //主机读数据


6. 截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: AXI(Advanced eXtensible Interface)是由ARM(Advanced RISC Machines Ltd.)公司开发的一种高性能、低功耗的总线协议。该协议用于连接系统的各个模块,实现高效的数据传输和通信。 AXI协议主要分为AXI主机和AXI从机两种角色。AXI主机负责发起并控制数据传输,而AXI从机则负责接收和响应数据传输请求。 AXI协议具有以下特点: 1. 高性能:AXI协议支持并行传输,数据和地址可以同时进行传输,从而提高了数据传输的效率。 2. 高可配置性:AXI协议支持的配置选项很多,可以根据具体的设计需求进行灵活的配置。 3. 支持多种传输类型:AXI协议支持不同类型的传输,包括读、写、写唯一(WriteUnique)和不唯一(WriteNoSnoop)等。 4. 支持乱序传输:AXI协议支持乱序传输,能够根据具体情况对传输请求进行优化,提高总线性能。 5. 支持突发传输:AXI协议支持突发传输,可以连续传输多个数据,减少传输时延。 AXI协议详解.rar是针对AXI协议的详细解释和应用示例的文档压缩包。该文档包含了AXI协议的各种细节和特性的说明,以及如何在实际设计中使用AXI协议的示例和案例。通过详解和示例,可以更好地理解和应用AXI协议,提高系统的性能和可靠性。 总的来说,AXI协议是一种高性能的总线协议,利用其所提供的特性和灵活性,可以实现高效的数据传输和通信。AXI协议详解.rar则是一份详细的文档,可以帮助用户更好地理解和应用AXI协议。 ### 回答2: AXI协议(中文版)和AXI协议详解.rar是两个相关的文档资源,用于解释和说明AXI(Advanced eXtensible Interface)协议AXI协议是一种开放标准的总线协议,由ARM公司开发,用于处理片上系统中的通信和互连。该协议被广泛应用于系统芯片设计和嵌入式系统中。AXI协议通过提供高带宽、低延迟和高性能的数据传输,以支持多个从设备和主设备之间的数据交换。 AXI协议(中文版)是对AXI协议的翻译版本,主要为中文用户提供了更加方便理解和使用该协议的资料。该文档包含了AXI协议的详细说明和技术细节,包括协议的基本原理、数据传输格式、通信流程、信号规范等内容。它可以帮助学习者深入理解AXI协议的工作原理,以及如何在系统中应用和配置该协议。 而AXI协议详解.rar则是一个压缩文件,包含了更为详细的AXI协议相关材料。这些材料可能包括技术手册、应用指南、设计示例、代码库等资源,用于帮助工程师在实际项目中应用和实现AXI协议。该压缩文件提供了更全面的参考资料,可以帮助用户更深入地了解AXI协议,并在实际项目中解决问题和进行开发。 总之,AXI协议(中文版)和AXI协议详解.rar是两个重要资源,为用户提供了关于AXI协议的详细说明和应用指南。通过学习和参考这些资料,用户可以更好地了解和运用AXI协议,从而设计和开发出更高效和可靠的系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bigbeea

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

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

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

打赏作者

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

抵扣说明:

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

余额充值