lcytms
发表于 2018-9-15 09:19:15
1147
一定要搞清楚,它是按真实信号来绘制的。
我们现在看突发写。
同样我们是绘制它的局部的。
在第一拍的时候,主机会发出地址1和beginbursttransfer、burstcount。
fpga_feixiang
发表于 2018-9-16 14:22:10
顶~~~~~~~~~~~~~~~~~~~~~
lcytms
发表于 2018-9-17 09:13:41
1148
发出地址1,我写成A1。
然后首发的beginbursttransfer。
lcytms
发表于 2018-9-17 09:14:39
1149
Burstcount,为4。
Write,为1。
写的时候当然要有地址。
Burstcount。
还要有writedata。
这是主机的,从机我不绘制了,从机相对简单一点。
第一拍,它就发出了waitrequest为高电平,它就拉高了。
这张图很重要,后面我们做SDRAM,我们做IP核,你就必须把状态转移图绘制出来。
你就知道什么时候要握手,无论是PCIe,还是DDR3,还是DDR4,只要把它掌握,都一样。
lcytms
发表于 2018-9-17 09:15:06
1150
所以说我们这个背景知识掌握了,很重要。
走遍天下都不怕,什么IP核我们都能用。
接着做什么?
接着是S1,主机要做什么?
lcytms
发表于 2018-9-18 21:54:49
1151
进入突发嘛,要握手。
Waitrequest为真的时候,它就等着。
在1和2之间的标线上,确实waitrequest是高电平。
然后waitrequest为低电平,这个应该是在时标线的第二拍上。
捕获到了从机发的waitrequest为低电平。
主机在这一拍上捕获到了waitrequest为低电平。
接着它会做什么呢?
lcytms
发表于 2018-9-18 21:55:59
1152
接着它可以将地址撤销掉,burstcount撤销掉。
但是write它要保留。
这个是突发写,和突发读不同。
突发写的时候呢,它的write信号仍然是有效的。
但是突发读的时候,一旦进入读突发期间,那个read信号是不用管的。
它就不起作用了。
这个write仍然起作用。
写突发的整个期间,write仍然是主机可以停。
用write来停。
所以说这边在时标线为2的位置上,主机做什么事情?
地址和burstcount。
S1,我们写一个NBD。
只要进入s1,这个信号一定撤销掉,beginbursttransfer。
fpga_feixiang
发表于 2018-9-19 16:27:15
顶~~~~~~~~~~~~~··
lcytms
发表于 2018-9-19 22:59:36
1153
一定为0。
我写成它的NBD。
S1,进入这个状态,一定把这个信号撤销掉。
因为我们现在画的1和2的中间,肯定会有这样一个半拍。
一旦waitrequest为假,那么首发的地址、burstcount就不用管了。
但是write还得要。
地址不用管。
Write要,加载第二个数。
lcytms
发表于 2018-9-20 21:41:04
1154
这时候主机任性,主机说走就走。
在突发期间,它觉得它可以走就走。
Write为真,加载第二个数。
这是在第二拍。
然后在第三拍,也是这样。
这边,状态转移图上,仍然得握手,waitrequest。
在做写突发期间,每一个写操作,主机都得握手从机,都应响应从机叫停的义务。
从机随时可以叫停。虽然时序图上,第二拍上没有停。
Waitrequest在之后第三拍上仍然是一个低电平。