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

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

        指定端口列表/集合

        简单使用

        注意事项


        传播时钟是在进行了时钟树综合后,使用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%257D&request_id=e4f4bf160af3c2b2f079b3291ac96a32&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-139998035-null-null.nonecase&utm_term=%E4%BC%A0%E6%92%AD%E6%97%B6%E9%92%9F&spm=1018.2226.3001.4450        本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_fanout_load命令的BNF范式(有关BNF范式,可以参考以往文章)为:

set_propagated_clockobject_list

指定端口列表/集合

        指定一个列表/集合,包含时钟对象、端口对象或引脚对象,对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。

SDC命令详解:使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571

简单使用

        下面用一个简单的例子进行说明,图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选项的情况下)。

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

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

相关文章

关于华为仓颉编程语言

文章目录 一、基本概况二、技术特点1. 多范式编程2. 原生智能化3. 高性能与安全4. 全场景兼容 三、编译器与开发工具四、语言相似性对比五、行业应用实例总结 最近经常看到这个东西,于是搜了一下,整理了一些内容,水一篇,以后慢慢研…

【STM32F1标准库】理论——定时器中的输出比较

目录 一、定时器的输出比较介绍(Output Compare) 1.整体简介 2.输出比较单元具体功能框图 3.以PWM模式1举例 二、杂谈 1.CCR的全名 2.PWM简介 3.舵机简介 4.直流电机及驱动模块TB6612简介 一、定时器的输出比较介绍(Output Compare…

前端开发面试题总结-HTML篇

文章目录 HTML面试高频问答一、HTML 的 src 和 href 属性有什么区别?二、什么是 HTML 语义化?三、HTML的 script 标签中 defer 和 async 有什么区别?四、HTML5 相比于 HTML有哪些更新?五、HTML行内元素有哪些? 块级元素有哪些? 空(void)元素有哪些?六、iframe有哪些优点…

Scrapy爬虫教程(新手)

1. Scrapy的核心组成 引擎(engine):scrapy的核心,所有模块的衔接,数据流程梳理。 调度器(scheduler):本质可以看成一个集合和队列,里面存放着一堆即将要发送的请求&#…

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测 目录 Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五…

历史数据分析——唐山港

个股简介 公司简介: 唐山港口投资有限公司、北京京泰投资管理中心、河北利丰燕山投资管理中心、国富投资公司、唐山市建设投资公司、河北省建设投资公司、国投交通实业公司7家发起人共同发起设立。 经营分析: 港口经营一般项目:港口货物装卸搬运活动;普通货物仓储服务(不含…

云端回声消除:让超低端硬件能玩实时打断

传统认知里“优质交互 高性能硬件”的等式正在被打破? 超低端开发板也能实现高配置硬件才有的实时打断语音交互? 网易云信推出的云端回声消除技术不仅解决了硬件配置对交互体验的限制,更以系统性解决方案重构了嵌入式设备的实时对话体验。 困…

堆排序的详细解读

一.堆的基本概念 1.什么是堆 堆是一种特殊的完全二叉树,满足一下性质: 最大堆:每个节点的值都大于或等于其子节点的值(堆顶元素最大)最小堆:每个节点的值都小于或等于其子节点的值(堆顶元素最小…

hmdp知识点

1. 前置知识 1.1 MyBatisPlus的基本使用 1.1.1 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version> </dependency> 1.1.2 建立实体类和数…

分享5个免费5个在线工具网站:Docsmall、UIED Tool在线工具箱、草料二维码、图片在线压缩、表情符号

01. Docsmall 它是一个免费的在线图片与PDF处理工具&#xff0c;功能主要包含Ai图片处理工具&#xff0c;图片压缩工具&#xff0c;图片PDF格式转换工具等&#xff0c;如下图&#xff0c;我认为比较实用的是自动抠图、图片变高清、图片压缩和PDF压缩。 https://docsmall.com/…

打通印染车间“神经末梢”:DeviceNet转Ethernet/IP连接机器人的高效方案

在印染行业自动化升级中&#xff0c;设备联网需求迫切。老旧印染设备多采用Devicenet协议&#xff0c;而新型工业机器人普遍支持Ethernet/IP协议&#xff0c;协议不兼容导致数据交互困难&#xff0c;设备协同效率低、生产监控滞后&#xff0c;成了行业数字化转型的阻碍。本文将…

RSA加密算法:非对称密码学的基石

一、RSA算法概述 RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是1977年由Ron Rivest、Adi Shamir和Leonard Adleman提出的非对称加密算法&#xff0c;它基于大数分解的数学难题&#xff0c;是当今应用最广泛的公钥密码系统。RSA的核心思想是使用一对密钥&#xff08;公钥…

杭州瑞盟 MS35774/MS35774A 低噪声256细分微步进电机驱动,用于空调风门电机驱动,香薰电机驱动

杭州瑞盟 MS35774/MS35774A 低噪声256细分微步进电机驱动&#xff0c;用于空调风门电机驱动&#xff0c;香薰电机驱动 简述 MS35774/MS35774A 是一款高精度、低噪声的两相步进 电机驱动芯片&#xff0c;芯片内置功率 MOSFET &#xff0c;长时间工作的平均电 流可以达到 1…

驶向智能未来:车载 MCP 服务与边缘计算驱动的驾驶数据交互新体验

引言 在人工智能技术与车载算力持续突破的驱动下&#xff0c;现代车辆的数字化进程正加速推进。车联网系统将突破传统云端架构的局限&#xff0c;依托边缘计算与 AI 融合技术&#xff0c;实现人车交互体验的范式重构‌。通过构建基于多源异构数据的自动化分析框架&#xff0c;…

Python数据可视化科技图表绘制系列教程(三)

目录 单一柱状图 分组柱状图 堆积柱状图 百分比柱状图 均值柱状图 不等宽柱状图 有序柱状图 条形图 发散条形图 在条上添加标签的发散条形图 基础棒棒糖图1 基础棒棒糖图2 【声明】&#xff1a;未经版权人书面许可&#xff0c;任何单位或个人不得以任何形式复制、发…

JavaScript 数组与流程控制:从基础操作到实战应用

在 JavaScript 编程的世界里&#xff0c;数组是一种极为重要的数据结构&#xff0c;它就像是一个有序的 “收纳盒”&#xff0c;能够将多个值整齐地存储起来。而流程控制语句则像是 “指挥官”&#xff0c;能够按照特定的逻辑对数组进行遍历和操作。接下来&#xff0c;就让我们…

十(1). 强制类型转换

继第十部分C强制类型转换的四种方式&#xff0c;再进行强化巩固一下知识点 static_cast 最常用的&#xff0c;在指针之间做转换 const_cast 去除常量属性 dynamic_cast 用在基类和派生类之间的转换 reinterpret_cast 在任意类型之间进行转 10.1 static_cast 常见的使用场景&am…

Git版本控制工具详解

如何区分开发环境和生产环境呢 答案就是写不同的配置文件&#xff0c;开发的设置成开发需要的&#xff0c;生产的设置成生产需要的&#xff0c;共同放到config这个配置文件夹下面&#xff0c;开发和生成的时候分别加载不同的配置文件 方式二就是使用相同的一个入口配置文件&a…

反向传播的核心是什么:计算损失函数对可训练参数的梯度=== 损失函数能通过计算图连接到可训练参数

反向传播的核心是什么:计算损失函数对可训练参数的梯度 损失函数能通过计算图连接到可训练参数 在深度学习中,反向传播的核心是计算损失函数对可训练参数的梯度,从而更新这些参数。对于LLM(大型语言模型)而言,是否需要“LLM输出的参数”才能进行反向传播 一、反向传播…

KINGCMS被入侵

现象会强制跳转到 一个异常网站,请掉截图代码. 代码中包含经过混淆处理的JavaScript&#xff0c;它使用了一种技术来隐藏其真实功能。代码中使用了eval函数来执行动态生成的代码&#xff0c;这是一种常见的技术&#xff0c;恶意脚本经常使用它来隐藏其真实目的。 这段脚本会检…