(转载)

(其实多看手册就知道原因了)

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 所说,加使能,在该采的时钟周期采数据。

Harva 和handsome说得很精彩,我帖一个synopsys的解释,大家共同学习.
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语法说明【转载】的更多相关文章

  1. Linux记录-AWK语法(转载)

    1.原理 awk,一个行文本处理工具,逐行处理文件中的数据 语法:awk 'pattern + {action}' 说明:(1)单引号''是为了和shell命令区分开:(2)大括号{}表示一个命令分组 ...

  2. sql基础语法大全 转载过来的,出处忘了!

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  3. Django框架之模板语法【转载】

    Django框架之模板语法 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django ...

  4. wireshark过滤语法总结 (转载)

    做应用识别这一块经常要对应用产生的数据流量进行分析. 抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后 ...

  5. Selenium2+python自动化9-CSS定位语法【转载】

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  6. linux下sh语法(转载)

    介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序. 在这个例子中我们使用/bin/sh来执行程序. 当编写 ...

  7. Markdown 语法 (转载)

    Markdown 语法整理大集合2017   1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 ####### h7 // ...

  8. ELK:kibana使用的lucene查询语法【转载】

    kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...

  9. SQL Server编程(04)基本语法【转载】

    一.定义变量 --简单赋值 declare @a int set @a=5 print @a   --使用select语句赋值 declare @user1 nvarchar(50) select @ ...

随机推荐

  1. 底部版权时间自动变化,网页在线qq咨询

    <p><small>© 众筹网<script>document.write(new Date().getFullYear());</script> &l ...

  2. 关于Linux连接工具mobaxterm显示中文乱码问题

    本人用的是MobaXterm Personal 9.1版本.近期发现连接上服务器,查看日志时,发现中文乱码,无法正常显示.甚是苦恼.百度搜索该工具显示乱码问题,无一人解决.提倡更换连接工具.无意间发现 ...

  3. 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)

    P2746 [USACO5.3]校园网Network of Schools https://www.luogu.org/problem/P2746 题目描述 一些学校连入一个电脑网络.那些学校已订立了 ...

  4. http方式获取远程文件内容

    public class HttpServer { /// <summary> /// 读取远程文件的内容 /// </summary> /// <param name= ...

  5. LVS Nginx和HAproxy的区别,怎么选择最好

    LVS Nginx和HAproxy有什么区别呢? LVS:Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. Nginx:Nginx是一款轻量级的w ...

  6. modbus-RTU-crc16——c语言

    为确保消息数据的完整性,除了验证消息CRC之外,建议实现检查串行端口(UART)成帧错误的代码.如果接收消息中的CRC与接收设备计算的CRC不匹配,则应忽略该消息.下面的C语言代码片段显示了如何使用逐 ...

  7. 云主机用samba服务实现和windows共享文件

    最近刚刚入坑了百度云的云主机BCC,准备在云主机上实现samba服务,映射到本机来当硬盘使用,可是一直怎么试都不成功,后来咨询客服之后才知道samba默认使用的端口445端口被运营商封禁了,只好更改端 ...

  8. 多个idea项目使用同一个tomcat

    配置好tomcat后,每个项目使用不同的虚拟路径.并且把tomcat端口改为不一样的就可以了.

  9. 洛谷 P1706 全排列

    可能是最简单的题了……讲真搜索hhh 洛谷 P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: ...

  10. TextRCNN 文本分类 阅读笔记

    TextRCNN 文本分类 阅读笔记 论文:recurrent convolutional neural networks for text classification 代码(tensorflow) ...