set_multicycle_path语法说明【转载】
(转载)
(其实多看手册就知道原因了)
Q:多周期路径中的检查保持时间时刻,为什么默认是在建立时间检查的前一个cycle?请大家谈谈自己的理解。 如:Set_multicycle_path -setup 7 -to [whatever] 那么hold time 应该在7-1这个cycle检查,为什么?
A:
多周期路径中检查保持时间,如果你对建立时间设置多周期,那么保持时间检查就默认在前一建立时间,比如:
楼主所设定:
set_multicycle_path -setup 7 -to [whatever]
若一个周期为10ns,则此时数据到达触发器的时间范围应该是:[60+Th,70-Ts]
而至于为什么,一方面就是primetime等的默认,另外就是在检查单周期时,通常也是要求如此的,即要求数据在[Th,10-Ts]时间范围内到达。(Th表示保持时间,Ts表示建立时间)
但倘若你同时设定建立时间和保持时间都为多周期路径约束,那么延时范围就可以变大,如:
set_multicycle_path -setup 7 -to [clk]
set_multicycle_path -hold 6 -to [get_pins C_reg /D]
那么此时的保持时间检查就在Th时,而不是在60+Th时,而此时的arrival time的范围就变大了
是:[Th,70-Ts]
所以一般采用后者设定,这样多周期路径部分电路的优化范围就变大了。
重申一点:采用
set_multicycle_path -setup 7 -to [clk]
set_multicycle_path -hold 6 -to [get_pins C_reg/D]
这样多周期路径部分电路的优化范围确实变大了,但是会有亚稳态的潜在危险,所以要小心!
而只用:
set_multicycle_path -setup 7 -to [clk]
你又必须保证path_delay足够大,不会产生hold-time violation,DC几乎不可能做到这一点。
加register-enabling logic解决亚稳态
首先:
无论是单周期还是多周期,hold检查都默认为setup的前一个时钟。
你写了set_multicycle_path -setup 7 -to [clk]之后,dc何pt默认set_multicycle_path -hold 0 -to [get_pins C_reg/D],如果你不写set_multicycle_path -hold 6 -to [get_pins C_reg/D]
其他的Harva 说得很详细了。
其次:
如richardhuang1 所说,加使能,在该采的时钟周期采数据。
set_multicycle_path and hold checks
-----------------------------------
Question:
I have a path that is set as multicycle path for the setup check. For some
reason, PrimeTime seems to be treating it as a multicycle path for hold time
checking as well. I'm using:
set_multicycle_path -setup 7 -to [whatever]
Why are the hold time checks multicycle?
Answer:
By default, if you specify 'set_multicycle_path -setup X', PrimeTime and
Design Compiler assume the datapath could change during any clock before
clock edge number X. To deal with this situation, PrimeTime and Design
Compiler implicitly add 'set_multicycle_path -hold 0 -to [whatever]'. This
positions the hold check one clock cycle before the setup check, effectively
constraining the path delay to be between X-1 and X clock cycles, or in
equation form:
X-1 cycles + T_hold < path delay (min)
path delay (max) < X cycles - T_setup
So by default the tools assume you want the path buffered up so that the
minimum change is > X-1 cycles.
This may not be the desired behavior. You can move the hold check back
towards the start of the multicycle period by specifying:
set_multicycle_path -hold X-1 -to [whatever]
In the above example, add
set_multicycle_path -hold 6 -to [whatever]
to the constraints and the hold check should occur on the desired edge. Note
that moving this check back requires the designer to handle possible
metastability. If the endpoint is a multi-bit signal, then you may need
to generate register-enabling logic to avoid clocking data before all of
it is valid.
set_multicycle_path语法说明【转载】的更多相关文章
- Linux记录-AWK语法(转载)
1.原理 awk,一个行文本处理工具,逐行处理文件中的数据 语法:awk 'pattern + {action}' 说明:(1)单引号''是为了和shell命令区分开:(2)大括号{}表示一个命令分组 ...
- sql基础语法大全 转载过来的,出处忘了!
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- Django框架之模板语法【转载】
Django框架之模板语法 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django ...
- wireshark过滤语法总结 (转载)
做应用识别这一块经常要对应用产生的数据流量进行分析. 抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后 ...
- Selenium2+python自动化9-CSS定位语法【转载】
前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...
- linux下sh语法(转载)
介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序. 在这个例子中我们使用/bin/sh来执行程序. 当编写 ...
- Markdown 语法 (转载)
Markdown 语法整理大集合2017 1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 ####### h7 // ...
- ELK:kibana使用的lucene查询语法【转载】
kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...
- SQL Server编程(04)基本语法【转载】
一.定义变量 --简单赋值 declare @a int set @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @ ...
随机推荐
- 微信小程序开发(八)获取手机ip地址
// succ.wxml <view>手机IP:{{motto.query}}</view> // succ.js var app = getApp() Page({ data ...
- JSON 对象和字符串
JSON 对象和字符串 粘贴自:https://www.cnblogs.com/cstao110/p/3762056.html Q:什么是"JSON字符串",什么是"JS ...
- new Function()语法
函数的语法: let func = new Function(...args, body); 历史原因,参数也可以以逗号分隔的列表的形式给出,这三个意思相同: new Function('a', 'b ...
- Girls Like You--Maroon 5
Girls Like You Spent 24 hours, I need more hours with you (24小时过去 还想和你 相处更久) You spent the weekend g ...
- webpack Uncaught ReferenceError: Swiper is not defined
一.报错原因:Swiper的JS文件没有加载成功,或者说swiper丢失了依赖(正常操作是:加载后再初始化Swiper) 二.解决方法:在初始化 Swiper 的js文件中导入 Swiper impo ...
- NMI是什么
NMI是什么 2016/02/28 vmunix NMI(non-maskable interrupt),就是不可屏蔽的中断.根据Intel的Software Developer手册Volume 3, ...
- IO流大文件拷贝
String resourcesPath="f:/a.grd"; String targetPath=" ...
- “景驰科技杯”2018年华南理工大学程序设计竞赛 B. 一级棒!(并查集)
题目链接:https://www.nowcoder.com/acm/contest/94/B 题意:在一棵有 n 个节点的树上,有两种操作,一个是把 u 到 v 的路径走一遍,另一个是查询 u 到 f ...
- Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) A. CME
链接: https://codeforces.com/contest/1241/problem/A 题意: Let's denote correct match equation (we will d ...
- SpringMVC 请求调用过程
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个Han ...