lcytms
发表于 2018-10-6 09:44:18
1353
所以说,完全由上游说了算。
非常简单,上游说走就走,上游说停就停,完全听上游的。
下游被动地接收上游的数据。
刚刚我们说的是主机和从机,这边是上游和下游。
5.10说的是,使用了反制的传输。
使用反制的传输,用得更多。
很多传输,像FIFO里面,就是带反制的传输。
图5-6,说的一个反制传输里面的一个特殊的要求。
反制传输,从机要能够反制主机。
主从都可以随时叫停。
都有叫停的权利。
主从之间都有响应叫停的义务。
这个时候呢,有一种特殊的要求,对于主从之间,就是就绪潜伏期,readyLatency。
lcytms
发表于 2018-10-6 09:45:59
1354
就绪潜伏期,第一要对称。
什么是对称呢?
就是进入,从输入有效到输出有效,ready有效,到valid有效。
这张图我就擦掉了。
等下我们要做它的对应的练习。
从ready有效,到valid有效,这个呢,称之为就绪的潜伏期。
就绪潜伏期,是流传输里面非常重要的一个概念。
另外还有一个请求潜伏期。
请求潜伏期,这个用于什么呢?
这是下游主动,用于上游主动的时候,用请求潜伏期。
下游主动的时候,用就绪潜伏期。
下游主动是什么?
整个传输的过程,整个传输的过程,上游说了算。
但是下游的反制,下游是主动提出反制。
lcytms
发表于 2018-10-6 09:47:08
1355
下游的反制是主动的,不是被动的。
当然下游也可以被动地反制。
刚才我们看的这张图,就是ST传输,streaming,是上游source,源,下游sink,槽或者宿。
数据单方向的,data。
然后它们互相地制约。
fpga_feixiang
发表于 2018-10-6 11:34:00
顶~~~~~~~~~~~~~~
lcytms
发表于 2018-10-7 09:26:22
1356
上游制约下游的信号,叫valid,下游反制上游的信号,叫ready。
这就是规则。
你取信号名的时候呢,你可以取其它的名字,你认为合适的名字,甚至逻辑会相反。
就像复位信号,有正逻辑和负逻辑。
同步电路,打上两撇。
上游发valid给下游,下游是发ready给上游。
我们现在讨论的Avalon的ST,是下游主动反制。
也有些规则里面是上游主动,下游被动。
lcytms
发表于 2018-10-7 09:27:31
1357
我们来看它的TP图。
下游sink,槽,会发出ready信号。
ready信号为真,就说明下游就绪。
发出地是sink,接收地是source。
从ready到source,上游响应了ready,下游就绪了。
lcytms
发表于 2018-10-7 09:29:03
1358
上游发出数据。
发出valid。
这张图很有意思,就能说明这种下游主动的概念。
ST其实比那个MM还有复杂一些,还要难一些。
当下游ready,表示下游就绪,下游能够接收数据,上游才给数据。
下游允许接收数据,上游才有权给或者不给。
所以说当然是下游主动了。
如果下游ready为低电平的时候,上游只能停。
lcytms
发表于 2018-10-9 09:16:06
1359
上游是不能给的。
当下游ready以后,下游才可以决定给还是不给。
上游才可以走还是停。
而这个过程,从ready有效,到valid有效,这个称之为就绪潜伏期。
这个就绪潜伏期,是ready为1,数据为真,如果ready为0,数据为0,那是这个潜伏期的退出。
这个潜伏期呢,从ready为1,到valid为1,称之为就绪潜伏期的进入。
lcytms
发表于 2018-10-9 09:17:33
1400
是进入,=N。
它必须要对称,必须要=N。
进入是多少拍,退出也是多少拍。
我们做过图像,我们就知道,它是非对称的。
从输入有效,到输出有效,跟输入无效,到输出无效之间,是不相等的。
但是ST要求必须相等。
并且呢,它会有一个就绪潜伏期的要求。
这张图上可以看得到。
lcytms
发表于 2018-10-10 09:27:05
1401
我们来看这张图。
下游sink,发出ready信号,就绪潜伏期必须是4拍以后,就绪潜伏期以后,数据才有效,才发出数据有效。
数据有效,当然跟valid对齐的data就有效。
这个过程是由就绪潜伏期决定的。
当下游ready为低电平的时候,上游只能等下来。
当下游ready为高电平的时候,上游才可以走。
它可以选择走,也可以选择停。
上游有选择做停的权利,灰色的部分。