STA学习记录4-输入输出路径约束

STA方法学 静态时序分析(Static Timing Analysis)方法学 STA方法学,即静态时序分析(Static Timing Analysis)方法学,是电子设计自动化(EDA)领域中的一种重要技术,它用于分析电路的时序性能,确保系统在指定的速度下能够正确运行。 阅读详情

1 输入路径约束

由于STA不能检查不受约束路径上的时序约束,因此需要约束所有路径来进行时序分析

当然,如果存在一些输入控制信号,我们并不关心其信号时序,可能并不需要进行时序检查

如下图是一个待分析设计(DUA),UFF0是外部设计,其输出是UFF0的输入,并且UFF0在设计内部,二者的数据通过输入port INP1连接

图片

UFF0和UFF1都是由时钟CLKA驱动的,了解过建立时间和保持时间的应该知道,在第一个时钟上升沿UFF0发送数据,UFF1在下一个时钟上升沿接收数据,因此CLKA的周期应该是数据从UFF0到UFF1的时间

接下来根据上面的图分析时间

对于外部设计,从UFF0到端口INP1时间的是UFF0需要的时间Tclk2q(CK端 -> Q端的时间)+ C1所需的时间Tc1

那么输入端口INP1上的延迟定义指定的是外部延迟的总和(Tclk2q + Tc1)

假设Tclk2q是0.9ns,Tc1是0.6ns,那么输入延迟约束为:

set Tclk2q 0.9
set Tc1 0.6

set_input_delay -clock CLKA -max [expr Tclk2q + Tc1] [get_ports INP1]

根据这个约束可以知道,输入端口INP1的外部延迟是1.5ns (Tclk2q + Tc1),如果时钟CLKA的周期是2ns,那么端口INP1只剩下500ps(2ns - 1.5ns)的时间可以在设计内部传播

也就是说,UFF1要想在下一个时钟上升沿捕获UFF0发送的稳定的数据,Tc2 + UFF1 setup时间必须小于500ps

了解过setup time和hold time计算的应该留意过,电路中延迟都会给出最大时间和最小时间,用下图的例子加上最大时间和最小时间和分析

在这里插入图片描述

最大延迟对应的是最长路径的时间,最小时间对应的是最短路径的时间,通常我们把最大路径称为worst path,最短路径称为best path,在分析setup时,通常是分析worst path

对于这个例子,输入约束为:

created_clock -period 15 -waveform {5 12} [get_ports CLKP]

set_input_delay -clock CLKP -max 6.7 [get_ports INPA]

set_input_delay -clock CLKP -min 3.0 [get_ports INPA]
  • -max指定的是最大延迟
  • -min指定的是最小延迟

如果没有指定,则认为最大延迟和最小延迟一致,比如下面这个约束

set_input_delay -clock clk_core 0.5 [get_ports bist_mode]

set_input_delay -clock clk_core 0.5 [get_pots sad_state]

由于没有 -max 和 -min,因此最大延迟和最小延迟均为0.5ns

2 输出路径约束

与输入路径约束中第一个例子相似,同样是UFF0发送数据,UFF1捕获数据,只不过此时UFF0是内部设计,UFF1是外部设计,如下图所示

在这里插入图片描述

此时端口OUTB到UFF1的传播时间(Tc2 + UFF1的setup time)是输出路径的约束

假设Tc2的时间是3.9ns,UFF1的setup time是1.1ns,那么输出约束可定义为:

set Tc2 3.9
set Tsetup 1.1

set_output_delay -clock CLKQ -max [expr Tc2 + Tsetup] [get_ports OUTB]

再来看下个例子
在这里插入图片描述

最大延迟路径为7.4ns(Tc2的最大值 + Tsetup),最小延迟路径为 -0.2ns(Tc2的最小值 - Thold),因此约束为:

creat_clock -period 20 -waveform {0 15} [get_ports CLKQ]

set_output_delay -clock CLKQ -max 7.4 [get_ports OUTC]

set_output_delay -clock CLKQ -min -0.2 [get_ports OUTC]

下看一个同时具有输入约束和输出约束的例子

在这个例子中,DUA具有两个输入端口DATAIN和MCLK,以及一个输出端口DATAOUT

从图中可以看到,时钟周期是100ns

对于DATAIN的波形,红的方框框住的是当前的数据,而蓝色方框框住的是前一次的数据,因此,data2保持稳定的时间最大是25ns,最小是5ns

对于DATAOUT的波形,数据保持稳定的时间最小是 -5ns,最大是20ns,那么约束可定义如下:

creat_clock -period 100 waveform {5 55} [get_ports MCLK]

set_input_delay 25 -clock MCLK -max [get_ports MCLK]
set_input_delay 5 -clock MCLK -min [get_ports MCLK]

set_output_delay 20 -clock MCLK -max [get_ports MCLK]
set_input_delay -5 -clock MCLK -max [get_ports MCLK]

参考

Static Timing Analysis for Nanometer Designs: A Practical Approach

STA 特殊路径约束对比:多周期、半周期、伪路径的 3 种 SDC 命令应用场景 本文深入解析了静态时序分析(STA)中三种特殊路径约束——多周期路径、半周期路径和伪路径的应用场景与SDC命令实现。通过对比分析各类约束的时序检查特点和对STA工具的影响,提供实战中的最佳实践指南,帮助工程师优化芯片设计时序收敛与性能。 阅读详情

相关推荐

芯片设计静态时序分析(STA)原理、约束与调试实战指南

在超大规模集成电路设计中,时序收敛是确保芯片功能正确的核心挑战。静态时序分析作为一种完备且高效的验证方法,其原理基于对电路所有路径的延迟计算与时序检查,无需依赖动态仿真向量。这项技术的核心价值在于能在设计早期快速评估时序性能,显著缩短芯片开发周期。它通过精确的时序模型、互连线寄生参数以及设计者提供的时序约束,对建立时间和保持时间等关键指标进行严苛验证。在数字后端设计、SoC集成及先进工艺节点芯片开发等应用场景中,STA是保障信号在复杂逻辑门与互连网络中正确传输、避免时序违规的关键技术。本文聚焦于STA的路径

weixin_30394669的博客 405

STA环境 - 时序路径

用下面的SDC指令指定输入延迟,-max表示最长路径输入延迟(用于建立时间检查)、-min表示最短路径输入延迟(用于保持时间检查),不写则表示确定时间。信号从发起触发器(Launch Flip-Flop)D端起始,到捕获触发器(Capture Flip-Flop)D端结束构成的路径。针对跨时钟域路径有多种约束方式,如果SDC中多个约束方式存在重叠,则优先级最高的约束生效,如下图所示,约束越具体优先级越高。时序检查就是针对以上几个时序路径的,显然最具代表性的时序路径就是第2条触发器到触发器路径。

Starry__的博客 1650

静态时序分析的未来:AI驱动的时序路径优化

本文探讨了AI驱动的静态时序分析(STA)在芯片设计中的革新应用,重点介绍了机器学习如何优化时序路径预测、动态约束调整和自动化修正。通过混合图神经网络和强化学习技术,AI增强STA方案显著提升了分析效率,将5nm设计的STA运行时间缩短67%,时序收敛迭代次数降低至12次。文章还展示了智能约束优化系统和自动化修复建议的实际效果,为下一代芯片设计提供了关键技术支撑。

sss66的博客 826

STA学习记录5-时序路径组和外部属性建模

STA时序分析

I_learn_code的博客 697

Tessent MBIST SDC约束实战:从时钟架构到STA收敛的避坑指南

在芯片可测试性设计中,MBIST(存储器内建自测试)是确保存储器可靠性的关键技术,而SDC(Synopsys Design Constraints)则是时序约束的通用语言。其原理在于通过精确描述测试模式下的时钟架构与路径关系,避免功能模式约束的误用。技术价值在于提升测试模式时序收敛效率,减少流片风险。典型应用场景包括DFT工程师进行MBIST插入后的后端时序验证。Tessent工具生成的约束模板需结合手动补充,尤其需关注时钟定义、模式选择与异步关系设置。本文聚焦Tessent MBIST SDC的约束编写与

weixin_34116110的博客 413

数字芯片STA时钟约束:从基础命令到高级场景实战指南

静态时序分析(STA)是数字芯片后端设计的核心环节,用于验证电路在特定频率下的时序正确性。其原理是通过分析所有可能路径的时序,确保信号在时钟边沿到来前稳定建立,并在之后保持足够时间。这项技术的核心价值在于无需动态仿真即可全面评估时序性能,显著提升验证效率与芯片可靠性。在工程实践中,时钟约束是STA的基石,它定义了时钟网络的时序特性,直接影响建立时间与保持时间的分析精度。应用场景涵盖从高性能处理器到低功耗物联网芯片的各类设计,尤其在处理高速接口时序收敛和低功耗时钟门控时至关重要。本文聚焦于时钟约束的实战应用,

474

静态时序分析(STA)的不同分析模式

本文介绍了STA的基本概念及STA的两种模式。

McEv0y的博客 2909

从零上手PrimeTime:静态时序分析(STA)核心概念与实战约束指南

本文详细介绍了如何从零上手PrimeTime进行静态时序分析(STA),涵盖核心概念、环境搭建、时钟约束、输入输出延迟设置及典型问题排查。通过实战案例和代码示例,帮助读者掌握STA的关键技术,如建立时间和保持时间约束,提升芯片设计的时序收敛效率。

weixin_30530339的博客 509

FPGA设计时序约束六、设置最大/最小时延

用户手册:ug903-vivado-using-constraints-en-us-2022.2.pdf链接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt提取码:mylt。

zyp626的博客 2380

最新版 Akamai 逆向 风控破解

经过测试,捷星 jetstar.com,德州仪器 ti.com,w6 wizzair.com,还有一些航空公司的都是可以实现一个并发的有需要的可以。

m0_72605044的博客 6627

电工电子实验——3BIT延时电路的设计与实现

设计一个 3BIT延时电路。 设计分析: Ⅰ.根据触发器的特性,只有来两个触发脉冲时才能恢复到原来的状态。也就是说触发器的输出信号比触发信号延迟了一个触发脉冲周期即1bit。据此3bit就需要3个触发器。 Ⅱ.输出要可控就要加一控制器,可用选择器实现。 Ⅲ.为便于观察输出信号的延迟,可设计一个F1信号。

qq_55543315的博客 1128

【STA】常用约束指令学习记录

STA常用约束指令学习记录

wjh776a68的博客 1912

8、音频运行时系统的架构设计

本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。

juice的博客 463

DC综合时序约束及优化学习记录(一)

STA与时序约束学习

weixin_72661375的博客 1450

基于MATLAB的多无人机多任务调度算法——CBBA带时间窗

本文将介绍基于MATLAB的CBBA算法,并对其进行改进,加入时间窗概念,以提高多无人机系统的调度效率和性能。时间窗用于限定任务的执行时间范围,以避免任务执行时间过长或过短导致的问题。具体而言,我们为每个任务设置一个允许的最早开始时间和最晚结束时间,并在任务分配的过程中考虑这些时间约束。在多无人机系统中,需要将若干个任务分配给不同的无人机完成,以实现高效的任务执行。以上是关于基于MATLAB的多无人机多任务调度算法CBBA带时间窗的简要介绍和源代码实现。多无人机系统的调度问题。

BUG?不存在的! 1898

使用 Tesseract 在 C# 中进行光学字符识别(OCR)

你可以根据需要对 Tesseract 进行自定义配置,例如设置识别的分辨率、识别模式等。// 只识别数字// 设置自定义变量本文只讲述了简单的使用方法,未涉及字库训练,识别的准确率与训练的字库有关。

仰望星空的博客 4734

STA学习记录(一)

《Static Timing Analysis for Nanometer Design: A Practical Approach》学习过程

weixin_40642999的博客 865

【论文解读】Baidu Apollo EM Motion Planner

系统顶层是一种多车道策略,通过并行计算车道级别轨迹来处理车道变更场景;在车道轨迹生成器内部,迭代的解决基于Frenet坐标的路径和速度规划;针对路径和速度规划问题,提出了动态规划与基于样条的二次规划相结合的方法,构造了一个可扩展且易于调整的框架,同时处理交通规则、障碍物决策和平滑度问题。该规划器可扩展至高速公路和城市低速驾驶场景。高精地图模块提供了任何人都可以访问的高精地图。感知和定位模块提供了动态环境中必要的信息。运动规划模块考虑生成一条安全平滑的轨迹再交由汽车的控制模块去执行。

xiewf的博客 6095

SDC IO constraint 输入输出端口约束分析

介绍关于sdc中对于IO输入输出端口的常见约束处理和分析方法。

weixin_42124013的博客 930

Linux安装Docker(图文解说详细版)

第一步,下载docker 下载地址: https://download.docker.com/linux/static/stable/x86_64/ 这次的演示我们使用docker-18.06.3-ce.tgz 这个版本 第二步,上传到云服务器上面 使用rz命令上传或者fltp工具进行上传 第三步,解压文件 第四步,将解压出来的docker文件复制到 /usr/bin/ 目录下 这么做的目的是将docker交给linux自己去管理,类似spring中的ioc(猜测,非正经知识) cp docker

编码人生 1万+

uniapp:详细ios本地离线打包完整流程,使用XCode苹果本地离线打包APP,UNIAPP IOS离线打包并上传到上传到App Store应用商店(mac环境 Uniapp iOS本地离线打包)

uniapp ios 本地离线打包(攻略),iOS App打包发布上架,uni-app项目离线打包之iOS,uni-app实现XCode苹果本地离线打包APP,UNIAPP之IOS离线打包,iOS开发打包ipa,uniapp 打包 IOS,uniapp ios app离线打包配置,uniapp打包离线App(ios),uniapp ios打包详细步骤,最新版iOS Xcode如何证书配置和ipa打包(附图文教程)uniapp申请ios证书,uniapp iOS打包,证书申请,XCode打包IOS应用发布Ap

✅ 精选推荐文章 4506

数字IC笔面基础,辨别有无入门的利器——STA相关知识点(静态时序分析)

静态时序分析(Static Timing Analysis),缩写为STA。是对数字IC电路的检查验证,注意,这里不是检查电路的功能。而是检查所有时序路径是否满足,就是检查所有触发器是否满足建立时间和保持时间。静态指的是,没有输入激励,只是对所有时序路径进行检查,分析速度快。由于静态时序分析是对时序路径进行检查,在数字IC设计流程中,从综合开始,直到布局布线结束,每对实际的电路和器件进行修改,都需要重新跑一次静态时序分析,确保电路在时序上是正确的。

HFUT90S的博客 3143

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

STA学习记录-时钟定义

STA学习记录

I_learn_code的博客 591

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【STA】多场景时序检查学习记录

【STA】多场景时序检查学习记录

wjh776a68的博客 1397

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

从RTL设计到STA签核:一个真实项目中Multicycle Path的完整约束流程与避坑记录

本文详细介绍了数字IC设计中从RTL设计到STA签核阶段Multicycle Path的完整约束流程与实战经验。通过真实项目案例,解析了多周期路径在RTL标注、SDC约束实现、物理设计考量及STA验证中的关键技术要点,特别强调了set_multicycle_path的正确使用方法和常见陷阱规避策略,为工程师提供了一套可落地的时序收敛解决方案。

weixin_30325487的博客 425

SDC学习笔记

本内容是对《综合与时序分析的设计约束–Synopsys设计约束实用指南》的学习记录,结合在项目工作中的经验,给出笔者自己的理解首先是约束的重要性,其次根据上述描述,无论是输入排序,还是输入输出驱动,都需要通过约束来告知综合工具。之后综合工具就可以自动进行优化???

qq_44163156的博客 1667
上一篇: STA学习记录-generated clock
下一篇: STA学习记录5-时序路径组和外部属性建模
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值