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

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

3天内不再提示

STA分析-从一个案例开始

冬至子 来源:知芯有道 作者:武当沸羊羊 2023-07-05 15:01 次阅读

引言

静态时序分析(STA)是用来分析数字电路是否满足时序目标的威廉希尔官方网站 手段之一。比如,检查CPU电路是否达到1GHz的目标频率。

本文没有目录分类,而是想先快速的讲完一个案例,然后再回个头来慢慢引出一些STA概念和知识,以便后面进行分类讲解。(ps.这个时候出现的STA专业术语只需有个印象即可。)

案例分析

芯片回片测试发现功能异常,不符合预期。经过设计人员层层排查,锁定到某条嫌疑路径。我们画出几组精简的逻辑电路图和时序波形图来示意解释问题出在哪。

该电路不是真实案例对应的具体电路,而是为了说明问题,虚拟抽象出来的相似电路,它不影响我们对问题的探究剖析。

图一、图二是数字电路前端设计人员熟悉的逻辑电路图和时序波形图,其中时序波形图代表了该逻辑电路的预期功能。

图片

图一 逻辑电路图(理想延迟)

图片

图二 时序波形图(理想延迟)

可以看出:

在0ns时刻之前

FFL1、FFL2两个寄存器储存的逻辑值分别是0、0。

在0ns时刻时

FFL1、FFL2打出来新的逻辑值1、1,经过逻辑运算和路径传播后,到达FFC1、FFC2的D端。

在1ns时刻时

FFC1、FFC2的D端出现的1、1分别被捕获锁存进寄存器FFC1、FFC2,即T2周期FFC1、FFC2寄存器储存的逻辑值是上个周期(T1)的D端输入值。

实际芯片中,信号经过任何cell和wire都是有延迟的。而且芯片处在不同的工作环境下,这些cell和wire会有不同的延迟值。

因此在不影响问题说明的前提下,为了近一步降低理解难度,我们先假设从clock源头到任何寄存器的时钟输入端的延迟是0ns,而且假设不同工作条件下信号经过同一条wire网络具有相同的延迟值。

图三、图四是在BC工作条件下的逻辑电路图(含延迟信息)和时序波形图:

图片

图三 逻辑电路图(含BC工作条件下的延迟信息)

图片

图四 时序波形图( BC****工作条件)

在0ns时刻之前

FFL1、FFL2两个寄存器储存的逻辑值分别是0、0。

在0ns时刻时

FFL1、FFL2打出来逻辑1、1,这两个输出的逻辑值经过路径UNAND1、UINV2、UINV3、UINV4的逻辑运算后到达FFC1的D端。

其路径延迟 = 经过的cell延迟 + 经过的wire延迟,即:

路径延迟D(FFL1->FFC1) = D(FFL2->FFC1)

= D(FFL1CP2Q) + D(C1) ~ ~ + D(UNAND1) + D(C2) + D(UINV2) + D(C3) + D(UINV3) + D(C4) + D(UINV4) + D(C5)

= 0.1 + 0.1 + 0.1 + 0.05 + 0.1 + 0.05 + 0.05 + 0.05 + 0.1 + 0.05

= 0.75ns;

同样,两个输出经过UNAND1、UINV5的逻辑运算后到达FFC2的D端,其路径延迟为:

路径延迟D(FFL1->FFC2) = D(FFL2->FFC2)

= D(FFL2CP2Q) + D(C6) ~ ~ + D(UNAND1) + D(C7) + D(UINV5) + D(C8)

= 0.1 + 0.1 + 0.1 + 0.05 + 0.05 + 0.05

= 0.45ns;

在1ns时刻时

由于

D(FFL1->FFC1) = D(FFL2->FFC1) = 0.75ns < Tperiod – Tsetup = 1 – 0.1 = 0.9ns,

D(FFL1->FFC1) = D(FFL2->FFC1) = 0.75ns > Thold = 0.1ns,

D(FFL1->FFC2) = D(FFL2->FFC2) = 0.45ns < Tperiod – Tsetup = 1 – 0.1 = 0.9ns,

D(FFL1->FFC2) = D(FFL2->FFC2) = 0.45ns > Thold = 0.1ns,

所以FFC1、FFC2的D端出现的1、1能可靠的分别被捕获锁存进寄存器FFC1、FFC2,即T2周期FFC1、FFC2寄存器锁存了上个周期(T1)的D端输入值。

**可见,在BC工作条件下,计算了cell和wire延迟后,电路功能依然符合预期。 **

图五、六是在WC工作条件下的逻辑电路图(含延迟信息)和时序波形图。

图片

图五 逻辑电路图(含WC工作条件下的延迟信息)

图片

图六 时序波形图( WC****工作条件)

在0ns时刻时

FFL1、FFL2打出来逻辑1、1,这两个输出的逻辑值经过路径UNAND1、UINV2、UINV3、UINV4的逻辑运算后到达FFC1的D端,其路径延迟为:

路径延迟D(FFL1->FFC1) = D(FFL2->FFC1)

= D(FFL1CP2Q) + D(C1) ~ ~ + D(UNAND1) + D(C2) + D(UINV2) + D(C3) + D(UINV3) + D(C4) + D(UINV4) + D(C5)

= 0.2 + 0.1 + 0.2 + 0.05 + 0.2 + 0.05 + 0.1 + 0.05 + 0.2 + 0.05

