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

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

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

講講Latch的功能?Timing Path如何分析?

冬至子 ? 來源:RTL2GDS ? 作者:老本 Benjamin ? 2023-06-27 14:55 ? 次閱讀

Latch功能

Latch的電路結(jié)構(gòu)如下圖:

圖片

Latch電路結(jié)構(gòu)

當(dāng) E = 1 時(shí),latch直傳(transparent),D端信號的變化會即時(shí)反應(yīng)在Q端;

當(dāng) E = 0 時(shí),latch關(guān)斷(closed),Q端保持關(guān)斷瞬間D端的值。

設(shè)計(jì)中使用Latch的好處是,相比寄存器的面積更小,功耗更低,可以從后級電路進(jìn)行time borrowing,更容易滿足setup time,然而壞處是STA分析不會那么直接,下面我們就看看引入了Latch的Timing Path如何分析。

Time Borrowing

在數(shù)字設(shè)計(jì)中,經(jīng)常會碰到如下圖所示的Path,兩個寄存器(UFF0和UFF1)之間存在一個鎖存器(ULAT1),這種情況工具會怎么分析path呢?不同STA工具的行為會有稍微的區(qū)別,我們先以PT傳統(tǒng)的分析方法來解釋。

圖片

加入Latch后的電路圖

圖片

Time Borrowing示意圖

根據(jù)Latch的特點(diǎn),在CLKN為高電平時(shí),ULAT1是transparent,ULAT1/D端的數(shù)據(jù)能即時(shí)地反映在ULAT1/Q端。上圖中的情況是,UFF0->ULAT1/D的Path Delay使得ULAT1/D數(shù)據(jù)在CLKN的上升沿之后才到達(dá),需要從后一級ULAT1->UFF1中借了1.81ns,使得原本違例的path滿足了要求,而ULAT1->UFF1的timing path即使借出去1.81ns,也能夠滿足要求,具體的timing report如下:

圖片

UFF0->ULAT1的Timing Path

圖片

ULAT1->UFF1的Timing Path

這里需要指出的一點(diǎn)是,在計(jì)算setup timing的時(shí)候,在UFF0->ULAT1中,ULAT1的clock path是按照early/min模式計(jì)算的,而在ULAT1->UFF1中,ULAT1的clock path是按照late/max模式計(jì)算的,有一部分公共路徑的CRPR是不會被排除掉的,所以現(xiàn)在的PT引入了一種新的latch timing分析的模式,它把latch當(dāng)成一個組合邏輯,在分析UFF0->UFF1的path時(shí)可以穿過ULAT1,這里只提示一下可以通過下面這個選型來打開,從而可以減少悲觀度:

set_app_var timing_enable_through_paths true

這種模式下,Latch的D Pin只能作為Endpoint,不能作為Startpoint,所以在report_timing的時(shí)候也要注意是用-to還是-through的區(qū)別:

report_timing -to $latch_d_pin
report_timing -through $latch_d_pin

需要注意的是,這種through模式只是針對setup,對hold分析還是保持不變。下面接著看一個用latch來解決跨時(shí)鐘域hold timing問題的應(yīng)用。

Lockup Latch in Scan Chain

為了芯片測試的需要,我們會用Scan Chain的方式將絕大部分的寄存器串鏈起來,在不影響功能的情況下,以簡單的方式測試電路中寄存器的良率。但是存在一種情況,前后相鄰的兩級寄存器如果時(shí)鐘不一樣(跨時(shí)鐘域),如下圖所示:

圖片

加入Lockup latch之前的電路圖

由于CLK1和CLK2為不同的時(shí)鐘域,很難保證他們同步,假如CLK2相比CLK1有一段不確定的延遲Tskew,可大可小,那么很有可能FF1/CLK1->FF1/Q->FF2/SI這段延時(shí)Tdata會比Tskew小,造成hold timing違例。

圖片

加入Lockup latch之前的hold timing時(shí)序圖

