当前位置: 首页 > news >正文

sta工具是怎么进行setup/hold检查的

1.sta工具launch和capture沿配对

1.1配对规则

sta工具默认会做最严检查,就是保证launch clk的每个cycle都在launch不同的数据,capture能正确采样

sta工具在setup/hold检查时,要建立capture clk和launch clk的配对

在配对的过程中,是不考虑clk skew和jitter的【skew和jitter是在计算setup/hold slack时考虑】,配对的原则如下:

Setup检查的目的是:确保当前Launch沿(发起沿)发出的数据,能够“提前就位”并稳定足够长的时间,以便下一个Capture沿(捕获沿)能够正确无误地“读取”它。

那么工具在一个公共周期内,枚举每一个launch边沿和其后最近的capture边沿,并选择时间差最小的一对边沿做setup的配对

换句话说就是找所有launch clk之后最近的一个capture clk做检查

----每个launch clk之后都可以找到一个最近的capture 沿

----但是真正做配对的是 这些里面最小的那一组

Hold检查的目的:确保当前launch沿发出的数据,不会过快的到达,以至于干扰了前一个capture沿正在捕获的数据【落到了前一个capture沿的hold时间之内】

对于hold:工具在公共周期内,枚举所有可能的launch边沿和capture边沿,并选择时间小于等于launch clk边沿且最接近launch clk边沿的capture边沿的那一组做配对

----和setup沿配对一样,也是找间隔最小的那一组做配对

----为什么选择时间小于等于launch clk,而不能大于launch clk?

--------因为不考虑skew和jitter的ideal clk,capture clk大于launch clk的都用于寻找setup 配对沿

--------非ideal clk的情况下,实际hold check的capture 沿是可以比launch 沿晚的,工具会算上skew和jitter

上面两个规则对于同步时序检查都是ok的,无论是同频同向,同频不同向(常见是同频反向),快时钟到慢时钟;还是慢时钟到快时钟。

PT默认情况下完成了launch clk边沿和capture clk边沿的配对之后,如果使用set_multicycle_path -setup -start 改变launch沿,对应的hold检查的配对沿中launch沿也会相应的移动

使用 -setup -end改变capture 沿,对应的hold检查的配对沿中capture沿也会相应的移动

但是无论set_multicycle_path -hold -start还是 -end 只会影响改变hold自己的沿配对,不会影响到setup的沿配对

工具内部hold检查的边沿默认是基于setup检查的边沿派生出来的,所以改变setup的某一端,必然会导致hold的对应端也随之改变

1.2 几种常见的配对举例

1.2.1 同频反向的setup和hold

这种情况setup被称作半周期检查

hold是比较放松的,clk path给了0.5T的时间【不考虑skew和jitter】,这种ideal clk,hold检查是0.5T+Tco+Tdelay>T(hold)

1.2.2 慢时钟到快时钟

1.2.3 快时钟到慢时钟

2.setup检查的公式描述

setup检查的定义是capture到来之前,数据要稳定的最小时间

Setup检查的目的是:确保当前Launch沿(发起沿)发出的数据,能够“提前就位”并稳定足够长的时间,以便下一个Capture沿(捕获沿)能够正确无误地“读取”它。

T(launch)+T(co+comp)+T(setup) < T(capture)

T(setup)< T(capture)-T(launch)-T(co+comp)

sta工具pt会做最严的检查,就是要T(capture)-T(launch)最小,但是又不能为0【为0是物理不可实现的】

那么PT工具就会和T(launch)之后最近的一个T(capture)clk做setup检查

3.hold检查的公式描述

hold检查的定义是capture沿到来之后,数据要保持的最短时间

它的目的是确保当前launch沿发出的数据,不会过快的到达,以至于干扰了前一个capture沿正在捕获的数据【落到了前一个capture沿的hold时间之内】

----当前launch沿发出的数据,期望的capture沿是launch沿之后最近的那个capture沿,对应公式就是:

T(co+comp)) +T(launch_check_edge)-T(capture_ckeck_edge)>T(hold)

最严检查,就是要T(launch_check_edge)-T(capture_ckeck_edge)最小,也就是选择时间小于等于launch clk边沿且最接近launch clk边沿的capture边沿

这里的T(launch_check_edge)和T(capture_ckeck_edge)是已经配对的hold check检查沿

4.问题讨论

4.1 为什么不从一次完整的launch到capture过程来看,并用setup的配对沿来计算 hold check呢?

