FPGA夸时钟域处理方法的总结

FPGA夸时钟域处理方法的总结

一、问题现象:产生亚稳态。
二、问题原因:不满足建立时间或保持时间要求。
三、解决办法:
1、单bit信号,可以采用打两拍的方法,注意该方法可以大幅降低亚稳态的概率,但也无法保证输出结果完全正确。
具体RTL实现举例如下:
input sig_in;
reg sig[2:0];
always@(posedge clk)
sig[2:0]<={sig[1:0],sig_in};//sig[2]为打拍后的信号;
2、多bit信号,可以用格雷码编码(仅有1bit不同),然后还要打两拍,例如通过FIFO的地址跨时钟域时,该地址就可以用格雷码编码。
3、通过FIFO和双口RAM实现跨时钟域的数据同步,但需要计算评估好FIFO深度和RAM大小。

猜你喜欢

转载自blog.csdn.net/weixin_39789553/article/details/108622527
今日推荐