首页 > 代码库 > FPGA 异步时钟处理方
FPGA 异步时钟处理方
1 如果FPGA设计中包含不同频率的时钟,就会涉及异步时钟的问题。我们需要一些方法来使得时钟同步,从而保证FPGA设计的可靠性。
2 在建立和保持时间所构成的有效时间窗口内,数据输入到触发器进行转换。如果数据的到达时间不满足建立或者保持时间就会产生时序冲突。此时触发器的输出就有可能停留在非逻辑0 或1 的范围内(这个状态叫做准稳态),从而造成逻辑错误。
3 如果异步时钟的相位不能够完全对齐就有可能引起2中所述的故障,而且这种故障是不可再现的,也无法通过仿真发现。
4 解决方法,即时钟同步问题:
a, 相位控制,通过PLL(锁相环)DLL(延时锁相环)使得两个异步时钟的边沿对齐。
b, 双跳技术(双触发器技术),在可能引起准稳态的触发器后增加一级触发器,从而消除准稳态的影响。如图所示:
c, FIFO结构,解决异步时钟的问题的最有效方法是采用先进先出的队列结构,它通常由双口RAM来实现。
格雷码通常用在FIFO结构中进行异步时钟间的多位计数传递,对于格雷码每次只改变一位,可以消除多位计数器在异步时钟传递过程中未同时被改变的问题。
大多数现代的FPGA都集成了FIFO核,从而方便设计者使用。
5 同步寄存器应该分割成独立的外部模块,如下图所示:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。