TIMEQUEST学习之黑金动力(三)
不知不觉,学到的第四章。但是对于TQ的内部模型和外部模型的完整分析还是没有很好的理解。接着学习。。。。。。。。。
我们也了解静态时序分析的第一步骤,亦即时钟方面的约束。此外,也稍微对 Report Timing 逐步深入了解,何为一举列出多有相关的时序报告等。
在此我们需要用到 set_multicycle_path 约束命令。
严格来说 set_multicycle_path 的约束行为是告诉 TimeQuest 更动某对节点的启动沿和锁存沿 ... 想必读者听不明白是吧?说傻瓜点就是,告诉 TimeQuest 某对节点很可能不是用 1 个时钟周期工作。
笔者不是有意捣乱,在此笔者只是想证明一个事情而已, Set Multicycle Path 的功是告诉 TimeQuest “某对节点用 N 个时钟工作”。不过比较特别的是,它不仅可以针对“所有节点”,同样它也可以针对“单对节点”。此外,笔者也想提醒一件事 ... Set Multicycle Path 充其量是告诉“某对节点用 N 个时钟工作”或者告诉 TimeQuest “某对节点的启动沿和锁存沿有所更动”。实际上该约束命令没有任何能力干涉硬模型的内容。好了!前面只是热身而已,接下来我们会慢慢解剖 Set Multicycle Path 这个命令。
set multicycle path 该约束命令实际上它会更改启动沿或者锁存沿的触发时候.,当我们用set multicycle path 告诉 TimeQuest 某对节点用 N 个时钟工作,可是充其量这也是TimeQuest 的妄想而已,因为实际的 HDL 行为或者硬模型没有任何改变。
笔者需要强调,在 TimeQuest 的妄想中 delay monster 用 5 个时钟工作,或者说 delay monster 有 5 个时钟的模块周期。不过 delay monster 的实际 HDL 行为,只用 2 个时钟工作,或者说实际的 delay monster 有 2 个时钟的模块周期。这种马头不对狗嘴的情形当然不被我们允许啦 ... 在此我们应该更动一下 delay_monster 的 hdl 内容才行.
Set False Path 要 TimeQuest 无视相关的节点分析。
事实上,编译器它不会聪明到可以自动优化延迟怪兽给时序带来的违规,因此我们需要约束相关的节点。用到的命令有 Set Multicycle path ,该功能宛如告诉 TimeQuest 某对节点用 N 个时钟工作,实际上是告诉 TimeQuest 某对节点的启动沿或者锁存沿的触发行为有所更改。虽然使用该约束命令可以使得 TimeQuest 在分析上足以解决问题,可是却导致 TimeQuest 的妄想和实际的 HDL 行为产生出入。所以要小心慎用。此外,Set False Path 是不可理喻的约束命令,它会要求 TimeQuest 无视相关的节点。使用 Set False Path 之前,最好确认自己是否有足够的理论自己的做法是对的。如果实验五的 delay monster 恰恰好仅用 2 个时钟工作,使用该命令反而会弄巧成拙。
derive_pll_clocks 是专门为 pll 打造的懒人版 create clock 约束命令。
总结:
(1)记住derive_pll_clocks是用来驱动所有的pll的时钟约束。
(2)学会使用set multcycle path和理解set multcycle path 不能改变实际硬件模型。
(3)set false path,就是为了使TQ无视相应的节点。
TIMEQUEST学习之黑金动力(三)的更多相关文章
- timequest学习之黑金动力(一)
黑金动力的资料还是非常有价值的.通过建模篇,对于给定的时序关系,我总能实现.但是,这总是很初级的能力.也只是为后面的建模服务.所以,现阶段我的能力还是非常有限.我相信我一定会成为牛人,能够独挡一面.借 ...
- TIMEQUEST学习之黑金动力(二)
之一就是第一章,这是第二章.在开始之前,要对第一章内容说说我理解到的: (1)时序分析是节点对节点的分析.(2)这个latch edge是锁存上一个lunch edge输出的(满足建立关系的)值.(3 ...
- TIMEQUEST学习之黑金动力(四)
现在知道时序约束主要是FPGA to ic,或者ic to FPGA. 上图可以表示FPGA to IC, IC to FPGA. fpga2ic:fpga2ext 是 fpga 致 ic 信号的走线 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- WCF学习之旅—第三个示例之二(二十八)
上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1) 使用NuGet下载最新版的Entity Fram ...
- WCF学习之旅—第三个示例之三(二十九)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...
- WCF学习之旅—第三个示例之五(三十一)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) WCF学习 ...
- css学习归纳总结(三) 转
原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...
- 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert
[Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...
随机推荐
- mysql中去除重复字段-distinct
1.注意事项 使用distinct命令时需要放在查询条件的开头,否则会报错.如果需要查询的项目很多但只针对某一个字段使用distinct的,则可以利用内容拼接的方式来实现. --基本查询 SELECT ...
- C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...
- ie7 动态改变select option时,宽度自动变短解决方法
<html> <head> <title>JQuery</title> <meta http-equiv="pragma" c ...
- Java.lang包的接口解读
Java.lang包中提供了八个接口: 1.Appendable 能够被追加 char 序列和值的对象.如果某个类的实例打算接收来自 Formatter的格式化输出,那么该类必须实现 Appendab ...
- [置顶]
Android 关于ToolBar分分钟玩死自己?
场景一: 今天早上十点高高兴兴的跟平时早上一样买一杯粥然后一边喝着一边去上班,步行了15分钟到了公司,然后打指纹开门,然后就愉快的写代码了,我擦,好想电脑没开机,我晕好像没带眼镜,发现最近记性不是很好 ...
- ng 双向数据绑定
1.方向1:model->View模型数据绑定到视图 绑定的方式:①双花括号 ②常见的ng指令(ngRepeat ngIf ngShow....) 效果:数据一旦绑定到视图上,随着数据的修改,视 ...
- PS基础教程[1]如何制作微信泡泡
PS是很多朋友都很喜欢额一款图像处理软件,我们可以使用PS制作很多的效果,本系列经验教程的起源就来源于知道中这位朋友问的微信泡泡如何使用,下面就来简单的分享一下. 微信泡泡制作方法 有很多的方法可以制 ...
- bzoj 1264 基因匹配
Written with StackEdit. Description 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的\(DNA\)序列由无数种碱基排列而成(地球上只有\(4\)种) ...
- 使用Metaspoit攻击MS08-067
kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 使用Metaspoit攻击MS08-067 MS08-067漏洞的全称为 ...
- Hadoop2.7.1安装与配置
Hadoop2.7.1集群环境的搭建 s204.s205是我的两台服务器hostname,可以用你对应的ip或者hostname代替 工具/原料 jdk.ssh免登录 方法/步骤 1 首先去A ...