0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STA分析-從一個案例開始

冬至子 ? 來源:知芯有道 ? 作者:武當沸羊羊 ? 2023-07-05 15:01 ? 次閱讀

引言

靜態(tài)時序分析(STA)是用來分析數(shù)字電路是否滿足時序目標的技術(shù)手段之一。比如,檢查CPU電路是否達到1GHz的目標頻率。

本文沒有目錄分類,而是想先快速的講完一個案例,然后再回個頭來慢慢引出一些STA概念和知識,以便后面進行分類講解。(ps.這個時候出現(xiàn)的STA專業(yè)術(shù)語只需有個印象即可。)

案例分析

芯片回片測試發(fā)現(xiàn)功能異常,不符合預(yù)期。經(jīng)過設(shè)計人員層層排查,鎖定到某條嫌疑路徑。我們畫出幾組精簡的邏輯電路圖和時序波形圖來示意解釋問題出在哪。

該電路不是真實案例對應(yīng)的具體電路,而是為了說明問題,虛擬抽象出來的相似電路,它不影響我們對問題的探究剖析。

圖一、圖二是數(shù)字電路前端設(shè)計人員熟悉的邏輯電路圖和時序波形圖,其中時序波形圖代表了該邏輯電路的預(yù)期功能。

圖片

圖一 邏輯電路圖(理想延遲)

圖片

圖二 時序波形圖(理想延遲)

可以看出:

在0ns時刻之前

FFL1、FFL2兩個寄存器儲存的邏輯值分別是0、0。

在0ns時刻時

FFL1、FFL2打出來新的邏輯值1、1,經(jīng)過邏輯運算和路徑傳播后,到達FFC1、FFC2的D端。

在1ns時刻時

FFC1、FFC2的D端出現(xiàn)的1、1分別被捕獲鎖存進寄存器FFC1、FFC2,即T2周期FFC1、FFC2寄存器儲存的邏輯值是上個周期(T1)的D端輸入值。

實際芯片中,信號經(jīng)過任何cell和wire都是有延遲的。而且芯片處在不同的工作環(huán)境下,這些cell和wire會有不同的延遲值。

因此在不影響問題說明的前提下,為了近一步降低理解難度,我們先假設(shè)從clock源頭到任何寄存器的時鐘輸入端的延遲是0ns,而且假設(shè)不同工作條件下信號經(jīng)過同一條wire網(wǎng)絡(luò)具有相同的延遲值。

圖三、圖四是在BC工作條件下的邏輯電路圖(含延遲信息)和時序波形圖:

圖片

圖三 邏輯電路圖(含BC工作條件下的延遲信息)

圖片

圖四 時序波形圖( BC****工作條件)

在0ns時刻之前

FFL1、FFL2兩個寄存器儲存的邏輯值分別是0、0。

在0ns時刻時

FFL1、FFL2打出來邏輯1、1,這兩個輸出的邏輯值經(jīng)過路徑UNAND1、UINV2、UINV3、UINV4的邏輯運算后到達FFC1的D端。

其路徑延遲 = 經(jīng)過的cell延遲 + 經(jīng)過的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;

同樣,兩個輸出經(jīng)過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端出現(xiàn)的1、1能可靠的分別被捕獲鎖存進寄存器FFC1、FFC2,即T2周期FFC1、FFC2寄存器鎖存了上個周期(T1)的D端輸入值。

**可見,在BC工作條件下,計算了cell和wire延遲后,電路功能依然符合預(yù)期。 **

圖五、六是在WC工作條件下的邏輯電路圖(含延遲信息)和時序波形圖。

圖片

圖五 邏輯電路圖(含WC工作條件下的延遲信息)

圖片

圖六 時序波形圖( WC****工作條件)

在0ns時刻時

FFL1、FFL2打出來邏輯1、1,這兩個輸出的邏輯值經(jīng)過路徑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;

同樣,兩個輸出經(jīng)過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時刻時出現(xiàn)在FFC1、FFC2的D端的是0、1(上面場景出現(xiàn)的是1、1)。

因此,此時鎖存進FFC1、FFC2寄存器的值分別是0、1。與我們所預(yù)期的T2周期FFC1、FFC2寄存器值是1、1不同。

