FPGA时序分析与约束(1)——组合电路时序

这篇具有很好参考价值的文章主要介绍了FPGA时序分析与约束(1)——组合电路时序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在最前面:

        关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以从这篇文章开始,我们来正式进行FPGA时序分析与约束的学习。

        我们在设计FPGA的时候往往是进行多方面性能的权衡来实现设计的最优化,在可实现的情况下,我们一般会期望处理速率越快越好,但是与理论不同,在实际的硬件设计的时候,一个逻辑上正确的设计仍然会因为现实世界中的实现问题而失败!

一、组合电路的时序

1、组合电路的真实时延

        在讨论数字电路层面的时候,我们采用的是一种抽象化模型的方式,这里我们以一个反相器为例:

FPGA时序分析与约束(1)——组合电路时序,关于时序约束的那些事,fpga,fpga开发,时序分析,组合电路,毛刺

        上图就是一个反相器抽象模型的例子,可以看到,当输入信号A发生变化时,输出信号Y立即发生变化,没有任何时延,这是我们抽象化模型的理想情况。

        但是在真实的硬件电路中,输出会相对于输入有一个时间延迟(晶体管需要变化的时间),如下图:

FPGA时序分析与约束(1)——组合电路时序,关于时序约束的那些事,fpga,fpga开发,时序分析,组合电路,毛刺

        根据数据测定,一个真实的反相器的延迟情况如下:

FPGA时序分析与约束(1)——组合电路时序,关于时序约束的那些事,fpga,fpga开发,时序分析,组合电路,毛刺

        这样的一个电路延迟根本上来自于:

        (1)在一个电路中的电容和电阻

        (2)光速是有限的(在纳秒尺度上不是那么快,也就不能被认定为无穷大)

        任何影响这些数量的因素都可能改变延迟:

        (1)上升rising(即0 -> 1)与下降falling(即1 -> 0)的输入

        (2)不同的输入有不同的延迟

        (3)环境(如温度等)

        (4)电路老化问题

        我们从输入到输出都有一系列可能的延迟 。

2、从输入到输出Y的时延

        这里首先我们来设定两个基本概念:

Contamination delay (tcd) : 直到输出Y开始变化的时延
Propagation delay     (tpd) : 直到输出Y结束变化的时延
        对于一个组合电路来说,tcd作为输出开始变化的时延,其含义就是输入传播到输出的最短路径( Shortest Path),相应的,tpd就是输入传播到输出的最长路径( Longest Path)。而我们又把最长路径称之为关键路径( Critical Path)。
        我们举个例子来帮助大家进行理解(我们考虑不同门之间的时延是基本一致的):
FPGA时序分析与约束(1)——组合电路时序,关于时序约束的那些事,fpga,fpga开发,时序分析,组合电路,毛刺
        但是在我们实际设计的复杂电路中,显然是不可能这么容易就完成最短/最长路径的计算:
(1)一方面是并非所有的输入转换都会影响输出;
(2)另一方面我们可能从一个输入到另一个输出有多个不同的路径。
        在现实中我们的元器件也不是完全一样的,首先制造上就不可能保证完全的一致,然后又受限于多方面因素(如环境,元器件老化等)的影响,我们显然不可能要求每个元件参数都与其产品说明标准值一模一样。只能给定一个大致的标准范围。
        因此,对于设计者来说,应该假设“最坏情况”条件来完成自己的世界,然后运行许多统计模拟来平衡产量/性能。

3、组合逻辑时序总结

        真实的组合逻辑电路与我们抽象的数字电路是不一样的,真实的电路在输出相对于输入会有一定的延迟,我们规定了:

  • Contamination delay (tcd) : 直到输出Y开始变化的时延,最小的可能时延
  • Propagation delay     (tpd) : 直到输出Y结束变化的时延,最大的可能时延
        对于设计者来说,应该假设“最坏情况”条件,并运行许多统计模拟来平衡产量/性能。

二、输出毛刺(Output Glitches)

        在考虑到输出相对于输入存在时延的情况,那我们就不得不注意毛刺的发生,可以说毛刺对于组合电路的设计来说是一个严峻的挑战。

        毛刺Glitches : 一个输入的改变可能会引起多个输出的改变
