我是靠谱客的博主 重要香烟,最近开发中收集的这篇文章主要介绍AXI总线学习-------从零开始详细学-------------连载(5)各通道握手信号,握手机制相互关系AXI总线学习连载(5) ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

AXI总线学习连载(5)

 

鲁迅曾经说过:

学硬件,不是学哪里查哪里,有一些东西是必须系统的学的,不管是嵌入式还是FPGA,硬件学习的积累一定要是系统的。

 

我也曾经说过:

英文手册非常重要,这是学习硬件标准的不二法门,没有捷径,我们这一行可以不说英语,英语也可以像我和我某些同事一样口语富有乡土气息,但是一定要能熟练看,内心看,做阅读理解一样看

跟着这篇博客,慢慢学习,对着官方文档,不仅可以学会这个协议,更能够学会硬件学习的方法,所谓举一反三。(我说的比鲁迅还多)

 

好了既然是axi,那么这么说,只要你使用arm架构的芯片,arm和fpga(pl 可编程逻辑)部分通信,或者外部设备通信,你都会用上这个协议。所以一起来学习,打工人!就该把自己的时间全部放在上面 

好了不废话了,一起来探索吧! 

 

不要厌烦枯燥,理论学习是在实践之前的必经过程,当学习完axi原型后,我也会专门贴出来一个axi协议使用开发的详细详细详细的n次方的接口解析。请学习过程中不要放弃,不要觉得枯燥!! (其实说给自己听的)

 

qq:2198187857  这里放出来一下,就是希望朋友们指导,有不足的地方批评教育一下,作为新手,还是很认真在学习

 

--------------------------------------------------------------分割线-----------------------------------------笨蛋看不见-----------------------------------------

上一个连载学习了五个通道内部的握手机制,这一次将会学习,通道间握手信号的相关关系。

首先我们先给出通道信号相关关系的一个概述,这个概述是arm对于axi原型的一个要求

   1.写响应通道必须跟随最后一次写传输行为

   2。读数据必须总是跟随这读地址通道内部的有效地址

   3.通道内握手信号必须符合依靠原则 (什么是依靠原则接下来会讲)

 

那么同样的,我们先学习通道内握手信号们的相关性

    为了阻止一种锁死情况的发生,这种依靠准则必须要在这些握手信号中间的得到体现,那么这种体现表现在什么上面呢:

        1.首先VALID信号不应该受到READY信号控制

         2.一个axi接口如果激活VALID则必须等待相应的READY

         3,READY信号变动只根据目标设备情况进行变化

接下来会有三幅图表现这些握手信号们之间的变化,需要注意的是,这些图的含义

  1.单箭头指向的信号能够在箭头开始位置的信号,之前或者之后激活

  2,双箭头指向的信号能够在箭头开始位置的信号,之后激活

--------------------------------------------------------------分割线-----------------------------------------笨蛋看不见-----------------------------------------

 好了 接下来就是读处理当中的相关性,如下图,读处理和两个通道有关,就是读数据通道和读地址通道

 

 

                                               

 

这里边官方文档对这幅图有七句解析

  1.一个主设备不能够在将要激活ARVALID信号之前去通过等待已经激活的ARREADY,理解起来就是ARVALID是自由的,只要地址有用就可以激活(如图所示)

 2.同样的ARREADY信号可以等待ARVALID信号拉高之后才开始激活

 3.从设备可以在ARVALID激活之前,就是高电平,这意味着,只要从设备准备好就可以

4.从设备如果要激活RVALID必须要等着ARVALID和ARREADY都是高电平才能激活,如何理解?一句话,数据要走,地址先行,只有读地址通道完成握手,读数据通道才

开始握手,所以在图上是两个双箭头

5.相同的对于都数据通道,RREADY信号可以在RVALID之前或者之后变为高电平。

6.但是和前面讨论一致,RVALID如果变为高电平,则必须等着READY信号。

 

总结一下,这里就是所有的读行为相关的握手细节了,设计的时候,可以通过这个图来观察。

 

--------------------------------------------------------------分割线-----------------------------------------笨蛋看不见-----------------------------------------

                                             

 

