赞
踩
AXI_Lite顾名思义即简化版的AXI协议,是对完整的AXI协议裁剪后的AXI协议;
特点:
AXI_Lite的系统框图如下:首先,AXI_Lite的读写通道分离,即AXI是一种全双工总线,在同一时刻可以同时进行读写操作;
其次,写通道又分为 写地址通道,写数据通道,写响应通道;
读通道又分为,读地址通道,读数据通道;
所以一个AXI-Lite系统总共有五个通道,分别为:
且这些通道内部传输数据都按照握手协议进行;
由于AXI-Lite是地址映射单次读写的,所以一个Waddr地址对应一个Wdata数据,Wdata存放于由Waddr指向的寄存器中;
一个Raddr地址对应一个Rdata数据,读出从机中由Raddr指向的寄存器中的数据;
由于AXI-Lite的总线大量使用了握手协议,故在此先对握手协议进行简单的介绍;
握手协议的信号一般为DATA、READY、VALID;
其时序如下:当VALID 与 READY 均有效时,数据完成传输;
为了解决亚稳态的问题,数据在跨时钟域传输时,往往会出现亚稳态,为了避免亚稳态被采样,常常采用握手协议来传输数据;
AXI中的握手协议可以保证每个通道的数据传输时,大大减小出现亚稳态的概率;
且数据传输在VALID与READY信号同时有效时立即发生;
乍一看AXI-Lite的信号还是很多的,但实际上大多通道都是按照握手协议来定义信号的,所以不难理解;
AXI中每个通道的传输都有三种可能的情况:
1.VALID信号先有效,READY信号后有效
此时,当READY信号拉高时,立即完成传输;2.READY信号先有效,VALID信号后有效
此时当VALID信号拉高时,立即完成传输3.READY与VALID信号同时有效
此时数据立马完成传输
不管是哪一种传输机制,我们都需要搞清楚VALID与READY的约束关系,否则会出现死锁现象:
VALID与READY的死锁:
发生在VALID等待从机的READY信号,同时READY也在等待主机的VALID信号;
在这种情况下,VALID信号持续为0,等待READY信号的拉高;
而READY信号也持续为0等待VALID信号的拉高;
两个信号则同时处于低电平状态,则总线出现死锁;
解决:
对于这种现象,我们规定,VALID信号不能等待READY信号,即数据准备好则拉高,而READY信号可以等待VALID信号,即VALID信号拉高之后再拉高;
根据第四节,我们可以给出AXI发生一次写操作的具体过程;
而读操作的过程如下:
写操作时序:
写数据WDATA在AWREADY、AWVALID、WREADY、WVALID同时有效时被写入寄存器;
读操作时序:
下一章将讲解AXI-Lite从机接口的代码实现;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。