此时使用公式:

T(launch)+T(co+comp)+T(launch_clk_period) > T(capture)+T(hold)

T(hold)<T(launch)+T(launch_clk_period)-T(capture)+T(co+comp)

上面的公式在同频的同步电路或者快到慢时钟同步电路是没有问题的,结果和第3章的效果是一样的,但是在慢到快的hold检查就有问题,根源在于:

一条路径的数据流是L → C_setup → 等待下一个 L 周期再考虑 hold 风险。 相当于认为: 只需要保证:本次 L 发出的数据,至少维持有效直到本次 C_setup 沿。完全忽略中间存在其他 capture 采样沿的风险!

如上图所示,从setup的当前launch 沿向后推迟一个launch clk,然后和当前setup的capture clk沿做hold检查,这样就跳过了很多capture沿,导致找到的并不是符合hold check配对沿要求的沿。

4.2 hold检查的capture一定是setup的capture向前推一个时钟周期

需要注意有些人会认为,hold检查的capture一定是setup的capture向前推一个时钟周期

这种说法在同频的同步电路中是成立的,在launch和capture频率是倍数关系时不成立,如下图:

T0→T1是实际的setup检查配对沿

T1→T1是实际的hold检查配对沿

T1→T2不是setup的检查配对沿,只是普通的一对launch和capture沿,工具不会做T1->T2时刻的setup检查

那么T1→T1的hold检查配对沿的capture clk可以说是T2 captureclk前推一个周期,但不能说是setup的capture向前推一个时钟周期

但是对上图使用set_multicycle_path -setup改变setup的某一端,必然会导致hold的对应端也随之改变这个规则是适用的

http://www.jsqmd.com/news/1385167/

相关文章:

  • R语言手动安装.tar.gz源码包:从环境配置到实战排错指南
  • macOS菜单栏管理工具Ice使用指南:5个技巧告别拥挤菜单栏
  • OpenVINO AI插件上手记:一小时播客转录十分钟搞定,还不用上传任何数据
  • 证明任何自然数都可以有二进制表示
  • 快速排序算法深度解析:从Lomuto到Hoare的C/C++实现与性能优化
  • 如何下载B站4K视频并永久保存?零基础保姆级教程一次讲清
  • 2026年7月昆明市二手房价格深度分析报告
  • 5分钟跑通Windows和Office激活:KMS激活工具KMS_VL_ALL_AIO上手指南
  • 多模态多轮诊断推理评测:从概念到临床AI实践
  • 一加 15 刷机 / 救砖 / Root 完整教程总结
  • 2026 武汉危化品许可证代办靠谱吗?自主办理 vs 委托代办深度对比 - 招小财
  • Windows 越用越卡先别重装:RyTuneX 系统优化实战指南,从体检到提速一次讲透
  • C++实现生命游戏与高斯帕滑翔机枪:从细胞自动机到性能优化实践
  • 寒地数字通信全域赋能与落地实战白皮书——黑龙江全域极寒场景通信系统建设、升级、运维、合规全维度深度解析
  • STM32 CAN通信协议详解(一)
  • JupyterLab集成Gemini AI:Notebook代码智能提示与调试实践
  • 跨厂商智能体工具信任管理:构建未来自治网络的安全基石
  • 计算机视觉SOTA模型选型指南:从ResNet到Transformer的实战决策
  • 荆门沙洋县乡墅建造公司推荐:基于落地能力与服务口碑的深度评析 - 装企精灵GEO
  • 数学建模竞赛:从解题思路到论文写作的完整方法论与实践指南
  • 免费激活 Windows 与 Office:KMS_VL_ALL_AIO 智能激活脚本完整指南
  • 全闪文件存储系统(FAFS)架构解析与Ceph实战部署指南
  • React项目集成测试实战:为MDB UI KIT组件编写自动化测试指南
  • 告别重复刷怪:一个网页就能完成的暗黑2存档修改全流程
  • 离职已经生效,系统权限不能等 IT 空了再收
  • CCC数字钥匙3.0:UWB+BLE融合架构与安全生态解析
  • Wand-Enhancer 完整解锁指南:三步免费开启 Wand 全部高级功能与手机远程控制
  • Blender 应用修改器如何保留形状键?SKkeeper 完整使用指南
  • 分布式一致性算法详解:从 2PC、3PC 到 Paxos、Raft、ZAB
  • AI驱动测试报告自动化:从原理到实践,提升软件测试效率