STA环境

news2024/12/26 2:14:57

目录

  • 1. CMOS逻辑门
  • 2. 波形
  • 3. 时钟
    • 3.1. 指定时钟`create_clock`
      • 时钟延迟`set_clock_latency `
      • 时钟不确定度`set_clock_uncertainty `
      • 跨时钟域`set_false_path`
    • 3.2. 衍生时钟
    • 3.3. 虚拟时钟
  • 4. 时序路径
    • 2.1. 输入路径
    • 2.2. 输出路径
    • 2.3. 点对点约束

本文介绍在执行静态时序分析(Static Timing Analysis, STA)前需要配置的环境,其实就是作SDC约束


1. CMOS逻辑门

CMOS逻辑门使用NMOS和PMOS晶体管搭建而成。如下图给出了CMOS非门的示例。

什么是MOS晶体管?MOS晶体管工作原理和VI特性详解

CMOS非门有两种稳定状态,具体取决于输入的电平状态。

当输入A为低电平(Vss或逻辑0)时,NMOS晶体管截止、PMOS晶体管导通,输出Z电平被上拉至逻辑为1的Vdd。
当输入A为高电平(Vdd或逻辑1)时,NMOS晶体管导通,而PMOS晶体管截止,输出Z电平被下拉至逻辑为0的Vss。

在这里插入图片描述
上述特性可以扩展到任何CMOS逻辑门。

在CMOS逻辑门中,输出节点通过上拉结构(由PMOS晶体管构成)连接至Vdd,并通过下拉结构(由NMOS晶体管构成)连接至Vss,来构成输出的高电平和低电平。同时上拉和下拉结构是互补的,如果上拉结构开启,则下拉结构将关闭,反之相反。以此保证输出电平只有高电平和低电平两种情况,无一例外。

基于此,可将各种CMOS逻辑门级联起来以实现更复杂的逻辑功能。

而这些CMOS逻辑门可以组合成各种基本逻辑块或称标准单元,例如与或非门、异或门、触发器等等。这些标准单元是预先设计好的,可供设计人员搭积木式的组合拼凑,实现各种功能。

2. 波形

CMOS单元电平随时间变化构成了波形,波形如下图所示,

在这里插入图片描述

而在STA中则需要根据电平变化来判断上升沿、下降沿和电压转换速率。由于上图中实际波形存在的弧形,我们用阈值来定义上升沿或下降沿的起始终止点。

例如

#下降沿的阈值点,即下降沿的终止点和起始点
slew_lower_threshold_pct_fall:30.0	
slew_upper_threshold_pct_fall:70.0

#上升沿的阈值点,即下降沿的起始点和终止点
slew_lower_threshold_pct_rise:30.0
slew_upper_threshold_pct_rise:70.0

即从Vdd的70%-30%为下降沿,Vdd的30%-70%为上升沿。

在这里插入图片描述

因此有转换时间的定义

过渡时间(transition time): 阈值电压的起始点到终止点所需的时间。压摆率(Slew rate)则
是过渡时间的倒数。

当然在实际仿真和分析中,经常直接使用如下图的理想波形进行时序分析,将电平转换时间近似成零。

在这里插入图片描述

3. 时钟

时钟是时序电路的驱动源

3.1. 指定时钟create_clock

时钟树: 时序电路中从时钟源到各触发器CK端时钟路径构成的结构。

数字芯片中,触发器CK端的时钟有可能是锁相环PLL锁定出的时钟,也有可能是从外部直接输入的时钟(例如SPI的SCK),都可约束。

配置的SDC如下

# 名称: SYSCLK
# 周期: 20ns
# 占空比: 20ns内上升沿时刻为0ns,下降沿时刻为5ns
# 端口: SCLK

create_clock -name SYSCLK -period 20 -waveform {0 5} [get_ports SCLK]

时钟延迟set_clock_latency

分为网络延迟和源延迟。

网络延迟(network latency): 表示芯片内部时钟定义到第一级触发器CK端的时钟延迟,即input2reg。

源延迟(source latency): 表示芯片外部时钟源(比如晶振时钟、数据随路时钟)到时钟定义的时钟延迟,如下图所示。

在这里插入图片描述
理论上这些时钟延迟都为0,可以在STA时使用set_clock_latency 指令指定所有终点的时钟延迟

一般指定网络延迟即可,SDC如下

# 时钟CLK_CONFIG的上升沿和下降沿时钟延迟均为0.8ns
set_clock_latency 0.8 [get_clocks CLK_CONFIG]

# 时钟MAIN_CLK的上升沿时钟延迟为1.8ns
set_clock_latency 1.8 -rise [get_clocks MAIN_CLK]

# 所有时钟定义的下降沿时钟延迟为2.1ns
set_clock_latency 2.1 -fall [all_clocks]

# 时钟SYS_CLK的上升沿和下降沿源时钟延迟均为1.9ns
set_clock_latency 1.9 -source [get_clocks SYS_CLK]

时钟不确定度set_clock_uncertainty

从PLL出来的时钟信号周期存在一定程度的抖动。

当然理想情况下抖动为0,可以在STA时使用set_clock_uncertainty 指令设定一个时间窗口,该窗口内任何时候都有可能产生时钟沿,这样的时间窗口就可以表示抖动量。

如下图

在这里插入图片描述

时钟偏斜(clock skew): 时钟信号从时钟源PLL到达不同终点的时间差。时钟延迟和时钟抖动导致了时钟偏斜。

跨时钟域set_false_path

时钟域(clock domain): 同一个时钟驱动的一组触发器就为同一个时钟域。

在这里插入图片描述

跨时钟域: 即一个时钟域的触发器Q端到另一个时钟域的D端存在数据路径。

由于两个时钟关系不确定,必然会导致信号传输不满足setup time和holdup time,因此作STA时可以使用set_false_path设置伪路径不去分析这样的路径

在这里插入图片描述

跨时钟域行为会导致亚稳态问题产生,所以一般需要通过同步器、异步FIFO等方式作同步。

3.2. 衍生时钟

3.3. 虚拟时钟

4. 时序路径

时序路径: 信号从发起触发器(Launch Flip-Flop)D端起始,到捕获触发器(Capture Flip-Flop)D端结束构成的路径

注意“发起”和“触发”不是绝对的,一定是相对于某一条时序路径才能决定触发器到底是发起数据还是捕获数据

对于数字电路来说,需要STA分析的时序路径包括

  1. input2reg:从电路输入端到第一级触发器D端,组合逻辑,如下图路径1
  2. reg2reg:电路中发起触发器D端到捕获触发器D端,时序逻辑,如下图路径2
  3. reg2output:电路中触发器D端到输出端,组合逻辑,如下图路径3
  4. input2output:从电路输入端到电路输出端,组合逻辑,如下图路径4

时序检查就是针对以上几个时序路径的,显然最具代表性的时序路径就是第2条触发器到触发器路径
在这里插入图片描述

最大/小时序路径: 指整个电路中信号延迟最大/小的时序路径。

2.1. 输入路径

2.2. 输出路径

2.3. 点对点约束

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

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

相关文章

顺序表的基本操作

目录 一.什么是顺序表 二.顺序表的基本操作 1.初始化 2.增容 3.尾插 4.头插 5.尾删 6.头删 7.指定位置插入 8.指定位置删除 9.打印 10.查找 11.销毁 一.什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组…

IBMMQ教程二(window版安装)

下载下载地址:https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/我这里选择的是9.1.0.0版本安装将下载完成的压缩包解压双击Setup.exe直接运行点击软件需求查看系统配置是否满足,右边绿色的对号说明满足需求&#xff0c…

linux 端口查询命令

任何知识都是用进废退,有段时间没摸linux,这大脑里的知识点仿佛全部消失了,就无语。 索性,再写一篇记录,加强一下记忆,下次需要就看自己的资料好了。lsof命令Linux端口查询命令可以通过lsof实现&#xff1a…

教育小程序开发解决方案

如今无论是国家还是家庭对于教育的重视性也越来越高,都希望自己的孩子能够赢在起跑线上,但是因为工作的缘故许多家长并没有过多的精力去辅导孩子学习,再加上许多家长对于教育也并没有经验与技巧。而这些都充分体现了正确教育的重要性。 那么一…

2023金三银四常见Handler面试总结,附带答案

以下的Handler的面试题都是在面试过程中总结出来比较常见的面试题,现在分享给大家,希望可以帮助你们!1.Handler的实现原理从四个方面看Handler、Message、MessageQueue 和 Looper Handler:负责消息的发送和处理 Message:消息对象,…

FL Studio21最新中文版下载及切换语言教程

随着近年来摇滚、电音的发展,越来越多的人开始对电子音乐编曲感兴趣,而电音编曲的首要条件,就是需要一个好的DAW(数字音频工作站),常用的DAW有很多,例如Cubase、Nuendo、Pro Tools、 SONAR等等&…

Unity - 搬砖日志 - Texture.mipmapBias 无效的解决方法

文章目录环境原因解決方案Referenes环境 Unity : 2020.3.37f1 Pipeline : BRP 原因 因为美术发现有些贴图太糊,但是经过研究发现,mipmap0就是完全够精度的 但是不可能还要提升贴图的尺寸,因为经过多方咨询(咨询TA大佬&#xff0…

2023 年会是网络安全的关键年吗?

过去 12 个月对网络安全领域和周围的每个人来说再次充满挑战。和往年不同,感觉很不一样,攻击源源不断。过去,大型漏洞每季度发生一次,但在过去一年中,在某些情况下,我们几乎每周都会处理严重漏洞。 已知利…

itop-3568开发板驱动学习笔记(7)高级字符设备(一)阻塞 IO 和 非阻塞 IO

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录阻塞 IO非阻塞 IOIO 实验(使用等待队列)等待队列阻塞 IO 实验非阻塞 IO 实验阻塞 IO I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。 在POSIX兼容的系统上&…

python学习——【第四弹】

前言 上一篇文章 python学习——【第三弹】 中学习了python中的流程控制语句,这篇文章我们接着学习python中的序列。先给大家介绍不可变序列 字符串和可变序列 列表,下一篇文章接着补充元组,集合和字典。 序列 指的是一块可以存放多个值的…

多线程的风险 --- 线程安全

✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:低头赶路,敬事如仪;自知自心,其路则明。 目 录🍸一. 线程不安全🍹二. 线程不安全的原因&#x1f…

【C语言】每日刷题 —— 牛客语法篇(1)

前言 大家好,今天带来一篇新的专栏c_牛客,不出意外的话每天更新十道题,难度也是从易到难,自己复习的同时也希望能帮助到大家,题目答案会根据我所学到的知识提供最优解。 🏡个人主页:悲伤的猪大…

Java的jar包打包成exe应用

将springboot项目使用maven打出的jar包,打成windows平台下exe应用程序包(自带jre环境)。 工具:1、exe4j 2、Inno Setup 工具放到网盘,链接:https://pan.baidu.com/s/1ZHX8P7u-7GBxaC6uaIC8Ag 提取码&#x…

VMware16pro虚拟机安装全过程

很多时候需要用到Linux系统,简单的一种方式可以是:Windows系统运行Linux(Windows Subsystem for Linux)不过有些时候还是需要虚拟机来运行Linux,也更方便点,比如在做嵌入式系统的烧录等操作都需要Linux环境…

人的高级认知:位置感

你知道吗?人有个高级认知:位置感 位置感是啥?咋提高位置感? 趣讲大白话:知道自己几斤几两 【趣讲信息科技99期】 ******************************* 位置感 就是对自己所处环境和自身存在的领悟 属于人生智慧 来源于阅历…

设计模式——创建型模型——单列模式(8种实现)

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:计算机基础专栏 📧如果文章知识点有错误的地方&#…

保姆级使用PyTorch训练与评估自己的EfficientNetV2网络教程

文章目录前言0. 环境搭建&快速开始1. 数据集制作1.1 标签文件制作1.2 数据集划分1.3 数据集信息文件制作2. 修改参数文件3. 训练4. 评估5. 其他教程前言 项目地址:https://github.com/Fafa-DL/Awesome-Backbones 操作教程:https://www.bilibili.co…

eps文件删除了能恢复吗?恢复误删eps文件的三种方法

eps文件格式专为矢量图像和图形而设计。虽然没有被广泛使用,但它仍然受到各种插画家和平面设计师的钟爱。eps文件十分适合创建徽标和商标设计,主要应用见于广告牌、海报和横幅。可是在使用设备过程中,难免会遇到数据丢失问题,如果…

KaiwuDB 时序引擎数据存储内存对齐技术解读

一、理论1、什么是内存对齐现代计算机中内存空间都是按照 byte 划分的,在计算机中访问一个变量需要访问它的内存地址,从理论上看,似乎对任何类型的变量的访问都可以从任何地址开始。但在实际情况中,通常在特定的内存地址才能访问特…

并发编程---java锁

java锁一 多线程锁synchronized案例分析1.1synchronized介绍1.2 synchronized案例分析1.2.1.标准访问,请问先打印邮件还是短信?1.2.2.邮件⽅法暂停4秒钟,请问先打印邮件还是短信?分析1.2.3.新增⼀个普通⽅法hello(&…