集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA本地接口设计:LIP基础(20170502课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2018-9-8 09:27:32 | 显示全部楼层
1132
        我们来看这张时序图。
        在时标1的位置上,主机发出了地址,当然是首地址。
        它的突发长度为4,就是连续有4个数,memory里面4个数。
        如果是memory的话,读4个数。
        4个地址,只需要发售地址。
        在时标1,主机发出首地址,addr1。
        并且发出了只有首发有效的beginbursttransfer这个命令。
        并且发出了首发有效的burstcount。
 楼主| lcytms 发表于 2018-9-10 09:15:40 | 显示全部楼层
1133
        由于在第一拍,从机发的是waitrequest为高电平,所以说主机在1和2之间的这个上升沿上,主机能够捕获到的waitrequest应该是高电平。
        做突发读写的时候,从机有两种叫停的权利,就是waitrequest和readdatavalid。
        这是突发写。
        Readdatavalid是读的时候用的。
        所以说waitrequest为高电平说明什么?
        说明从机busy了。
        它没有时间来响应主机发出的写请求。
        当然主机得hold,要保持住。
        除了beginbursttransfer,这个就是首发有效。
        那么地址和burstcount得保持住。
        虽然这个属性constantBurstBehavior为假,不需要保持,但是为高电平,你一定要保持。
 楼主| lcytms 发表于 2018-9-10 09:16:22 | 显示全部楼层
1134
        因为这个请求从机还没有拿到嘛。
        从机还没有响应这次突发的请求。
        那么在1和2之间,从机右侧逼近,将waitrequest置为低电平,从机不忙了。
        从机用waitrequest来叫停主机。
        当1和2之间这一拍,从机将waitrequest置为低电平,从机不忙了。
        于是在第二拍,主机能够捕获到waitrequest为低电平,说明响应了你的请求,所以地址1可以撤了。
        你像我这张图,地址一撤了就可以加地址二啊。
        当然这边是突发。
        由于这个constantBurstBehavior设置为假值,所以说它不需要保持了。
 楼主| lcytms 发表于 2018-9-10 09:17:30 | 显示全部楼层
1135
        因此,主机在第二拍捕获到了waitrequest为低电平以后,可以将地址撤销掉。
        不用管了。
        这个时候有一个write信号。
        我们讲我们为什么要认真地学LIP呢?
        很重要。
        如果我们知道它的时序,我们就可以各种IP都可以用。
        在突发写的这个过程之中,主从之间他们的握手形式是怎样子的?
        主机仍然可以用write握手从机。
        说走就走,说写就写。
        说不写就不写。
        Write仍然有效。
 楼主| lcytms 发表于 2018-9-11 09:15:38 | 显示全部楼层
1136
        从机也可以叫停主机。
        从机叫停主机呢,仅仅是在握手,就是突发的开始阶段,waitrequest叫停,从机叫停主机。
        当一旦进入突发的期间,这个时候从机只有被动地应答主机。
        主机说走就走,说停就停。
        从机只能把这次突发,指定的4个字的突发全部做完,从机是没有叫停的权利的。
        在这个过程中,在第二拍,主机捕获到了从机的waitrequest为低电平,于是呢,主机这个时候可以加载第二个数。
        它用不着加载新的地址了。
        用不着加载burstcount了。
        总共有4个数。
        这个时候地址,从机会自动地递增。
        这是data2。
 楼主| lcytms 发表于 2018-9-11 09:16:35 | 显示全部楼层
1137
        在第三拍的位置上,主机叫停了,主机可以选择停。
        它可以叫停从机。
        它用write叫停从机。
        虽然突发长度为4个字,我现在忙了,我现在忙了,我停下来。
        将write置为低电平。
        然后在4和5中间的这个上升沿上。
        主机这个时候它又愿意走了,主机任性,主机说走就走。
        主机将write置为高电平。加载第三个数据。
        因为总共有4个数据。
        从机也只得应答。
        从机是没有叫停的权利的。
        然后在5和6之间这一拍上,从机将waitrequest拉高。
        这个时候,主机在第五拍的时候,由于第五拍捕获到了waitrequest为低电平,所以说知道data3已经被写了。
 楼主| lcytms 发表于 2018-9-12 09:14:34 | 显示全部楼层
1138
        接着加载data4。
        主机捕获到了waitrequest为高电平,data和write命令将要保持住。
        我们总结一下,突发写很重要,因为SDRAM里面大多都是用突发读写。
        突发写,主从之间都有叫停的权利。
        进入突发,从机用waitrequest,主机用write。
        进入突发,主从之间都可以叫停。
        主机可以用write叫停从机,从机用waitrequest叫停主机。
        那么在第七拍以后,主机捕获到了waitrequest为低电平,接着可以将data4撤掉,将write撤掉。
 楼主| lcytms 发表于 2018-9-12 09:17:04 | 显示全部楼层
1139
        这次突发写操作就结束了。
        这张状态转移图我稍后来绘制。
        我们先接着来做它的突发读。
        因为这两个是重点,突发读写的时序。
        刚刚我们做突发写的时候,不需要用到从机的readdatavalid。
        Readdatavalid,说明读的那个数据什么时候到了嘛。
        所以说突发读是一定要有readdatavalid的。
        并且要有读回来的数据readdata,这是数据。
        突发读。
        这张时序图上甚至做了多主机的一个时序的例子。
        第一拍上,在地址总线上是,A主机加载了A0,并且给出的burstcount是4,一次连续读4个字。
        4个字的首地址是A0,是主机A发出的。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-9-12 09:18:18 | 显示全部楼层
1140
        首发的beginbursttransfer有效。
        在第一拍上,从机发出了waitrequest为高电平。
        于是,在1和2之间的上升沿上,主机捕获到了waitrequest为高电平,于是,它们这次突发读的命令,从机没有响应,它必须保持住,读命令要保持住。
        除了首发的beginbursttransfer以外,其它的都得保持住。
        在1和2之间,从机将waitrequest拉低。
        在第二拍,主机捕获到了从机发出的waitrequest为低电平,知道从机应答了,这是突发的请求。
        于是主机可以将地址撤掉,换下一个地址,或者停下来。
        这时主机当然选择加载新的地址,A1的地址。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-27 14:40 , Processed in 0.061233 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表