(11)FPGA跨时钟域问题导致数据偶尔异常(学无止境)

1 问题描述

系统时钟为10MHz和100MHz,100MHz作为主时钟需要使用10MHz时钟下的数据,所以首先进行数据时钟域转换。转换方法有多种,这里采用双端口RAM。一个端口负责10MHz时钟域数据写操作,另一个端口负责100MHz时钟数据读操作;这也是一些网上前辈总结的方法;但是系统偶尔出现数据异常。

2 问题解决

设计要求:使用10MHz时钟进行2秒进行计数,每次到1秒或2s进行计数清零,循环0-2秒计数。该计数器通过双端端口RAM进行跨时钟域转换,出现偶尔数据异常。

解决方法1:直接使用100MHz时钟对10MHz时钟进行上升沿计数,每2s清零一次。这样就减少了跨时钟域处理环节。

解决方法2:直接使用100MHz时钟进行2s计数,每2s清零一次。10MHz时钟可以不使用。

3 结束语

希望对你有帮助,如果遇到问题,可以一起沟通讨论,邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/m0_46498597/article/details/108405071