不知不觉,学到的第四章。但是对于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学习之黑金动力(三)的更多相关文章

  1. timequest学习之黑金动力(一)

    黑金动力的资料还是非常有价值的.通过建模篇,对于给定的时序关系,我总能实现.但是,这总是很初级的能力.也只是为后面的建模服务.所以,现阶段我的能力还是非常有限.我相信我一定会成为牛人,能够独挡一面.借 ...

  2. TIMEQUEST学习之黑金动力(二)

    之一就是第一章,这是第二章.在开始之前,要对第一章内容说说我理解到的: (1)时序分析是节点对节点的分析.(2)这个latch edge是锁存上一个lunch edge输出的(满足建立关系的)值.(3 ...

  3. TIMEQUEST学习之黑金动力(四)

    现在知道时序约束主要是FPGA to ic,或者ic to FPGA. 上图可以表示FPGA to IC, IC to FPGA. fpga2ic:fpga2ext 是 fpga 致 ic 信号的走线 ...

  4. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  5. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  6. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

  7. WCF学习之旅—第三个示例之五(三十一)

       上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九) WCF学习 ...

  8. css学习归纳总结(三) 转

    原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...

  9. 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert

    [Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...

随机推荐

  1. python下的复杂网络编程包networkx的使用(摘抄)

    原文:http://blog.sciencenet.cn/home.php?mod=space&uid=404069&do=blog&classid=141080&vi ...

  2. 【Demo】HTML5拖放--简单demo

    用HTML5拖放功能编写一个简单的拖放Demo 单次拖放demo 效果: ------拖放前------- ------拖放后-------  实现代码: <!DOCTYPE html> ...

  3. 阿里云上如何利用war包安装jenkins

    一. 前提条件:已安装jdk和tomcat 如何安装,请参考<如何在阿里云上部署war包到tomcat服务器> 二. 下载war包 下载地址:http://mirrors.jenkins- ...

  4. eclipse配置tomcat运行项目访问不加项目名

  5. EL表达式 分割字符串 ,forEach定次循环

    后台取出来的是字符串  以 a,b,c,   的形式  前台要将字符串中的“,”去掉 ,并forEach重新拼接 list.labelsName不用加${} <c:set value=" ...

  6. ControllerDescriptor的认识

    ControllerDescriptor类主要包含了对ASP.NET MVC中的Control的元数据的解析,在MVC的Model绑定以及数据处理过程中经常会遇到ControllerDescripto ...

  7. docker 国内加速器配置

    配置镜像加速器 阿里云 登录到 阿里云获取到专属加速地址bqr1dr1n.mirror.aliyuncs.com 找到服务 deamon.js 所在目录C:\ProgramData\docker\co ...

  8. Android性能调优实例

    本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.Layout优化.数据库优化.算法优化.延迟执行等. 目前性能优化专题已完成以下部分: 性能优化总纲——性能问题及性能调优方 ...

  9. jgit - java实现git操作

    在做一个项目中需要用到远程仓库,本来想使用svn的,但是svn的java api网上的资料很少,而且与git相比,svn显得笨重且不方便,因此放弃了svn转而使用git.java git api - ...

  10. [Mvel]Mvel2.0使用指南一 基础

    MVEL在很大程度上受到Java语法的启发,作为一个表达式语言,也有一些根本的区别,旨在更高的效率,例如:直接支持集合.数组和字符串匹配等操作以及正则表达式. MVEL用于执行使用Java语法编写的表 ...