罗姆(ROHM)
直播中

林立

7年用户 124经验值
私信 关注
[问答]

时钟是怎样传递出去的

上一章介绍了时钟产生的几种方式以及每种方式对应的应用场景。今天讲一下产生的时钟是怎样传递出去到每个应用这些时钟信号的器件,你可以把这个过程看作是人体的脉搏。我们分几种场景来看:

多数的逻辑功能都依赖时钟的边沿对数据进行判决

我们先说一下器件内部时钟的使用:

比如MCU - 在器件内部直接产生或者配合外接的振荡威廉希尔官方网站 产生,就地使用,你不需要关心这些时钟信号在内部是如何使用的,那是IC设计工程师的事情,他们做的事情就类似FPGA逻辑编程一样,不过对于使用这些器件的工程师 - 软件工程师、系统工程师,不需要关心这些细节。你只需要编写程序,让自己要实现的功能通过一条条的指令去执行就可以了。

MCU接上振荡威廉希尔官方网站 动起来,你只需要专注于编程就可以了

比如FPGA - 几乎内部所有的功能都需要不同频率、不同相位时钟的参与,而这些时钟可能都来自于同一个时钟源,因此时序(timing)可以说是FPGA工程师最头疼的问题 - 无论是最基本的时序逻辑还是状态机,Debug的工作重心其实就是查找时序上出现的问题。在FPGA使用时钟过程中你可能需要应对以下的几个问题:

通过内部的逻辑产生你所需要的不同频率、不同相位的时钟信号

通过PLL生成高速的时钟,毕竟外接或者自身振荡产生的时钟信号频率不会太高,而FPGA内部的逻辑需要更高速地运行,因此目前主流的FPGA都会自带几个PLL甚至DLL

通过PLL进行相位的调整。内部的逻辑门一定会有传输延迟,在你需要相位精确要求的逻辑威廉希尔官方网站 可以使用PLL来获取你所需要的相位时钟

通过PLL做精确的相位调整

通过PLL也可以进行时钟占空比的调整

通过PLL也可以消除参考时钟上的噪声和抖动(jitter)

时钟信号的相位和周期抖动示意

基于一个时钟输入源进行时钟分配,增加每个时钟输出的驱动能力,最小化多个输出之间的输出偏差,有的情况需要PLL,有的情况则不需要

基于锁相环PLL的消除输出偏差

我们再说一下器件和器件之间的时钟信号传输

最常用到的处理器(8051...ARM等等)和外设之间的数据通信,无论是并行数据访问和串行数据访问,时钟线(clock、clk、sclk、sck不同的应用不同的叫法)都是最值得重视的一根,它的质量好坏 - 幅度上的电平大小、噪声,边沿上的抖动、过冲都影响了系统的性能。

并行总线访问的典型连接方式

ADC/DAC的时钟信号更是关键,因为这些器件都是在时钟的边沿处对模拟信号进行量化,时钟沿的抖动将会给量化的结果带来噪声,尤其是要求高精度的ADC和DAC,不仅需要ADC/DAC的位数要高,更需要其采样时钟边沿抖动要尽可能小,噪声尽可能低。因此高速ADC/DAC的时钟信号一般都会采用正弦波时钟,因为方波信号会有更高频的信号成分,容易影响到被采集的模拟信号。如果大家留心的话,很多高速的ADC/DAC都采用差分的方式进行数据和时钟的传输。有图有真相 - www.analog.com上你通过选型发现越是高速、高分辨率的ADC其接口都变成了差分的方式。

Analog Device的高速/高分辨率ADC都采用了串行且差分的传输方式

回帖(2)

刘德凤

2019-6-6 11:54:34
不错,从最基础的开始讲
举报

方夏少

2019-6-6 12:08:40
看看了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分