STA分析(二) multi_cycle and false
multicycle path:当FF之间的组合逻辑path propagate delay大于一个时钟cycle时,这条combinational path能被称为multicycle path。
create_clock -name CLKM -period 10 [get_ports CLKM]
set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
-setup指定,对于setup check,新的setup check edge相对于默认的setup check edge(Capture FF)向后移动的时钟数。
-hold指定,对于hold check,新的hold check edge相比于默认的setup check edge(Capture FF前一时钟)向前移动的时钟数。
在多数的design中,一个N multicycle setup应该与一个N-1 multicycle hold相对应,以保证hold check维持在同一时钟,否则极容易slack
violated,因为hold check edge太晚于launch edge,使得data required time很大。
False Path:通过设置false path,可以turn off一些paths。
set_false_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK] 任何从SCAN_CLK到CORE_CLK的path都为false path
set_false_path -through [get_pins UMAX0/S] 任何经过UMAX0这个节点的path都为false path
set_false_path -to [get_ports TEST_REG*] 任何以TEST_REG*为终点的path都为false path
Half-Cycle Path:当一个design中既有negative_edge FF又有positive_edge FF时,一个从positive_edge FF到negative_edge FF会设置为half-cycle
path。或者相反也可。
Half-cycle path使得setup check变的更为严峻,因为一个cycle变为半个cycle。但是hold check却得到了半个cycle的余量。
Removal Timing Check:异步信号的release必须在active clock edge后的一段时间,以便这个异步信号的变化在下一clock edge被识别。
这个时间称为removal time。
这是一个min path check,类似于hold check。Path group称为async_default
Recovery Timing Check:异步信号的inactive必须在active clock edge前的一段时间,以便这个clock edge能够识别这个异步信号的变化。
这个时间称为recovery time。
这是一个max path check,类似于setup check。Path group称为async_default。
首先设计异步复位,同步释放的逻辑,如果reg的clock可以先gate掉,再进行rst,recovery timing是可以不检查的,否则还是要检测sync FF输出到第一级FF的recovery time的。
但是removal是通过clock采样rst来的,所以需要检查removal timing
Slow to Fast Clock Domains:当design中有一个从Slow domain到Fast domain时,
create_clock -name CLKM -period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKP -period 5 -waveform {0 2.5} [get_ports CLKP]
这时default setup check edge是在Fast domain中后一个clock。default hold check是setup check edge前一个时钟。
此时可以通过set_multicycle_path命令来设置新的setup check edge和hold check edge。保证setup和hold check以Slow clock为准。
-end表示以Fast clock为单位计数,setup后移clock数和hold前移的clock数。
Fast to Slow Clock Domains:此时应该check most restrictive路径。对于setup check,Capture FF前的一个Fast clock。
对于hold check,default hold check edge后的第一个Fast clock。
此时应该使用-start表示以Fast clock为单位计数,setup后移clock数和hold前移的clock数。
STA分析(二) multi_cycle and false的更多相关文章
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...
- MapReduce深度分析(二)
MapReduce深度分析(二) 五.JobTracker分析 JobTracker是hadoop的重要的后台守护进程之一,主要的功能是管理任务调度.管理TaskTracker.监控作业执行.运行作业 ...
- Java线程池使用和分析(二) - execute()原理
相关文章目录: Java线程池使用和分析(一) Java线程池使用和分析(二) - execute()原理 execute()是 java.util.concurrent.Executor接口中唯一的 ...
- Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理
相关文章目录: Java线程池ThreadPoolExecutor使用和分析(一) Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理 Java线程池Thr ...
- 框架-springmvc源码分析(二)
框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...
- Spring5源码深度分析(二)之理解@Conditional,@Import注解
代码地址: 1.源码分析二主要分析的内容 1.使用@Condition多条件注册bean对象2.@Import注解快速注入第三方bean对象3.@EnableXXXX 开启原理4.基于ImportBe ...
- Vue源码分析(二) : Vue实例挂载
Vue源码分析(二) : Vue实例挂载 author: @TiffanysBear 实例挂载主要是 $mount 方法的实现,在 src/platforms/web/entry-runtime-wi ...
- 多线程之美8一 AbstractQueuedSynchronizer源码分析<二>
目录 AQS的源码分析 该篇主要分析AQS的ConditionObject,是AQS的内部类,实现等待通知机制. 1.条件队列 条件队列与AQS中的同步队列有所不同,结构图如下: 两者区别: 1.链表 ...
- SNMP报文抓取与分析(二)
SNMP报文抓取与分析(二) SNMP报文抓取与分析(二) 1.SNMP报文表示简介 基本编码规则BER 标识域Tag表示 长度域length表示 2.SNMP报文详细分析(以一个get-respon ...
随机推荐
- 服务器部署nginx报错 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 修改nginx配置参数后,使用ng ...
- Laya 图集动画
参考: 图集动画运用 一.准备素材 从爱给网找到几个素材 二.使用Laya的图集工具 菜单栏选择工具->图集打包工具,然后选择序列图所在的文件夹 生成了个.rec...说好的.atlas呢... ...
- 通过Adb 查看当前正在运行的Activity.
extends:http://www.cnblogs.com/tt_mc/p/4269833.html adb shell dumpsys activity activities | sed -En ...
- .NET中的三种Timer的区别和用法(收集)
最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器.所以正好研究研究.这3个定时器分别是: 1.实现按用户定义的时间间隔引发事件的计时器.此计时器最宜用于 Windows 窗体应用程 ...
- Python多线程应用示例
实现任务描述如下: 创建多个子线程,共同访问一个队列中的元素,并执行相应操作.要求要按照元素的执行要按照队列顺序,并且元素的执行不能有重复. 示例代码如下: #simple sample to sho ...
- Nginx通过header转发
假设添加自定义头 "my-header",当"my-header"等于test时,转发到192.168.1.113 请求如下 wget --header=&qu ...
- Centos 添加永久路由
今天在用虚拟机测试的时候,突然发现外网不通了,记得之前加过路由的,重启网络服务后就没了,仔细一想,应该是添加的路由是临时的,一重启就没了,于是乎就有了想把它永久写入的冲动,在看了一些文档之后,只要在/ ...
- FTP的两种主动模式和被动模式
参考:https://blog.csdn.net/xqhrs232/article/details/54633006 https://blog.csdn.net/yuanhangq220/articl ...
- TOP100summit:【分享实录】爆炸式增长的斗鱼架构平台的演进
本篇文章内容来自2016年TOP100summit斗鱼数据平台部总监吴瑞城的案例分享. 编辑:Cynthia 吴瑞诚:斗鱼数据平台部总监 曾先后就职于淘宝.一号店. 从0到1搭建公司大数据平台.平台规 ...
- 掌握新变革,解密新趋势|msup第29届MPD软件管理工作坊成功召开
由msup主办的第29届MPD软件管理工作坊于7月9日-7月10日在北京国家会议中心举行,25位一线讲师,近500名软件研发工作者共同探讨软件研发与科技发展趋势. 随着移动互联网的发展,软件开发行业的 ...