描述

时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念。

1. 时钟相关

时钟的时序特性主要分为抖动(Jitter)、偏移(Skew)、占空比失真(Duty Cycle Distortion)3点。对于低速设计,基本不用考虑这些特征;对于高速设计,由于时钟本身的原因造成的时序问题很普遍,因此必须关注。

1. 时钟抖动 (clock jitter)

理想的时钟信号应该是理想的方波,但是现实中的时钟的边沿变化不可能是瞬变的,它有个 从低到高 / 从高到低 的变化过程,如图1所示。

常见的抖动参数有3种:

周期抖动(Period Jitter):

周期抖动率(Period Jitter)测量时钟输出传输偏离其理想位置的最大偏离。Period Jitter代表周期差抖动的上下边界。

周期差抖动(cycle-to-cycle Jitter):

周期差抖动率(cycle-to-cycle jitter)是两个相邻周期的时间偏差。它总是小于周期抖动(period jitter)

长期抖动(Long-term Jitter):

长期抖动率如下图(Long-Term Jitter)定义为一个时钟沿相对于基准周期时钟沿经过一段时间的延时之后,与其理想位置的偏离。此测量可以捕获锁相环低频周期变化(缓慢的,频率很低的)。长期抖动对图形、串行连接通讯系统、打印机和任何光栅扫描操作非常重要。

时钟抖动的原因就是噪声。时钟抖动是永远存在的,当其大到可以和时钟周期相比拟的时候,会影响到设计,这样的抖动是不可接受的。

2. 时钟偏斜 (clock skew)

时钟信号要提供给整个电路的时序单元,所以时钟信号线非常长,并构成分布式的RC网路。它的延时与时钟线的长度、时序单元的负载电容、个数有关,所以产生所谓的时钟偏移。时钟偏移是指同一个时钟信号到达两个不同的寄存器之间的时间差值,根据差值可以分为正偏移和负偏移。

时钟偏移的计算公式: Tskew = Tclk2 - Tclk1

时钟偏移是永远存在的,当其大到一定程度会影响电路的时序。解决方法就是在FPGA的设计中让主要的时钟信号走全局时钟网络。该网络采用全铜工艺和树状结构,并设计了专用时钟缓冲和驱动网络,到所有的IO单元、CLB和块RAM的偏移非常小,可以忽略不计。

3. 占空比失真DCD (Duty Cycle Distortion)

即时钟不对称,时钟的脉冲宽度发生了变化。DCD会吞噬大量的时序裕量,造成数字信号的失真,使过零区间偏离理想的位置。DCD通常是由信号的上升沿和下降沿之间时序不同而造成的。

2. 信号扇入/扇出 (fan-in/fan-out)

The number of circuits that can be fed input signals from an output device. 扇出,输出可从输出设备输入信号的电路的数量。

扇出(fan-out)是定义单个逻辑门能够驱动的数字信号输入最大量的术语。大多数TTL逻辑门能够为10个其他数字门或驱动器提供信号。因而,一个典型的TTL逻辑门有10个扇出信号。

在一些数字系统中,必须有一个单一的TTL逻辑门来驱动10个以上的其他门或驱动器。这种情况下,被称为缓冲器(buf)的驱动器可以用在TTL逻辑门与它必须驱动的多重驱动器之间。这种类型的缓冲器有25至30个扇出信号。逻辑反向器(也被称为非门)在大多数数字电路中能够辅助这一功能。

模块的扇出是指模块的直属下层模块的个数。一般认为,设计得好的系统平均扇出是3或4。一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。扇出过大意味着管理模块过于复杂,需要控制和协调过多的下级。解决的办法是适当增加中间层次。一个模块的扇入是指有多少个上级模块调用它。扇人越大,表示该模块被更多的上级模块共享。这当然是我们所希望的。但是不能为了获得高扇人而不惜代价,例如把彼此无关的功能凑在一起构成一个模块,虽然扇人数高了,但这样的模块内聚程度必然低。这是我们应避免的。

设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇人。其结构图像清真寺的塔,上面尖,中间宽,下面小。

3. launch edge

时序分析起点(launch edge):第一级寄存器数据变化的时钟边沿,也是静态时序分析的起点。

4. latch edge

时序分析终点(latch edge):数据锁存的时钟边沿,也是静态时序分析的终点。

5. Clock-to-Output Delay

