AXI Lite总线说明和测试

AXI Lite总线说明和测试

  • 1 AXI Lite总线介绍
    • 1.1 AXI Lite总线端口定义
    • 1.2 AXI Lite数据传输流程
  • 2 AXI Lite总线测试
    • 2.1 测试工程说明
      • 2.1.1 写状态机
      • 2.1.2 读状态机
    • 2.2 测试结果分析
      • 2.2.1 写数据波形图
      • 2.2.2 读数据波形图

1 AXI Lite总线介绍

本节主要介绍AXI Lite总线的端口定义和数据传输流程。

1.1 AXI Lite总线端口定义

本节主要介绍AXI Lite总线各个端口的定义(从Master的角度看,Slave则相反)
1.时钟和复位

信号 方向 说明
aclk input 时钟,上升沿有效
aresetn input 复位, 低电平有效

2.写通道
2.1 写地址通道

信号 方向 说明
awready input slave写地址就绪信号
awvalid output master写地址有效信号
awaddr output master写地址
awprot input master写入写保护
awprot [0] 特权属性:0-正常写入;1-特权写入
awprot [1] 安全属性:0-安全性写入;1-无安全性写入
awprot [2] 访问属性:0-数据写入;1-指令写入

2.2 写数据通道

信号 方向 说明
wready input slave写数据就绪信号
wvalid output master写数据有效信号
wdata output master写入数据
wstrb output 写入数据的有效字节

2.3 写响应通道

信号 方向 说明
bready output master写响应就绪信号
bvalid input slave写响应有效信号
bresp input slave写响应,2‘d0表示写入正常

3.读通道
3.1 读地址通道

信号 方向 说明
arready input slave读地址就绪信号
arvalid output master读地址有效信号
araddr output master读地址
arprot input master写入读保护

3.2 读数据通道

信号 方向 说明
rready output master读数据就绪信号
rvalid input master读数据有效信号
rdata input master读入数据

3.3 读响应通道

信号 方向 说明
rresp input slave读响应,2‘d0表示读数据正常

1.2 AXI Lite数据传输流程

1.写数据流程
slave在准备好接收数据后,将awready和wready拉高。master在准备好写地址和写数据后,拉高awvalid和wvalid,并给awaddr和wdata赋值,地址和数据的先后顺序任意。slave接收到地址和数据后,将数据写入存储空间的相应地址中。master在写入数据后,拉高bready,准备好接收写响应信号。slave在完成数据写入后,拉高bvalid信号,反馈写数据结果bresp,2’d0表示成功,2’d1表示失败,2‘d2表示slave错误,2’d3表示编码错误。
2.读数据流程
slave在准备好读出数据后拉高arready。master在准备好读地址后,拉高arvalid,并给araddr赋值,同时准备接收数据,拉高rready。slave在接收到地址后,从相应地址的存储空间中读出数据反馈给master,同时反馈读数据结果rresp。

2 AXI Lite总线测试

本节主要介绍对AXI Lite总线所做的测试和对测试结果的分析。
工程源文件:AXI Lite总线测试工程

2.1 测试工程说明

为了加深对AXI Lite协议的理解,使用Vivado创建测试工程,测试工程的框图如下图所示。data generator模块按AXI Lite协议的要求生成写地址和写数据,通过axi interconnect模块和axi bram controller模块将数据写入BRAM中。data generator模块也可以生成读地址和读指令,从BRAM中读出数据,复位和读写操作的切换通过vio模块完成。ila模块监控数据的传输过程。
在这里插入图片描述

2.1.1 写状态机

状态机复位后处于idle状态,在准备传输数据后,进入ready状态,拉高awvalid和wvalid信号,并给awaddr和wdata赋值。如果awready和wready信号同时有效,表明slave成功接收了地址和数据,状态机进入resp状态。如果wready信号先来,表明slave先接收数据信号,进入waddr状态,当awready信号到来后进入resp状态。如果awready信号先来,表明slave先接收地址信号,进入wdata状态,当wready信号到来后进入resp状态。在进入resp状态前,master拉高bready信号,接收slave的写反馈。在接收到写反馈信号bvalid后,进行写反馈信息bresp,然后进入susp状态。如果完成了一帧数据的传输,则地址归0,准备发送下一帧数据,反之则地址加4(如果数据位宽为32),进行下一次数据的传输。
AXI Lite总线说明和测试_第1张图片

2.1.2 读状态机

状态机复位后处于idle状态,在准备传输数据后,进入ready状态,拉高awvalid信号,并给awaddr赋值。slave在准备好接收地址信息后,拉高awready信号,同时将数据从存储空间的指定地址读出。状态机进入rdata状态,在rvalid信号有效后接收slave传过来的数据,然后状态机进行resp状态,接收读反馈的信息,之后进入susp状态,如果接收完了一帧数据,则地址归0,准备接收下一帧数据,反之则地址加4(如果数据位宽为32),进行下一次数据的传输。
在这里插入图片描述

2.2 测试结果分析

2.2.1 写数据波形图

AXI Lite总线说明和测试_第2张图片

2.2.2 读数据波形图

AXI Lite总线说明和测试_第3张图片

你可能感兴趣的:(#,Xilinx,AXI总线说明与测试,fpga开发)