FPGA时序分析与约束(3)——时钟不确定性
一、前言
在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,在阅读本文章之前,强烈推荐先阅读完本系列之前的文章,因为这是我们继续学习的理论的理论基础,前文链接:
FPGA时序分析与约束(2)——时序电路时序
本文我们将介绍时钟相关的时序问题
二、时钟定义
大家对于时钟肯定并不陌生,没有了时钟信号,时序电路就无法运行。时钟信号如果不规律,或伴随噪声,就有可能打乱电路的运行秩序,使得设计无法正常实现。FPGA设计最基本的时钟通常来源于时钟外部时钟晶振,它能够提供相对稳定的周期性波形,FPGA内部也集成了PLL,MMCM等时钟管理模块,能够对于基准时钟做分频和倍频。FPGA的时序分析中,数据路径的起始和结束都是时钟边沿,时钟周期作为一个标准的时钟基准,它的准确性尤为重要。
理想的时钟模型是一个占空比为50%且周期固定的方波。

如上图所示,Tclk为一个时钟周期,时钟周期的倒数1/Tclk就是时钟频率。T1为高脉冲时间宽度,T2为低脉冲时间宽度, Tclk = T1+T2 。时钟信号的高脉冲宽度与周期之比T1/Tclk即为这个时钟信号的占空比。
三、时钟抖动Clock Jitter
理想的时钟是一个完全稳定的方波,但是实际的方波是存在一定波动的。时钟抖动(clock jitter)指的在某一个给定的点上时钟周期发生短暂性变化,使得时钟周期在不同的周期上可能加长或者缩短。(两个时钟周期存在差值,是时钟发生器内部产生的,和晶振或者PLL内部电路有关,一般可能是晶振源固有的噪声和干扰,布线对其没有影响);它是频率上的不确定。
时钟边沿的变化不可能总是理想的瞬变,它总会有一个从高到低或者从低到高的变化过程;这就导致某一个给定的点上时钟周期发生短暂性变化,使得时钟周期在不同的周期上可能加长或者缩短,产生时钟抖动。时钟抖动可以通过改进时钟信号源和减少电磁干扰来减少。一般来说,高精度的时钟信号源可以减少时钟抖动。

虽然时钟抖动一般都是(ps)级别的,但是对于几百MHZ的时钟频率来说,时钟抖动的占比还是不能忽视的。所以FPGA时序分析中,也会把时钟抖动作为时钟不确定性的一部分加以约束。
四、时钟偏移Clock Skew
我们之前讨论过组合电路和时序电路的时序问题,但是其实时钟本身在传播过程中也是存在时延的,刚刚讨论的时钟抖动是时钟自身产生的,而这里的时钟偏移,是由于时钟在传播过程中无法保证同时到达芯片上每一个部分造成的。

考虑到时偏移的存在,针对之前文章中的建立时间和保持时间时序要求就要进一步优化
对于建立时间来说,我们考虑最差的时钟偏移情况:时钟先到达了R2

对于保持时间来说, 同样考虑最差的时钟偏移情况:时钟先到达R1

