【【深入浅出了解静态时钟分析和时钟约束】】

深入浅出了解静态时钟分析和时钟约束

时序分析是什么?
我们提出一些特定的时序要求(或者说是添加特定的时序约束),使用特定的时序模型,针对特定的电路进行分析。分析的最终结果是要求系统时序满足我们提出的要求。

这么说可能还不是很清晰
我们进行一个对比 上次实验做的CORDIC算法
未添加时序约束时的频率利用率与功耗如下
在这里插入图片描述

我们可以看出这是一个非常大的占用率 甚至是 一个很恐怖的功耗(怎么不把板子烧了)

现在我们添加简单的时序约束
在这里插入图片描述

再次点击report Power 我们会发现 整体的 功耗瞬间降低了

在这里插入图片描述

我们通过这样的例子,可以很直观的通过时序约束找到优解

再举一个简单的例子
下面举一个最简单的例子来说明时序分析的基本概念。假设信号需要从输入到输出在 FPGA 内部经过一些逻辑延时和路径延时。我们的系统要求这个信号在 FPGA 内部的延时不能超过 13ns,而开发工具在执行过程中找到了下图所示的一些可能的布局布线方式。图中区域 1 的延迟是 5ns,区域 2 的延迟是 7ns,区域 3 的延迟是 5ns,区域 4 的延迟是 11ns。那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为 12ns(走路径 1)、16ns(走路径 3)、21ns(走路径 2 到路径 5)、17ns(走路径 2 到路径 4),只有 1 条路径能够满足要求,布局布线工具就会选择满足要求的路径 1。
在这里插入图片描述

下面介绍
什么是时钟抖动?
理想的时钟信号是非常完美的正弦波,但是实际晶振产生的正弦波是存在一些时钟抖动的。那么什么是时钟抖动呢?时钟抖动,英文名叫做 Clock Jitter,是相对于理想时钟沿实际时钟存在不随时间积累的、时而超前、时而滞后的偏移称为时钟抖动(时钟脉冲宽度发生暂时变化,也就是 T cycle【时钟周期】或大或小)。
什么是时钟偏差?
时钟偏差,Clock Skew,是指同一个时钟域内的时钟信号到达数字电路各个部分(一般是指寄存器)所用时间的差异。
时序分析的起点一般是源寄存器(reg1),终点一般是目标寄存器(reg2)。时钟和其它信号的传输一样会有延时的。下图中,时钟信号从时钟源传输到源寄存器的延时我们定义为 Tc2s,传输到目标寄存器的延时我们定义为 Tc2d。
在这里插入图片描述

时钟网络延时 Tskew 就是 Tc2d 与 Tc2s 之差,即 Tskew=Tc2d-Tc2s。
在这里插入图片描述

第一个方波是时钟源,第二个方波为时钟到达 REG1 时的波形,第三个方波为时钟到达 REG2 时的波形,从图上可以看出 Tskew 是时钟到达两个寄存器时的相位偏差。时钟偏差分为两类:正偏差和负偏差。当信号传输的目标寄存器在接收寄存器之前捕获正确的时钟信号,电路发生正偏差(也就是时钟布线方向与数据流水方向一致);反之,当信号传输的目标寄存器在接收寄存器之后捕获正确的时钟信号,电路发生负偏差(也就是时钟布线方向与数据流水方向相反)。

时钟约束 分析
首先看懂时钟约束的代码
这两段代码是用于在数字电路设计的时候进行时钟约束的,通常用于 FPGA(可编程逻辑器件)的设计。这是基于Verilog/SystemVerilog语言的时钟约束代码。

1.第一段代码:
create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} -add [get_ports sys_clk]

这段代码表示创建了一个时钟约束,指定了一个名为 sys_clk 的时钟信号。具体的含义如下:
- -period 20.000
- -name sys_clk
sys_clk
- -waveform {0.000 10.000}
- -add [get_ports sys_clk]
sys_clk
2.第二段代码:
create_clock -period 8.000 -name eth_rxc -waveform {0.000 4.000} -add [get_ports eth_rxc]

