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