当前位置: 首页 > news >正文

优化时钟网络之时钟抖动

Note:文章内容以Xilinx 7系列FPGA进行讲解

1、什么是时钟抖动

        时钟抖动就是时钟周期之间出现的偏差。比如一个时钟周期为10ns的时钟,理想情况下,其上升沿会出现在0ns,10ns,20ns···时刻,假设某个上升沿出现的时刻为30ns,那么下一个上升沿出现的时刻应该为40ns。但是实际上下一个上升沿出现的时刻可能是40.1ns或39.9ns。那么这个0.1ns的偏差就称为时钟抖动。如下图所示:

        时钟抖动是在时钟发生器内部产生的,和晶振或MMCM/PLL内部电路有关,布线对其没有影响


2、时钟抖动与时钟偏移的区别

        对比时钟偏移和时钟抖动,如下图所示:

        我们从图中可以看出,时钟偏移反映的是两个时钟之间的相位关系,而时钟抖动是每个时钟都具有的基本特征。 


3、时钟抖动对时序的影响

        以下图为例进行说明:

        根据静态时序分析理论,对于单周期时序路径,发起沿为图中标记①对应的上升沿,捕获沿为图中标记③对应的上升沿。若标记①对应0ns,则标记③可能对应Tclk+JitterTclk-Jitter(Jitter表示时钟抖动)。考虑到最坏情况,应按Tclk-Jitter进行分析。这意味着有效时钟周期为Tclk-Jitter。由此可见,时钟抖动进一步减小了建立时间裕量,增加了建立时间收敛的难度。对于保持时间裕量,由于发送沿与捕获沿均为图中标记①对应的上升沿,因此时钟抖动对保持时间裕量没有影响


4、优化方法

        常用的降低时钟抖动的方法是利用Clocking Wizard IP中的Minimize Output Jitter选项进行优化,如下图所示:

        其中,Balanced用于在功耗和抖动之间获得折中。Minimize Output Jitter则是以牺牲功耗(有时也包括输出时钟的相位误差)为代价换取最小的输出时钟抖动。Maximize Input Jitter filtering则允许输入时钟有较大的抖动,但对输出时钟抖动有负面影响。

        实际上,Jitter Optimization与MMCM的属性BANDWIDTH是对应的。例如:

  •     当Jitter Optimization选择Balanced时                                 ,对应的BANDWIDTH是OPTIMIZED
  •     当Jitter Optimization选择Minimize Output Jitter时            ,对应的BANDWIDTH是HIGH
  •     当Jitter Optimization选择Maximize Input Jitter filtering时,对应的BANDWIDTH是LOW


~End~

http://www.lryc.cn/news/484027.html

相关文章:

  • C++《继承》
  • 微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践
  • 【LeetCode】【算法】538. 把二叉搜索树转换为累加树
  • YoloV8改进策略:注意力改进|EPSANet,卷积神经网络上的高效金字塔挤压注意力块|即插即用|代码+改进方法
  • Nextflow最佳实践:如何在云上高效处理大规模数据集
  • 数据结构:顺序表(动态顺序表)
  • springboot040社区医院信息平台
  • windows下QT5.12.11使用MSVC编译器编译mysql驱动并使用详解
  • c++写一个死锁并且自己解锁
  • JavaScript方法修改 input type=file 样式
  • 群控系统服务端开发模式-应用开发-前端个人信息功能
  • 【jupyter】文件路径的更改
  • Ruby编程语言全景解析:从基础到进阶
  • Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
  • 解决vscode不能像pycharm一样从其他同级文件夹导包
  • DAY24|回溯算法Part03|LeetCode:93.复原IP地址、78.子集、90.子集II
  • 接口自动化测试做到什么程度的覆盖算是合格的
  • Kubernetes-ArgoCD篇-01-简介
  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • 【大数据学习 | HBASE高级】hbase的参数优化
  • 两个链表求并集、交集、差集
  • C++中的栈(Stack)和堆(Heap)
  • Linux系统编程学习 NO.11——进程的概念(2)
  • QT自定义控件封装
  • 【搜索结构】AVL树的学习与实现
  • LeetCode40:组合总和II
  • 基于Python+Vue开发的旅游景区管理系统
  • 嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻
  • 在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5
  • k8s笔记——核心概念