AXI4接口

AXI4接口

(刚开始学习的时候做的笔记,有很多不足,有问题的,望批评指正)

导读:

AXI4总线定义(中文名+优势)

片内总线定义

什么时候使用?

分类

AXI4,AXI4_Lite,五个通道

AXI4_stream

  1. AXI4总线是什么?

AXI4是(Advanced eXtensible Interface,高级可拓展接口,ARM公司开发的)。

eXtensible [ɪk'stensəbəl] 可扩展;可扩展性;可扩展的

支持多主多从。因为地址,数据,响应等通道分开,这也是AXI4高效的原因

  1. 片内总线体现在哪里?和我们之前学的总线有什么不同?

三大低速总线讲的都是串行的,串口,SPI,IIC

高速接口:千兆以太网,DDR(大概算),更高速的PCIE,SRIO

上述芯片和芯片之间通信的机制。

AXI是片内总线(芯片内部通信接口)

理解:PS和PL端通信,(数据送到PL端处理,PL端处理不了的,送给到PS端处理,处理好了发送给PL端)。

芯片内部通信其实就是:模块间的通信,两个模块间进行数据传输的一种协议。(我感觉也没有什么物理层方面的东西,引脚,接口这种实物),就是用代码实现的两个模块之间的通信,物理层依靠的是FPGA板卡的底部资源来实现。

  1. 什么时候去使用?

zyqn在开发的时候使用,ps和pl端通信;纯FPGA使用的时候,会有一些IP核有AXI接口。

Zyqn系列 ARM(PS)和FPGA(PL)之间进行通信是通过AXI4(或叫作AXI_FULL)总线,也可以用AXI4_Lite,但是AXI4_Stream不能用于PS端和PL端通信。

ARM中的三条总线分别是AMBA(APB、AHB、AXI)

AXI4应用如下:(还有一些其他IP核具有AXI4接口的使用,如FIFO)

名称

IP核名称

SR I/O高速接口(协议)

rapid I/O

PCIE高速接口

XDMA

JESD204B高速接口

JESD204

DDR3/4

mig

千兆以太网

mac

  1. AXI4分类

AXI4分为三种:AXI4、AXI4_Lite、AXI4_Stream。

(AXI4和AXI4_lite是兼容的(在调IP核时,只显示AXI4意味着两者都包含),三种都支持突发传输)

AXI4是突发传输,何为突发?

就是读写换了个名字,突发指单次进行连续读写的长度。

  1. AXI4和AXI4_lite的五个通道

 写地址,写数据,写响应,读地址,读数据,这五个通道里都有一对握手信号,握手信号一般都是指valid和ready信号,还有一个对应的信息。

(怎么记?记下边这张图)

握手信号理解:有主从之分,ready从机告诉主机我准备好了,valid主机告诉从机我发送的这个数据有效。

两者同时为高,数据才有效。比如,ready和valid同时为高,写地址有效。Ready和valid同时为高,写数据有效........,写地址,写数据,返回来的写响应,读地址,读数据都需要握手,是比较稍微复杂的信号。

  1. Vaild和ready同时拉高有三种情况

同时拉高/vaild先拉高/ready先拉高

  1. AXI4的读写时序

突发读

突发写

  1. AXI4_STREAM

包含哪些信号?

因为没有地址,该握手信号对应传输的是数据(TDATA)。

Keep一个比特对应一个DATA的字节。

User信号一般用不到

对AXI4_STREAM理解:在一个模块中调用AXI_STREAM的时候信号接口如下所示(数据回环的例子):

注意发送时:只有M(master主机)->S(slave从机)

两个模块间通信,每个模块都有M端和S端,所以A模块的M发送数据给B模块的S。

B模块想给A模块发数据时,是B模块的M发数据给A模块的S。

每个端口都有上述的几个信号。

  1. 补充
  • 总线,接口,协议

  • AXI4又名AXI4_full,
  • AXI4_lite(lite可以理解为轻量级的),
  • AXI4_stream(stream流,是数据流的传输)

AXI4_full最多一次突发传输256个数据。为什么是256个数据而不是字节。

理解:因为AXI4数据发送是固定的。(比如数据发送是32根线,经过这32根线发出的是一个数据,256个数据可能指32根线并行发送,每根线发送256位。)

AXI4_lite突发长度为1,在传输的时候一次只发一个数据。

AXI4_stream突发长度为无限个,因为以流的方式传输。AXI4_Stream没有地址线。

### 关于AXI4协议接口的使用教程及其实现方式 #### 1. AXI4协议概述 AXI4 是 AMBA(Advanced Microcontroller Bus Architecture)的一部分,主要用于高性能存储器映射通信。它分为三种主要类型:AXI4-Full、AXI4-Lite 和 AXI4-Stream[^2]。 - **AXI4-Full**: 提供高带宽和低延迟的数据传输能力,适用于复杂的内存访问场景。 - **AXI4-Lite**: 针对简单、低吞吐量的需求设计,通常用于控制寄存器等轻量级操作。 - **AXI4-Stream**: 主要用于连续数据流传输,不支持地址信号,适合视频处理或其他大数据量应用场景。 #### 2. AXI4接口的主要特性 AXI4 协议具有以下特点: - 支持突发传输(Burst Transfer),能够显著提高数据传输效率。 - 数据通道分离为读通道和写通道,允许并发操作。 - 引入了握手机制以增强可靠性,例如 `ARREADY` 和 `ARESPONSE` 等信号。 - 可选的 QoS(Quality of Service)功能可以优化多任务环境下的资源分配。 #### 3. 如何实现AXI4接口 以下是基于 FPGA 的典型实现流程: ##### 工程准备 为了简化开发过程,推荐使用 Vivado 或其他 FPGA 开发工具中的 IP 核生成功能。例如,在 Vivado 中可以通过 Block Design 创建 AXI4 VIP(Verification IP)模块[^1]。 ```tcl # Tcl 脚本示例:创建 AXI4 VIP 模块 create_ip -name axi_vip -vendor xilinx.com -library ip -module_name my_axi_vip set_property -dict [list CONFIG.PROTOCOL {AXI4}] [get_ips my_axi_vip] generate_target all [get_files my_axi_vip.xci] ``` 上述脚本定义了一个名为 `my_axi_vip` 的 AXI4 接口验证模型,并将其配置为全功能模式。 ##### 设计集成 将生成的 AXI4 VIP 连接到目标硬件组件上。对于 FIFO 示例,需确保其输入输出端口与 AXI4 总线标准兼容。具体连接关系如下表所示: | AXI4 Signal | Description | |-------------|-------------| | AWADDR | Write address channel signal indicating the target memory location. | | WDATA | Data to be written into the specified address. | | BRESP | Response after a write operation completes successfully or fails. | ##### 测试与调试 完成硬件描述语言编码之后,利用仿真平台测试整个系统的功能性。建议采用 UVM(Universal Verification Methodology)框架编写相应的测试用例,从而覆盖各种边界条件以及异常情况。 #### 4. 应用案例分析 假设需要通过 AXI_SPI 接口实现嵌入式应用,则可通过调整内部寄存器来适应特定用途的要求[^3]。比如改变 SPI 波特率或者切换为主设备/从设备角色等均属于此类范畴内的常规操作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值