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

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

3天内不再提示

FPGA案例之时序路径与时序模型解析

454398 来源:科学计算technomania 作者:猫叔 2020-11-17 16:41 次阅读

时序路径

典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。


对于所有的时序路径,我们都要明确其起点和终点,这4类时序路径的起点和终点分别如下表。


这4类路径中,我们最为关心是②的同步时序路径,也就是FPGA内部的时序逻辑。

时序模型

典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径、数据路径和目的时钟路径,也可以表示为触发器+组合逻辑+触发器的模型。


该时序模型的要求为(公式1)

Tclk ≥ Tco + Tlogic + Trouting + Tsetup - Tskew

其中,Tco为发端寄存器时钟到输出时间;Tlogic为组合逻辑延迟;Trouting为两级寄存器之间的布线延迟;Tsetup为收端寄存器建立时间;Tskew为两级寄存器的时钟歪斜,其值等于时钟同边沿到达两个寄存器时钟端口的时间差;Tclk为系统所能达到的最小时钟周期。

这里我们多说一下这个Tskew,skew分为两种,positive skew和negative skew,其中positive skew见下图,这相当于增加了后一级寄存器的触发时间。


但对于negative skew,则相当于减少了后一级寄存器的触发时间,如下图所示。


当系统稳定后,都会是positive skew的状态,但即便是positive skew,综合工具在计算时序时,也不会把多出来的Tskew算进去。

用下面这个图来表示时序关系就更加容易理解了。为什么要减去Tskew,下面这个图也更加直观。


发送端寄存器产生的数据,数据经过Tco、Tlogic、Trouting后到达接收端,同时还要给接收端留出Tsetup的时间。而时钟延迟了Tskew的时间,因此有:(公式2)

Tdata/_path + Tsetup < = Tskew + Tclk

对于同步设计Tskew可忽略(认为其值为0),因为FPGA中的时钟树会尽量保证到每个寄存器的延迟相同。

公式中提到了建立时间,那保持时间在什么地方体现呢?

保持时间比较难理解,它的意思是reg1的输出不能太快到达reg2,这是为了防止采到的新数据太快而冲掉了原来的数据。保持时间约束的是同一个时钟边沿,而不是对下一个时钟边沿的约束。


reg2在边沿2时刻刚刚捕获reg1在边沿1时刻发出的数据,若reg1在边沿2时刻发出的数据过快到达reg2,则会冲掉前面的数据。因此保持时间约束的是同一个边沿。


在时钟沿到达之后,数据要保持Thold的时间,因此,要满足:(公式3)

Tdata/_path = Tco + Tlogic + Trouting ≥ Tskew + Thold

这两个公式是FPGA的面试和笔试中经常问到的问题,因为这种问题能反映出应聘者对时序的理解。

在公式1中,Tco跟Tsu一样,也取决于芯片工艺,因此,一旦芯片型号选定就只能通过Tlogic和Trouting来改善Tclk。其中,Tlogic和代码风格有很大关系,Trouting和布局布线的策略有很大关系。

编辑:hfy


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

    关注

    31

    文章

    5304

    浏览量

    119889
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61019
  • 时序路径
    +关注

    关注

    0

    文章

    12

    浏览量

    1393
收藏 人收藏

    评论

    相关推荐

    使用IBIS模型进行时序分析

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

    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 540次阅读
    深度<b class='flag-5'>解析</b><b class='flag-5'>FPGA</b>中的<b class='flag-5'>时序</b>约束

    电源时序器的原理及使用方法是什么

    电源时序器是一种用于控制多个电源设备按照一定顺序开启或关闭的电子设备。它广泛应用于音响、舞台灯光、电视广播、工业自动化等领域。本文将介绍电源时序器的原理及使用方法。 一、电源时序器的原理 电源
    的头像 发表于 07-08 14:16 1930次阅读

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

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

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

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

    FPGA工程的时序约束实践案例

    详细的原时钟时序、数据路径时序、目标时钟时序的各延迟数据如下图所示。值得注意的是数据路径信息,其中包括Tco延迟和布线延迟,各级累加之后得到
    发表于 04-29 10:39 645次阅读
    <b class='flag-5'>FPGA</b>工程的<b class='flag-5'>时序</b>约束实践案例

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

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

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

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

    时序电路的分类 时序电路的基本单元电路有哪些

    时序电路是一种能够按照特定的顺序进行操作的电路。它以时钟信号为基准,根据输入信号的状态和过去的状态来确定输出信号的状态。时序电路广泛应用于计算机、通信系统、数字信号处理等领域。根据不同的分类标准
    的头像 发表于 02-06 11:25 2301次阅读

    Vivado时序问题分析

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

    硬件电路设计之时序电路设计

    上电时序(Power-up Sequeence)是指各电源轨上电的先后关系。 与之对应的是下电时序,但是在电路设计过程中,一般不会去考虑下电时序(特殊的场景除外)。今天,我们主要了解一下上电
    的头像 发表于 12-11 18:17 2468次阅读
    硬件电路设计<b class='flag-5'>之时序</b>电路设计

    电源时序规格:电源导通时的时序工作

    电源时序规格:电源导通时的时序工作
    的头像 发表于 12-08 18:21 770次阅读
    电源<b class='flag-5'>时序</b>规格:电源导通时的<b class='flag-5'>时序</b>工作

    基于FPGA时序分析设计方案

    时钟的时序特性主要分为抖动(Jitter)、偏移(Skew)、占空比失真(Duty Cycle Distortion)3点。对于低速设计,基本不用考虑这些特征;对于高速设计,由于时钟本身的原因造成的时序问题很普遍,因此必须关注。
    发表于 11-22 09:29 655次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>时序</b>分析设计方案

    记录一次时序收敛的过程

    在之前的文章里面介绍了Canny算法的原理和基于Python的参考模型,之后呢在FPGA上完成了Canny算法的实现,可是遇到了时序不收敛的问题,记录一下。
    的头像 发表于 11-18 16:38 924次阅读
    记录一次<b class='flag-5'>时序</b>收敛的过程