加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

AXI协议学习笔记:第三篇 握手协议

(2016-12-04 11:39:26)
分类: SOC/ASIC/FPGA/Verilog
在第二篇中,我们学习了AXI协议的各个通道是怎么配合从而完成写操作和读操作的。在这一篇中,我们将具体学习各通道自己是怎么完成数据传输的。

一、握手协议
在第一篇中,我们学习了各通道的接口定义,发现在每个通道的接口中都有VALID和READY信号,这对信号就是用于保障本通道内的数据(地址信号、控制信号、数据)传输的。VALID信号由源设备(注意与主设备的区别)控制,READY信号由宿设备控制。源设备拉起VALID信号表示其把数据(或地址等信号)放上了总线,等待宿设备接收;在宿设备接收数据以前,源设备必须要保持住总线上的数据不变。宿设备只有在可以接收数据时,才可以拉起READY信号,否则只能拉低READY信号。只有当VALID和READY信号同时有效时,一次数据传输才算完成。这就是AXI协议采取的保障数据正确传输的握手协议,所有的通道都采用同样的握手协议。

下图中说明了三种源设备和宿设备“握手”的情形。由下图可见,宿设备可以提前拉起READY信号,也可以等VALID信号拉起来之后再适时拉起READY信号,都可以;也就是说,READY信号的初始值可以为低,也可以为高。READY信号的初始值为高的好处是,完成数据交换只需要一个周期,但是需要宿设备随时都能接收源设备的数据;为低的好处是,宿设备不需要随时准备接收源设备的数据,但是完成数据的传输需要至少两个时钟周期。对READY信号的初始值,AXI协议的推荐值是高。http://s1/mw690/001TC7RBzy76VbhpHyM40&690握手协议" TITLE="AXI协议学习笔记:第三篇 握手协议" />

下面介绍各通道该怎么控制VALID和READY信号。
1)写地址通道:主设备只有在发送地址和控制信号时,才可以拉起AWVALID信号,只有当从设备拉起AWREADY信号后,主设备才可以更新地址和控制信号;如果地址和控制信号发送结束了,主设备在得到从设备的最后一个AWREADY信号时,才可以将AWREADY信号拉低。如果得不到从设备的AWREADY,主设备就必须保持AWVALID和地址等信号不变。
2)写数据通道:主设备和从设备在写数据通道的握手方式和写地址通道相同。
3)写响应通道:与写地址通道、写数据通道不同的是,在写响应通道中,BVALID信号的控制者是从设备,BREADY信号的控制者是主设备。
4)读地址通道:主设备和从设备在读地址通道的握手方式和写地址通道相同。
5)读数据通道:ARVALID的控制者是从设备,ARREADY的控制者是主设备

二、READY和VALID之间的关系
为了预防READYU和VALID信号之间发生锁死的情形发生,我们必须要厘清各通道的VALID和READY信号之间的依存关系。总体上,有如下两个原则:
1)一个通道中的VALID信号绝对不能依存于其它通道中的READY信号。即,一个通道拉起VALID信号的唯一原因只能是该通道需要发起数据传输,而不看其它通道有没有完成数据传输。
2)一个通道中,READY信号可以等到VALID信号拉起后再根据自身状况适时拉起。言外之意是,READY信号提前拉起来也可以,只要宿设备已经能够随时接收源设备的数据。

下面学习读操作过程中涉及的几个VALID和READY信号的依存关系。在下图中,单箭头所指向的信号既可以等箭头源起的信号拉起后再拉起,也可以先于它拉起而拉起;双箭头所指向的信号就必须等箭头源起的信号拉起后才能拉起。
下图中的ARVALID信号不依存于任何信号,只要主设备要读数据,就可以拉起ARVALID信号,将地址和控制信号送上读地址通道;从设备控制的ARREADY信号可以先于ARVALID或后于ARVALID信号拉起;而从设备控制的RVALID信号必须等ARVALID和ARREADY都拉起来后,即从设备已经得到了主设备发来的地址及控制信号,然后从设备就可以去相应的地址将数据读出来,并放上读数据通道,同时可以拉起RVALID信号;而主设备控制的RREADY既可以看RVALID的情况拉起,也可以自行适时拉起。
http://s7/mw690/001TC7RBzy76VfLPpRQ26&690握手协议" TITLE="AXI协议学习笔记:第三篇 握手协议" />

接下来学习写操作过程中涉及的几个VALID和READY信号的依存关系。如下图,可以看出从设备控制的用于发送写响应信号的BVALID信号必须要等到从设备接收了写数据之后才可以拉起。只有写数据操作完成了,从设备才可以向主设备发送响应信号。
http://s9/mw690/001TC7RBzy76VhfEThue8&690握手协议" TITLE="AXI协议学习笔记:第三篇 握手协议" />
好,这一篇我们学习了AXI协议的握手协议,VALID和READY信号的依存关系。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有