AMBA协议AXI-Lite(AXI-Lite介绍)

文章目录

  • 一、AXI_Lite简介
  • 二、AXI_Lite系统框图
  • 三、握手协议
  • 三、AXI-Lite信号表
  • 四、AXI传输机制
  • 五、AXI读写时序
  • 总结


一、AXI_Lite简介

AXI_Lite顾名思义即简化版的AXI协议,是对完整的AXI协议裁剪后的AXI协议;
特点:

  1. 突发长度永远是1,即只能单次读写,无法连续读写,常用于配置寄存器;
  2. 由于删减了逻辑,其资源也消耗较少;
  3. 地址映射,相较于AXI-Stream,AXI-Lite的每个数据读写都需要对应的地址;

二、AXI_Lite系统框图

AXI_Lite的系统框图如下:AMBA协议AXI-Lite(AXI-Lite介绍)_第1张图片首先,AXI_Lite的读写通道分离,即AXI是一种全双工总线,在同一时刻可以同时进行读写操作;
其次,写通道又分为 写地址通道,写数据通道,写响应通道;
读通道又分为,读地址通道,读数据通道;
所以一个AXI-Lite系统总共有五个通道,分别为:

  • 写地址通道;
  • 写数据通道;
  • 写响应通道;
  • 读地址通道;
  • 读数据通道;

且这些通道内部传输数据都按照握手协议进行;

由于AXI-Lite是地址映射单次读写的,所以一个Waddr地址对应一个Wdata数据,Wdata存放于由Waddr指向的寄存器中;
一个Raddr地址对应一个Rdata数据,读出从机中由Raddr指向的寄存器中的数据;


三、握手协议

由于AXI-Lite的总线大量使用了握手协议,故在此先对握手协议进行简单的介绍;
握手协议的信号一般为DATA、READY、VALID;

  • **DATA:**由主机发出的,需要传输的数据;
  • **VALID:**由主机发出的,标志DATA有效的信号(高电平表示有效,低电平表示无效)
  • **READY:**由从机发出的,标志从机准备接收的信号(高电平表示准备接收,低电平表示不具备接收条件)

其时序如下:AMBA协议AXI-Lite(AXI-Lite介绍)_第2张图片当VALID 与 READY 均有效时,数据完成传输;

  • 为什么需要用握手协议?

  为了解决亚稳态的问题,数据在跨时钟域传输时,往往会出现亚稳态,为了避免亚稳态被采样,常常采用握手协议来传输数据;
  AXI中的握手协议可以保证每个通道的数据传输时,大大减小出现亚稳态的概率;
  且数据传输在VALID与READY信号同时有效时立即发生;


三、AXI-Lite信号表

AMBA协议AXI-Lite(AXI-Lite介绍)_第3张图片AMBA协议AXI-Lite(AXI-Lite介绍)_第4张图片
乍一看AXI-Lite的信号还是很多的,但实际上大多通道都是按照握手协议来定义信号的,所以不难理解;


四、AXI传输机制

AXI中每个通道的传输都有三种可能的情况:

1.VALID信号先有效,READY信号后有效

此时,当READY信号拉高时,立即完成传输;AMBA协议AXI-Lite(AXI-Lite介绍)_第5张图片2.READY信号先有效,VALID信号后有效
此时当VALID信号拉高时,立即完成传输AMBA协议AXI-Lite(AXI-Lite介绍)_第6张图片3.READY与VALID信号同时有效
此时数据立马完成传输
AMBA协议AXI-Lite(AXI-Lite介绍)_第7张图片不管是哪一种传输机制,我们都需要搞清楚VALID与READY的约束关系,否则会出现死锁现象:
VALID与READY的死锁:
  发生在VALID等待从机的READY信号,同时READY也在等待主机的VALID信号;
  在这种情况下,VALID信号持续为0,等待READY信号的拉高;
  而READY信号也持续为0等待VALID信号的拉高;
  两个信号则同时处于低电平状态,则总线出现死锁;
解决:
  对于这种现象,我们规定,VALID信号不能等待READY信号,即数据准备好则拉高,而READY信号可以等待VALID信号,即VALID信号拉高之后再拉高;


五、AXI读写时序

根据第四节,我们可以给出AXI发生一次写操作的具体过程;

  1. 首先主机将地址与数据分别放到写地址通道与写数据通道上,并将相应的VALID信号拉高,并等待从机发出响应信号;
  2. 从机检测到写地址的VALID信号与写数据的VALID信号同时为高时,将数据写入到对应的寄存器中,并拉高READY信号,发出响应;
  3. 主机检测到READY信号与响应信号后,拉低VALID信号;从机将READY信号拉低;

而读操作的过程如下:

  1. 主机将读地址放到读地址通道上,并拉高VALID信号,等待从机的READY信号;
  2. 从机检测到读地址的VALID信号后,对读地址进行采样,并拉高READY信号;
  3. 从机将读数据放到读数据总线上,并拉高VALID信号,主机检测到VALID后,将读数据采样,并拉高READY信号;主机拉低VALID信号,从机拉低READY信号;

写操作时序:
AMBA协议AXI-Lite(AXI-Lite介绍)_第8张图片写数据WDATA在AWREADY、AWVALID、WREADY、WVALID同时有效时被写入寄存器;

读操作时序:
AMBA协议AXI-Lite(AXI-Lite介绍)_第9张图片


总结

  下一章将讲解AXI-Lite从机接口的代码实现;

你可能感兴趣的:(AMBA协议,fpga开发,硬件工程,硬件架构,嵌入式硬件)