99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

我們?nèi)绾蝸硇迯蛃etup violation?

數(shù)字后端IC芯片設(shè)計 ? 來源:未知 ? 作者:李倩 ? 2018-10-04 15:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于setup violation,大家一定都非常熟悉,網(wǎng)上也有很多相關(guān)的資料。今天我們來介紹下對于項目后期ECO階段,我們?nèi)绾蝸硇迯蛃etup violation.

首先我們來回顧一下setup的定義,簡單來說,setup檢查是為了檢查數(shù)據(jù)傳輸不能太慢,否則,在目的寄存器的capture edge不能正確的鎖存數(shù)據(jù)。如下圖所示:

用公式簡單表示為:

Tlaunch為launch clock path delay

Tcapture為capture clock path delay

Tdp為data path delay

Tcycle為時鐘周期

詳細公式可以查看下列文章

【時序分析基本概念介紹

上述公式成立就代表setup沒有violation,因此我們可以知道修復setup的主要方法有以下三種:

1. 減小data path的delay

這是我們經(jīng)常使用的修復setup的方法,但實際上,setup不好修的原因也是在于我們需要在data path上做減法,和hold相反,一般來說,把path變短總是要比把path變長困難許多,這邊列舉了一些經(jīng)常使用到一些減小path delay的方法。

1) Vt Swap

通常是指選用Vt更小或者channel length, 一般的,同一種cell會分為HVT, RVT, LVT, SLVT。他們的速度大小按快到慢依次排列為SLVT, LVT, RVT, HVT。 功耗大小正好相反。每種VT cell又會分為不同的channel length,比如C20, C24, C28,C32。 數(shù)值越高,速度越慢。因此,在項目功耗允許的前提下,我們可以采用Low Vt的cell來替換High Vt的cell,或者選用小的channel length的cell。 這是修復setup最簡單也最常用的方法。

2)插入BUF

Setup violation其實絕大部分原因是由于drv造成的,我們知道,cell的delay其實是根據(jù)它的input transition,以及output load查表計算得來。因此,我們解決了cap和slew的問題,timing其實自然也得到了解決。那drv的問題,很多一部分我們可以通過插入buf來修復,比如net連接得太長導致驅(qū)動變?nèi)?,可以插入buf打斷net,來提高驅(qū)動;fanout太大,也可以通過插入buf來減少fanout數(shù)目。

3)Size up cell

這其實也是一種修復drv的手段,如果某個cell的驅(qū)動能力太弱,比較容易產(chǎn)生比較大的delay,因此我們可以通過size up這個cell來提高驅(qū)動能力,比如X1的BUF換成X4, X8的等。

但是我們在size up cell前也需要注意該cell的輸入/輸出transition的變化情況,因為驅(qū)動能力強的cell,它本身的load會比較大,可能會造成前一級cell驅(qū)動不了它的情況,所以實際的data path情況會比較復雜,不一定換大驅(qū)動的cell,delay就會變小。

一般情況下,如果我們看到某個cell的output transition比input transition大很多,那說明這個cell的驅(qū)動不夠,我們可以嘗試size up一下。如下圖所示:第一個X1的INV input transition是18.051,而輸出transition是66.328。明顯地時X1的INV推不動下面的14個fanout,可以考慮提高將X1的INV換成驅(qū)動更強的cell。

4)Layer assignment

這也是經(jīng)常使用的一種手段,通常來說,高層金屬電阻較小,net delay也較小。這種現(xiàn)象在先進工藝中更常出現(xiàn)。我們可以將繞在低層的net,刪除wire后,設(shè)置繞線屬性,讓它繞在高層。

2. 增加capture clock path delay

這也是經(jīng)常使用的一種修復setup的方法,也就是我們經(jīng)常說的手動useful skew的方法。如果我們發(fā)現(xiàn)在data path上沒有可以明顯減小delay的地方時,我們可以采用在capture clock前墊clock buf的手段來增加capture clock path delay,從而起到修復setup violation的目的。

但是,由于這樣會動到clock path,所以我們墊buf前還是需要很謹慎的。首先我們得確保從capture clock出發(fā)的下一級path是不是有setup slack margin,同時,檢查一下到當前該級register的input pin上的有沒有hold margin。

3. 減小launchclock path delay

這也是動clock path來修復setup violation的一種方法,不同的我們需要減小launchclock path delay。 這類方法在平時是很少使用到的,原因也是因為減小path delay是很困難的,更何況clock path上用得一般都是最快的cell。理論上我們可以減小clock path的級數(shù)來實現(xiàn),但實際操作起來還是要分析清楚clock的結(jié)構(gòu)。

上述就是一些修復setup violation的理論手段,在實際的ECO過程中,我們考慮得更多的是,如何提高修timing的效率? 畢竟如果timing path fail較多的話,手動修復是極其費力費時的一件事情。

一般signoff工具或者第三方的ECO工具都會自帶timing eco的功能,可以先做幾輪。 到工具修不動時,可以分析下timing報告,同時應(yīng)該要通過腳本處理自動產(chǎn)生一個Vt Swap的ECO腳本。因為,Vt Swap動的東西最少,甚至不需要重新eco route和抽spef,直接在signoff工具可以重新報timing看修復結(jié)果。

至于剩余的需要手修的path,照著timing report修復時,需要注意以下幾點:

1)檢查timing path的hold margin。 需要注意的是,一般setup的violation在SS corner下,而hold則出現(xiàn)在FF的corner下面,兩者之間有3倍左右的timing variation。所以,檢查margin時需要考慮不同的corner影響。如果設(shè)計頻率過高的話,可能會出現(xiàn)setup和hold相互打架的情況,這時可以考慮提高net delay占的比重,修出margin。

