阅读:994回复:3
dma读local侧时总有几个数据不对?
不知为什么我在做dma的block传输时,读local侧的数据总有几个不对。如果读64个DWORD数据,就会错16个,这16个全是FFFFFFFF,读16个时,就会错4个,这4个是FFFF5E5F,读8个,就错2个,读4个,就会错1个。是不是我得时序中ready信号的使能时间不对?我是用VHDL编的,在ads为0时ready为0,blast为0时ready为1。
|
|
沙发#
发布于:2003-06-27 12:27
在ads为0时ready为0,blast为0时ready为1。
逻辑似乎不对. ADS上升沿READY为0,BLAST上升沿READY为1 |
|
板凳#
发布于:2003-06-28 09:48
我是觉得我得时序有问题,好像读数据的时间早了一些。我看了论坛上的有关READY信号时序的讨论,好像用原理图的人很多。可一直苦恼的是,我不知如何用VHDL语言来实现这种逻辑。是不是可以这么写:
process(lhold,ads,blast) begin if(lhold=\'0\') then ready<=\'1\'; elsif (ads\'event and ads=\'1\') then ready<=\'0\'; elsif(blast=\'0\')then ready<=\'1\'; end if; 在一个进程中不能同时用两个时钟,所以我就这么写了。不知对不对?! |
|
地板#
发布于:2003-06-28 20:09
Sorry,我不太明白VHDL,请其它人解释吧!
|
|