至此,芯片功能測試異常的原因我們已經(jīng)找到。簡單的說即芯片中去往FFC1的D端的這2條路徑(沒看錯,是2條),在實際運行場景中的某個時刻,恰好處于接近WC的工作條件,導(dǎo)致FFC1在某時刻采樣錯誤,表現(xiàn)出來芯片功能異常。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    492

    瀏覽量

    42535
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119823
  • STA
    STA
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    18936
  • 靜態(tài)時序分析
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    9567
  • ffc連接器
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    8395
收藏 人收藏

    評論

    相關(guān)推薦

    matlab神經(jīng)網(wǎng)絡(luò)30個案分析源碼

    matlab神經(jīng)網(wǎng)絡(luò)30個案分析源碼
    發(fā)表于 12-19 14:51

    關(guān)于謝中華編的《matlab統(tǒng)計分析與應(yīng)用:40個案分析

    有誰有看過謝中華編的《matlab統(tǒng)計分析與應(yīng)用:40個案分析》這本書???謝謝!
    發(fā)表于 02-26 15:00

    [MATAB神經(jīng)網(wǎng)絡(luò)30個案分析].史峰.

    [MATAB神經(jīng)網(wǎng)絡(luò)30個案分析].史峰.掃描版[***51.net]
    發(fā)表于 06-06 19:03

    [MATLAB統(tǒng)計分析與應(yīng)用:40個案分析]

    [MATLAB統(tǒng)計分析與應(yīng)用:40個案分析].謝中華.掃描版
    發(fā)表于 10-31 12:20

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

    本帖最后由 lee_st 于 2018-1-28 05:33 編輯 [MATLAB智能算法30個案分析].史峰等.掃描版
    發(fā)表于 01-28 05:30

    從一賬號開始玩轉(zhuǎn)機智云(應(yīng)用構(gòu)建)

    從一賬號開始玩轉(zhuǎn)機智云(應(yīng)用構(gòu)建)大家好,今天為大家?guī)淼氖菣C智云轉(zhuǎn)接板ML302-GC211的試用,關(guān)于這個模塊,我們先從一賬號說起,
    發(fā)表于 06-27 20:10

    MATLAB神經(jīng)網(wǎng)絡(luò)30個案分析源程序

    有關(guān)神經(jīng)網(wǎng)路的30個案分析,用MATLAB來實現(xiàn)源程序和數(shù)據(jù)
    發(fā)表于 06-15 16:24 ?0次下載

    HLS系列 – High Level Synthesis(HLS) 從一最簡單的fir濾波器開始4

    在這個系列的前3篇文章“HighLevel Synthesis(HLS) 從一最簡單的fir濾波器開始1-3”中,我們從一最簡單的FIR
    發(fā)表于 02-08 05:13 ?1220次閱讀
    HLS系列 – High Level Synthesis(HLS) <b class='flag-5'>從一</b><b class='flag-5'>個</b>最簡單的fir濾波器<b class='flag-5'>開始</b>4

    MATLAB神經(jīng)網(wǎng)絡(luò)30個案分析源代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是MATLAB神經(jīng)網(wǎng)絡(luò)30個案分析源代碼免費下載。
    發(fā)表于 03-18 08:00 ?8次下載
    MATLAB神經(jīng)網(wǎng)絡(luò)30<b class='flag-5'>個案</b>例<b class='flag-5'>分析</b>源代碼免費下載

    MATLAB數(shù)字信號處理的85個案分析程序合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是MATLAB數(shù)字信號處理的85個案分析程序合集免費下載。
    發(fā)表于 09-24 08:00 ?76次下載

    Linux的源頭 從一故事說起

    Linux的起源:從一故事說起
    的頭像 發(fā)表于 01-13 16:38 ?1000次閱讀

    通過個案例教你玩轉(zhuǎn)MCU代碼生成工具(基于STM32)

    通過個案例教你玩轉(zhuǎn)MCU代碼生成工具(基于STM32)
    發(fā)表于 11-18 17:36 ?12次下載
    通過<b class='flag-5'>一</b><b class='flag-5'>個案</b>例教你玩轉(zhuǎn)MCU代碼生成工具(基于STM32)

    MATLAB數(shù)字信號處理的85個案分析完整源代碼

    MATLAB數(shù)字信號處理的85個案分析程序合集免費下載
    發(fā)表于 09-19 15:44 ?1次下載

    STA分析—延遲計算

    從上篇文章,我們可以很明顯的看出STA的兩大因素,一個是延遲計算,一個是約束檢查。
    的頭像 發(fā)表于 07-05 15:04 ?2532次閱讀
    <b class='flag-5'>STA</b><b class='flag-5'>分析</b>—延遲計算

    sta同步熱分析

    STA同步熱分析儀是將熱重分析儀TG與差示掃描量熱儀DSC或差熱分析儀DTA結(jié)合體,在同次測
    的頭像 發(fā)表于 08-15 10:54 ?786次閱讀
    <b class='flag-5'>sta</b>同步熱<b class='flag-5'>分析</b>儀