= 1.2ns;

同样,两个输出经过UNAND1、UINV5的逻辑运算后到达FFC2的D端,其路径延迟为:

路径延迟D(FFL1->FFC2) = D(FFL2->FFC2)

= D(FFL2CP2Q) + D(C6) ~ ~ + D(UNAND1) + D(C7) + D(UINV5) + D(C8)

= 0.2 + 0.1 + 0.2 + 0.05 + 0.1 + 0.05

= 0.7ns;

在1ns时刻时

与前面两种情况不同,在这种场景下,在1ns时刻时出现在FFC1、FFC2的D端的是0、1(上面场景出现的是1、1)。

因此,此时锁存进FFC1、FFC2寄存器的值分别是0、1。与我们所预期的T2周期FFC1、FFC2寄存器值是1、1不同。

至此,芯片功能测试异常的原因我们已经找到。简单的说即芯片中去往FFC1的D端的这2条路径(没看错,是2条),在实际运行场景中的某个时刻,恰好处于接近WC的工作条件,导致FFC1在某时刻采样错误,表现出来芯片功能异常。

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

    关注

    13

    文章

    494

    浏览量

    42623
  • 寄存器
    +关注

    关注

    31

    文章

    5343

    浏览量

    120373
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18965
  • 静态时序分析

    关注

    0

    文章

    28

    浏览量

    9587
  • ffc连接器
    +关注

    关注

    1

    文章

    12

    浏览量

    8412
收藏 人收藏

    评论

    相关推荐

    matlab神经网络30个案分析源码

    matlab神经网络30个案分析源码
    发表于 12-19 14:51

    关于谢中华编的《matlab统计分析与应用:40个案分析

    有谁有看过谢中华编的《matlab统计分析与应用:40个案分析》这本书啊?谢谢!
    发表于 02-26 15:00

    [MATAB神经网络30个案分析].史峰.

    [MATAB神经网络30个案分析].史峰.扫描版[***51.net]
    发表于 06-06 19:03

    [MATLAB统计分析与应用:40个案分析]

    [MATLAB统计分析与应用:40个案分析].谢中华.扫描版
    发表于 10-31 12:20

    [MATLAB智能算法30个案分析].史峰等.扫描版

    本帖最后由 lee_st 于 2018-1-28 05:33 编辑 [MATLAB智能算法30个案分析].史峰等.扫描版
    发表于 01-28 05:30

    从一账号开始玩转机智云(应用构建)

    从一账号开始玩转机智云(应用构建)大家好,今天为大家带来的是机智云转接板ML302-GC211的试用,关于这个模块,我们先从一账号说起,
    发表于 06-27 20:10

    MATLAB神经网络30个案分析源程序

    有关神经网路的30个案分析,用MATLAB来实现源程序和数据
    发表于 06-15 16:24 0次下载

    HLS系列 – High Level Synthesis(HLS) 从一最简单的fir滤波器开始4

    在这个系列的前3篇文章“HighLevel Synthesis(HLS) 从一最简单的fir滤波器开始1-3”中,我们从一最简单的FIR
    发表于 02-08 05:13 1248次阅读
    HLS系列 – High Level Synthesis(HLS) <b class='flag-5'>从一</b><b class='flag-5'>个</b>最简单的fir滤波器<b class='flag-5'>开始</b>4

    HLS系列 – High LevelSynthesis(HLS) 从一最简单的fir滤波器开始5

    在这个系列的前4篇文章“HighLevel Synthesis(HLS) 从一最简单的fir滤波器开始1-4”中,我们从一最简单的FIR
    发表于 02-08 05:18 718次阅读
    HLS系列 – High LevelSynthesis(HLS) <b class='flag-5'>从一</b><b class='flag-5'>个</b>最简单的fir滤波器<b class='flag-5'>开始</b>5

    MATLAB神经网络30个案分析源代码免费下载

    本文档的主要内容详细介绍的是MATLAB神经网络30个案分析源代码免费下载。
    发表于 03-18 08:00 8次下载
    MATLAB神经网络30<b class='flag-5'>个案</b>例<b class='flag-5'>分析</b>源代码免费下载

    MATLAB数字信号处理的85个案分析程序合集免费下载

    本文档的主要内容详细介绍的是MATLAB数字信号处理的85个案分析程序合集免费下载。
    发表于 09-24 08:00 76次下载

    Linux的源头 从一故事说起

    Linux的起源:从一故事说起
    的头像 发表于 01-13 16:38 1033次阅读

    MATLAB数字信号处理的85个案分析完整源代码

    MATLAB数字信号处理的85个案分析程序合集免费下载
    发表于 09-19 15:44 3次下载

    STA分析—延迟计算

    从上篇文章,我们可以很明显的看出STA的两大因素,一个是延迟计算,一个是约束检查。
    的头像 发表于 07-05 15:04 2798次阅读
    <b class='flag-5'>STA</b><b class='flag-5'>分析</b>—延迟计算

    sta同步热分析

    STA同步热分析仪是将热重分析仪TG与差示扫描量热仪DSC或差热分析仪DTA结合体,在同次测
    的头像 发表于 08-15 10:54 851次阅读
    <b class='flag-5'>sta</b>同步热<b class='flag-5'>分析</b>仪