上一節(jié)提到Latch有time borrowing的功效,假如在兩級寄存器之間加入一個latch,結(jié)構(gòu)如下圖所示:

圖片

加入Lockup latch之后的電路圖

CLK1低電平的時(shí)候,Lockup Latch是transparent,CLK1高電平的時(shí)候Lockup Latch一直保持上一拍的數(shù)據(jù),這樣即使CLK2有延遲,只要不超過CLK1高電平持續(xù)時(shí)間,就能保證hold timing沒有問題。

圖片

加入Lockup latch之后的hold timing時(shí)序圖

DC中可以很方便的實(shí)現(xiàn)這一功能,具體會在RTL2GDS微信公眾號的綜合/DFT教程中詳細(xì)介紹。

Clock Gating Check

Latch的另一個應(yīng)用是作為門控時(shí)鐘單元(Clock Gating Cell),通過避免部分寄存器不必要的時(shí)鐘翻轉(zhuǎn),可以極大地節(jié)省電路的動態(tài)功耗。實(shí)際應(yīng)用中,為了避免出現(xiàn)毛刺,會在Latch后面添加一個與門組成一個ICG(Integrated Clock Gating)。

圖片

ICG電路結(jié)構(gòu)

由于ICG是用在clock path上,STA工具默認(rèn)會要求做CLKI到EN端的clock gating check,目的是保證時(shí)鐘使能的時(shí)序滿足要求,所以會存在REG2ICG的path。因?yàn)镮CG的clock會比REG的clock delay要短,所以天然存在一個skew對setup不利,特別是假如有多級的ICG級聯(lián),更加加重了這種情況。在設(shè)計(jì)上,需要保證REG2ICG的數(shù)據(jù)路徑不能太復(fù)雜,否則物理實(shí)現(xiàn)會存在困難。

在CTS之前,由于clock tree是ideal的,考慮不到這種skew的不利影響,所以往往需要通過SDC命令"set_clock_gating_check"人為地設(shè)置,讓綜合或者布局工具提前認(rèn)識到這一點(diǎn)并提前優(yōu)化。