数据输出延时(Tco):这个时间指的是当时钟有效沿变化后,数据从输入端到输出端的最小时间间隔。

6. 寄存器建立/保持时间 Setup/Hold Time

建立时间(setup time)是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个T 就是建立时间Setup time。简而言之,时钟边沿触发前,要求数据必须存在一段时间,这就是器件需要的建立时间。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。

保持时间(hold time)是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。简而言之,时钟边沿触发后,数据也必须保持一段时间,以便能够稳定读取,这就是器件需要的保持时间。如果hold time 不够,数据同样不能被打入触发器。

如果不满足建立和保持时间的话,那么DFF(D type flip-flop/D类型触发器) 将不能正确地采样到数据,将会出现亚稳态(metastability )的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

7. Data Arrival Time

输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达寄存器时间(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata)

Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata

8. Clock Arrival Time

时钟从latch边沿到达锁存寄存器时钟输入端所消耗的时间为时钟到达时间。

Clock Arrival Time = Lacth edge + Tclk2

9. 建立裕量 Setup Slack

当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。

Setup slack = Data Required Time - Data Arrival Time

正的slack表示数据需求时间大于数据到达时间,满足时序(时序的余量),负的slack表示数据需求时间小于数据到达时间,不满足时序(时序的欠缺量)。

10. Recovery/Removal Time

Recovery time is the minimum length of time an asynchronous control signal, for example, and preset, must be stable before the next active clock edge. The recovery slack time calculation is similar to the clock setup slack time calculation, but it applies asynchronous control signals.

Removal time is the minimum length of time an asynchronous control signal must be stable after the active clock edge. The TimeQuest analyzer removal time slack calculation is similar to the clock hold slack calculation, but it applies asynchronous control signals.

recovery time specifies the time the inactive edge of the asynchronous signal has to arrive before the closing edge of the clock.

Removal time specifies the length of time the active phase of the asynchronous signal has to be held after the closing edge of the clock.

也就是说Recovery / Removal time类似于Setup / Hold Time,不过是用于异步信号,比如set,reset信号。他们检查异步型号的边沿,释放沿必须在时钟沿前面提前recovery time释放,或者在时钟沿后removal time之后释放。注意异步复位亚稳态问题!

11. 最大时钟频率

时钟最小周期:系统时钟能运行的最高频率。

1. 当数据需求时间大于数据到达时间时,时钟具有余量;

2. 当数据需求时间小于数据到达时间时,不满足时序要求,寄存器经历亚稳态或者不能正确获得数据;

3. 当数据需求时间等于数据到达时间时,这是最小时钟运行频率,刚好满足时序。

最小时钟周期为数据到达时间等于数据需求时间。

12. 时序分析

分析第9节的图,数据传播的路径从上一级触发器到下一级触发器建立经过的数据时延总和为:Tclk1 + Tco + Tdata + Tsetup-slack + Tsu

在两级寄存器之间,时钟间隔为:Tclk + Tclk2

根据建立时间要求(在下一个时钟上升沿到来的时候,数据必须稳定,且保持一定的时间Tsu)可以列一个不等式:数据时延 < 时钟间隔,即

Tclk1 + Tco + Tdata + Tsetup-slack + Tsu <= Tclk + Tclk2

同理,根据保持时间要求(时钟上升沿到来后,寄存器锁存数据的时候,数据要保持一定的稳定时间Th)可以列一个不等式:

Tco + Tdata <= Th

随着系统时钟 fclk 变大时,Tclk变小,则要求 Tco + Tdata 也变小,当 Tco + Tdata 不满足第一个不等式时,不满足建立时间要求;但是,Tco + Tdata 也不是越小越好,当其太小时,不满足第二个不等式时,触发器不能正常锁存数据,即不满足保持时间要求。从某种意义上说,Th限制了数据传输速率。

对于设计者来说最大的目的是提高时序的裕量,这样即使信号完整性上出现一点问题,或者外界环境发生一定的变化,系统仍然能正常工作,这就是一个设计优良的系统应该体现出的超强的稳定性。

打开APP精彩内容

点击阅读全文

delay 芯片时序output_时序分析中的一些基本概念相关推荐

  1. delay 芯片时序output_综合和静态时序分析

    1. 时钟为什么建模? 背景: 默认情况下,即使一个时钟要驱动很多寄存器,DC也不会在时钟连线上加clock buffer.Clock buffer 或时钟树,一般由后端工具完成. 为了准确的描述时钟 ...

  2. delay 芯片时序output_【第二章 STA概念 上】静态时序分析圣经翻译计划

    本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 本章节介绍CMOS技术的基础知识以及执行静态时序分析所涉及的术语. 2.1 ...

  3. delay 芯片时序output_set_input_delay/set_output_delay

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接: set_input_delay/set_output_delay_zyn13478 ...

  4. adc0804c语言程序,ADC0804芯片在模数转换电路中的应用研究

    [摘 要]本文论述了ADC0804芯片在模数转换电路中的软硬件设计方法.制作了ADC0804的数据采集电路,并将其挂载于单片机系统,通过驱动发光二极管点亮的方式验证了电路设计的正确性,并给出了电路图和 ...

  5. 时序分析中的关键术语

    前言 在时序分析的相关文章中,我们常常看到很多关键术语,例如Launch edge, Latch edge, TCQ等,且时而存在不同的文章表达方式不一样的情况,例如Latch edge 与 Capt ...

  6. STM32 之十 供电系统及内部参照电压(VREFINT)使用及改善ADC参考电压,内部参照电压的具体方法,只有在STM32F0x芯片的参考手册中才能找到,其他MCU的参考手册都是很简单的说明

    STM32 之十 供电系统及内部参照电压(VREFINT)使用及改善ADC参考电压 ZCShouEXP 2018-12-21 10:50:33  16404  收藏 32 展开 问题   今天在使用 ...

  7. 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现

    Chisel进阶之通信状态机(三)--Ready-Valid接口:定义.时序和Chisel中的实现 上一篇文章以Popcount为例,介绍了带数据通路的有限状态机FSMD的写法与实现,对于后面写复杂的 ...

  8. Prometheus时序数据库-磁盘中的存储结构

    Prometheus时序数据库-磁盘中的存储结构 前言 之前的文章里,笔者详细描述了监控数据在Prometheus内存中的结构.而其在磁盘中的存储结构,也是非常有意思的,关于这部分内容,将在本篇文章进 ...

  9. mp3芯片/模块在儿童玩具中的运用

    随着MP3高品质语音模块的出现,各种放音.录音玩具开始追求高品质声音的出现,唯创知音 也顺带推出符合市场潮流的WT2003H系列语音模块,随着逢年过节的临近和现在计划生育导致的儿童数量的减少,人们对每 ...

最新文章

  1. nbu oracle 冷备_NBU备份系统应用操作手册..doc
  2. 跟我一起写 Makefile(整理版)
  3. 2018修复激活闪退_DNA损伤反应与DNA的修复(三)
  4. hdu3313 最大流找关键点,或者最短路找关键点.
  5. 关于ios app发布的中间证书的要求--解决WWDR证书过期方案
  6. 文件服务器的迁移(包括权限)
  7. 判断resultset是否遍历到最后一条记录_干货:一条SQL语句执行得很慢的原因
  8. 程序员十大心愿,程序员:你这么了解我的心声的嘛!
  9. Mongo DB 简单搭建和部署
  10. jieba分词提取小说人名
  11. URL生成方式性能优化结果
  12. 贝叶斯判别分析的基本步骤_贝叶斯分析助你成为优秀的调参侠(1)
  13. 开花(在b数组中二分查找a数组元素)
  14. 七种场景下的软件作业量估计
  15. python列表排序sort_python列表排序方法reverse、sort、sorted
  16. LintCode—链表倒数第n个节点(166)
  17. 用于热水器行业气密性检测的五款快速密封接头
  18. UESTC-1633 去年春恨却来时,落花人独立,微雨燕双飞(取模最短路)
  19. 基于socket(TCP)和opencv的实时视频传输
  20. Logstash系列: mutate拦截器的使用

热门文章

  1. selenium 模拟 填问卷 问卷星
  2. TH2830 TH2831 TH2832 TH283X系列紧凑型LCR数字电桥技术参数
  3. 【转载】北大acmnbsp;题目分类
  4. Spring mvc基于注解自定义servlet
  5. MacOS 的任务管理器
  6. 你是怎么管理时间的?
  7. 计算机病毒是一种特殊的计算机程序段,计算机病毒是一种特殊的计算机程序。(  )——青夏教育精英家教网——...
  8. 渗透攻击exp共享站点(建议收藏❤️)
  9. 重新发现科技与人文的互动
  10. IITP:截止2017年韩国人工智能专利排名全球第三