0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计中时序分析的概念分析

FPGA研究院 来源:FPGA之家 作者:FPGA之家 2022-11-15 09:35 次阅读

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

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

时钟抖动 (clock jitter)

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

常见的抖动参数有3种:

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

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

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

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

时钟偏斜 (clock skew)

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

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

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

占空比失真DCD (Duty Cycle Distortion)

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

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

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

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

模块的扇出是指模块的直属下层模块的个数。一般认为,设计得好的系统平均扇出是3或4。一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。扇出过大意味着管理模块过于复杂,需要控制和协调过多的下级。解决的办法是适当增加中间层次。一个模块的扇入是指有多少个上级模块调用它。

扇人越大,表示该模块被更多的上级模块共享。这当然是我们所希望的。但是不能为了获得高扇人而不惜代价,例如把彼此无关的功能凑在一起构成一个模块,虽然扇人数高了,但这样的模块内聚程度必然低,这是我们应避免的。设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇人。其结构图像清真寺的塔,上面尖,中间宽,下面小。

时序分析起点和终点

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

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

数据输出延时 (Tco)

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

建立时间 (setup time)

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

保持时间 (hold time)

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

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

数据到达时间 (Data Arrival Time)

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

数据到达时间的计算公式:

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

时钟到达时间 (Clock Arrival Time)

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

时钟到达时间的计算公式:

Clock Arrival Time = Lacth edge + Tclk2

建立裕量 (Setup Slack)

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

建立裕量的计算公式:

Setup slack = Data Required Time - Data Arrival Time

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

最大时钟频率

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

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

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

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

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

时序分析

分析上图,数据传播的路径从上一级触发器到下一级触发器建立经过的数据时延总和为: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限制了数据传输速率。

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

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603123
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120290

原文标题:货 | FPGA开发设计必经之路:时序分析

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TPS65950实时时钟时序补偿分析

    电子发烧友网站提供《TPS65950实时时钟时序补偿分析.pdf》资料免费下载
    发表于 10-29 10:01 0次下载
    TPS65950实时时钟<b class='flag-5'>时序</b>补偿<b class='flag-5'>分析</b>

    使用IBIS模型进行时序分析

    电子发烧友网站提供《使用IBIS模型进行时序分析.pdf》资料免费下载
    发表于 10-21 10:00 0次下载
    使用IBIS模型进行<b class='flag-5'>时序</b><b class='flag-5'>分析</b>

    超高速数据采集系统的时序设计与信号完整性分析

    电子发烧友网站提供《超高速数据采集系统的时序设计与信号完整性分析.pdf》资料免费下载
    发表于 09-20 11:34 0次下载

    时序逻辑电路故障分析

    时序逻辑电路的主要故障分析是一个复杂而重要的课题,它涉及电路的稳定性、可靠性以及整体性能。以下是对时序逻辑电路主要故障的全面分析,旨在帮助理解和解决这些故障。
    的头像 发表于 08-29 11:13 835次阅读

    时序逻辑电路的基本概念、组成、分类及设计方法

    时序逻辑电路是数字电路的一种重要类型,它不仅在计算机、通信、控制等领域有着广泛的应用,而且对于理解和设计现代电子系统具有重要意义。 1. 时序逻辑电路的基本概念
    的头像 发表于 08-28 11:45 1390次阅读

    时序逻辑电路的功能表示方法有哪些

    复杂逻辑功能的关键组成部分。它们能够存储信息,并根据输入信号和当前状态产生输出。时序逻辑电路的设计和分析对于理解和实现数字系统至关重要。 2. 时序逻辑电路的基本概念 2.1
    的头像 发表于 08-28 11:41 614次阅读

    FPGA电源时序控制

    电子发烧友网站提供《FPGA电源时序控制.pdf》资料免费下载
    发表于 08-26 09:25 0次下载
    <b class='flag-5'>FPGA</b>电源<b class='flag-5'>时序</b>控制

    深度解析FPGA时序约束

    建立时间和保持时间是FPGA时序约束两个最基本的概念,同样在芯片电路时序分析
    的头像 发表于 08-06 11:40 675次阅读
    深度解析<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>时序</b>约束

    机器学习在数据分析的应用

    随着大数据时代的到来,数据量的爆炸性增长对数据分析提出了更高的要求。机器学习作为一种强大的工具,通过训练模型从数据中学习规律,为企业和组织提供了更高效、更准确的数据分析能力。本文将深入探讨机器学习在数据分析
    的头像 发表于 07-02 11:22 616次阅读

    FPGA 高级设计:时序分析和收敛

    结果当然是要求系统时序满足设计者提出的要求。 下面举一个最简单的例子来说明时序分析的基本概念。 假设信号需要从输入到输出在FPGA 内部经
    发表于 06-17 17:07

    逻辑分析仪的常见故障及原因

    逻辑分析仪是电子测试领域中的一种重要仪器,主要用于分析数字系统的逻辑关系。它属于数据域测试仪器的一种总线分析仪,能够以总线(多线)概念为基
    的头像 发表于 05-10 16:06 1289次阅读

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及异常路径为
    发表于 05-06 15:51

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及异常路径为
    发表于 04-12 17:39

    fpga时序仿真和功能仿真的区别

    FPGA时序仿真和功能仿真在芯片设计和验证过程各自扮演着不可或缺的角色,它们之间存在明显的区别。
    的头像 发表于 03-15 15:28 2233次阅读

    Vivado时序问题分析

    有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。
    的头像 发表于 01-05 10:18 2139次阅读