这段代码表示创建了另一个时钟约束,指定了一个名为 eth_rxc 的时钟信号。具体的含义如下:
- -period 8.000
- -name eth_rxc
eth_rxc
- -waveform {0.000 4.000}
- -add [get_ports eth_rxc]
eth_rxc

这些时钟约束对于数字电路设计至关重要,因为它们帮助工具确保设计在时钟频率范围内正常工作,并且在实现时满足时序要求。

接下来点击Design Timing Summary
在这里插入图片描述

第一个是 Setup 的最差情况(WNS),第二个是 Hold 的最差情况(WHS),第三个是 Pulse Width最差情况(WPWS)。蓝色字体下面的一行是总的 Setup 不满足总的分数(TNS),第二个是总的 Hold 不满足总的分数(THS),第三个是总的 Pulse Width 不满足总的分数(TPWS)。一般我们只关注 Setup 总的分数,分数是 0,说明时序是满足的,分数是负的,说明时序是不满足的,负分越大,说明时序越差,时序负分过大会导致功能可能出问题,所以我们的时序优化的效果可以参考负分的变化。

对于负值不满足要求的我们可以点击进入查看是哪一条路径不满足 查看是否可以优化

在这里插入图片描述
在这里插入图片描述

点击shematic 可以显示的更加直观

在这里插入图片描述

含有PLL模块的时钟其实在我们没看到的地方系统自动帮助我们生成了时钟约束了

这是含有内部PLL模块的HDMI始终约束
因为在PLL端设定了HDMI传输模块时钟74M 内部编译是5倍频
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型,支持事务; 行级锁,提高并发访问性能; 支持外键F…

云渲染是什么?云渲染有什么用?云渲染对本地的渲染的影响有哪些?

如果你曾经在深夜加班,眼睁睁看着电脑显卡冒着烟、渲染器哭着喊着把你的CPU和GPU当成磨盘来使用,那么你可能会对云渲染心生向往。毕竟,谁不想在享用最新游戏画面和电影级效果的同时,不用忍受电脑发热、卡顿等问题呢? 云…

What does “grep -i“ do?

grep( Global Regular Expression Print )根据 给定的正则表达式 搜索文本,并将匹配的行打印出来 grep -i 表示查找的过程中忽略大小写 在已安装的rpm包里,查询是否有tree相关的包 rpm -qa | grep -i "tree"在文件中搜…

在Vivado下利用Tcl实现IP的高效管理

在Vivado下利用Tcl实现IP的高效管理https://cloud.tencent.com/developer/article/1736645 在Vivado下,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Catalog,生成所需IP,这时相应的IP会被自动添加到当前工程中&…

一键去背景怎么去?使用这些智能抠图软件即可已经去背景

作为一名设计师,我们的工作不仅仅是追逐创意的火花,为品牌和产品打造独特的形象。在美好的表象之下,有一项常常让我们苦恼的“必修课”——抠图。抠图是设计过程中不可或缺的一环,它要求我们对图像进行精细的处理,以确…

2019年认证杯SPSSPRO杯数学建模D题(第一阶段)5G时代引发的道路规划革命全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 5G下十字路口车辆通行效率的讨论和建模 D题 5G时代引发的道路规划革命 原题再现: 忙着回家或上班的司机们都知道交通堵塞既浪费时间又浪费燃料,甚至有的时候会带来情绪上的巨大影响,引发一系列的交通问题。…

使用脚本把springboot程序部署到k8s上

一般我们部署写4个文件就行了 首先分别写 Dockerfile1package.sh2build.shdocker_push.sh Dockerfile # 基于jdk1.8 FROM openjdk:8-jdk-alpine RUN echo "Asia/Shanghai" > /etc/timezone RUN mkdir /app WORKDIR /appCOPY ./monitor-flink-1.0.jar /appEXPO…

WPF 布局

了解 WPF中所有布局如下,我们一一尝试实现,本文档主要以图形化的形式展示每个布局的功能。 布局: Border、 BulletDecorator、 Canvas、 DockPanel、 Expander、 Grid、 GridView、 GridSplitter、 GroupBox、 Panel、 ResizeGrip、 Separat…

【软件测试作业_TPshop商城】农业工程学院-测试需求分析与测试计划+自动化+性能+测试用例+报告软件缺陷+测试计划+单元测试+系统测试

