if (rck_dly='1' and rck='0') then --RCK下降沿(但这个条件是否总会出现?)
data_buf <= data;
endif;
endif;
endprocess;
但是大家忽略了一种情况,就是clk与rck之间比没有必然的同步关系,当rck的下降沿刚好略滞后于clk的上升沿(大概几个ns),这样就会使高电平 保持时间不足,就会发现在本时钟上升沿时还是rck_dly='1' and rck='1',而在下一个时钟的上升沿来的时候,就会出现rck_dly='0' and rck='0',所以就不会有rck_dly='1' and rck='0'的情况出现!! 从而导致丢失数据。 如果用下面的方法就可以避免上面的情况,并且可以做到正确无误地接收数据:
文章评论(0条评论)
登录后参与讨论