静态时序分析:SDC约束命令set_clock_transition详解

相关阅读

静态时序分析icon-default.png?t=N7T8https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482


        在静态时序分析:SDC约束命令create_clock详解一文的最后,我们谈到了针对理想(ideal)时钟,可以使用set_clock_transition命令直接指定理想时钟到达各触发器时钟引脚的转换时间(这是一种估计),而不是在时钟端口使用set_input_transition命令(即使使用了,对理想时钟也是无效的),因为时钟树尚未创建,时钟端口的高扇出会导致,任何在时钟路径上的转换时间和延迟的计算都是毫无意义的。

        该指令的BNF范式(有关BNF范式,可以参考以往文章)为:

set_clock_transition
    transition clock_list [-rise] [-fall] [-min] [-max] 
    //注:该命令的clock_list参数一定要放在transition参数后

        -rise选项用于指定转换时间应用于时钟的上升沿、-fall选项用于指定转换时间应用于时钟的下降沿。如果这两个选项都没有指定,转换时间同时应用于时钟的上升沿和下降沿(它们可以同时指定)。

        -min选项用于指定转换时间应用于建立时间时序分析、-max用于指定转换时间应用于保持时间时序分析。如果这两个选项都没有指定,转换时间同时应用于建立时间和保持时间分析(它们可以同时指定)。

        下面举例说明set_clock_transition命令的具体用法,考虑两个触发器组成的简单结构,其中第一个触发器即发射触发器由clk_1时钟控制,第二个触发器即捕获触发器由clk_2时钟控制,有关发射触发器和捕获触发器的内容,可以看以往的文章静态时序分析:建立时间分析-CSDN博客,具体电路结构如图1所示。。

图1 简单的例子 

        现在我们只研究从t_reg的时钟端到data_out_reg的数据输入端的时序路径。首先使用下面的命令在两个时钟端口上分别创建两个理想时钟对象。

create_clock -period 10 -waveform {5 10} [get_port clk_1]
create_clock -period 10 -waveform {5 10} [get_port clk_2] 

        然后我们使用下面的命令,分别设置这两个理想时钟对象的时钟转换时间,在这里为了区分,设置的数值是不同的,并且转换时间被设置到建立时间和保持时间分析的上升沿和下降沿这四种情况上。 

set_clock_transition 0.1 [get_clock clk_1]
set_clock_transition 0.2 [get_clock clk_2]

        可以使用report_clock -skew命令查看定义了的理想时钟转换时间,如图2所示。        

图2 转换时间报告 

        现在我们使用下面的命令改变clk_1时钟用于保持时间分析的转换时间,结果如图3所示。

set_clock_transition 0.5 -min [get_clock clk_1]

图3 转换时间报告 

        可以使用reoprt_timing命令报告时序路径的建立时间分析、保持时间分析的时序报告,如图4和图5所示,注意此时要使用-transition_time选项才能显示出时钟端口的转换时间。

图4 建立时间的时序报告

图5 保持时间的时序报告

        注意,set_clock_transition命令只应在预布局阶段(pre-layout)使用,即时钟树综合(CTS)前。一旦时钟树综合完成,使用set_propagated_clock命令将理想时钟变成传播时钟后,时钟上的转换时间属性就会失效,如果需要移除时钟上的转换时间属性,使用remove_clock_transition命令。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

