静态时序分析与时序约束

一、时序分析的基本概念

1. 时钟

理性的时钟模型是一个占空比为50%且周期固定的方波:

 实际电路中输入给FPGA的晶振时钟信号是正弦波:

 2. 时钟抖动

Clock Jitter,时钟抖动,相对于理想时钟沿,实际时钟存在不随时钟存在积累的、时而超前、时而滞后的偏移。

 3. 时钟偏差

Clock Skew:时钟偏差,同一个时钟域内的时钟信号到达数字电路各个部分所用时间的差异。

 4. 建立时间和保持时间

建立时间,Setup Time,Tsu,时钟上升沿之前数据必须稳定的最短时间。若不满足建立时间,数据无法进入寄存器,寄存器的数据采样会失败。

保持时间,Hold Time,Th,时钟上升沿之后数据必须稳定的最短时间。若不满足保持时间,数据无法进入寄存器,寄存器的数据采样也会失败。

5.  发起沿和采样沿

 rega和regb使用同一个时钟信号,rega在Launch Edge发送数据,regb下一个时钟周期的Capture edge采样到rega送入的数据,reag和regb中间可能还有一些组合逻辑。

二、时序分析的基本公式

1. 时序分析的基本路径

时序分析的基本路径包括:

(1)管脚输入和寄存器之间的路径(pin2reg)

(2)寄存器和寄存器之间的路径(reg2reg)

(3)寄存器和管脚输出之间的路径(reg2pin)

(4)管脚输入和管脚输出之间的路径(pin2pin)

2. 数据到达时间和时钟到达时间

(1)数据到达时间(Data Arrival Time)

数据在发送沿发送之后,经过多长时间会到达接收寄存器的数据端口,即到达regb的D端口的时刻。

(a)通常选择launch edge作为零时刻基准点

(b)数据经过Tco时间,到达Q端口。

(c)数据从Q端口,要经过组合逻辑,以及布线的线延时才能到达接收端的D端口。

 

3. 建立时间的裕量

建立时间的裕量, Setup slack

建立裕量为正值说明两个寄存器有合格的建立关系,建立裕量为负值说明两个寄存器建立关系不满足,会导致采样出错。

 数据到达reg2 D端的时间为:

启动沿时间+Tclk1+Tco+Tdata

= 0 ns + 3.2ns + 0.2ns + 0.6ns

= 4ns

reg2能够保证采样正确,所要求数据到达的时刻

Tclk + Tclk2 - Tsu

= 10ns + 2ns - 1.4ns

= 10.6ns

建立裕量:

Setup Slack = Data Required Time - Time Arrival Time

= 10.6 ns - 4 ns

= 6.6 ns

4. 保持时间的裕量

保持时间的裕量,Hold Slack

保持裕量为正值说明两个寄存器有合格的保持关系,保持裕量为负值说明两个寄存器保持关系不满足,也会导致采样出错。

 数据保持时间 Data Hold Time

= 启动沿 + Tclk1 + Tco + Tdata + 数据周期时间

= 0 ns + 3.2 ns + 0.2 ns + 0.6 ns + 10 ns

= 14 ns

数据锁存时间 Data Required Time 

= 锁存沿 + Tclk2 + Th

= 10 ns + 2 ns + 1.4 ns

= 13.4 ns

保持裕量 Hold Slack

= 14 ns - 13.4 ns

= 0.6 ns

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/62436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PlanetScale vs. Neon - MySQL 和 Postgres 间的第二仗

本文为「数据库全方位对比系列」第三篇,该系列的前两部作品为: 全方位对比 Postgres 和 MySQL全方位对比 Postgres 和 MongoDB 根据 2023 年 Stack Overflow 调研,Postgres 已经取代 MySQL 成为最受欢迎和渴望的数据库了。 看起来 MySQL 和 …

ubuntu 安装 cuda

ubuntu 安装 cuda 初环境与设备在官网找安装方式 本篇文章将介绍ubuntu 安装 CUDA Toolkit CUDA Toolkit 是由 NVIDIA(英伟达)公司开发的一个软件工具包,用于支持并优化 GPU(图形处理器)上的并行计算和高性能计算。它…

Mongodb 安装

一、win10安装 服务端下载地址:Download MongoDB Community Server | MongoDB shell 工具下载地址:MongoDB Shell Download | MongoDB 服务端安装时选择custom,否则安装文件没有bin目录。 将安装后的文件中的bin目录加到环境变量。 设置…

视频添加字幕

1、依靠ffmpeg 命令 package zimu;import java.io.IOException;public class TestSrt {public static void main(String[] args) {String videoFile "/test/test1.mp4";String subtitleFile "/test/test1.SRT";String outputFile "/test/testout13…

Go http.Handle和http.HandleFunc的路由问题

Golang的net/http包提供了原生的http服务,其中http.Handle和http.HandleFunc是两个重要的路由函数。 1. 函数介绍 http.HandleFunc和http.Handle的函数原型如下,其中DefaultServeMux是http包提供的一个默认的路由选择器。 func HandleFunc(pattern st…

QPainter - 八卦时钟

QPainter - 八卦时钟 上一篇我们在画时钟的时候,已经把基本的钟表指针和刻度都绘制过了 想要完成八卦时钟,就要绘制这个里面的八卦了。 先上个图: 有人和我说八卦不能转 再来一张图: 背景的绘制 我们需要删除之前所绘制的白色…

从零构建深度学习推理框架-4 框架中的算子注册机制

今天要讲的这一注册机制用到了设计模式中的工厂模式和单例模式,所以这节课也是对两大设计模式的一个合理应用和实践。KuiperInfer的注册表是一个map数据结构,维护了一组键值对,key是对应的OpType,用来查找对应的value,…

【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性

文章目录 前言🌟一、Docker工具🌟二、Docker 引擎🌏2.1.容器管理:🌏2.2.镜像管理:🌏2.3.资源管理:🌏2.4.网络管理:🌏2.5.存储管理:&am…

Android Ble蓝牙App(三)特性和属性

Ble蓝牙App(三)特性使用 前言正文一、获取属性列表二、属性适配器三、获取特性名称四、特性适配器五、加载特性六、显示特性和属性七、源码 前言 在上一篇中我们完成了连接和发现服务两个动作,那么再发现服务之后要做什么呢?发现服…

SpringBoot复习:(31)Controller中返回的对象是如何转换成json字符串给调用者的?

首先,SpringBoot自动装配了HttpMessageConvertersAutoConfiguration这个自动配置类 而这个自动配置类又通过Import注解导入了JacksonHttpMessageConvertersConfiguration类, 在这个类中配置了一个类型为MappingJackson2HttpMessageConverter类型的bean…

tomcat多实例与动静分离

实验:在一台虚拟机上配置多台tomcat 1.配置 tomcat 环境变量 vim /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh 2.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/…

【逗老师的PMP学习笔记】11、项目风险管理

目录 一、规划风险管理1、【关键输出】风险管理计划2、【插一嘴】几种常见的分解结构 二、识别风险1、【关键工具】核对单2、【关键技术】SWOT分析3、【关键输出】风险登记册 三、实施定性风险分析1、【关键工具】概率和影响矩阵 四、实施定量风险分析1、【关键工具】数据分析1…