STA系列 - 特殊时序分析multicycle/half-cycle/false path

2023-11-07


本篇文章介绍的是特殊的时序path, 全文为视频笔记,以及自己的理解
https://www.bilibili.com/video/BV1if4y1p7Dq?p=10&vd_source=84d1070e8334ce7e2bb0bd110abcf1a7

什么是require time/arrive time

require time:就是时钟的采样check位置,比如说对于setup的check,那么就是check 一个period的位置。对于hold的check,就是check当前时刻,根据setup check/hold check, require time(需求时间)当然不同。
arrive time: 就是数据到达时刻,对于setup check,就是check new data到达时刻,对于hold check,也是计算new data 到达时刻,但前者是为了check数据能否正确采,后者是为了避免new data冲刷。

Multicycle Path

如下图所示,在某些设计中,比如乘法器,加法器,一个时钟无法计算输出一个稳定的结果。
如下图所示,logic需要耗时3个cycle。
在这里插入图片描述
如下图所示,将STA设置为3 -setup 从而放松对setup的检查。
另外,因为hold的check,默认情况下是在setup的前一个,当setup multicycle = 3的时候,那么对于hold的check 默认也就在setup的前面一个。
hold的check是为了告诉工具,数据不能在此刻位置被new data冲刷掉。
那么也就是说,数据要一直维持稳定,从launch之后就一直不能被冲掉,直到default hold check的位置。
而实际上,我们只需要数据在launch的位置去check hold violation即可,之后任意数据怎么变动。
因此需要将下面的default位置往前挪两个。

在这里插入图片描述
对hold的check:
在这里插入图片描述
在这里插入图片描述
如上图所示,紫色圈圈里面,本来default 位置是在period*2 为起点, 现在设置值2 -hold之后,将check位置归为0。

如果我们没有设置hold的multicycle为2
将会得到如下的结果:

在这里插入图片描述
在这里插入图片描述
如上图所示,我们可以看到require time的起点时刻为20,new 数据到达的时间在0.33,但是时钟在20.19到来。
我们希望的是new 数据的到达(冲刷时刻)时间晚一点,也就是arrive time 减去 require time。但是明显,-19.85是无法满足。

Half Path

如下图所示,对于TE—>LE 的path
这种case存在于比如我们串scan,mix edge的时候
在这里插入图片描述
如下图所示,对于setup check:
launch 的时候,如下图,在6ns的位置launch;capture的位置是在12ns,数据需要你在11.74ns到达,然而数据在6.31ns的位置就到达了,因此,slack为5.43ns。
在这里插入图片描述
在这里插入图片描述
对于hold check:

所以如下图所示,launch的起点为6ns,data arrival time为6.31ns。
对于require time 为0.13ns,也就是说只要你new data在require time =0.13ns之后来就没关系。
从下图中,也可以看到很容易满足。
于是我们看到slack为6.18 非常容易满足。
其实想想也很简单:正是因为在LE clk之后,有足足半个周期都没有冲刷数据,直到6ns之后,才开始有launch clk打出clk去冲刷数据,所以hold当然很容易满足,然而对于setup来说其实比较难fix,因为需要fix到倍频。
在这里插入图片描述
在这里插入图片描述

Falth Path

