集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2018-8-25 09:52:27 | 显示全部楼层
1052
        那么到第三拍,主机再次捕获到了waitrequest为低电平。
        在第三拍上,从机因为某些原因它忙了,从机将waitrequest拉高。
        由于在第三拍上,主机捕获到的waitrequest为低电平,于是主机将addr2变为addr3,做第三个地址的流水线。
        同时呢,主机捕获到了readdatavalid为高电平,意味着什么?
        意味着第一个地址得到的数据到了。
 楼主| lcytms 发表于 2018-8-26 23:01:34 | 显示全部楼层
1053
        这是在第三拍。
        主机不仅要将地址变换掉,同时要将data1及时地捕获,因为从机在readdata总线上,只有在这一拍上才会出现有效的数据。
        主机必须要及时地在第三拍上将data1拿走。
        Readdatavalid为第一拍的高电平。
        当然是第一个地址的数据data1。
        之后呢,在第三拍上,从机将waitrequest重新拉高,它忙了。
        第三拍呢,主机又发出了新的地址,addr3,于是在第5拍的位置上,主机捕获到了waitrequest为高电平。
        这个时候addr3的读请求,从机没有时间响应,于是主机必须将读命令和addr3一直保持住。
 楼主| lcytms 发表于 2018-8-26 23:02:12 | 显示全部楼层
1054
        但是呢,在第5拍的时候呢,主机还有一件事可做。
        主机除了要保持,主机同时还捕获到了readdatavalid为高电平,说明addr2,要读的数据到了。
        必须要捕获。
        所以说主机不仅要保持,还要及时将data2捕获到。
        我们写逻辑的时候,为什么要及时去捕获它呢?
        因为根据规则,从机没有义务为你保留数据。
 楼主| lcytms 发表于 2018-8-26 23:02:51 | 显示全部楼层
1055
        在第5拍的位置上,waitrequest仍然是高电平。
        在5和6中间的这一拍,从机不忙了。
        从机将waitrequest拉为低电平,它不忙了,它可以响应新的请求。
        于是到第六拍,主机捕获到了waitrequest为低电平,才可以将addr3撤销掉,加载addr4。
        addr3只保留到,它捕获waitrequest为低电平。
        这个时候流水线为第四个地址。
        同时在第六拍上,主机捕获到了readdatavalid为低电平。
        从机将readdatavalid拉高。
 楼主| lcytms 发表于 2018-8-27 09:14:19 | 显示全部楼层
1056
        在第六拍上,从机将readdatavalid拉高。
        说明addr3响应了,addr3的数据给出来了。
        主机只有到第七拍,才捕获到了readdatavalid为高。
        这是data3,及时地将data3捕获到。
        同时第七拍上,主机由于捕获到了waitrequest为低电平,它会将addr4撤销掉,重新加载下一个地址addr5。
 楼主| lcytms 发表于 2018-8-27 09:14:49 | 显示全部楼层
1057
        到第八拍,这个时候从机读出来的是data4,就是addr4的数据响应了给出来。
        在第八拍,主机捕获到了readdatavalid为高电平,于是要将data4捕获到。
        捕获到了waitrequest为低电平,接着主机可以主动地选择叫停,它将read置为低电平。
        主机用读命令来叫停从机。从机用waitrequest,或者是readdatavalid来叫停主机。
        当waitrequest为高电平的时候,储蓄所业务,得保持住,主机得将地址保持住。
        当从机发的waitrequest为高电平的时候,说明它要的那个数据,就是流水线的潜伏期,可变潜伏期到了。
 楼主| lcytms 发表于 2018-8-27 09:15:24 | 显示全部楼层
1058
        后面我们马上进入SDRAM,都是可变潜伏期。
        那么在这个过程之中,第七拍发的addr5,数据还没有读到,所以说从机这个时候只读到了4次readdatavalid为高电平,它必须要得到第五个readdatavalid为高电平。
        于是在第九拍前面的这个上升沿上,从机将第五个data的数据data5发出来了。
        在第九拍,主机捕获到了第5次readdatavalid为高电平,将data5捕获。
        这个过程我们也用状态转移图也来绘制一下。
        这个过程稍微复杂一点。
 楼主| lcytms 发表于 2018-8-28 09:17:11 | 显示全部楼层
1059
        主机是在第一拍发出了读和addr1。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-8-28 09:18:15 | 显示全部楼层
1100
        然后到addr2。
        S1的时候,发的这个命令它将握手。
        握手从机的waitrequest,储蓄所的业务。
        每一拍都要握手。
        当waitrequest为高电平的时候, 必须在s1上等待。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-8-28 09:19:17 | 显示全部楼层
1101
        当waitrequest为假值,读命令没有撤销,仍然是开着的。
        接着流水线,加载A2的地址。
        接着加载A3。
        S2上同样要等待waitrequest,每一拍都要考虑从机是否会叫停。

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 12:31 , Processed in 0.064205 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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