当前位置: 首页 > 编程日记 > 正文

TimeQuest学习之三------外部寄存器模型

clock skew = < destination reg clock delay > - < source reg clock delay >

为了使clock skew 的影响可以叠加到data delay上,给出如下三组公式(对于fpga2ic):

1.clock skew = <ext_clk delay> - < fpga_clk delay>

2.data delay' = <data delay> - <clock skew>

对于多位宽数据(以三位为例):在D[0]~D[2]三个位宽中,delay max 影响建立时间(建立关系), delay min 影响保持时间(保持关系)。对于多位数据而言,max对应着最大延迟的那一位数据,min对应着最小延迟的那一位数据。TimeQuest 在分析D[0..2]建立时间的时候,它只要注意“最危险的建立时间”即可,按逻辑而言,没有什么比“最危险”更危险。同样思路,TimeQuest 在分析D[0..2]保持时间的时候,它只要注意“最危险的保持时间”即可,因为没有什么比“最危险”更危险。

公式的推导都以fpga 为中心,因此fpga2ic 的公式又称output 公式,针对启动沿的 output 公式又名output max,换之针对下一个启动沿的output 公式又名output min。

output max= <fpga2ext delay max> - < clock skew > + ext_Tsu;

output min= <fpga2ext delay min> - < clock skew > - ext_Th;

ic2fpga 是ic 发送数据,fpga 读取数据的外部模型,不过不管位置怎么改变,大体上都是大同小异而已,

input max=<ext2fpga delay max> - < clock skew > + ext_Tco;

input min= <ext2fpga delay min> - < clock skew > + ext_Tco;

set_input_delay:

set output delay 与set input delay 好似一个“外包资料”,首先我们收集各种外部的延迟信息接着包裹在一个“外包资料”里,然后丢给TimeQuest 。TimeQuest 当然晓得某某delay max 是针对建立关系,又某某delay min 是针对保持关系。

set_output_delay:

TimeQuest 在分析内部的setup 与hold 时序时顺便参考一下“外包资料”的信息... 就这样TimeQuest 就可以独立分开外部延迟信息与内部延迟信息。

set_clock_latency:对于时钟信息而言,max对应着这一时钟的最大延迟,min对应着同一时钟的最小延迟,当时钟只有延迟而没有抖动时(即延迟始终如一),成both。

set_clock_latency 约束行为不是为某个时钟设置延迟,而是告诉TimeQuest 有关外边时钟信号的延迟信息。

set_clock_uncertainly:我们也知道SLDE 时间差是针对建立关系,而SEDL 时间差是针对保持关系。在此之前我们先将它们从input/output 公式中除掉,然后再将SLDE 与SEDL 的时间差透过set_clock_uncertainly 告诉TimeQuest 即可。

也即:使用set_clock_latency的作用是人为告诉TimeQuest时钟的一些信息,由TimeQuest计算clock skew,所以使用了set_clock_latency时,就应该将input/output max/min中的clock skew去掉。

在计算 set_input_delay 与set_output_delay 的时候,我们可以除掉clock skew,取而代之用set_clock_latency 约束命令告诉TimeQuest 关于外部模型中到底什么时钟信号,然而又有多少的延迟。其中时钟信号的产生源没有抖动,又或者说抖动的early 与late值(both)作为前提。此外,透过set_clock_latency 约束命令,在Data Arrival Path 与Data Required Path 的信息中clock network delay 也会显示对应的延迟。

set_clock_uncertainly 所谓的uncertainly 是指时钟信号抖动的信息,不过更正确一点说就是各种时钟抖动所产生的可能性时序里所隐藏的SLDE 时钟差与SEDL 时钟差,前者是针对建立关系,后者则是针对保持关系。

set_max_delay:

set_min_delay:

两个都是比较老的命令,set maximum delay 直接自定义建立关系,而set minimum delay 直接定义保持关系。

对于物理时钟来说,delay max(late)会造就最小的建立时间,换之delay min(early)会造就最小的保持时间。

create_generated_clock:是个笨蛋,只能一级衔接一级,不能跨级,否则出现错误:

Warning: No paths exist between clock target "ext1_clk" of clock "ext1_clk" and its clock source. Assumingzero source clock latency.

----------------------------------------------------------------------------------------------------------------------

eetop前辈说:setup violation
主要就是设法剪掉critical path的delay,要么pipeline,要么retiming,要么把combination往前后级挪一挪。
hold time violation
hold time violation是clock tree的skew引起的。主要的宗旨就是设法加前面一级combination的delay,比如加buffer什么的。这时候hold time不满足必须让前前面延迟大一些,并大到比clock period还大出至少一个hold time来。也可以适当把clock period缩小。不过hold time并不是自己能控制的,挺闹心的。
在综合时,综上所述,
setup violation是由于前级组合的延迟过大引起的,因此要用set_max_delay来限制,
hold violation是由于前级组合延迟国小引起的,因此不能让他太小,要用set_min_delay来限制。

