集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2018-8-25 09:43:48 | 显示全部楼层
1042
        这个流水线,是真正的pipeline。
        但是含义跟同步电路里的流水线还是有所不同。
        这边的流水线pipeline,指的是主从之间的传输。
        主从之间进行存储器映射的时候是发送有地址的。
        每一个地址,每一次传输的读写命令是连续进行的。
        第一拍读一个地址,第二拍读另外一个地址。
        实际上这种传输呢,在我们以前写静态存储器的时候,大多都是这样,我们可以随机地访问嘛。
        第一拍读一个地址,第二拍读另外一个地址。
        在接口上,流水线的传输是非常的典型。
 楼主| lcytms 发表于 2018-8-25 09:44:26 | 显示全部楼层
1043
        流水线的传输指的是什么呢?
        就是指的,在传输的过程之中,数据、地址是连续进行传输的,连续传输仍然用到pipeline这个词。
        这个时候就会有一个特殊的状态了,就是称之为Wait-State和流水线潜伏期Pipline latency。
        这个PPT理解起来可能有点问题。
        我们还是讲一个故事。
        刚才我们讲了两个故事,一个是储蓄所业务,是典型的存储器传输的握手waitrequest。
        第二个呢,是固定周期的,我们用工商所的业务。
        而对于流水线传输,我们讲一个车管所的业务。
 楼主| lcytms 发表于 2018-8-25 09:45:04 | 显示全部楼层
1044
        当我们到车管所考驾照的时候,当你报名登记了以后,车管所有你的档案,它知道你要来学车拿本。
        但是它不同于储蓄所。
        它不可能你排队,立刻就给你发的。
        这是第一点。
        它不同于储蓄所。
        第二,它也不同于工商所。
        当你登记了以后,它绝对不会象工商所那样,一周以后过来给你发本。
 楼主| lcytms 发表于 2018-8-25 09:45:46 | 显示全部楼层
1045
        它不同于工商所,它不是一个固定周期。
        而是登记了以后,它知道你要办什么业务,但是它要有一个可变潜伏期。
        它要有一个非常长的阶段。
        这个可变潜伏期,你要考科目一、科目二、科目三、科目四。
        每一个科目都要过。
        有些科目过得快,有些科目可能有些障碍,反反复复地去考。
        有的时候两三个月,半年,甚至更长时间都有。
        这就变成了一个可变潜伏期。
        说不好,是不是?
 楼主| lcytms 发表于 2018-8-25 09:46:31 | 显示全部楼层
1046
        你是主机,你是发布命令的主导者。
        给你发本的车管所,这个时候它是从机。
        它不能给你确定下来,什么时候给你返回信息。
        这个阶段称之为可变潜伏期。
        流水线潜伏期Pipline latency就是,当你申请了学车以后,什么时候拿本了,那个潜伏期。
        而不同之处,仍然有一个等待周期Wait-State。
        这个等待周期,跟储蓄所一模一样。
        比如说你到车管所去报名,前面有很多人排队。
        这个时候是一样的。
        所以说你到车管所去学车的时候,有两种业务,第一种业务就是waitrequest,就是储蓄所的业务。
        你仍然要排队要取号。
 楼主| lcytms 发表于 2018-8-25 09:47:57 | 显示全部楼层
1047
        取号登记以后,车管所才知道你要办理什么业务,才知道你是要学C本,还是要学A本。
        没有叫到你之前,车管所还是不知道你要干什么。
        所以说等待状态仍然有。
        过了等待状态,车管所知道你要干什么了,但是绝对不会立即给你发本,也不会告诉你固定的周期,而是要过科目一、科目二、科目三、科目四。
        所以说这个是等待状态和流水线潜伏期的区别。
        Altera的Avalon的流水线,它只支持流水线的读,并不支持流水线的写,等会我们再来解释。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-8-25 09:48:55 | 显示全部楼层
1048
        流水线的读,每一拍读一个数,可以是走它的流水线。
        既然是读嘛,主机和从机之间,就只有从机返回给主机的数据,而没有主机给从机的写数据,并不支持流水线的写。
        主机会发给从机的控制信号,仍然是读控制信号,主机说了算。
        说读就读,说不读就不读。
        主机仍然是主控的。
        说走就走说停就停。
        并且呢,在读的时候要给出地址,是存储器映射嘛。
        而从机呢,这个时候会反制主机的控制信号,有两个,一个是waitrequest,是储蓄所业务。
        就是说,叫号没叫到你的时候,它忙了,你得等着。
 楼主| lcytms 发表于 2018-8-25 09:50:25 | 显示全部楼层
1049
        你到车管所去学车的时候,排队,你得先登记啊。
        登记的时候前面有很多人。
        你拿到号你得等着。
        这个时候车管所不知道你要干什么,它不知道你要做什么样的请求。
        你得等着。
        Readdatavalid,这个信号就是流水线潜伏期了。
        这个信号是什么意思呢?
        这个信号是车管所已经知道你要干什么了。
        就是waitrequest已经过了,已经登记了。
        什么时候发本呢?
        取决于你过的科目了。
        直到科目四全部通过了,给你叫号给你发本。
        Readdata。
        所以说这个时候,从机反制主机的有两个信号,就是waitrequest和readdatavalid。
        而主机仍然是用它的主导信号,读信号来控制从机。
        主从之间都有发出叫停的权利,有响应叫停的义务。
        我们先把这张时序图分析完。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-8-25 09:51:13 | 显示全部楼层
1050
        在时刻1,主机发出了第一个地址。
        第一个地址对应的是第一个数据。
        Addr1对应的是data1。
        是读。
        主机发出了Addr1,发出了读命令。
        在第一拍上,从机发的是waitrequest,右侧逼近是一个低电平。
        说明从机不忙,刚好车管所排队登记,这个时候没有人。
        这样到第二拍,主机捕获到waitrequest为低电平。
 楼主| lcytms 发表于 2018-8-25 09:51:54 | 显示全部楼层
1051
        主机就知道,它第一拍发出的读请求,从机已经应答了,车管所已经接受了你的请求。
        于是主机可以做什么事情呢?
        主机可以将它的读命令撤销掉,或者接着发新的读命令。
        在这个时序图上,第二拍,由于捕获到waitrequest为低电平,接着主机发第二个读请求,第二个地址,同时从机在第二拍上发出了readdatavalid。
        Readdatavalid就是我们说的拿本的那个信号。
        当然这个太快了,跟故事有些差异。
        在第二拍上,readdatavalid从机发出了数据的应答信号,因为它不忙,立即就把数据就给了。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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