五、时钟不确定性Clock Uncertainty
Clock Uncertainty,即时钟的不确定性。时钟的不确定性主要是由时钟偏移Clock Skew和时钟抖动Clock Jitter构成。所以Clock Uncertainty = Clock Skew + Clock Jitter。大家搞明白什么是Skew和Jitter,那么也就明白什么是Clock Uncertainty。
一般来说,由FPGA内部集成的PLL产生的时钟信号,FPGA编译工具在做时序分析的时候可以直接套用既有的模型给出时钟的时序参数,作为一部分需要预留的时序余量计算在内。而外部晶振所提供的时钟信号,设计者需要指定相关的时钟时序参数,以时序约束的方式告知FPGA编译工具。
六、总结
本文主要介绍了FPGA中时钟的不确定性问题,FPGA中的时钟不确定性由2部分组成,时钟抖动和时钟偏移,时钟抖动由时钟内部产生,是时钟的固有参数,时钟偏移是由于时钟到达不同部分的时间不一致导致的,与FPGA的设计结构,布局布线等有关。
相关文章:
FPGA时序分析与约束(3)——时钟不确定性
一、前言 在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,在阅读本文章之前,强烈推荐先阅读完本系列之前的文章,因为这是我们继续学习的理论的理论基础,前文链接: FPGA时序分析与约束&…...
【Java-HDFS】使用Java操作HDFS获取HDFS指定目录下的数据量大小
Maven依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId>…...
协议定制 + Json序列化反序列化
文章目录 协议定制 Json序列化反序列化1. 再谈 "协议"1.1 结构化数据1.2 序列化和反序列化 2. 网络版计算器2.1 服务端2.2 协议定制(1) 网络发送和读取的正确理解(2) 协议定制的问题 2.3 客户端2.4 代码 3. Json实现序列化反序列化3.1 简单介绍3.2 使用 协议定制 J…...
系统架构设计师(第二版)学习笔记----系统架构概述
【原文链接】系统架构设计师(第二版)学习笔记----系统架构概述 文章目录 一、系统架构的定义与发展历程1.1 架构的定义1.2 架构设计的作用1.3 架构设计产生的背景1.4 软件架构的发展历程1.5 模块化开发方法1.6 模块法方法分解模块遵循的原则1.7 软件工程…...
FPGA基本算术运算
FPGA基本算术运算 FPGA基本算术运算1 有符号数与无符号数2 浮点数及定点数I、定点数的加减法II、定点数的乘除法 3 仿真验证i、加减法验证ii、乘除法验证 FPGA基本算术运算 FPGA相对于MCU有并行计算、算法效率较高等优势,但同样由于没有成型的FPU等MCU内含的浮点数运…...
Linux Input子系统
一、基本概念 按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。本质属于字符设备。 1. input子系统结构如下: input 子系统分为 input 驱动层、input 核心层、input 事件处理层&…...
commet与websocket
commet与websocket Comet 前言 Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。 实现方式 长轮询 长轮询是在打开一条连接以后保持&…...
python3 简易 http server:实现本地与远程服务器传大文件
在个人目录下创建新文件httpserver.py : vim httpserver.py文件内容为python3代码: # !/usr/bin/env python3 import datetime import email import html import http.server import io import mimetypes import os import posixpath import re import…...
Microsoft Edge 主页启动diy以及常用的扩展、收藏夹的网站
一、Microsoft Edge 主页启动diy 二、常用的扩展 1、去广告:uBlock Origin 2、翻译: 页面翻译:右键就有了,已经内置了划词翻译 3、超级复制 三、收藏夹的网站...
文末送书!谈谈原型模式在JAVA实战开发中的应用(附源码+面试题)
作者主页:Designer 小郑 作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,蓝桥云课认证讲师。 本文讲解了 Java 设计模式中的原型模式,并给…...
视频汇聚/视频云存储/视频监控管理平台EasyCVR启动时打印starting server:listen tcp,该如何解决?
视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成,…...
【Linux从入门到精通】通信 | 管道通信(匿名管道 命名管道)
本派你文章主要是对进程通信进行详解。主要内容是介绍 为什么通信、怎么进行通信。其中本篇文章主要讲解的是管道通信。希望本篇文章会对你有所帮助。 文章目录 一、进程通信简单介绍 1、1 什么是进程通信 1、2 为什么要进行通信 1、3 进程通信的方式 二、匿名管道 2、1 什么是…...
实践和项目:解决实际问题时,选择合适的数据结构和算法
文章目录 选择合适的数据结构数组链表栈队列树图哈希表 选择合适的算法实践和项目 🎉欢迎来到数据结构学习专栏~实践和项目:解决实际问题时,选择合适的数据结构和算法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT…...
上线检查工具(待完善)
根据V11《CEBPM系统上线CheckList》整理而得,适用于V11,DHERP,Oracle和MSSQL数据库,检查内容还不完善。 上图: 1)数据库连接 2)双击[连接别名],可选择历史连接 3)主界面…...
PE文件格式详解
摘要 本文描述了Windows系统的PE文件格式。 PE文件格式简介 PE(Portable Executable)文件格式是一种Windows操作系统下的可执行文件格式。PE文件格式是由Microsoft基于COFF(Common Object File Format)格式所定义的,…...
【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析
RocketMQ目前在国内应该是比较流行的MQ 了,目前本人也在公司的项目中进行使用和研究,借着这个机会,分析一下RocketMQ 发送一条消息到存储一条消息的过程,这样会对以后大家分析和研究RocketMQ相关的问题有一定的帮助。 分析的总体…...
关于vue首屏加载loading问题
注意:网上搜索出来的都是教你在index.html里面<div id"app"><div class"loading"></div>或者在app.vue Mounte生命周期函数控制app和loading的显示和隐藏,这里会有一个问题,就是js渲染页面需要时间,一…...
数据库性能测试实践:慢查询统计分析
01、慢查询 查看是否开启慢查询 mysql> show variables like %slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志启用log_slow_extra系统变量 (从MySQL 8.0.14开始提供&a…...
windows wsl ssh 配置流程 Permission denied (publickey)
wsl ssh连接失败配置流程 1、wsl2 ifconfig的网络ip是虚拟的ip,所以采用wsl1 2、wsl1的安装教程。 3、openssh-server重装 sudo apt-get update sudo apt-get remove openssh-server sudo apt-get install openssh-server4、修改ssh配置文件 sudo vim /etc/ss…...
OpenCV(五):图像颜色空间转换
目录 1.图像颜色空间介绍 RGB 颜色空间 2.HSV 颜色空间 3.RGBA 颜色空间 2.图像数据类型间的互相转换convertTo() 3.不同颜色空间互相转换cvtColor() 4.Android JNI demo 1.图像颜色空间介绍 RGB 颜色空间 RGB 颜色空间是最常见的颜色表示方式之一,其中 R、…...
GyverTimers:ATmega硬件定时器寄存器级精准控制
1. GyverTimers 库深度技术解析:面向 ATmega328P 与 ATmega2560 的硬件定时器全功能控制 GyverTimers 是一款专为 AVR 微控制器设计的轻量级、高精度硬件定时器控制库,其核心价值在于 绕过 Arduino 框架的抽象层,直接操作 ATmega 系列 MCU 的…...
Dramatron:AI驱动的剧本创作革命
Dramatron:AI驱动的剧本创作革命 【免费下载链接】dramatron Dramatron uses large language models to generate coherent scripts and screenplays. 项目地址: https://gitcode.com/gh_mirrors/dr/dramatron 价值定位:重新定义创意写作流程 在…...
AI数字人开源方案:Duix.Avatar本地化部署与应用指南
AI数字人开源方案:Duix.Avatar本地化部署与应用指南 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Trending…...
从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)
从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南) 在Qt开发中,与后端RESTful API交互是常见需求,但面对复杂、嵌套的JSON响应数据时,很多开发者容易陷入"面条代码"的泥潭。本文…...
告别繁琐流程:用快马AI生成脚本实现龙虾部署效率飞跃
最近在团队里负责微服务部署时,发现每次更新代码都要重复执行十几个步骤:拉代码、装依赖、打镜像、推仓库、重启容器...一套流程下来至少半小时,还容易手滑出错。于是研究了一套自动化方案,用Python脚本把整个流程串了起来&#x…...
汇川小型机 H5U编写程序 设备采用回转hu小型机编写程序不含的硬件配置有ECT的总线
汇川小型机 H5U编写程序 设备采用回转hu小型机编写程序不含的硬件配置有ECT的总线,包括汇川660系列伺服驱动器以及Io模块。 设备程序分段明确采用梯形图编写更加方便,直观,易懂各个伺服轴密切配合,实现收放卷pid调节,以…...
CodeMaker:重新定义开发者效率的智能编码助手
CodeMaker:重新定义开发者效率的智能编码助手 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 核心价值:告别重复编码,拥抱智能开发…...
北斗高精度数据解算:破解城市峡谷/长基线/无网区难题,从毫米级定位到自动化交付——(GAMIT/GLOBK底层核心解算技术方法)
北斗三号全面应用已至深水区,一线甲级测绘单位与科研院所正面临三重实战拷问:城市峡谷多路径干扰下如何实现毫米级收敛?西部高海拔无网区如何依托离线精密轨道完成长基线高精度解算?国家重大工程"零误差"标准下…...
ROS2编译报错CMake未找到diagnostic_updater:从诊断工具缺失到精准安装
1. 当CMake告诉你找不到diagnostic_updater时发生了什么 第一次看到这个报错的时候,我也是一头雾水。明明代码是从GitHub上clone下来的标准功能包,怎么一编译就报错呢?那个红色的"CMake Error"特别扎眼,就像开车时突然亮…...
小红书内容采集效率革命:XHS-Downloader全方位解决方案
小红书内容采集效率革命:XHS-Downloader全方位解决方案 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&am…...
