一、写在前面
终于写到这篇文章了! 完整阅读前述文章的读者到了本篇,基本上可以当作一个复习小资料来看了,里面零零散散的信号95%都在前文中讨论过。本篇文章落地,再讨论一波AXI-lite,一个完整的AXI协议的相关内容就完整的展现在了读者的面前了,当然,AXI-lite支持的特性,AXI都支持,因此,二者之间的比较和联系也不甚困难。
AXI协议相较于UART,SPI,I2C来说,无论是内容还是难度都上了一个层级,放在一篇文章中进行解读未免篇幅过长,因此,有关AXI一些共性的、通用的问题,作者单独以前缀为【AXI】的标题进行小范围的串联,最终再汇总为深入浅出解读AXI协议,与从零开始的Verilog AXI协议设计,此为作者所思所考的推进顺序,单看【AXI】的每一篇,可能很多读者未免感到有些管中窥豹的疑惑,但若等作者更完此专栏再行观看,从头到尾进行阅读,应该就会有有茅塞顿开的收获与领悟。
二、深入浅出理解AXI协议
AXI协议有很多特性,比如说“高带宽”和“低延迟”,比如说向前兼容AHB与APB,比如说非三态实现数据传输等等等等,但是最核心最核心的内容无非是AXI协议的信号,和对于这些信号的理解,单独拿出一个信号来,我们先要明白的是,它是什么的输出又是什么的输入,“比如AWID是主设备产生的,通过总线互联连接到从设备“,其次,我们要清楚它所处哪个数据通路,写地址通路”“写数据通路”“写回复通路”“读地址通路”“读数据通路是最核心的五个数据通路,此外,AXI协议还有全局信号和低功耗数据接口,再往后,针对于一个信号,他是AXI协议的必选项还是可选项?比如握手信号是AXI协议所必须要有的信号,是必选项,而低功耗接口的信号就是AXI协议的可选项;最后,我们要知道每一个信号的含义,这部分寻找AXI协议解读的前文就可以找到。每一个信号都通过上面的四个问题进行梳理,AXI协议的全貌就得到了一个充分的认识了。
2.1 全局信号
2.2 写地址通路
2.3 写数据通路
2.4 写回复通路
2.5 读地址通路
2.6 读数据通路
2.7 低功耗接口信号
2.8 必选信号与可选信号区分
2.8.1 主设备
2.8.1.1 读操作相关信号表
2.8.1.2 写操作相关信号表
2.8.2 从设备
2.8.2.1 读操作相关信号表
2.8.2.2 写操作相关信号表
2.9 总结
笼统来讲:一个基本的AXI协议,需要有时钟信号,复位信号,握手信号,burst相关信号,AxID信号。
Cache相关信号,原子化操作相关信号,Qos User等额外信号和低功耗相关信号是可选项。
关于不同信号的默认值/复位值,上文2.8节的表格中也给出了要求值。至此,有关AXI协议的相关内容就告一段落了,AXI协议虽然快,但是面积也大,很多情况下,我们其实不需要AXI协议的全部特性,因此AMBA4中还规定了AXI-lite供人使用,参见深入浅出理解AXI-lite即可
三、其他数字IC基础协议解读
3.1 UART协议
【数字IC】深入浅出理解UART
【数字IC】从零开始的Verilog UART设计
3.2 SPI协议
【数字IC】深入浅出理解SPI协议
【数字IC】从零开始的Verilog SPI设计
3.3 I2C协议
【数字IC】深入浅出理解I2C协议
3.4 AXI协议
【AXI】解读AXI协议双向握手机制的原理
【AXI】解读AXI协议中的burst突发传输机制
【AXI】解读AXI协议事务属性(Transaction Attributes)
【AXI】解读AXI协议乱序机制
【AXI】解读AXI协议原子化访问
【AXI】解读AXI协议的额外信号
【AXI】解读AXI协议的低功耗设计
【数字IC】深入浅出理解AXI协议
【数字IC】深入浅出理解AXI-lite协议