转载于:https://www.cnblogs.com/fkl523/p/4005449.html

相关文章:

linux mysql远程链接_Linux下mysql实现远程连接

首先明白一点并不是mysql禁止远程连接&#xff0c;而是MYSQL的账号禁止远程连接。可能觉得我有点咬文嚼字了&#xff0c;不过我感觉分清这点还是很重要的。默认情况下&#xff0c;所有账号都是禁止远程连接的。在安装MYSQL的时候&#xff0c;在设置ROOT密码那里有一个CHECKBOX&…

H5 客户端设置title 滑动验证码

转载于:https://www.cnblogs.com/Airoocle/p/10420140.html

leetcode-2 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。 如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0…

spring-注解

spring框架提供xml文件的配置&#xff0c;也提供基于注解的方式实现配置任何的Bean实例&#xff0c;目前&#xff0c;struts2、hibernate和spring都相继支持基于注解的实现方式。spring要求程序员指定搜索哪些路径下的java类&#xff0c;spring会把合适的java类全部注册成sprin…

mysql raw_Oracle中的Raw类型解释

RAW&#xff0c;类似于CHAR&#xff0c;声明方式RAW(L)&#xff0c;L为长度&#xff0c;以字节为单位&#xff0c;作为数据库列最大2000&#xff0c;作为变量最大32767字节。 LONG RAW&#xff0c;类似于LORAW&#xff0c;类似于CHAR&#xff0c;声明方式RAW(L)&#xff0c;L为…

面试题6:用两个栈实现队列

思路&#xff1a;设置两个栈stack1和stack2&#xff0c;stack1实现入队列功能&#xff0c;stack2实现出队列功能。 &#xff08;1&#xff09;入队列&#xff1a;入栈stack1 &#xff08;2&#xff09;出队列&#xff1a;若stack2不空&#xff0c;则直接弹出stack2中的栈顶元素…

php从数据库读取中文显示问号??的解决办法

出错原因&#xff1a;1、数据库编码格式不对 2、PHP编码格式不对 3、浏览器编码格式不对 上面三者编码格式不统一&#xff0c;就会出现问题 数据库读取的时候在mysqli_connect()之后要设置连接字符编码mysqli_query($db, “set names ‘utf8”);这样才能保证在浏览器显示的结果…

leetcode-20 有效的括号匹配

