lcytms
发表于 2018-9-30 09:53:39
1344
首发的这个beginbursttransfer,无论如何它就是一拍,它就是首发一拍。
这样的话,就保证这个信号只有一拍。
fpga_feixiang
发表于 2018-9-30 14:24:29
顶~~~~~~~~~~~~~~
lcytms
发表于 2018-10-4 09:22:23
1345
到了第四拍以后,要做的动作就是把读关掉,其它的不用管,burstcount也不用管,因为只要你读命令为0,从机不会响应。
然后就是数据的捕获怎么办?
数据的捕获,对主机而言,仍然用NBD来做。
仍然看readdatavalid,我们说车管所的业务。
当它为真的时候,数据到了,这个时候主机就要计数了。
计数数据是第几个数据。
lcytms
发表于 2018-10-4 09:23:31
1346
要得到第几个数据,从readdata上。
这边是读出来,readdata,我仍然写成Ai的形式。
第几个地址,因为首发的地址A0,它要加一,一直加到burstcount,0/1/2/3。
A1要0/1。
所以说,这边是4,这边是2。
它得计数。
这个要跟burstcount合并进行管理。
管理以后,得到每一个数据。
lcytms
发表于 2018-10-4 09:25:59
1347
这是一个突发读。
它的读的这个过程,对主机而言,主机它必须要记住,得到的这个数据,就是readata,是第几个。
因为这段逻辑,我们下午做练习,可以试试看。
突发读,读进来,主机放在什么位置上?
readata是主机的输入还是输出?
突发读是主机的输入端口。
主机要判断readdatavalid是第几个。
它是输入端口,装配到什么位置上,这张时序图上并没有说,我们下午可以做一下练习。
lcytms
发表于 2018-10-5 09:14:13
1348
装配到什么位置上,或者把它写到存储器里面。
或者是把它写在什么端口。
这个i+1是要管理,是要跟burstcount挂钩的。
先burstcount,是0/1/2/3,然后呢,burstcount是2,0/1。
要这么数它是谁的,谁要的数。
lcytms
发表于 2018-10-5 09:16:00
1349
然后呢,我给大家说一下流管理。
流管理是一个大项,一个非常复杂的问题。
我简单说一下。
流实际上是非常重要的,我们写逻辑,很多逻辑都是流。
这个streaming,上游下游,是单方向的。
这里有一个例子,印刷电路板,一个典型的应用。
lcytms
发表于 2018-10-5 09:17:32
1350
这个电路,它有一个接收器,接收器的一个核,从高速的串行逻辑端口进来,这个在高速的串行收发器里面会很常见。
这个IP核的上游,source,指向它的下游,分0/1/2三个层次来传输。
三个层次传输的过程之中,进入FIFO。
FIFO的上游指向下游,始终是上游下游,上游下游。
是一个方向,就像一个数据河流。
它这里面说的一些术语和概念,里面有一个词,Backpressure。
非常重要的一个词。
lcytms
发表于 2018-10-6 09:38:51
1351
主从之间,主机是主导传输和控制,从机是辅导传输和控制。
主从之间都有信息交换。
控制交换,是主机为主,从机也可以说是,它有它的反制的信息,backpressure的信息。
上下游也是这样的。上游往下游传输数据,上游一般是主导,但是呢,下游也可以反制,backpressure。
这是它的规则、属性等等。
图5-2,是一个典型的流接口的信号。
两个逻辑,一个是数据的源,上游。
一个是数据的sink,槽。
数据一定是从上游指向下游的。
lcytms
发表于 2018-10-6 09:40:20
1352
上游的握手信号,由valid说了算,说走就走说停就停。
下游用ready反制上游。
是这么个情况。
另外呢,这个Avalon接口里面,还包括像error错误、channel信道,来进行传输。
这个呢,我们暂时放一放。
5.9节,Data Transfer without Backpressure,这个是什么意思呢?
无反制的数据传输。
没有反制,下游没有任何权利,是由上游说了算。
上游说有数据就走。
上游说不走,说停,就将valid拉低。