玩转IP core:系统中的时钟与时延
扫描二维码
随时随地手机看文章
今天,我将带领大家来个缩骨大法,将我们缩小到原子的尺度,来参观FPGA/ASIC的内部风景。新《旅游法》已经实施了,本次旅游绝无自费项目和强制消费,请诸位放心。
各位游客,现在我们正沿着PCB数据大道,走向芯片大厦----就是大家眼前的巨大的、银色的大厦。我是本次旅行的导游,敝姓十,大叫可以叫我十导。路途之中,为了大家不感到无聊,本人先给大家略略介绍一下,什么是数字电路的时钟。
数字电路中,时钟是整个电路最重要、最特殊的信号。
第一:系统内大部分器件的动作都是在时钟的跳变沿上进行,这就要求时钟信号时延差要非常小,否则就可能造成时序逻辑状态出错。
第二:时钟信号通常是系统中频率最高的信号。
第三:时钟信号通常是负载最重的信号, 所以要合理分配负载。
好的,今天的参观,我们就从芯片的时钟树结果开始。由于上面介绍的特点,在芯片这类可编程器件内部一般都设有数量不等的专门用于系统时钟驱动的全局时钟网络,这种网络就叫做时钟树。
从顶端看下去,可以看到从相同的时钟管脚开始向下延伸,如同人类的血液系统,芯片中的时钟信号呗传递到各个寄存器。这个时钟,到达远端的寄存器,需要经过漫长的电路,所以片外的时钟芯片需要被锁定和增强,才能够驱动这数以亿计的寄存器。不仅如此,为了达到系统同步的目的,所有寄存器的时钟信号到达时刻允许的差别(时延,用洋文说就是skew)也需要特
别的小。还需要考虑信号的完整性问题。妈妈咪啊,这些看起来似乎很难。套用一句13年春晚里面的台词:幸好,我们不必操心这些。
话虽如此,如果你抱着“事不关己,高高挂起”的态度,乱设计系统的时钟的话,后端设计工程师绝对会带着刀子找你拼命的。不要叫别人打你个满脸桃花开,你才知道花儿为什么这样红。“本是同根生,相煎何太急”啊,兄弟。
大伙,随我来,将会看到四座巨大的雕像。这几座雕像以后现代解构主义的手法,表现了四种不同的时钟形式。
第一位是大名鼎鼎(小名吗不清楚)的全局时钟(Global Clock)。它是由片上的时钟管脚引入,经过锁相和放大之后,输出给寄存器的稳定、可靠的信号。这种时钟的时延被设计的最小,相对时延也最小。
图1(点击图片查看大图)
第二座是为了纪念数字逻辑设计里面愚蠢的时钟:门控时钟。这种时钟从一些信号经过组合逻辑产生,表面上看着一个字:美。但是,既然设计中连时钟的同步都做不到,难道组合逻辑的同步就那么简单吗?答案是:(做到同步)这个真的没有。于是,麻烦来了,这个组合逻辑的时钟,也会上窜下跳的了,整个一个孙猴。试问,这种时钟谁敢用?哪个艺高人胆大的,来试试?
图2(点击图片查看大图)
下来,为了体现IQ无下限,我们见到了第三座雕像:多级逻辑时钟。它不仅仅用了组合逻辑还加入了前级寄存器的输出。所谓,毛刺也无极限啊。哪个艺高人胆大的,想来试试?
图3(点击图片查看大图)
最后也是一个“英明”的设计:行波时钟。如同莫小贝的最爱----糖葫芦,上级寄存器的输出作为下级寄存器的时钟逐次传下去。理论上,行波时钟可以非常完美的运行下去。但是,在这里总是有但是的,但是,考虑到这些寄存器时间的时钟的时延控制的难度,我们不得不说:行波链上的时钟波动会变得极大,最终破坏整体时延要求,使得系统的整体工作时钟严重降低。
图4(点击图片查看大图)
有诗赞曰:芯片设计万万千,抓住时钟是关键。四大金刚长得帅,修得正果唯全局。
有的客人会说了:不是有多时钟系统吗?多时钟是有的,但是或者需要通过同步化,或者不同时钟系统之间需要某种隔离。这两个技术,在后面的讲座中,都是会遇到的。
下来,我们会进入时延实验室,免费体验一下信号的时延。下图是一个信号有全0变为全1的例子,可以看出不同阶段的信号变化时机不完全一致。只有后仿真的结果,才是与系统比较契合的。所以,如果只做前仿真,再快的时钟也是可以的。
图5(点击图片查看大图)
但是,如果在后仿真阶段,时钟快到了低于系统的处理时延,麻烦就来了。见下图,如果时钟上升沿在信号变化的中间,那么输出信号就不是”1111”而是”1011”。你就摊上事了,摊上大事了。另外,还有一点,信号的位宽越大,那么对应的处理时延和skew也会越大,这点很重要。
图6(点击图片查看大图)
各位游客,今天的旅行到此就结束了。欢迎下次光临。
责任编辑:Fgirl来源:EEFOCUS 分享到: