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

DRC设计规则设置介绍-Design Compiler(四) 系列学习介绍DC相关知识,包括ASIC基本单元相关,DC指令工艺库脚本相关,后端综合实现相关等总结。本节包括Design 设计规则相关约束,内容有一些个人理解和各地方论坛总结学习,有不同认识欢迎探讨,fighting。 阅读详情

1 时序路径组

如下图所示,设计中的时序路径可以视为路径的集合,每个子路径都有一个起点和一个终点

图片

在STA中,时序路径是根据有效的起点和有效的终点划分的

有效起点包括:输入端口或同步器件(触发器和存储器)的时钟引脚

有效终点包括:输出端口或者同步器件的数据输入端

时序路径包括四类:

  1. 从输入端到输出端

  2. 从输入端到同步器件的数据输入端

  3. 从一个同步器件的时钟引脚到另一个同步器件的数据输入端

  4. 从一个同步器件的时钟引脚到输出端

举个例子进行说明

图片

按序号对应:

  1. 输入端口A到输出端口Z
  2. 输入端口A到UFFA/D
  3. UFFA/CK到UFFB/D
  4. UFFB/CK到输出端口Z

可以根据不同的时钟对时序路径进行分组,而组合逻辑可以认为是默认路径组

就上面的例子而言:

  • CLKA组是输入端口A到UFFA/D
  • CLKB组是UFFA/CK到UFFB/D
  • 默认路径组是输入端口A到输出端口Z 和UFFB/CK到输出端口Z

静态时序分析和报告通常在每个时序路径组单独进行

2 外部属性建模

在之前的内容中,介绍了create_clock、set_input_delay和set_output_delay,这些已经足以约束设计中执行时序分析的所有路径,但是无法获取IO引脚上准确的时序,因此还需要一些属性的加入才能准确的对环境进行建模

读入输入端口,需要指定slew,可以用一下方式:

  • set_drive
  • set_driving_cell
  • set_input_transition

对于输出,需要指定输出引脚的负载电容,

  • set_load

先对这些内容进行接口

2.1 驱动强度建模

set_drive和set_driving_cell用来建模外部单元在输入端口的驱动强度,如果没有这些约束,则认为驱动强度是无限的

默认情况下,输入引脚的过渡时间是0,即默认情况下驱动强度是无限的

如下图所示,set_drive明确指定了DUA输入引脚上的驱动电阻值,电阻值越小,驱动强度越大

图片

set_drive的约束情况如下

#指定咋在input UCLK处的电阻是100
set_drive 100 UCLK

#上升驱动强度和下降驱动强度不同
set_drive -rise 3 [all_inputs]
set_drive -fall 2 [all_inputs]

指定驱动强度还可用来计算RC互连情况下从输入端口到第一个单元的延迟值,计算方式为:延迟值 = (驱动强度 * 线网负载) + 连线延迟

set_driving_cell提供了一种更方便、更准确的方式来描述端口的驱动能力

可以用set_driving_cell来指定一个cell驱动的输入端口

指定方式如下:

#INPB由slow库中的INV3驱动
set_driving_cell -lib_cell INV3 \
-library slow [get_ports INPB]

#所有的inputs都是由tech3g库中的INV2驱动
set_driving_cell -lib_cell INV2 \
-library tech13g [all_inputs]

#testmode[3]由tech90gwc库中的BUFFD4驱动
set_driving_cell -lib_cell BUFFD4 \
-library tech90gwc [get_ports {testmode[3]}]

同样set_driving_cell也可以用来指定互连时从输入端口到第一个单元的延迟值

需要注意,在使用set_driving_cell进行约束时,由于输入端看上电容性负载的存在,会导致驱动单元有一个增量延迟,而这个增量延迟会被当做输入上的附加延迟被括在内

上述方法的一种替代方式是set_input_transition,set_input_transition提供了一种在输入端口表示过渡时间的便捷方式,并且可以指定参考时钟,比如下面这个例子

图片

set_input_transiton 0.85 [get_ports INPC]

set_input_transiton 0.6 [all_inputs]

set_input_transiton 0.25 [get_ports SD_DIN*]

在指定set_input_transiton是,也可以指定-max 和-min

2.2 电容性负载

set_load可以在输出端口设置电容性负载,用来模拟输出端口驱动外部负载的能力

默认情况下电容性负载为0,也可以将负载显示指定为电容值或某个单元的输入引脚电容

比如下面这个例子

图片

#OUTX端口有一个pF的负载
set_load 5 [get_ports OUTX]

set_laod 25 [all_outputs]
 
 set_load -pin_laod 0.007 [gets_ports {shift_write[31]}]

可以使用-wire_load选项指定与端口连接的连线的线载电容

如果既没有-pin_load,也没有-wire_load,那么默认是-pin_load

指定输出上的负载很重要,因为该值会影响驱动输出单元的延迟

set_load约束也可以用于指定内部连线上的负载,比如下面这个例子

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

相关推荐

STA基本方法(三)时序优化

解决时序收敛的问题也是静态时序分析中的主要工作。静态时序分析中可以通过自动和手动两种方式完成物理上和时序上的优化工作,其优化时序的类型主要分为建立时间、保持时间和时序设计规则3种。

Andy_ICer的博客 2029

SDC设计约束——set_input_transition和set_clock_transition的区别

set_clock_transition和set_input_transition的主要区别是:1. set_clock_transition所指定的transition value会apply到整个clock network上,而不是在不同的点重新去计算。 2. set_input_transition只会作用于指定的port。

qq_36480087的博客 7719

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

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

weixin_30394669的博客 405

SDC命令详解:使用set_driving_cell命令进行约束

本文详细介绍了SDC命令中set_driving_cell的用法,包括如何指定驱动单元、端口列表、库名、上升/下降沿条件等参数。通过电路实例演示了命令应用和时序计算原理,解释了驱动单元延迟和转换时间的计算方法。文章还说明了-max/-min选项的作用、输出/输入引脚指定、设计规则转移控制等高级功能,并指出部分选项已被废弃。最后强调该命令仅对当前MCMM场景生效,为芯片设计中的驱动单元设置提供了全面的技术参考。

保持终身学习的能力,温故而知新 6109

数字电路时序分析:STA与Timing Violation修复策略

静态时序分析(STA)是数字电路设计中验证时序性能的核心技术,通过分析建立时间(Setup Time)和保持时间(Hold Time)等关键参数确保电路可靠性。时序违规(Timing Violation)会导致电路功能失效,常见类型包括建立时间违规和保持时间违规。在VLSI设计流程中,工程师需要掌握数据路径优化、时钟树综合(CTS)和工艺调整等方法修复违规。针对建立时间问题可采用逻辑重组、寄存器重定时等技术,而保持时间修复则需要增加数据路径延迟。现代物理综合工具结合机器学习算法,能智能推荐最优修复策略。这些

407

角谱迭代与傅里叶变换迭代算法(GS)的原理及其实例演示分析

角谱迭代与傅里叶变换迭代算法(GS)的原理及其实例演示分析 目前,迭代法和强度传输方程(TIE)法是两类典型的非干涉相位检索技术(Phase Retrieval,被称为相位恢复、相位检索、相位反演法、相位复原等)。迭代法中的经典算法是Gerchberg-Saxton(GS),随后,出现了包括错误减少算法(ER)、混合输入输出法(HIO)、梯度搜索算法、角谱迭代算法等改进算法。...

简单光学 2万+

STA环境 - 时序路径

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

Starry__的博客 1650

用matlab编程求矩阵的极大无关组,向量组极大无关组表示问题

已知向量组T:Eqn11.gif (3.16 KB, 下载次数: 1)2013-10-21 19:19 上传.(1) 求向量组T的秩,并判断向量组T的相关性;(2) 求T的极大线性无关组;(3) 将其余的向量用所求的极大线性无关组线性表示。程序:>> A=[1 1 3 2;-1 1 -1 3;5-2 8 9;-1 3 1 7]>> r=rank(A)>> A1=...

weixin_35094083的博客 7389

sdc——系统接口

sdc——系统接口 关于系统接口的sdc命令主要有:1.set_driving_cell 2.set_driving 3.set_load 4.set_input_transition。 set_driving:设置输入端的输入电阻,从而得到输入端口的输入延迟。输入电阻越小,驱动能力越强,set_driving的输入电阻不能设置为0,设置为0代表驱动能力为无穷大,意味着transition为0。 set_driving 2.0 [get_ports in1] set_driving_cell:和set_d

seu他山之石的博客 1934

U盘 未知USB设备 设定地址失败 由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案(做过系统装机盘而无法解决的必看)

U盘由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案 我们在使用U盘的时候偶尔会碰到下列情况 一般是因为传输数据的过程中,死机或未响应直接断点或拔掉设备导致的,U盘再次插上之后出现设定地址失败。无法再次读取设备的数据。 解决方案: 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损伤导致的!!! 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损...

qq_39123987的博客 13万+

Vivado静态时序分析学习笔记(1)

静态时序分析分为片内时序分析(寄存器与寄存器之间的时序关系)和片外时序分析(IO时序分析)。(1)建立时间 setup time在时钟事件(上升沿/下降沿)发生之前数据信号应保持稳定的时间。把实际电路抽象成前级D触发器+组合逻辑+后级D触发器。

Fantaasky的博客 4377

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

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

HFUT90S的博客 3143

《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台

处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。

2301_79143213的博客 450

【小技巧】STA静态时序分析概述

STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。以分析的方式区分,可分为Path-Based及Block-Based两种。 先来看看Path-Based这种分析方式。如图一所示,讯号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y点。套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。而使用者给定的Timing Constraint为: 1.讯号A到

FPGA/MATLAB学习教程/源码/项目合作开发 2671

Kafka 性能优化与常见问题排查

Kafka 的高性能依赖于合理的集群设计、参数优化与高效的监控体系。生产环境中,应重点关注I/O 瓶颈、分区规划、Producer/Consumer 参数调优,并通过监控与排查手段快速定位问题,从而保障 Kafka 在实时场景下的稳定运行。

X2829352498的博客 235

matlab从无到有系列(九):Simulink基础仿真详解(全网最全,从入门到放弃)

🔗 运行环境:Matlab 🚩 作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 📚 选自专栏:《数学建模》 🧿 优秀专栏:《Matlab神经网络案例分析》 目前持续更新的专栏: 🥇 专栏:Matlab GUI编程技巧 🔥 专栏:Matlab从无到有系列 📚 专栏:《数学建模》 💗 大家好,我是左手の明天!💗 📆 最近更新:2022 年 4 月 2 日,左手の明天的第215 篇原创博客 🌟🌟往期必看🌟🌟 matlab从无到有系列(二):矩阵运算基础...

左手の明天的博客 9万+

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

STA常用约束指令学习记录

wjh776a68的博客 1912

游戏引擎揭秘:大厂为何死磕自研?

游戏引擎本质与商业价值解析 游戏引擎是集成了渲染、物理、动画等核心功能的开发工具包,其价值在于让开发者免于重复编写底层代码,专注于游戏内容创作。商业引擎(如Unity/Unreal)虽降低了开发门槛,但头部厂商仍坚持自研引擎,主要基于以下考量: 经济性:长期项目分摊自研成本后,比商业引擎分成更划算; 可控性:完全掌握底层代码,能针对性优化核心玩法需求; 技术壁垒:专属引擎成为厂商的竞争优势,如米哈游的跨平台渲染技术; 项目适配:超大型游戏(开放世界/MMO)需要深度定制解决方案。 这种"短期高投入

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 263

静态时序分析(STA,Static Timing Analysis)基础与应用1

http://hi.baidu.com/hieda/blog/item/334c4ffab3844c8e9e5146f8.html 前言 在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。此一趋势使得如何确保IC品质成为今日所有设计从业人员不 得不面临之重大课题。静态时序分析(Static Timing Ana...

weixin_30466039的博客 1779

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径

[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径

weixin_43698385的博客 8030

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

静态时序分析学习记录4

I_learn_code的博客 585

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

静态时序分析 Static Timing Analysis 教程

静态时序分析 Static Timing Analysis 教程1. Introduction to STA1.1. STA Objectives1.2. STA Process1.3. STA Tools1.4. Timing Libraries1.5. Timing Paths1.6. Timing Arc Characteristics 本文为Cadence Course Basic Static Timing Analysis v2.0笔记 1. Introduction to STA 1.1. S

zorrolee777的博客 6264

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

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

McEv0y的博客 2909

vivado跨时钟域时序违例解决方法记录

摘要:本文记录了AD1675驱动开发中遇到的时序违例问题及解决方法。在布局布线后发现跨时钟域(SCLK与clk_100M)出现建立时间违例,通过添加伪路径(false path)约束解决了误报问题。作者强调伪路径仅用于指导工具优化,实际必须配合双寄存器同步或异步FIFO等同步机制才能确保电路可靠性。文章指出合理使用伪路径能减少工具优化时间,避免对非关键路径进行不必要的时序优化。最后分享了FPGA开发中解决问题的思考过程,并邀请同行交流学习。

在读研究生,FPGA电路设计与功能开发。 3176

STA学习记录-时钟定义

STA学习记录

I_learn_code的博客 591

STA静态时序分析实战:从预布局到布线后的延时计算全解析

本文深入解析了STA静态时序分析在芯片设计中的核心作用,从预布局阶段的线负载模型估算,到布线后基于精确寄生参数的有效电容与互连延时计算。文章通过接力赛的生动比喻,阐述了延时计算如何确保信号在逻辑门间准确传递,避免建立时间和保持时间违例,是芯片能否稳定运行的关键。

data3的博客 674
上一篇: STA学习记录4-输入输出路径约束
下一篇: SSD缩写对照表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值