新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/5 18:08:57来源:尧图网络
SDC命令详解:使用set_propagated_clock命令进行约束
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定端口列表/集合Multicorner-Multimode支持简单使用注意事项写在最后传播时钟是在进行了时钟树综合后使用set_propagated_clock命令可以将一个理想时钟转换为传播时钟注意虚拟时钟即无时钟源对象的时钟无法被转换为传播时钟设置对象的propagated_clock属性为true此时的时钟延迟由源延迟和真实网络延迟组成这里的网络延迟是根据时钟路径上的互连延迟和单元延迟真实计算出来的而不再使用set_clock_latency命令设置网络延时。有关理想时钟和传播时钟的更详细内容可以参考下面的博客。如果想要移除传播时钟使用remove_propagated_clock命令。静态时序分析ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则一https://blog.csdn.net/weixin_45791458/article/details/139998035?ops_request_misc%257B%2522request%255Fid%2522%253A%2522e4f4bf160af3c2b2f079b3291ac96a32%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_ide4f4bf160af3c2b2f079b3291ac96a32biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-139998035-null-null.nonecaseutm_term%E4%BC%A0%E6%92%AD%E6%97%B6%E9%92%9Fspm1018.2226.3001.4450本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。set_fanout_load命令的BNF范式有关BNF范式可以参考以往文章为set_propagated_clock object_list指定端口列表/集合指定一个列表/集合包含时钟对象、端口对象或引脚对象对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在当前场景设置传播时钟。关于场景的更多介绍可以参考下面的博客。Design Compiler多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450简单使用下面用一个简单的例子进行说明图1是两个D触发器的简单级联可以看出此时的时钟路径上人为插入了一些缓冲器。图1 一个简单的例子下面使用create_clock命令在clk端口创建了一个理想时钟周期为10。dc_shell create_clock -period 10 [get_ports clk]对于理想时钟而言它的延迟包括两部分源延迟(source)和网络延迟(network delay)它们都是使用set_clock_latency命令进行设置的关于该命令的使用可以参考之前的文章SDC命令详解使用set_clock_latency命令进行约束。 注意理想时钟的网络延迟值是直接设置的而不会从时钟路径上的互连延迟(net delay)和单元延迟(cell delay)中推断出来。下面的命令设置了时钟clk的源延迟为2ns网络延迟为0.5ns。dc_shell set_clock_latency -source 2 [get_clocks clk] dc_shell set_clock_latency 0.5 [get_clocks clk]图2所示的建立时间时序报告显示时钟的总延迟为2.5ns(注意这里的network delay其实指的是总延迟而不只是网络延迟)括号中的ideal提示了这是一个理想时钟。图2 建立时间时序报告下面使用set_propagated_clock命令将理想时钟clk转换成传播时钟此时会给出警告。dc_shell set_propagated_clock [get_clocks clk] Warning: Converting ideal clock at clk to propagated clock. (UID-477)图3是此时的时钟报告可以看出此时的时钟clk已经拥有propagated_clock属性了即是一个传播时钟了。图3 时钟报告传播时钟此时的时钟延迟由源延迟和真实网络延迟组成这里的网络延迟是根据时钟路径上的互连延迟和单元延迟真实计算出来的如图4所示此时添加了-path full_clock选项以显示出完整的时钟路径。图4 展开时钟路径的建立时间报告注意事项有些时候会设置端口对象或引脚对象的传播时钟属性此时经过这些端口对象或引脚对象的时钟对象将被视为传播时钟注意该时钟本身可以是理想时钟。下面依旧以图1为例说明这种情况使用set_propagated_clock命令设置输入端口clk的传播时钟属性。​dc_shell set_propagated_clock [get_clocks clk]此时时钟对象依旧是理想时钟如图5所示。图5 时钟报告理想时钟下面使用set_input_delay命令设置输入端口d的输入延迟。dc_shell set_input_delay 0.5 -clock [get_clocks clk] [get_ports d]此时经过输入端口d的建立时间时序报告如图6所示此时添加了-path full_clock选项以显示出完整的时钟路径。图6 展开时钟路径的建立时间报告可以看出即使是同一个时钟对象clk对于发射路径其被视为理想时钟使用设置网络延迟 对于捕获路径其被视为传播时钟使用真实网络延迟。如果将时钟本身设置为传播时钟发射路径将只包含源延迟而不含网络延迟在不使用-reference_pin选项的情况下。写在最后尽管set_propagted_clock命令不存在set_size_only命令中多实例化设计(MIM)的问题但依旧可以通过使用current_design命令切换当前设计到多实例化设计设置propagated_clock属性后再切换回原当前设计来进行多个对象的propagated_clock属性设置但不推荐。如果这么做了使用write_script -hierarchy命令可以观察切换设计进行设置的过程。另外还有下面有几点需要注意1、即使子设计中的propagated_clock属性设置了还需要使用propagate_constraints -clocks命令将子设计的传播时钟约束传播到顶层设计实测该命令对多实例化设计中约束的传播效果不好建议先使用使用uniquify命令进行唯一化才能生效。2、如果下层设计设置属性的同时在上层设计设置了同一个对象的propagated_clock属性其上层的优先级更高。3、如果在上层设计设置了一个对象的propagated_clock属性其无法反向传递到下层设计。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Caveman 集成体系详解:Skills、Hooks 与 Plugins 的权限边界、实现原理与卸载方法 2026/9/5 18:48:03

