lcytms
发表于 2018-9-2 09:15:44
1112
响应请求之后,数据什么时候返回,这个时候是固定潜伏期的。
我们先休息十分钟。
(休息)
lcytms
发表于 2018-9-2 09:16:47
1123
主从之间的信号一定要有概念。
哪些信号是主机给的?
哪些信号是从机给的?
lcytms
发表于 2018-9-3 09:14:28
1124
我们写主从之间的状态转移图的时候,我们知道,分子是输入,分母是输出。
什么是主机的输入?
什么是从机的输入?
对于主从传输,master,slave的transfer,一定是地址、主控命令是主机发的。
数据是双向的。
有一个readdata是从机给主机的。
主机给从机的是writedata。
我之前写的一个是data和q,q是从机发给主机的readdata。
然后呢,主从之间的握手,我们在总结一下这个过程。
从典型的开始。主控的是哪些呢?
主机的是读、写, read、write。用这两个信号来控制从机。
lcytms
发表于 2018-9-4 23:39:23
1125
主机随时可以读写。
说读就读说写就写,说停就停。
从机有应答主机的义务。
主机有叫停从机的权利。
在典型读写的时候,从机是用waitrequest来叫停主机。
所以说主机有响应waitrequest的义务,从机有发出waitrequest的权利。
当waitrequest为真的时候,主机就必须hold,必须保持住。
在这个规则下面,这个时候主机只能保持住。
这个是有非常清晰的物理规律的。
它不保持住,就会带来效率的丢失。
传输的时候满足我们上面三个要求。
这个时候主机必须保持住,主机不能叫停。
主机只能保持住。
主机什么时候可以叫停呢?
可以发出读写叫停呢?
只有从机发出的waitrequest为低电平的时候,主机才能叫停。
lcytms
发表于 2018-9-5 21:45:20
1126
然后呢,固定周期的时候,地址,还有write。
地址信号,一直都是主机发的。
主机可以发读写命令。
读写命令是主机发的。
仍然是主机叫停从机的控制信号,说读就读,说写就写,说停就停。
而从机这个时候,是用固定的周期来握手主机。
就是它响应了读写命令之后,它是用固定的周期来握手的。
然后对于流水线,我们只做流水线的读,就是Avalon并不支持流水线的写。
流水线的读,就是读命令。
主机能够叫停从机的权利就是读。
主机说读就读,说不读就不读。
从机有响应主机发出读的义务。
而从机叫停主机的有两个握手信号。
从机比主机的权利多,体现在什么呢?
lcytms
发表于 2018-9-5 21:47:47
本帖最后由 lcytms 于 2018-9-5 21:49 编辑
1127
从机有waitrequest叫停主机,还有readdatavalid叫停主机。
waitrequest叫停主机,相当于什么业务呢?
相当于储蓄所业务。
当waitrequest为真值的时候,它必须要停了,要保持住。
主机必须要hold。
当waitrequest为低电平的时候,说明从机已经应答了主机的请求。
而readdatavalid说明是什么呢?
说明从机响应你的请求,而什么时候返还数据呢?
用readdatavalid说了算。
所以说,从机这个时候有两种叫停主机的权利。
而主机必须应答,有响应这两种权利的义务。
这是流水线,可变潜伏期。
固定潜伏期,仍然有第一种业务,waitrequest。
主机仍然是用读命令来制约从机。
而从机除了waitrequest之外,readdatavalid那根线撤销掉了。
用固定周期来做。
lcytms
发表于 2018-9-7 09:20:50
1128
固定周期的读。
然后呢,我们来介绍一下突发,burst。
这个词的词频也很高。
这个词的出处就是LIP,它是从LIP中提出来的。
它指的是什么呢?
一次进行的多个(字或字节)的传输,称为突发(burst)。
因为我们只发出了一个读地址,在流水线的时候,一个读地址,一次读请求,只读一个数据。
但是在很多情况之下会带来效率的丢失。
而突发呢,是给出首次的地址,首次的读写命令,之后就可以按照约定的方式,在主从之间进行指定个数的数据传输。
lcytms
发表于 2018-9-7 09:21:43
1129
数据传输的个数,称之为它的burstcount,要么是约定,属性的约定,要么是一个握手。
突发多少个。突发的首地址、首命令要给出。
首地址、首命令给出了以后,在发送的过程之中,就按照约定的burstcount,来进行连续的传输。
突发传输要求从机要有两个状态,就是要有两种握手的权利。
第一种就是waitrequest,就是储蓄所业务。
当它busy的时候,主机发出的请求无法处理。
主机发出的请求必须要保持住,要hold,要进入等待的状态,Wait-State。
第二,就是从机必须要有readdatavalid。
对于突发读写,从机必须要有两种叫停主机的权利。
lcytms
发表于 2018-9-8 09:25:10
1130
这张图呢,说的是突发写。
就是首发命令之后,连续地进行写传输。
这个burstcount要求大于1。
因为burstcount如果等于1,说明什么?
它就不是突发了嘛。
突发就是连续地进行传输。
Burstcount也可以用属性来做。
但是我们现在的PPT上,只是一个握手信号,是主机发的。
还有一个属性,constantBurstBehavior。
这个属性,用于主机的时候,它为真,说明在整个突发期间,地址和burstcount要保持。
lcytms
发表于 2018-9-8 09:26:37
1131
它为假,只在首发需要有地址和burstcount。
大多数情况,我们都会用首发有效。
从机的时候也是如此。为真的时候保持,为假的时候首发有效。
这里面还有一个信号叫beginbursttransfer。
这个信号除外,这个信号不归constantBurstBehavior这个属性管。
它永远是首发有效。我们看这张时序图。
这张时序图呢,是一个突发长度为4,就是一次访问4个字。
只需要给出首地址。有点像我们做的长整的加速器。
只需要给出一个首地址突发概念就是这样。
所以说constantBurstBehavior设置为假值。
它不需要保持。
就是地址和burstcount是首发有效。