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 ...
随机推荐
- spring-data-redis的事务操作深度解析--原来客户端库还可以攒够了事务命令再发?
一.官方文档 简单介绍下redis的几个事务命令: redis事务四大指令: MULTI.EXEC.DISCARD.WATCH. 这四个指令构成了redis事务处理的基础. 1.MULTI用来组装一个 ...
- spring boot 单元测试,如何使用profile
一.问题概述 spring boot项目.单元测试的时候,我发现,总是会使用application.properties的内容,而该文件里,一般是我的开发时候的配置. 比如上图中,dev是开发配置,p ...
- 学习生活必须知道的网站或者App
转载自:https://www.douban.com/group/topic/89798480/ 学习方面: 1.网易公开课(http://v.163.com/special/test/alltest ...
- Web Service Client使用Microsoft WSE 2.0
我安装了WSE 2.0 SP3,Setup Type选择Runtime.如果想要让Visual Studio 2005以上版本集成WSE需稍费周折,默认集成Visual Studio 2005. 1. ...
- 我的node+express小例子
启动index.js: var express = require("express"); var path = require("path"); var op ...
- yii---定义全局函数
YII它不像Thinkphp等框架一样,已经有全局函数,YII要使用全局函数需要自己去定义,然后在入口文件中进行引入: 例如:我们看 yii 的入口文件: 看到这里,我们看到有个 autoload.p ...
- java 中的继承
继承的概念 继承就是子类继承父类的特征和行为,使得子类具有父类得属性和方法. 继承得关键字:extends 语法格式:<modifier> class <name> [exte ...
- hadoop2.x编译安装
Build instructions for Hadoop (Hadoop 编译安装,参考hadoop源码包中BUILDING.txt文档) ----------------------------- ...
- MYSQL 命令行显示乱码 解决方案
中文乱码是因为编码集不支持,所以要改变编码 先查看下设置的编码 使用如下命令 show variables like 'character%'; 在 mysql.conf (Ubuntu mysql5 ...
- CF1044B Intersecting Subtrees 构造+树论
正解:构造 解题报告: 传送门 又是一道交互题!爱了爱了! 这题真的,极妙!非常神仙!就非常非常思维题! 直接说解法了吼 说起来实在是简单鸭 就是先问一个对方的联通块中的一个点在我这儿的编号,记为x ...