数字 IC 笔试面试必考点(4)跨时钟域及其处理方式
版权所有,新芯设计,转载文章,请注来源
引言
类似于电源域(电源规划与时钟规划亦是对应的),假如设计中所有的 D 触发器都使用一个全局网络 GCLK ,比如 FPGA 的主时钟输入,那么我们说这个设计只有一个时钟域。假如设计有两个输入时钟,分别给不同的接口使用,那么我们说这个设计中有两个时钟域,不同的时钟域,有着不同的时钟频率和时钟相位。
在实际的 FPGA 系统设计中,经常有多个不同的时钟源的参与,比如 FPGA 内部的 Clock Wizard 时钟分频 IP 核,连接到许多不同的频率输入的 IP 模块,这个在视频显示系统中是很常见的,毕竟,不同的视频显示格式需要不同的像素频率,也就需要不同的输入时钟。例如 640X480@60Hz 需要 25.175MHz 时钟,而 1280X720@60Hz 需要 74.2MHz 时钟等等。
🌏 一、跨时钟域处理方式
✅ 1、对于单比特数据的跨时钟域:打两拍(即定义两级寄存器对输入数据进行延拍,这个在解决 “亚稳态” 方式的随笔中已经提及)。
✅ 2、对于多比特数据的跨时钟域:异步 FIFO