时钟信号会不会产生延迟?

2014-09-23 20:59:31 +08:00
 yangryorange
如题。在看计算机组成原理的时候脑洞大开。个人看法是信号传播一定会发生延迟的状况。毕竟距离时钟信号发生器近的部件和远的部件可能接收到的时间不同。但时钟信号对计算机各个部件的协同工作非常重要。如果有,如何避免或者控制这种情况?如果没有,为什么?

ps:本人没有数电基础,也不知道如何找到相关资料。请各位解答下,或者指明方向我去翻资料。
3455 次点击
所在节点    问与答
12 条回复
qiuai
2014-09-23 21:03:05 +08:00
应该是因为太短而忽视了吧?还真不知道这个.
gamexg
2014-09-23 21:06:55 +08:00
也没基础,但是听说布线时要求时钟、数据等线路等距。
lightening
2014-09-23 21:23:55 +08:00
会。时钟延迟是高频芯片设计时一个难点。毕竟时钟信号也是以光速传播的,传播一厘米的话,需要:

(0.01m) / (3E8 m/s) = 1/3 * 10^-6 s
也就是说,频率最高能上到 3E6 Hz = 3GHz,不然时钟就会偏移一个周期。

一种设计方法是这样的:


A 点是时钟源。采用分型的方法,这样每条线的尖端到 A 点的电路距离是一样长的。分型越细,尖端的数量就越多,时钟的同步性就保持的越好。但是电路中还有电感和电容,他们都会 shift 时钟。所以高频数字电路中的时钟还是一个难点。有时候只好用异步电路去排除时钟的影响。

读博士的话,时钟同步应该是专门的一个研究方向。
lightening
2014-09-23 21:34:32 +08:00
哎呀,上面图画错了……

没有保证所有的尖端到中心距离一致,赶快补一个:

总之保证每一次分叉出的所有尖端长度都一致。
clker
2014-09-23 21:36:48 +08:00
时钟延时确实有,但现在的数字电路设计都是依靠EDA工具自动综合,布局,布线完成的。并不要求时钟到每一个寄存器的延时一样,只要该时钟和数据满足相应的建立时间和保持时间即可。
kmvan
2014-09-23 21:38:43 +08:00
@lightening 为啥不在四边都分别放一个clock呢?
lightening
2014-09-23 21:41:20 +08:00
@kmvan 也可以啊。但是你还得保证那 4 个 clock 是同步的。于是你还要从同一个源,用相同长度的线引出来到 4 个角不是么。
kmvan
2014-09-23 21:46:18 +08:00
@lightening 对,因为始终要确定一个源。不过我想,这四个clock可以一天与中心源校正一次,这样四周的芯片每次获取时间的速度都要比从中心源获取的快N*4倍吧
lightening
2014-09-23 21:53:48 +08:00
@kmvan 不行的,如果用四个晶振,晶振的频率没有这么准确的。如果是100年误差一秒的精度,芯片运行在 1GHz, 换算后:

1E9 / ( 100 * 365 * 24 * 60 * 60 ) = 0.3

也就是得 0.3 秒校正一次…… 更何况这个精度实际上根本达不到。

获取时间的速度不是个问题。因为时钟信号可以看做无限周期的信号,延迟几十个几百个周期根本无所谓————反正一成不变。
yangryorange
2014-09-23 22:03:26 +08:00
@lightening
@clker
多谢答疑。还有个问题,是不是现在的电路板实际上是有延迟的,只是通常忽略了延迟。比如我正在看计算机组成原理这里可以忽略?。那在什么地方或者什么领域这些延迟不能被忽略,必须去想方设法去解决?
lightening
2014-09-23 22:09:35 +08:00
@yangryorange 其实稍微有点规模的芯片,计算机、手机等,这个延迟都已经不能忽略了。计算机组成原理的书里不讲这个,是因为这个已经太细节了,不是做芯片设计的话没必要知道。
实际上在设计芯片的时候,用的设计软件都会做时序仿真,所有的信号延迟要满足一定依赖条件,芯片才能运行的。这个信号依赖条件太复杂,人脑已经不可能去处理了,所以需要计算机辅助。
yangryorange
2014-09-23 22:38:14 +08:00
@lightening 多谢多谢。学习了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/135252

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX