数字IC时钟

文章介绍了时钟信号的重要性,包括其概念、关键性质如时钟偏移和抖动,以及时钟源的类型。时钟管理涉及门控、分频和切换,对于SoC芯片设计至关重要。通常,复杂的SoC芯片会使用外部晶振结合内部PLL和分频器来生成所需的各种时钟频率。

目录

前言

1. 时钟的概念与性质

2. 时钟源

3. 时钟管理模块

3.1. 时钟门控

3.2. 时钟分频

3.3. 时钟切换


前言

        时钟信号对于整个芯片的功能有着至关重要的作用,一旦芯片级的时钟信号质量不高,会导致许多不受控的异常bug。

        本人目前还尚未接触芯片级时钟设计的工作,所写也均是从网上浏览得到的,会在每个部分标记出出处以及网站。做这篇文章的目的也是为了记录下所浏览到的知识。


1. 时钟的概念与性质

        时钟信号,是数字电路的心脏,控制着整个数字电路的状态切换。时钟信号本质仍然是数字信号,即在逻辑0与逻辑1之前不断周期切换。

        时钟信号本身指标有幅值、周期、占空比、上升沿时间以及下降沿时间。不过时钟/时钟树还会关注一些关键指标:

  • 时钟偏移(clock skew):同一个时钟信号在到达分支的寄存器的时钟端口过程中,都存在有线网等延时,由于延时,到达寄存器时钟端口的时钟信号存在有相位差,也就是不能保证每一个沿都对齐,这种差异称为时钟偏移(clock skew),也叫时钟偏斜。
  • 时钟抖动(clock jitter):相对于理想时钟沿实际时钟存在不随时间积累的、时而超前、时而滞后的偏移称为时钟抖动,简称抖动。如下图所示:

(图片来源于电子产品的心脏-时钟 - 时钟信号的关键指标 - 知乎) 

        jitter时钟频率无直接关系,其可分为随即抖动(Random Jitter,简称Rj)和固有抖动(Deterministic jitter)。

        时钟的偏移和时钟的抖动都影响着时钟网络分枝的延迟差异(相位差异),在Design Compiler里面,我们用时钟的不确定性(uncertainty)来表示这两种情况的影响。

  • 时钟转换时间(clock transition):时钟的上升沿跳变到下降沿或者时钟下降沿跳变到上升沿的时间。对于理想的时钟,时钟转换时间为0,反映到图像上则是边沿为直上直下的。但在实际情况下,时钟高低电平是逐渐过渡过去的,过渡所需的时间即时钟转换时间
  • 时钟延时(clock latency) :时钟从时钟源(比如说晶振)出发到达触发器时钟端口的延时,称为时钟的延时,包含时钟源延迟(source latency)和时钟网络的延迟(network latency),如下图所示:

(图片来源于数字IC设计:时钟信号知识点全解析 - 知乎

 时钟源延迟(clock source latency),也称为插入延迟(insertion delay),是时钟信号从其实际时钟原点到设计中时钟定义点(时钟的输入引脚)的传输时间,上图是3ns。

时钟网络延迟( clock network latency)是时钟信号从其定义的点(端口或引脚)到寄存器时钟引脚的传输,经过缓冲器和连线产生的延迟(latency),上图是1ns。

 上述内容主要来源于:


2. 时钟源

        芯片中的时钟信号源主要有三种方案:

  • 外部直接输入时钟信号
  • 外部晶振+内部时钟发生器(OSC)
  • 外部晶振+内部时钟发生器(OSC)+内部PLL产生高频时钟+内部分频器得到各种频率的时钟

        从结构复杂度逐渐提升中可以看出,上述三种方案对应芯片的复杂度也是逐渐提升。当芯片逻辑门规模比较小,如一些小规模的ASIC,可能可以考虑第一种时钟方案。而目前SoC芯片主要都采用第三种时钟方案。这个方案的整体思路是先从晶振,时钟发生器产生一个24MHz,再经过PLL产生倍频时钟(高频时钟),最后再经过分频电路产生各种频点的时钟供给各个功能模块。


3. 时钟管理模块

        一颗SoC芯片,并不是仅仅只需要得到时钟信号就足够。对于SoC内部各个单元各个模块、所需的时钟需求也并不相同。因此在时钟设计中,时钟管理也是重要的一环。

        在SoC中,需要的时钟管理功能主要有三个方向:时钟门控时钟分频以及时钟切换

3.1. 时钟门控

        时钟门控相关的文章有:

        不只是模块级的时钟输入端会放置ICG,在模块内部的寄存器(位宽较大)也可以由DC插入ICG来实现低功耗。

3.2. 时钟分频

        时钟分频主要分为奇偶分频(整数分频)以及小数分频,这部分内容我在之前的文章已经分析学习过。[SugerTangYL] 时钟管理(分频器、倍频器、锁相环)Verilog_verilog倍频_SugerTangYL的博客-优快云博客

3.3. 时钟切换

### 数字IC设计中的跨时钟域解决方案 在数字集成电路设计中,跨时钟域(CDC, Clock Domain Crossing)问题是不可避免的一个挑战。当数据从一个时钟域传递到另一个不同时钟域时,可能会引发亚稳态(Metastability),从而影响系统的稳定性和可靠性。 #### 什么是亚稳态? 亚稳态是指由于异步信号跨越不同频率的时钟域,在采样过程中可能无法满足建立时间和保持时间的要求,导致触发器进入一种不确定的状态。这种状态会持续一段时间才最终转换为有效电平[^2]。 #### 如何减少亚稳态的影响? 为了降低因亚稳态带来的风险并提高系统性能,可以采用以下几种常见策略: 1. **双级触发器同步化** 使用两级或者多级触发器来捕获来自另一时钟域的数据是一种广泛使用的简单而有效的办法。这种方法通过延长观察窗口期使得第二级触发器有很大概率能够得到稳定的输入值。 ```verilog module sync_ff ( input wire clk, input wire async_in, output reg synced_out ); reg intermediate; always @(posedge clk) begin intermediate <= async_in; // First stage flip-flop synced_out <= intermediate; // Second stage flip-flop end endmodule ``` 2. **握手协议机制** 握手协议可以在发送方和接收方之间建立起可靠的通信方式。它允许双方确认何时准备好传输以及接受新数据包,这样即使存在不同的时钟速率也能安全交换信息[^3]。 3. **FIFO缓冲区应用** FIFO (First In First Out) 是另一种常用的技术手段用于处理跨时钟域问题。特别适用于高吞吐量场景下批量数据流管理情况下的 CDC 处理需求。利用灰码编码技术进一步优化指针更新过程可增强其鲁棒性。 4. **合理规划时钟树结构** 在芯片早期阶段就应该考虑如何构建最优化的全局/局部混合型时钟网络布局方案,尽量缩短关键路径长度的同时也要兼顾功耗预算等因素约束条件下达成最佳平衡效果[^1]。 5. **提升电路工作频率与降低异步事件发生率** 根据理论分析可知,随着操作速度加快即周期变短,则单位时间内可能出现冲突的机会相应增多;反之亦然。因此适当调整相关参数设置有助于缓解部分实际工程案例里的棘手难题。 综上所述,针对具体应用场景选取合适的措施组合运用才能最大程度规避潜在隐患保障整体质量水平达标甚至超越预期目标!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值