需要注意的是,不僅僅ICG需要clock gating check,如果clock path上存在與門、或門等邏輯也需要進(jìn)行clock gating check。

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

    關(guān)注

    31

    文章

    5254

    瀏覽量

    119284
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    904

    瀏覽量

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

    關(guān)注

    0

    文章

    51

    瀏覽量

    18914
  • SDC
    SDC
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    15487
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    17051
收藏 人收藏

    評論

    相關(guān)推薦

    Latch UP

    本帖最后由 不認(rèn)識曹操 于 2011-12-16 17:07 編輯 [post][/post]Latch up 是指cmos晶片中, 在電源power VDD和地線GND(VSS)之間由于寄生
    發(fā)表于 12-16 16:37

    請問Latch到底是什么呢?

    我有看到說Latch是一個簡單的電路用來存儲一位的數(shù)據(jù)(或者狀態(tài)),也就是說這個Latch是個名詞(鎖存器)。但是我在看MCU 8085的資料的時(shí)候在定時(shí)控制這一章節(jié),有一個信號叫做ALE
    發(fā)表于 12-06 10:35

    Verilog基本功--flipflop和latch以及register的區(qū)別

    PrimeTime,是支持進(jìn)行latch分析的.現(xiàn)在一些綜合工具內(nèi)置的STA分析功能也支持比如RTL compiler, Design Compiler. 除了ASIC里可以節(jié)省資源以
    發(fā)表于 08-27 08:30

    Timing Groups and OFFSET Const

    Timing Groups and OFFSET Constraints: •Use the Constraints Editor to create groups of path
    發(fā)表于 01-11 08:55 ?4次下載

    Achieving Timing Closure

    Achieving Timing Closure:Timing Reports• Timing reports enable you to determine how and why
    發(fā)表于 01-11 08:56 ?0次下載

    Path-Specific Timing Constrain

    Path-Specific Timing Constraints:Constraining Between Risingand Falling Clock Edges•
    發(fā)表于 01-11 08:56 ?10次下載

    邏輯分析儀中Timing-State存儲方式的應(yīng)用

    本內(nèi)容介紹了邏輯分析儀中Timing-State存儲方式的應(yīng)用
    發(fā)表于 09-22 14:26 ?14次下載
    邏輯<b class='flag-5'>分析</b>儀中<b class='flag-5'>Timing</b>-State存儲方式的應(yīng)用

    基于FALSE PATH的設(shè)置

    總得來說,F(xiàn)ALSE PATH就是我們在進(jìn)行時(shí)序分析時(shí),不希望工具進(jìn)行分析的那些路徑。一般不需要工具時(shí)序分析的路徑指的是異步的路徑,異步路徑就是指的不同時(shí)鐘域的路徑。
    發(fā)表于 09-19 10:46 ?0次下載
    基于FALSE <b class='flag-5'>PATH</b>的設(shè)置

    詳細(xì)介紹時(shí)序基本概念Timing arc

    時(shí)序分析基本概念介紹——Timing Arc
    的頭像 發(fā)表于 01-02 09:29 ?2.4w次閱讀
    詳細(xì)介紹時(shí)序基本概念<b class='flag-5'>Timing</b> arc

    靜態(tài)時(shí)序分析基礎(chǔ)與應(yīng)用

    STA的簡單定義如下:套用特定的時(shí)序模型(Timing Model),針對特定電路分析其是否違反設(shè)計(jì)者給定的時(shí)序限制(Timing Constraint)。以分析的方式區(qū)分,可分為
    發(fā)表于 04-03 15:56 ?10次下載

    介紹的時(shí)序分析基本概念PBA分析模式

    和GBA模式相比,PBA要更加樂觀,因?yàn)樗鼤?jì)算具體哪些路徑是實(shí)際的路徑。如下圖中的timing path
    的頭像 發(fā)表于 07-03 15:27 ?2033次閱讀
    介紹的時(shí)序<b class='flag-5'>分析</b>基本概念PBA<b class='flag-5'>分析</b>模式

    AOCV時(shí)序分析概念介紹

    今天我們要介紹的時(shí)序分析概念是 **AOCV** 。全稱Stage Based Advanced OCV。我們知道,在OCV分析過程中,我們會給data path,clock path
    的頭像 發(fā)表于 07-03 16:29 ?1763次閱讀
    AOCV時(shí)序<b class='flag-5'>分析</b>概念介紹

    什么是時(shí)序路徑timing path呢?

    今天我們要介紹的時(shí)序分析概念是 **時(shí)序路徑** (Timing Path)。STA軟件是基于timing path
    的頭像 發(fā)表于 07-05 14:54 ?1848次閱讀
    什么是時(shí)序路徑<b class='flag-5'>timing</b> <b class='flag-5'>path</b>呢?

    時(shí)序分析基本概念介紹—Timing Arc

    今天我們要介紹的時(shí)序基本概念是Timing arc,中文名時(shí)序弧。這是timing計(jì)算最基本的組成元素,在昨天的lib庫介紹中,大部分時(shí)序信息都以Timing arc呈現(xiàn)。
    的頭像 發(fā)表于 07-06 15:00 ?2699次閱讀
    時(shí)序<b class='flag-5'>分析</b>基本概念介紹—<b class='flag-5'>Timing</b> Arc

    時(shí)序分析基本概念介紹&lt;Critical Path&gt;

    今天我們要介紹的時(shí)序分析概念是Critical Path。全稱是關(guān)鍵路徑。
    的頭像 發(fā)表于 07-07 11:27 ?1061次閱讀
    時(shí)序<b class='flag-5'>分析</b>基本概念介紹&lt;Critical <b class='flag-5'>Path</b>&gt;