如下图所示,在任何时候,scan时钟和系统时钟都不会有path,或者可以将mux/S设置为falth path
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STA系列 - 特殊时序分析multicycle/half-cycle/false path 的相关文章

  • opencv学 之图像傅里叶变换dft

    一 前言 接触了图像的傅里叶变换 xff0c 数学原理依旧不是很懂 xff0c 因此不敢在这里妄言 下午用Opencv代码实现了这一变换 xff0c 有一些经验心得 二 关键函数解析 2 1copyMakeBorder 扩展图片尺寸 傅里叶
  • MBIST --- PATR1.Memorybist测试原理

    mem bist作为现在design设计中不可或缺的DFT设计内容 越发重要 本章节主要介绍mem bist组成部分 测试的原理以及注意事项 1 mem bist implementation 1 1 如下图所示为最basic的mbist
  • 芯片测试的DC/AC/Fast/slow模式

    目录 1 AC DC介绍及区别 2 DC AC mode a DC mode b AC mode 1 AC DC介绍及区别 70年代到1995年这段时间里 由于芯片的工作频率很低只有20 100M scan测试只有DC SCAN 我们就能捕
  • opencv学习(十五)之图像傅里叶变换dft

    在学习信号与系统或通信原理等课程里面可能对傅里叶变换有了一定的了解 我们知道傅里叶变换是把一个信号从时域变换到其对应的频域进行分析 如果有小伙伴还对傅里叶变换处于很迷糊的状态 请戳这里 非常通俗易懂 而在图像处理中也有傅里叶分析的概念 我这
  • FFT算法和DFT算法C语言实现(赋详解)

    声明 本人在校期间主修过 数字信号处理 这门课程 对离散傅里叶变换 DFT 和快速傅里叶变换 FFT 深有了解 现编写了基于C语言的FFT算法 已完成对抽样序列的FFT变换并通过窗口输出 编写思路 由于FFT变换里面含有对虚数的运算 现将输
  • STA系列 - 特殊时序分析multicycle/half-cycle/false path

    文章目录 什么是require time arrive time Multicycle Path Half Path Falth Path 本篇文章介绍的是特殊的时序path 全文为视频笔记 以及自己的理解 https www bilibi
  • 数字图像处理-离散傅里叶变换(opencv3+C++显示)

    参考 http daily zhihu com story 3935067 http blog csdn net keith bb article details 53389819 在学习信号与系统或通信原理等课程里面可能对傅里叶变换有了一
  • 导出离散傅里叶变换(DFT)的两种方法

    1 原理部分 在这里首先确定DFT的对象为一个有限长的离散非周期序列 这主要因为计算机处理的都是有限长的离散序列 如果你要处理的序列本身不是离散非周期的序列 可以通过截取或者离散化等方法获得所需的有限长的离散非周期序列 对于有限长的离散非周
  • fft(DFT) x 轴的单位[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 FFT 结果获取频率 我对 Matlab 中 fft DFT 命令的 x 轴感到困惑 当我们对在 n 点采样的信号执行 fft 命令时 我们会得到一个 x 轴为 0 到 n 1 的图 它的意思
  • numpy的fft结果的幅度要乘以采样周期?

    我尝试用一 个例子来验证我对 Numpy 的 FFT 的理解 exp pi t 2 应该exp pi f 2 当没有对直接变换应用缩放时 但是 我发现要获得这个结果 我需要将 FFT 的结果乘以一个因子dt 这是我的函数上两个样本点之间的时
  • 如何获得以赫兹为单位的 DFT/FFT 输出频率?

    我想开发音符检测器作为我的学位项目 并且我想从头开始 我已经为 wav 文件编写了代码 该文件从该音频音乐文件中提取所有信息并给出振幅 然后我编写了 DFT 代码 它以复数形式输出 其中轴 实数 虚数 之一是幅度 幅度 另一个轴是相位 现在
  • 为什么图像压缩算法要按子块处理图像?

    例如 考虑 DFT 或 DCT 准确地说 通过子块变换的图像与整体变换的图像之间有什么区别 生成的文件大小是否较小 算法是否更高效 变换后的图像看起来有什么不同吗 谢谢 它们被设计为可以使用并行硬件来实现 每个块都是独立的 可以在不同的计算
  • DFT 和 FFT(幅度)结果之间的差异

    我的目标是获得DFTOpenCV 中的图像 Using dft函数 我能够计算它 然后通过计算它的大小来绘制它 然后 应用日志并最终对其进行标准化 以便绘制 0 和 1 之间的值 我的结果是 对于下图 我向您展示的结果 通过交换以便在图像中
  • 带或不带加窗的 KISS FFT 输出

    我目前正在尝试使用 Kiss fft 将 fft 实现到 avr32 微控制器中 以进行信号处理 我的输出有一个奇怪的问题 基本上 我将 ADC 样本 使用函数生成器进行测试 传递到 fft 实际输入 256 n 大小 中 并且检索到的输出
  • 使用 python 进行二维 FFT 会导致频率略有偏移

    我知道关于在 python 中使用快速傅立叶变换 FFT 方法存在几个问题 但不幸的是它们都不能帮助我解决我的问题 我想使用python计算给定二维信号f的快速傅里叶变换 即f x y Python 文档帮助很大 解决了 FFT 带来的一些
  • 为什么 (A+B) 的 FFT 与 FFT(A) + FFT(B) 不同?

    我已经与一个非常奇怪的错误作斗争了近一个月了 向你们请教是我最后的希望 我用 C 编写了一个程序 集成了 2d卡恩 希利亚德方程 https en wikipedia org wiki Cahn E2 80 93Hilliard equat
  • MATLAB 中的 fft2 与 OpenCV C++ 中的 dft 速度比较

    我想知道为什么dftOpenCV C 中的函数比fft2对于二维矩阵 以下C 代码来自文档 http docs opencv org 2 4 doc tutorials core discrete fourier transform dis
  • OpenCV DFT_INVERSE与Matlab的ifft不同

    我尝试使用 opencv 的 dft 函数过滤信号 我尝试的方法是在时域中获取信号 x 0 0201920000000000 0 0514940000000000 0 0222140000000000 0 0142460000000000
  • 如何计算 DFT 中每个 bin 的能量?

    我正在测试我对离散傅里叶变换的了解 我现在测试的是如何使用DFT计算波的中心频率 为此 我使用以下代码创建正弦数据 create a 100 Hz wave with a sampling rate of 512 samples per s
  • C 中的二维傅里叶变换

    我使用该网站的方程实现了 2D DFT 和 IDFThttp homepages inf ed ac uk rbf HIPR2 fourier htm http homepages inf ed ac uk rbf HIPR2 fourie

随机推荐