如图所示,这是写处理当中,三个通道握手信号的相关关系,可以看见一共有三对,因为在写行为当中一共有三个通道,AW,W,B通道,同样官方给出一些注解,但是官方给出的比较混乱,

这里我重新总结,按着箭头顺序

           1.AWREADY信号可以在AWVALID前后激活因为,只需要从设备准备好就可以。

           2,AWVALID激活不需要也不能够取决于AWREADY信号,因为AWVALID具有主动性,只要地址有效就有效

          3.AWVALID可以在WREADY前后激活,这代表地址信息和控制信息先走,从设备有寄存器可以接受

          4.WVALID信号可以在AWREADY信号之前之后激活,这里代表着数据有用就可以有效。这里注意一下,WLAST!!不要忘记了

          5.WREADY信号可以在WVALID信号前后都激活。理由不再复述

         6.BVALID代表着必须要在WVALID和WREADY信号都激活之后,也就是开始传输之后才可以开始握手,因为这是写响应通道。

         7.BREADY信号可以在BVALID前后激活,同样BVALID信号不需要也不能按照BREADY信号的高低作为激活标志。

 

好了这就是axi原型的通道握手信号的依靠准则,但是这里需要注意几个点

         1.这种依靠原则必须在设计上得到体现,这样才能阻止锁死现象发生。

         2.什么是锁死现象,这里举一个例子,我们知道一个源设备,一定不能够通过READY信号才去驱动VALID,更为细节,如果说跨越通道,在我们激活WVALID时,这个代表着数据开始有用了,我们不仅

不能根据WREADY信号去判断是否激活WVALID,也不能够根据AWREADY信号是否激活作为标准,锁死标准就是死循环,一个从设备如果一直没有激活READY,而主设备却一直需要等着READY才会拉高

VALID,这导致这个通信系统一直不开始工作!!

 

对于axi原型,AXI4自己在写处理上有自己的一个处理原则,是基于之前的写处理原则来的。

 

                                       

 

 

其实这里就注意一点就可以了,我们看BVALID信号,其实这里就是说,写这个事儿,写响应必须建立在地址和数据通道都握手之后才开始BVALID激活

不过这里需要注意一下:其实我们在设计的时候,很多时候没有必要去亲手写,因为这些最底层的是有ide工具写好的,但是我们需要去读懂他们的源代码

但是如果自己亲自设计一个axi从设备的接口时候,我基于自己的理解有一下几个建议:

                       1,按照axi4 这个设计来

                       2.地址通道先走。

                       3.数据通道第二位走,只有当地址通道完成传输后,再去操作数据通道

                       4.等待最后一次传输,做响应通道,如果是读数据通道,则使用RLAST

                       5,B通道为写响应通道,则是最后一个开始握手的

 这个方式时序上统一,很容易去调节错误。

 

--------------------------------------------------------------分割线-----------------------------------------笨蛋看不见-----------------------------------------

 

好了撒花!!! 这里我们关于axi原型的所有握手机制都结束了!!!!!!

                   非常细致的学习了握手原则之后,我们能够建立起通道工作的先后顺序规则,这么说比较模糊,换一句话说就是,我们在用Verilog写接口的时候

可以建立起读写步骤的入口标准了,什么时候读写地址,什么时候读写数据,什么时候完成响应! 

                 接下来我们就要去研究当握手完成后,我们要传递的东西是什么,他们分别代表什么含义!

今天的连载结束了!!!11月16日,不要心急,最多再过7天就能完全学习AXI原型,这时候我们就可以向下拓展了,AXI3 AXI4 AXI4LITE AXI4 STREAM 

都可以完完全全自学啦!!!

                去玩游戏了,每日总结一点快乐一点!

                 太平洋风暴见

 

 

 

最后

以上就是重要香烟为你收集整理的AXI总线学习-------从零开始详细学-------------连载(5)各通道握手信号,握手机制相互关系AXI总线学习连载(5) 的全部内容,希望文章能够帮你解决AXI总线学习-------从零开始详细学-------------连载(5)各通道握手信号,握手机制相互关系AXI总线学习连载(5) 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部