1测试需求分析与测试计划 1.1 被测系统简介 1.2测试需求分析 1.2.1单元测试层面的测试需求分析 1.2.2系统测试层面的测试需求分析 1.3测试计划 1.31测试范围与任务 1.3.2 测试环境 1.3.3测试进度安排 测试用例的设计2 2.1单元测试层面的测试用例设计 2.2系统测试层面的测试用例…

Redis:原理速成+项目实战——Redis实战10(Redis消息队列实现异步秒杀)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis实战9(秒杀优化) 📚订阅专栏:Redis&…

zookerper入门

zookerper介绍 ZooKeeper 是一个开源的分布式协调框架,主要用来解决分布式集群中应用系统的一致性问题. ZooKeeper本质上是一个分布式的小文件存储系统(Zookeeper文件系统监听机制).提供基于类似于文件系统的目录树方式的数据存储,并且可以…

PFA试剂瓶——实验室存储运输化学试剂样品容器

PFA是一种高性能的塑料材料。它是一种热塑性塑料,由全氟化,聚合物制成,具有高度的化学稳定性性。由于其优异的性能,PFA被广泛应用于多个领域,尤其是作为存储和运输各种化学试剂的容器,耐受-200℃至260C的温…

闩锁效应(Latch-up)

闩锁效应(Latch-up)原理解析 什么是闩锁效应(Latch-up)? 在CMOS N阱设计中,实际上是由于CMOS电路中基极和集电极相互连接的两个PNP和NPN双极性BJT管子(下图中,侧面式NPN和垂直式PNP)的回路放大…

AI实景自动直播项目怎么样?解决实体行业直播难题!

在如今的互联网时代,作为实体老板想要在激烈的同行竞争中占领优势,那短视频和直播必然是要做的推广渠道之二,但是最近短视频流量持续下滑,带来的订单量越来越少,必然直播将成为常态化的宣传动作,如今抖捧AI…

Allure07-动态生成用例标题

Allure07-动态生成用例标题 高清B站链接 Allure报告清空上一次运行的记录 使用pytest-h 可以查勘报告相关的三个参数 reporting 报告相关参数 –alluredirDIR 指定报告的目录路径 –clean-alluredir 如果已经存在报告,就先清空它 –allure-no-capture 不加载 log…

Ubuntu 22.04.3 LTS arm64 aarch64 ISO jammy-desktop-arm64.iso 下载

Ubuntu 22.04.3 LTS (Jammy Jellyfish) Daily Build 参考 Are there official Ubuntu ARM / aarch64 desktop images? - Ask Ubuntu

Linux第26步_在虚拟机中安装stm32wrapper4dbg工具

在Ubuntu下编译TF-A 或者 Uboot时,我们需要用到ST公司提供的stm32wrapper4dbg工具。stm32wrapper4dbg工具的源码下载地址为: GitHub - STMicroelectronics/stm32wrapper4dbg 记得我们在前面已经创建过的目录如下: 1)、在根目录下&#xf…

0 ZigBee无线通信概念实验、抓包

胜达电子学习笔记:lesson5 ZigBee无线通信概念实验、抓包 5.无线通信概论5.1 理解 Lesson5-Sendmain:主函数halRfInit:射频初始化RFSend:无线数据发送出去SendPacket 数组 5.2 理解 Lesson5-ReceiveRevRFProc() 无线接收函数 5.3…

C#基础:通过QQ邮件发送验证码到指定邮箱

一、控制台程序 using System; using System.Net; using System.Net.Mail;public class EmailSender {public void SendEmail(string toAddress, string subject, string body){// 设置发件人邮箱地址以及授权码string fromAddress "xxxxxqq.com";string password …

SIT1050ISO具有隔离功能,1Mbps,高速 CAN 总线收发器

➢ 完全兼容“ ISO 11898 ”标准; ➢ 内置过温保护; ➢ 100kV/s 瞬态抗扰度; ➢ 显性超时功能; ➢ -40V 至 40V 的总线故障保护; ➢ I/O 电压范围支持 3.3V 和 5V MCU ; ➢ 低环路延迟…