2)盡量動靠近endpoint的cell。因為越往path后面的cell,影響的path數(shù)目越少。但有時還是需要考慮path分叉情況再決定修復的方法。

3)修完所有path后,需要在PR工具中對動過的cell重新擺放以及route。

相比hold來說,setup要難修很多,大家在掌握修復方法以后,應(yīng)該進一步考慮如何通過腳本來提高工作的效率。

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

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124417
  • Setup
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    12230

原文標題:Less is more——如何修復setup violation?

文章出處:【微信號:IC_Physical_Design,微信公眾號:數(shù)字后端IC芯片設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    積分如何來的啊

    積分如何來的啊
    發(fā)表于 02-05 18:39

    2018年IC設(shè)計企業(yè)筆試題01英偉達Nvidia

    筆試真題:1、什么是建立時間、保持時間,如果setup time violation或者hold time violation 應(yīng)該怎么做?(10分)答案:建立時間:是指在觸發(fā)器的時鐘信號采樣邊沿
    發(fā)表于 11-26 14:39

    如何使用良好的RTL設(shè)計實踐進行修復

    the concepts of timing analysis such as setup hold time, skew , transport delay, other timing violation etc.
    發(fā)表于 02-14 08:16

    FPGA編譯在place步驟顯示“unusual high hold time violation detected”

    如題,F(xiàn)PGA編譯在place步驟顯示“unusual high hold time violation detected”,在place步驟會持續(xù)數(shù)小時,具體提示有"
    發(fā)表于 10-26 18:18

    MATLAB如何來設(shè)計濾波器

    MATLAB如何來設(shè)計濾波器,今天我們先來設(shè)計一些FIR濾波器。首先,我們打開MATLAB的help窗口,點擊Help->product Help1.jpg (72.14 KB, 下載次數(shù)
    發(fā)表于 08-17 07:29

    什么是Setup 和Holdup時間?

    什么是Setup 和Holdup時間? a) 什么是Setup 和Holdup時間?    建立時間(setup time)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)
    發(fā)表于 09-11 22:53 ?1.1w次閱讀

    net_framwork_setup

    net_framwork_setup,有興趣的同學可以下載學習
    發(fā)表于 04-27 17:12 ?9次下載

    pdf_setup

    pdf_setup bbv
    發(fā)表于 04-29 10:52 ?0次下載

    如何解決“access violation at address”錯誤

    “access violation at address”的意思是“在地址訪問沖突”,雖然具體意思不是這樣,但這個問題是Access Violation計算機用戶在運行的應(yīng)用程序試圖存取時未被指定使用的存儲區(qū)出現(xiàn)的問題。
    發(fā)表于 09-14 18:01 ?3.8w次閱讀

    何來手動修復max transition和max capacitance

    對于這種情況,我們可以選擇在該instance的右邊插入一個buffer,由于buffer的驅(qū)動較強,所以讓它來驅(qū)動右邊的10幾個instance,這樣就能顯著降低fanout的數(shù)目,修復max transition的violation
    的頭像 發(fā)表于 11-02 17:06 ?2.4w次閱讀
    如<b class='flag-5'>何來</b>手動<b class='flag-5'>修復</b>max transition和max capacitance

    Setup軟件安裝可執(zhí)行程序工具免費下載

    消失的情況,一般是由于系統(tǒng)缺少此文件,下載setup.exe進行修復即可。setup.exe程序是對某些軟件、游戲、程序進行安裝時的必備工具!
    發(fā)表于 11-13 08:00 ?11次下載

    如何修復ECO階段的Noise Violation

    如下圖所示,有時候,這個毛刺信號比較小,可以忽略;但是,當毛刺信號足夠高而且持續(xù)時間較長,這就有可能導致邏輯功能發(fā)生變化,破壞了門電路所保存的狀態(tài),使得電路發(fā)生故障。因此,在最后timing signoff中,noise引起的glitch是我們必須要修復
    的頭像 發(fā)表于 01-14 13:55 ?7702次閱讀
    如何<b class='flag-5'>修復</b>ECO階段的Noise <b class='flag-5'>Violation</b>

    圖形界面介紹:GUI上的按鍵是Violation Browser

    我們可以通過Layout上的快捷菜單按鈕或者Tools下面的Violation Browser按鍵來打開它。如下圖所示:左邊layout圖中白色部分就是violation, 右邊f(xié)orm圖中就是對它的介紹
    的頭像 發(fā)表于 05-19 16:53 ?2998次閱讀
    圖形界面介紹:GUI上的按鍵是<b class='flag-5'>Violation</b> Browser

    通過解剖一個邊沿觸發(fā)器簡要說明setup和hold產(chǎn)生原因

    在后仿真過程中經(jīng)常會遇到關(guān)于setup和hold violation的問題,但是關(guān)于setup和hold time的產(chǎn)生原因和由來很多人還比較朦朧,為此本文通過解剖一個邊沿觸發(fā)器簡要說明set
    的頭像 發(fā)表于 07-04 09:32 ?2377次閱讀
    通過解剖一個邊沿觸發(fā)器簡要說明<b class='flag-5'>setup</b>和hold產(chǎn)生原因

    什么是Setup和Hold時間?

    時鐘的上升沿之前,輸入信號需要穩(wěn)定在有效的數(shù)據(jù)值上的最小時間間隔。Hold時間指的是在時鐘的上升沿之后,輸入信號需要保持在有效的數(shù)據(jù)值上的最小時間間隔。這兩個時間要求是保證數(shù)據(jù)在電路中的正確傳輸和處理的關(guān)鍵。 首先,讓我們更深入地了解一下Setup時間
    的頭像 發(fā)表于 11-17 14:11 ?2832次閱讀