现在知道时序约束主要是FPGA to ic,或者ic to FPGA。

上图可以表示FPGA to IC, IC to FPGA.

fpga2ic:
fpga2ext 是 fpga 致 ic 信号的走线延迟;
clk2fpga 是时钟信号致 fpga 的走线延迟;
clk2ext 是时钟信号致 fpga 的走线延迟;
Tsu/Th 外部器件的寄存器特性;
( Tsu 信号建立时间; Th 信号保持时间)
ic2fpga:
ext2fpga 是 ic 致 fpga 信号的走线延迟;
clk2fpga 是时钟信号致 fpga 的走线延迟;
clk2ext 是时钟信号致 fpga 的走线延迟;
Tco/minTco 外部器件的寄存器特性;
( Tco 信号输出时间; minTco 最小信号输出时间)

先来看看FPGA2IC:

上图是FPGA to ic 的信号连接。我写的sram,uart 和这个 还是有点区别因为只有数据线,没有clk。

clock skew 结果最终会直接作用在数据的延迟上。这是非常重要的一点。clock skew = < destination reg clock delay > - < source reg clock delay >

对 fpga2ic 的外模型而言, fpga_clk 是源寄存器时钟然而 ext_clk 是目的寄存器时钟。
data delay = 2ns
data delay' = <data delay> - <clock skew>
= 2ns - 2ns
= 0ns
data delay 数据延迟
data delay' 时钟差作用后的数据延迟 

上图表示:数据延迟2ns,即2ns数据才到达目的寄存器,即建立时间8ns,但是因为时钟偏移2ns作用到数据偏移后,相当于数据没有延迟。即建立时间10ns。

时钟偏移: 2 - 1 = 1ns, 数据延迟: 2ns, 当时钟偏移作用于数据延迟后的数据延迟次:data_delay - clock_skew = 2  - 1 = 1 ns。

以上是建立关系,下面分析保持关系:

如果使用“屁股”计算保持时间:data_arrival_time - data_aquaire_time = 2 -2 =0ns.

同理如果使用“屁股”计算: (1+2) - 2 = 1 ns。

如果将clock_skew作用于data_delay:data_delay - clock_skew = 3 - 2 = 1ns。

以上是FPGA to ic,接下来讨论ic to FPGA:时钟偏移作用于数据后建立时间和保持时间。

可以看出此时FPGA是接收数据,但是时钟偏移作用于数据延迟原理一样的。

这是保持时间图。clock_delay = 1ns;data_delay = 2ns;data_delay‘ = data_delay - clock_skew = 2 - 1 = 1ns。

以上讨论的是一位位宽的,那多位位宽的呢?

均匀与不均匀的延迟压力。

这样对保持时间和建立时间是有影响的。从上图可以看出 max_delay = 3ns, min_delay = 1ns。建立时间最危险的是D[2] = 7ns,,保持时间最危险的是D[0] = 1ns,可以知道max_delay影响建立时间,min_delay影响保持时间。如下图:

clock_skew作用于不均匀的延迟会是什么样的结果?原理还是一样的,就是将时钟偏移作用于数据而时钟保持不变。如下图:

TIMEQUEST学习之黑金动力(四)的更多相关文章

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

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

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

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

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

    不知不觉,学到的第四章.但是对于TQ的内部模型和外部模型的完整分析还是没有很好的理解.接着学习......... 我们也了解静态时序分析的第一步骤,亦即时钟方面的约束.此外,也稍微对 Report T ...

  4. 我的MYSQL学习心得(十四) 备份和恢复

    我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  5. 【Unity Shaders】学习笔记——SurfaceShader(四)用纹理改善漫反射

    [Unity Shaders]学习笔记——SurfaceShader(四)用纹理改善漫反射 转载请注明出处:http://www.cnblogs.com/-867259206/p/5603368.ht ...

  6. OpenGL学习之路(四)

    1 引子 上次读书笔记主要是学习了应用三维坐标变换矩阵对二维的图形进行变换,并附带介绍了GLSL语言的编译.链接相关的知识,之后介绍了GLSL中变量的修饰符,着重介绍了uniform修饰符,来向着色器 ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  9. Linux学习总结(十四)—— 查看CPU信息

    文章首发于[博客园-陈树义],点击跳转到原文Linux学习总结(十四)-- 查看CPU信息. Linux学习总结(十四)-- 查看CPU信息 商用服务器CPU最常用的是 Intel Xeon 系列,该 ...

随机推荐

  1. 两个init方法的区别

    容器创建了Servlet实例后,它将调用实例的init(ServletConfig)方法初始化Servlet.该方法的参数ServletConfig对象包含了在WEB应用程序的部署描述文件中指定的初始 ...

  2. jq的.off解绑事件

    .off( events [, selector ] [, handler ] ) 描述:移除一个事件处理函数 events 类型: String 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅 ...

  3. Jsoup教程,jsoup开发指南,jsoup中文使用手册,jsoup中文文档

    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据. jsou ...

  4. MPAndroidChart Wiki(译文)~Part 2

    7. 填充数据 这一章节将讲解给各式各样的图表设置数据的方法. 7.1 LineChart(线形图) 想给图表添加数据,使用如下方法: public void setData(ChartData da ...

  5. 胖AP基本配置:

      配置思路: 先创建wlan并广播ssid 进入射频子接口封装用户vlan 进入射频口关联wlan 注意:03 多个无线信号配置 注:在把AP改为 ap-mode fat后不能退出特权模式,不然需要 ...

  6. 关于Django的core first 、db first

    db first 根据数据库的表生成类 django : python manage.py inspectdb code first 根据类创建数据库表: django: python manage. ...

  7. 【剑指offer-25】合并两个单调递增的链表,C++实现(链表)

    原创博客,转载请注明出处! 1.题目 输入两个单调递增的链表,输出两个链表合成后的链表(单调不减). 2.思路(递归) # 鲁棒性: 如果链表1是空链表,则直接输出链表2. 如果链表2是空链表,则直接 ...

  8. save the transient instance before flushing错误解决办法 【待完善】

    近日在项目中遇到以下错误,着实郁闷了一把: org.hibernate.TransientObjectException: object references an unsaved transient ...

  9. BZOJ2653 middle 【主席树】【二分】*

    BZOJ2653 middle Description 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个长度为n的序列s.回答Q个这样 ...

  10. DependencyProperty.UnsetValue 的正确打开方式

    无论是 WPF,还是 UWP,只要你用了绑定或者标记扩展,一定会碰到一个神奇的值——DependencyProperty.UnsetValue.UnsetValue 是什么意思?为什么会出现这个值呢? ...