时序分析基本概念介绍——min pulse width 最小脉冲宽度

文章目录

  • 前言
  • 一、什么是 min pulse width?
  • 二、为什么检查 min pulse width?
  • 三、如何设置 min pulse width约束?
    • 1. 在sdc里面定义
    • 2. library里面定义
  • 四、如何检查 min pulse width?
  • 五、如何修复 min pulse width?
  • 总结

前言

min pulse width 是对信号高电平或低电平脉冲最小宽度的衡量,通常都只针对clock path 做min pulse width 检查。

一、什么是 min pulse width?

min pulse width ,全称为最小脉冲宽度检查。min pulse width用于检查时钟信号的波形是否处在一个合理的状态。时序单元对时钟的高电平和低电平的脉冲宽度有一定的要求,经过min pulse width检查可以获悉时钟信号的最小脉冲宽度是否满足了时序单元的要求。

二、为什么检查 min pulse width?

一般情况下,由于cell本身的差异,rise和fall delay不相同,这样可能会造成时钟信号脉冲宽度减小。
如下图一个周期为1ns,duty cycle 为50%的clock信号:
在这里插入图片描述
在经过一个buffer(rise delay: 0.05, fall delay:0.03):
在这里插入图片描述
clock信号波形变成如下图所示:
在这里插入图片描述
假设一个占空比为50%的时钟穿过一个buffer,该buffer的rise delay大于fall delay,则经过buffer后的脉冲宽度要比输入时钟小。如果时钟信号经过一系列相同类型的单元,则时钟信号的脉冲宽度将会持续减小。如果小于某个最小宽度,可能会导致器件不能正常的捕获数据。
因此,在做timing分析时,我们是必须对cell的pin做min pulse width检查。

三、如何设置 min pulse width约束?

min pulse width检查设置通常有两类方法:在sdc里面重新设置min pulse width约束或者直接使用library里面的设置。

1. 在sdc里面定义

指令如下(示例):

set_min_pulse_width 1.25 [get_clocks *]

或者指令如下(示例):

set_timing_derate -min_pulse_width 1.25 

2. library里面定义

EDA工具也可以通过查找单元库来获取 min pulse width的阈值,在单元库中,一般是以input transition 为index 的一张一维表。
在这里插入图片描述
一般情况下,如果要设置比lib里面更为严格的min pulse width检查,需要在sdc里面重新设置min pulse width约束。

四、如何检查 min pulse width?

因为library 中相应clock pin 上定义了min pulse width 属性,或用命令set_min_path_width 设了约束,因此在做了CTS之后,则可以使用命令report_min_pulse_width 可以报出相应min pulse width check。
在这里插入图片描述
如上电路图,我们想要计算ff2的clock pin的min pulse width check,采用report_min_pulse_width -path_type full_clock_expanded [get_pin ff2/CP],得到下面path路径slack。
在这里插入图片描述
如果想要报出所有的min pulse width violation可以使用report_min_pulse_width -all_violators命令。

五、如何修复 min pulse width?

1.由于普通buffer上升和下降的delay不一样,如果经过一连串的buffer的话,有时候会发生min pulse width的violation。因此,更加推荐采用clock inverter来取代buffer,相比buffer来说,inverter的上升和下降时间会相互补偿,这样就更容易避免min pulse width violation的产生;
2. 检查是否有比较大的transition, 因为min pulse width的阈值在单元库中一般是以input transition 为index 的一张一维表;
3. 检查时钟路径是否用了相同阈值电压(Vt)的的单元,是否用了时钟单元(一般以CK或DCCK开头),另外,对于先进工艺电路,一般时钟路径会使用低阈值电压单元(ULVT);
4. 检查是否有串扰,消除或者减少串扰引起的delta delay。

总结

最小脉冲宽度对数字电子设备的功能和性能至关重要,它直接影响设备的稳定度和精度,因此设计数字电子设备时,必须仔细考虑最小脉冲宽度,并确保信号始终保持在可接受范围内。

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

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

相关文章

docker启动ws-scrcpy和redroid记录

git克隆最新的ws-scrcpy代码 git clone gitgithub.com:NetrisTV/ws-scrcpy.git进入ws-scrcpy目录新建Dockerfile文件,内容如下 FROM node:16-alpine WORKDIR /appRUN npm config set registry http://mirrors.cloud.tencent.com/npm/ RUN npm install -g node-gyp…

攻防世界-Web题目1

目录 cookie 1、题目 2、知识点 3、思路 get_post 1、题目 2、知识点 3、思路 disabled_button 1、题目 2、知识点 3、思路 backup 1、题目 2、知识点 3、思路 cookie 1、题目 2、知识点 cookie,数据包 3、思路 题目提示我们cookie,抓…

Markdown中如何插入空行和空格

Markdown 是一种轻量级的标记语言,它的主要目标是以易读易写为优先,并兼容 HTML。虽然 Markdown 本身对于排版的要求比较宽松,但在某些情况下,我们可能需要在文档中插入空行或空格来达到特定的排版效果。 插入空行 在Markdown中…

【ai】trition:tritonclient.utils.shared_memory 仅支持linux

Can’t find tritonclient.utils.shared_memory on WIN10 #4149yolov4的python客户端 导入以后,windows 的pycharm 就是看不到折腾了很久:SaviorEnv 环境下安装tritonclient[all]也会失败 (base) C:\Users\zhangbin>conda create -n SaviorEnv python=3.8 Collecting pack…

ubuntu 18 虚拟机安装(1)

ubuntu 18 虚拟机安装 ubuntu 18.04.6 Ubuntu 18.04.6 LTS (Bionic Beaver) https://releases.ubuntu.com/bionic/ 参考: 设置固定IP地址 https://blog.csdn.net/wowocpp/article/details/126160428 https://www.jianshu.com/p/1d133c0dec9d ubuntu-18.04.6-l…

元数据管理的发展历程你了解吗?元数据管理要克服哪些挑战?

在当今的信息化时代,数据的价值已被广泛认可,而元数据作为描述数据的数据,其作用日益凸显。元数据管理,作为确保数据质量、促进数据共享和提高数据透明度的关键环节,对企业的数据战略至关重要。随着技术的发展&#xf…

程序设计中对内存分配管理的思考,进程内存、线程内存、共享池、栈、堆

设计一个程序,要考虑如何分配和管理内存,以下是对所有内存分配和管理类型的总结。 第一、进程级的内存资源,也叫全局静态内存,其生命周期是伴随整个进程的运行期间,可以用作在进程范围内共享数据的方法。对应于C语言的…

C#1.0-11.0所有历史版本主要特性总结

文章目录 前言名词解释主要版本一览表各版本主要特性一句话总结 C# 1.0 (Visual Studio 2002, .Net Framework 1.0)C# 2.0 (Visual Studio 2005, .Net Framework 2.0)C# 3.0 (Visual Studio 2008, .Net Framework 3.0)C# 4.0 (Visual Studio 2010, .Net Framework 4)C# 5.0 (V…

Bigram 分词学习

Bigram 分词:概念、应用与中文实践 Bigram 分词是一种基础而有效的文本处理技术,特别是在自然语言处理中有着广泛的应用。本文将详细解释 Bigram 分词的概念、它在各个领域的应用,以及在中文处理中的独特优势和实践。 什么是 Bigram 分词&a…

DataWhale - 吃瓜教程学习笔记(三)

学习视频:第3章-对数几率回归_哔哩哔哩_bilibili 西瓜书对应章节: 3.3 对数几率回归 sigmoid函数 极大似然估计建模 信息论 以概率论、随机过程为基本研究工具,研究广义通信系统的整个过程 - 信息熵 (信息期望) 度…

Windows bat 提取多个目录下的文件,到一个目录

批处理命令 echo off setlocalrem 设置源目录和目标目录 set "sourceDirE:\motrix" set "targetDirE:\新建文件夹"rem 创建目标目录,如果不存在 if not exist "%targetDir%" mkdir "%targetDir%"rem 循环遍历源目录中的所…

TCP:TCP连接的建立与终止

TCP连接的建立与终止 建立连接第一次握手第二次握手第三次握手 终止连接第一次挥手第二次挥手第三次挥手第四次挥手 T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本文将详细讨论一个T C P连接是如何建立的以及通信…

2024年能源电力行业CRM研究报告

中国能源电力行业属于大制造业的重要组成部分,在国民经济中的地位举足轻重。据统计,近十年来能源电力行业的整体投资呈现出增长趋势,尤其是“十四五”期间增长显著,2022年全国主要电力企业共完成投资12470亿元,同比增长…

STM32中挂在APB1(低速)和APB2(高速)上的外设

在STM32中, 连接在APB1(低速外设)上的设备有: 电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4 。 连接在APB2(高速外设)上的设备有: GPIO_A-E、USART1、ADC1、ADC2、ADC3、TIM1、TIM…

【乐吾乐2D可视化组态编辑器】连线

1 连线的绘制 1.1 钢笔绘制连线 1.1.1 曲线、线段、直线、脑图曲线 开始:单击左键 暂停:单击右键 或 enter 结束:esc 乐吾乐2D可视化组态编辑器demo:https://2d.le5le.com/ 1.1.2 横线 按下快捷键shift,点击鼠标左键绘制…

101.6k星的后台巨擘:一站式SaaS多租户、商城、CRM、ERP解决方案

RuoYi-Vue Pro,一个丰富优化重构的后台管理系统,为企业提供了一个强大、灵活、易用的解-决方案。 特点 丰富的功能支持:包括RBAC动态权限、数据权限、SaaS多租户、工作流、三方登录、支付、短信等。 现代化的技术栈:基于Spring Boot、MyBatis Plus、Vue & Element,支持…

在UE中创建命名管道之创建UE蓝图类

需求 在实际工作遇到了需要 UE 开发进程间通信相关的需求。 经过思考后选择使用命名管道来实现 。 名词概念 首先什么是进程间通信: 进程间通信( Inter-Process Communication,IPC)是指在操作系统中,不同进程之间进行数据交换…

负载均衡的部署方式有什么?

负载均衡时建立在现有的网络结构之上,将工作内容进行平衡、分摊到多个操作单位上进行运行,能够提高网络的可用性和灵活性,加强了网络数据的处理能力。那负载均衡技术都有着哪些部署方式呢? 负载均衡有着三种部署方式,分…

大厂面试官问我:Redis内存淘汰,LRU维护整个队列吗?【后端八股文四:Redis内存淘汰策略八股文合集】

往期内容: 大厂面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文一:Redis点赞八股文合集】-CSDN博客 大厂面试官问我:布隆过滤…

精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手

知识图谱(关系网络)可以用简单的形状和线条显示复杂的系统,帮助我们理解数据之间的联系。我们今天将介绍15个很好用的免费工具,可以帮助我们绘制网络图。 NetworkX NetworkX是一个用于处理网络的Python工具。许多人在Python中处…