函数、极限、连续——刷题(3

目录 1.题目:2.解题思路和步骤:3.总结:小结: 1.题目: 2.解题思路和步骤: 3.总结: 首先还是考虑好所有情况(所有情况见:函数、极限、连续——刷题(1&#xff…

JVM-垃圾回收(标记算法,收集器)

申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 垃圾回收的基本原理 1 什么是垃圾? 在…

并发编程(1)基础篇

1 概览 1.1 这门课讲什么 这门课中的【并发】一词涵盖了在 Java 平台上的 进程线程并发并行 以及 Java 并发工具、并发问题以及解决方案,同时也会讲解一些其它领域的并发 1.2 为什么学这么课 我工作中用不到并发啊? 那你还是没有接触到复杂项目. …

JS如何判断普通函数与异步(async)函数

这里可以先打印一下普通函数和异步(async)函数的结构,如下图 可以看出两者原型链,普通函数的原型链指向的是一个函数,异步(async)函数原型链指向的是一个AsyncFunction,这时就会想到…

[高并发] - 1.高并发综述

1. 必备条件 高并发,高性能分布式ID 高并发过滤组件 Bloom FIlter 2. 数据库 (1)不要让mysql干不擅长的工作,例如全文搜索,而是采用对应的nosql来处理;对于擅长的存取数据则能很好胜任; &am…

SQL的1999语法

目录 交叉连接 实现交叉连接 自然连接 实现自然连接(实际上就是内连接) ON和USING 使用自然连接时要求两张表的字段名称相同,但是如果不相同或者两张表中有两组字段是重名,这时就要利用 ON 子句指定关联条件,利用 USING 子句…

【游戏开发各岗位的优势和劣势】

游戏开发各岗位的优势和劣势 在这个充满创意和技术的时代,游戏行业成为众多创新人才追求梦想的热土。对于那些准备踏入这个充满挑战与机遇的领域的新人来说,了解游戏开发的各个岗位及其独特性是至关重要的。游戏程序员、美术设计师和游戏策划——这三个…

python解构赋值详解(包含leetcode226.翻转二叉树题目讲解以及python代码)

目录 一、背景 1.1问题 1.2原因 二、解构赋值 2.1定义 2.2解题应用 2.2.1翻转二叉树 2.2.2 思路以及代码 一、背景 1.1问题 在写二叉树相关代码赋值的时候发现这样的写法,担心会发生这样的情况:先把node.right的值给node.left,在把…

黑马Java——IO流

一、IO流的概述 IO流:存储和读取数据的解决方案 IO流和File是息息相关的 1、IO流的分类 1.1、纯文本文件 word、Excel不是纯文本文件 而txt或者md文件是纯文本文件 2、小结 二、IO流的体系结构 三、字节流 1、FileOutputStream(字节输出流&#xff…

【VSCode】使用笔记

目录 快捷键系列 相关插件 相关文档链接 快捷键系列 调出终端 ctrl 或者是ctrlJ 结束进程 ctrlc 注释 ctrlkc 取消注释 ctrlku 上下移动代码 alt方向键 多行光标ctrlalt方向键 快速跳过某个单词 ctrl方向键 相关插件 1.每次修改后,自动保存启动项目 相…

【第二十四课】二分图:acwing-860染色法判定二分图 / acwing-861二分图的最大匹配 ( c++代码 )

目录 二分图是什么 acwing-860染色法判定二分图 染色法 代码 acwing-861二分图的最大匹配 思路 代码 二分图是什么 学习二分图的目的就是一些题目可以简化成二分图的模型来求解。 二分图也就是:一个无向图顶点集,分成了两堆顶点(可以理解为两…

黄金交易策略(Nerve Nnife.mql4):移动止盈的设计

完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 相较mt4的止盈止损,在ea上实现移动止盈,可以尽最大可能去获得更高收益。移动止盈的大体逻辑是:到达止盈点就开始追踪止盈,直到在最高盈利点回撤指定点数即平…

小程序或者浏览器chrome访问的时候出现307 interval redicrect内部http自动跳转到https产生的原理分析及解决方案

#小李子9479# 出现的情况如下,即我们访问http的时候,它会自动307重定向到https,产生的原因是, 当你通过https访问过一个没有配置证书的http的网站之后,你再访问http的时候,它就会自动跳转到https,导致访问…

【网站项目】228高校教师电子名片系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

抽象的问题1

vue3&#xff0c;在使用v-mode绑定属性时&#xff0c;发生了奇怪的问题&#xff0c;渲染失败了 代码如下 <template><div><form><div>账号<input v-model"form_user_Data.username" type"text"></div><div>密…

【C语言相关问题】C语言中关于大小写字母转换的问题

大家好&#xff0c;这里是争做图书馆扫地僧的小白。非常感谢各位的支持&#xff0c;也期待着您的关注。 目前博主有着C语言、C、linux以及数据结构的专栏&#xff0c;内容正在逐步的更新。 希望对各位朋友有所帮助同时也期望可以得到各位的支持&#xff0c;有任何问题欢迎私信与…

OpenCV 笔记(22):图像的缩放——最近邻插值、双线性插值算法

1. 图像缩放 1.1 简介 图像缩放是指通过增加或减少像素来改变图像尺寸的过程&#xff0c;是图像处理中常见的操作。图像缩放会涉及效率和图像质量之间的权衡。 图像放大&#xff08;也称为上采样或插值&#xff09;的主要目的是放大原图像&#xff0c;以便在更高分辨率的显示设…

JavaWeb

一、技术栈 【1】 前端部分 HTML CSS JavaScript ES6 Nodejs npm vite vue3 router pinia axios element-plus … 【2】 后端部分 HTTP xml Tomcat Servlet Request Response Cookie Sesssion Filter Listener MySQL JDBC Druid Jackson lombok jwt … 二、JAVAWEB交互模…

QtApplets-线程池

QtApplets-线程池 ​ 今天咱们稍微看下Qt的线程池。QThreadPool&#xff0c;浅浅搞一下。 文章目录 QtApplets-线程池QThreadPoolQThreadPool 与 QThread 区别替代方案Qt Concurrent QThreadPool 与 Qt Concurrent 区别Demo运行效果 ☞ 源码 关键字&#xff1a; Qt、QRunnable…

爬虫之牛刀小试(十):爬取某宝手机商品的销量,价格和店铺

首先淘宝需要登录&#xff0c;这一点如果用selenium如何解决&#xff0c;只能手动登录&#xff1f;如果不用selenium&#xff0c;用cookies登录也可。但是验证码又是一个问题&#xff0c;现在的验证码五花八门&#xff0c;难以处理。 我们回到正题&#xff0c;假设你已经登录上…