给定一个只包括 ‘(’&#xff0c;’)’&#xff0c;’{’&#xff0c;’}’&#xff0c;’[’&#xff0c;’]’ 的字符串&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 注意空字符串可…

将ADS1.2的工程迁移到KEIL上-基于2440

新版的MDK支持2440相关芯片,但是很多人的工程都是基于ADS1.2开发,文字不好看,兼容性不好等等问题,而且电脑上装太多开发工具切换起来也麻烦,所以切换到MDK开发2440裸机程序应该是一个很好的选择 1. 新建MDK工程,芯片选择2440 不拷贝启动代码,因为我们用自己的启动代码 2.…

mysql占用资源最小的语句_MySQL一个语句查出各种整形占用字节数及最大最小值的实例...

直接上码&#xff1a;select bigint unsigned as type ,8 as bytes ,~0 as max_num,0 as min_num unionselect int unsigned,4,~0>>32,0 unionselect mediumint unsigned,3,~0>>40,0 unionselect smallint unsigned,2,~0>>48,0 unionselect tinyint unsigned…

使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .

命令管道是进程间通讯的一种常用方式&#xff0c;对于命令管道的介绍可以参考别的资料和书籍&#xff0c;这里推荐一个《VC下命名管道编程的原理及实现》这篇博文&#xff0c;写得比较清楚。但是都是介绍了阻塞模式的编程&#xff0c;我这里主要是介绍利用命令管道OVERLAPPED方…

读梦断代码有感(1)2019.2.05

今天阅读了建民老师推荐的我们软件工程方面的书籍被称为经典的《梦断代码》&#xff0c;虽然只是读了一小部分但还是感受颇深&#xff0c;在我以往的经验看来&#xff0c;我们软件工程专业的书籍应该都是枯燥乏味的代码啊啥的&#xff0c;所以开始我并没有对这本书有多大的期望…

leetcode-25 K个一组反转链表

给你一个链表&#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回翻转后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表&#xff1a;1->2-…

自己动手写简单的web应用服务器(4)—利用socket实现文件的下载

直接上源码&#xff1a; 服务器&#xff1a; 1 package download;2 3 import java.io.BufferedInputStream;4 import java.io.BufferedOutputStream;5 import java.io.File;6 import java.io.FileInputStream;7 import java.io.IOException;8 import java.io.OutputStream;9 im…

mysql 数据泵_Oracle 数据泵详解

一、 EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术&#xff0c;数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象 4)实现表空间搬移. 二、数据泵导出导入与传统一、EXPDP和I…

php 使用curl模拟登录discuz以及模拟发帖

<?php$discuz_url http://127.0.0.1/discuz/;//论坛地址$login_url $discuz_url .logging.php?actionlogin;//登录页地址 $post_fields array();//以下两项不需要修改$post_fields[loginfield] username;$post_fields[loginsubmit] true;//用户名和密码&#xff0c;必…

Java数组的初始化

1.动态初始化 数据类型 [] 变量名 new 数据类型 [数组大小]; //数组的动态初始化int [] arr new int [3]; 2.静态初始化 数据类型 [] 变量名 {元素1&#xff0c;元素2.....} //数组的静态初始化int [] arr2 {1,2,3}; 转载于:https://www.cnblogs.com/luguankun/p/1043128…

leetcode-135 分发糖果

题目描述&#xff1a; 老师想给孩子们分发糖果&#xff0c;有 N 个孩子站成了一条直线&#xff0c;老师会根据每个孩子的表现&#xff0c;预先给他们评分。 你需要按照以下要求&#xff0c;帮助老师给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻的孩子…

mysql主从数据库含义_(转)Mysql数据库主从心得整理

管理mysql主从有2年多了&#xff0c;管理过200多组mysql主从&#xff0c;几乎涉及到各个版本的主从&#xff0c;本博文属于总结性的&#xff0c;有一部分是摘自网络&#xff0c;大部分是根据自己管理的心得和经验所写&#xff0c;整理了一下&#xff0c;分享给各位同行&#xf…

Const 重载解析

1. Const重载应用场景 首先&#xff0c;对于函数值传递的情况&#xff0c;因为参数传递是通过复制实参创建一个临时变量传递进函数的&#xff0c;函数内只能改变临时变量&#xff0c;但无法改变实参。则这个时候无论加不加const对实参不会产生任何影响。但是在引用或指针传递函…

Ubuntu手机系统会成为第四大手机系统吗

啊蛋评论&#xff1a;先不说哪令人“卧槽”的配置&#xff01;就冲着这双系统。。也要体验一下&#xff01;&#xff08;lz不是给ubuntu写软文的。完全是个人评论。&#xff09; Ubuntu开发商Canonical发布了代号为Edge的智能手机&#xff0c;与其说是发布&#xff0c;倒不如…

codechef ANUCBC(背包)

题目链接: https://www.codechef.com/problems/ANUCBC 按模数进行背包 取模不要直接取&#xff0c;分开写&#xff0c;不然会T #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include<stack&…

leetcode-386 字典序排数

给定一个整数 n, 返回从 1 到 n 的字典顺序。 例如&#xff0c; 给定 n 13&#xff0c;返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。 请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。 根据题目描述&#xff0c;所谓字典顺序&#xff0c;即数…

零售连锁专卖信息化解决方案简介之二

连锁零售它提供了对商业连锁的整体管理&#xff0c;从商品采购开始到面向最终消费者各阶段都可以找到连锁零售的解决方案。连锁零售针对批发、连锁、零售业供应链中不同的业态提出了不同的解决方案。在信息管理系统的层次中隶属于经营决策型&#xff0c;可以帮助企业全面实现DS…

mysql客户端指令_mysql command line client(mysql命令行客户端)

mysql command line client(mysql命令行客户端)(2010-03-24 09:18:38)标签&#xff1a;文化分类&#xff1a;数据库1.输入密码&#xff1a;******2.ues mysql;使用Mysql3.show databases;显示数据库4.use register;使用数据库名为register5.show tables;显示register数据库中的…

StingBuffer

2019独角兽企业重金招聘Python工程师标准>>> 昨天面试问道一题&#xff1a;StringBuffer的底层实现原理是什么&#xff1f;当时想想应该是字符串数组吧&#xff0c;心里也不是有万分把握&#xff0c;面试结果只能等通知了&#xff08;最没戏的结果&#xff09;&…

[HAOI2015]按位或

Description 刚开始你有一个数字0&#xff0c;每一秒钟你会随机选择一个[0,2^n-1]的数字&#xff0c;与你手上的数字进行或&#xff08;c,c的|,pascal的or&#xff09;操作。选择数字i的概率是p[i]。保证0<p[i]<1&#xff0c;Σp[i]1问期望多少秒后&#xff0c;你手上的数…

leetcode-440 字典序的第K小数字

给定整数 n 和 k&#xff0c;找到 1 到 n 中字典序第 k 小的数字。 注意&#xff1a;1 ≤ k ≤ n ≤ 10^9。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]&#xff0c;所以第二小的数字是 10。 字典排序数的实现可以…

centos 编译 mysql_Centos编译mysql

下载源码wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gztar zxvf mysql-5.6.23.tar.gz安装必要的包sudo yum install cmake gcc gcc-c ncurses-devel perl-Data-Dumper cmake ncurses-devel bison autoconf automake zlib* fiex* libxml* libmcrypt* …

java.lang.NoSuchMethodException 错误

报错&#xff1a; Stacktraces java.lang.NoSuchMethodException: com.gssw.action.ProAction.update() java.lang.Class.getMethod(Class.java:1607)org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterce…