AXI架构:
读地址通道(read address channel)
读数据通道(read data channel)
写地址通道(write address channel)
写数据通道(write data channel)
写响应通道(write response channel)
握手机制:
首先我们知道每一个通道都包含了一些信号线,这些信号线位宽可以自定义,其中我们会率先认识每个通道都有的VALID和READY信号,这是一个双路信号握手机制。其实VALID来自于source即源设备,READY来自于destination即目标设备。
信息源设备都会发送一个VALID信号,去展示出自己通道内此时的东西是否有效,比如AWVALID表示此时AW通道内的地址和控制信息是有效的。当然目标设备都会发送一个READY信号,去展示自己是否准备好。
1.握手机制在五个通道内都有
2.握手机制中有三种情况valid先到,ready先到,同时到
3.如果valid先到则必须完成握手,否则遗漏有效数据
4.如果ready信号先到,如果目标设备没准备也可以拉低,这样防止设备冲突
5.设计应该最好保证,传过来的东西只要有用都能接
6.VALID的高低只和信息有用无用相关,不受ready控制,即两者之间没有组合逻辑关系
7.READY的高低只和目标设备准备相关,不受valid控制,即两者之间没有组合逻辑关系
8.全局时钟供给主从设备
9.复位信号为低电平有效,且异步复位,同步释放。
Dependencies(depend的名词) between channel handshake signals
为了避免出现deadlock的情况,必须要搞清楚handshake signals之间的依赖关系:
- 首先VALID信号不应该受到READY信号控制
- 一个AXI接口如果激活VALID则必须等待相应的READY
- READY信号变动只根据目标设备情况进行变化
burst:突发传输,就是说,每一个处理里面,包含了若干个这样的burst,每一次burst都是很多拍子(beat)的tansfer。
这么说有点模糊,我举一个例子,首先假设这次处理时一个读处理,那么我们知道读处理是我们先得有地址和控制信息,然后在数据通道内传递数据,
我们这么形容,在数据通道内部我们一拍一拍的传递数据,每一拍我们叫做一次transfer,然后若干transfer构成了一个burst,请注意这里是数据通道。
如果我们再加上对应的写地址通道内部的工作,合在一起,这就叫做transaction。