FPGA时序分析与约束(1)——组合电路时序,关于时序约束的那些事,fpga,fpga开发,时序分析,组合电路,毛刺

        我们以上图为例, B处数据从1变到0,n2首先发生改变,这个结果通过最快路径先被传递到了输出Y,导致输出变化,等到n1变化的结果通过慢路径被传递到输出Y,结果再次变化,这里就形成了一个毛刺,最终输出Y会呈现一个短暂的0状态。

        我们在数电中学过通过卡诺图的方式来优化电路,消除毛刺,这里不做展开。在这里我们考虑以下问题:我们是不是每次都必须消除毛刺?

        考虑这个问题的原因在于消除毛刺意味着更大的资源和功率消耗,同时也增加了设计者的设计难度,无论有无小故障,该电路最终都能保证收敛到正确的值。

        答案是否定的,我们并不是每一次都需要完全消除毛刺的存在。

        (1)如果说我们只关心长期的稳态输出,我们可以安全地忽略毛刺;

        (2)应该由设计者来决定毛刺在他们自己的应用程序中是否重要。

三、总结

        本文中我们介绍了组合电路的时序问题,定义了tcd和tpd两个重要参数,明确了如何寻找一个组合逻辑电路的最短路径Shortest Path和最长路径Longest Path(更常规的叫法是关键路径Critical Path),然后我们分析了组合逻辑毛刺产生的原因及影响,我们可以通过卡诺图的相关方式来优化电路,消除毛刺,但是这取决于设计者是否需要消除毛刺。

        本文作为时序分析部分的第一篇文章,带领大家初步认识了时序在电路中的存在形式和潜在影响,接下来我们将针对时序逻辑电路的时序问题就行研究。文章来源地址https://www.toymoban.com/news/detail-687949.html

到了这里,关于FPGA时序分析与约束(1)——组合电路时序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA时序分析与时序约束(二)——时钟约束

    目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径  三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束         上一章了解了时序分析和约束的很多基本概念(FP

    2024年02月03日
    浏览(71)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)
  • FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(43)
  • FPGA时序分析与约束(5)——时序路径

            在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。       

    2024年02月09日
    浏览(42)
  • FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(45)
  • FPGA的时序分析、约束和收敛(1)----什么是时序分析?什么是时序约束?什么又是时序收敛?

    文章目录         写在前面         磨刀不误砍柴工         什么是时序分析?         什么是时序约束?         什么是时序收敛?         时序约束与分析是FGPA开发过程中一项必备的技能,同时也是设计开发中相对较难的部分。很多人一谈起FPGA开

    2024年02月12日
    浏览(37)
  • FPGA时序分析与时序约束(一)——基础知识

    目录 一、为什么要进行时序分析和时序约束 二、什么是时序分析和时序约束 三、时序约束的基本路径 四、时序分析与约束的基本概念 4.1 Clock Uncertainty 4.2 建立时间和保持时间 4.3 发起沿和采样沿 4.4 数据到达时间和时钟达到时间 4.5 建立时间下的数据需求时间 4.6 保持时间

    2024年02月03日
    浏览(33)
  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(43)
  • FPGA时序分析与约束(13)——I/O接口约束

            在应用了时钟约束后,所有寄存器到寄存器的路径都能定时。为了获得更加精准的FPGA外部时序信息,设计者需要为FPGA的I/O接口指定时序信息,一般时序工具只能获取FPGA器件内部的时序信息,对于FPGA器件引脚之外的时序信息,必须由设计者约束定义。如果没有指定的

    2024年02月05日
    浏览(44)
  • FPGA时序分析和约束(15)——多周期路径

    系列文章目录: FPGA时序分析与约束(0)——目录与传送门 https://ztzhang.blog.csdn.net/article/details/134893857         在前文中,我们知道了时序异常可以分成3种类型,分别是虚假路径、多周期路径、最小延迟和最大延迟,我们已经详细介绍过来虚假路径,本文中,我们来介绍多周

    2024年02月20日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包