Caveman 集成体系详解:Skills、Hooks 与 Plugins 的权限边界、实现原理与卸载方法

Caveman 集成体系详解:Skills、Hooks 与 Plugins 的权限边界、实现原理与卸载方法 【免费下载链接】caveman 🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman 项目地址: https:…

阅读更多 →
Gradio 入门:不写前端,三个场景搭出 LLM 对话界面 2026/9/5 18:48:03

Gradio 入门:不写前端,三个场景搭出 LLM 对话界面

Gradio 入门:不写前端,三个场景搭出 LLM 对话界面 【免费下载链接】llm-cookbook 面向开发者的 LLM 入门教程,吴恩达大模型系列课程中文版 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-cookbook 模型在终端里跑通了&#x…

阅读更多 →
LabVIEW界面中英文动态切换:从资源分离到事件驱动的完整实现方案 2026/9/5 18:48:03

LabVIEW界面中英文动态切换:从资源分离到事件驱动的完整实现方案

简介:本资源是一套基于LabVIEW开发的中英文双语切换用户界面实现方案,面向自动化测试、仪器控制及工业软件开发领域的工程师与高校师生,解决多语言界面本地化这一实际工程需求。压缩包共9个文件(54KB),包含…

阅读更多 →
三角洲行动进不去?一套排查顺序解决卡加载、闪退与登录失败 2026/9/5 18:48:03

三角洲行动进不去?一套排查顺序解决卡加载、闪退与登录失败

这次要处理的是一个非常典型的“游戏进不去”全家桶:进游戏卡加载进度、登录失败、弹未知错误、闪退崩溃、进图后卡顿掉帧。标题里提到的“8月9号问题已解决”说明这类故障往往伴随版本更新集中出现,而且修复节奏通常是“官方先解决大头,玩家…

阅读更多 →
示波器电路调试实操指南:从探头校准到自动化采集 2026/9/5 18:48:03

示波器电路调试实操指南:从探头校准到自动化采集

这里说的“电路分析神器”,不是我给示波器瞎起的广告词,而是它在硬件调试里的地位确实特殊。芯片不工作、信号有毛刺、通信时好时坏、电源纹波偏大,这些问题靠万用表只能看到一个平均结果,靠逻辑分析仪又看不到模拟波形细节。示波…

阅读更多 →
ESP32-C3自制低成本示波器:从采样原理到波形显示全攻略 2026/9/5 18:45:03

ESP32-C3自制低成本示波器:从采样原理到波形显示全攻略

如果你在搜索框里输入“esp32c3 示波器”,大概率是两种情况:一是手里已经有一块 ESP32-C3 开发板,想拿它做一个低成本波形采集工具;二是准备测 I2C、PWM、音频这类低速信号,但不想每次都搬台式示波器。这次我们就把这个…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