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

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

3天內不再提示

時序分析是FPGA設計中永恒的話題

FPGA研究院 ? 來源:FPGA之家 ? 2023-03-30 10:10 ? 次閱讀

時序分析是FPGA設計中永恒的話題,也是FPGA開發(fā)人員設計進階的必由之路。慢慢來,先介紹時序分析中的一些基本概念。

1時鐘相關

時鐘的時序特性主要分為抖動(Jitter)、偏移(Skew)、占空比失真(Duty Cycle Distortion)3點。對于低速設計,基本不用考慮這些特征;對于高速設計,由于時鐘本身的原因造成的時序問題很普遍,因此必須關注。

fc0a1966-ce89-11ed-bfe3-dac502259ad0.jpg

2時鐘抖動 (clock jitter)

理想的時鐘信號應該是理想的方波,但是現(xiàn)實中的時鐘的邊沿變化不可能是瞬變的,它有個 從低到高 / 從高到低 的變化過程,如圖1所示。

常見的抖動參數(shù)有3種

周期抖動(Period Jitter):

周期抖動率(Period Jitter)測量時鐘輸出傳輸偏離其理想位置的最大偏離。Period Jitter代表周期差抖動的上下邊界。

fc2e8cf6-ce89-11ed-bfe3-dac502259ad0.jpg

周期差抖動(cycle-to-cycle Jitter):

周期差抖動率(cycle-to-cycle jitter)是兩個相鄰周期的時間偏差。它總是小于周期抖動(period jitter)

fc517a18-ce89-11ed-bfe3-dac502259ad0.jpg

長期抖動(Long-term Jitter):

長期抖動率如下圖(Long-Term Jitter)定義為一個時鐘沿相對于基準周期時鐘沿經過一段時間的延時之后,與其理想位置的偏離。此測量可以捕獲鎖相環(huán)低頻周期變化(緩慢的,頻率很低的)。長期抖動對圖形、串行連接通訊系統(tǒng)、打印機和任何光柵掃描操作非常重要。

fc517a18-ce89-11ed-bfe3-dac502259ad0.jpg

時鐘抖動的原因就是噪聲。時鐘抖動是永遠存在的,當其大到可以和時鐘周期相比擬的時候,會影響到設計,這樣的抖動是不可接受的。

3時鐘偏斜 (clock skew)

時鐘信號要提供給整個電路的時序單元,所以時鐘信號線非常長,并構成分布式的RC網路。它的延時與時鐘線的長度、時序單元的負載電容、個數(shù)有關,所以產生所謂的時鐘偏移。時鐘偏移是指同一個時鐘信號到達兩個不同的寄存器之間的時間差值,根據(jù)差值可以分為正偏移和負偏移。

fc90a0f8-ce89-11ed-bfe3-dac502259ad0.jpg

時鐘偏移的計算公式:Tskew = Tclk2 - Tclk1

時鐘偏移是永遠存在的,當其大到一定程度會影響電路的時序。解決方法就是在FPGA的設計中讓主要的時鐘信號走全局時鐘網絡。該網絡采用全銅工藝和樹狀結構,并設計了專用時鐘緩沖和驅動網絡,到所有的IO單元、CLB和塊RAM的偏移非常小,可以忽略不計。

4占空比失真DCD (Duty Cycle Distortion)

即時鐘不對稱,時鐘的脈沖寬度發(fā)生了變化。DCD會吞噬大量的時序裕量,造成數(shù)字信號的失真,使過零區(qū)間偏離理想的位置。DCD通常是由信號的上升沿和下降沿之間時序不同而造成的。

5信號扇入/扇出 (fan-in/fan-out)

The number of circuits that can be fed input signals from an output device. 扇出,輸出可從輸出設備輸入信號的電路的數(shù)量。

扇出(fan-out)是定義單個邏輯門能夠驅動的數(shù)字信號輸入最大量的術語。大多數(shù)TTL邏輯門能夠為10個其他數(shù)字門或驅動器提供信號。因而,一個典型的TTL邏輯門有10個扇出信號。

在一些數(shù)字系統(tǒng)中,必須有一個單一的TTL邏輯門來驅動10個以上的其他門或驅動器。這種情況下,被稱為緩沖器(buf)的驅動器可以用在TTL邏輯門與它必須驅動的多重驅動器之間。這種類型的緩沖器有25至30個扇出信號。邏輯反向器(也被稱為非門)在大多數(shù)數(shù)字電路中能夠輔助這一功能。

模塊的扇出是指模塊的直屬下層模塊的個數(shù)。一般認為,設計得好的系統(tǒng)平均扇出是3或4。一個模塊的扇出數(shù)過大或過小都不理想,過大比過小更嚴重。一般認為扇出的上限不超過7。扇出過大意味著管理模塊過于復雜,需要控制和協(xié)調過多的下級。解決的辦法是適當增加中間層次。一個模塊的扇入是指有多少個上級模塊調用它。扇人越大,表示該模塊被更多的上級模塊共享。這當然是我們所希望的。但是不能為了獲得高扇人而不惜代價,例如把彼此無關的功能湊在一起構成一個模塊,雖然扇人數(shù)高了,但這樣的模塊內聚程度必然低。這是我們應避免的。

設計得好的系統(tǒng),上層模塊有較高的扇出,下層模塊有較高的扇人。其結構圖像清真寺的塔,上面尖,中間寬,下面小。

6launch edge

時序分析起點(launch edge):第一級寄存器數(shù)據(jù)變化的時鐘邊沿,也是靜態(tài)時序分析的起點。

7latch edge

時序分析終點(latch edge):數(shù)據(jù)鎖存的時鐘邊沿,也是靜態(tài)時序分析的終點。

8Clock-to-Output Delay

數(shù)據(jù)輸出延時(Tco):這個時間指的是當時鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時間間隔。

fcaaedbe-ce89-11ed-bfe3-dac502259ad0.jpg

9寄存器建立/保持時間 Setup/Hold Time

建立時間(setup time)是指觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間。輸入信號應提前時鐘上升沿(如上升沿有效)T 時間到達芯片,這個T 就是建立時間Setup time。簡而言之,時鐘邊沿觸發(fā)前,要求數(shù)據(jù)必須存在一段時間,這就是器件需要的建立時間。如不滿足setup time,這個數(shù)據(jù)就不能被這一時鐘打入觸發(fā)器,只有在下一個時鐘上升沿,數(shù)據(jù)才能被打入觸發(fā)器。

fcc162a6-ce89-11ed-bfe3-dac502259ad0.jpg

保持時間(hold time)是指觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間。簡而言之,時鐘邊沿觸發(fā)后,數(shù)據(jù)也必須保持一段時間,以便能夠穩(wěn)定讀取,這就是器件需要的保持時間。如果hold time 不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。

如果不滿足建立和保持時間的話,那么DFF(D type flip-flop/D類型觸發(fā)器) 將不能正確地采樣到數(shù)據(jù),將會出現(xiàn)亞穩(wěn)態(tài)(metastability )的情況。如果數(shù)據(jù)信號在時鐘沿觸發(fā)前后持續(xù)的時間均超過建立和保持時間,那么超過量就分別被稱為建立時間裕量和保持時間裕量。

10Data Arrival Time

輸入數(shù)據(jù)在有效時鐘沿后到達所需要的時間。主要分為三部分:時鐘到達寄存器時間(Tclk1),寄存器輸出延時(Tco)和數(shù)據(jù)傳輸延時(Tdata)

fcd68e92-ce89-11ed-bfe3-dac502259ad0.jpg

Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata

11Clock Arrival Time

時鐘從latch邊沿到達鎖存寄存器時鐘輸入端所消耗的時間為時鐘到達時間。

fcf23ad4-ce89-11ed-bfe3-dac502259ad0.jpg

Clock Arrival Time = Lacth edge + Tclk2

12建立裕量 Setup Slack

當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,就說時間有余量,Slack是表示設計是否滿足時序的一個稱謂。

fd125da0-ce89-11ed-bfe3-dac502259ad0.jpg

Setup slack = Data Required Time - Data Arrival Time

正的slack表示數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間,滿足時序(時序的余量),負的slack表示數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間,不滿足時序(時序的欠缺量)。

13Recovery/Removal Time

Recovery time is the minimum length of time an asynchronous control signal, for example, and preset, must be stable before the next active clock edge. The recovery slack time calculation is similar to the clock setup slack time calculation, but it applies asynchronous control signals.

Removal time is the minimum length of time an asynchronous control signal must be stable after the active clock edge. The TimeQuest analyzer removal time slack calculation is similar to the clock hold slack calculation, but it applies asynchronous control signals.

recovery time specifies the time the inactive edge of the asynchronous signal has to arrive before the closing edge of the clock.

Removal time specifies the length of time the active phase of the asynchronous signal has to be held after the closing edge of the clock.

也就是說Recovery / Removal time類似于Setup / Hold Time,不過是用于異步信號,比如set,reset信號。他們檢查異步型號的邊沿,釋放沿必須在時鐘沿前面提前recovery time釋放,或者在時鐘沿后removal time之后釋放。注意異步復位亞穩(wěn)態(tài)問題!

14最大時鐘頻率

時鐘最小周期:系統(tǒng)時鐘能運行的最高頻率。

(1)當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,時鐘具有余量;

(2)當數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間時,不滿足時序要求,寄存器經歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù);

(3)當數(shù)據(jù)需求時間等于數(shù)據(jù)到達時間時,這是最小時鐘運行頻率,剛好滿足時序。

最小時鐘周期為數(shù)據(jù)到達時間等于數(shù)據(jù)需求時間。

15時序分析

分析第9節(jié)的圖,數(shù)據(jù)傳播的路徑從上一級觸發(fā)器到下一級觸發(fā)器建立經過的數(shù)據(jù)時延總和為:Tclk1 + Tco + Tdata + Tsetup-slack + Tsu

在兩級寄存器之間,時鐘間隔為:Tclk + Tclk2

根據(jù)建立時間要求(在下一個時鐘上升沿到來的時候,數(shù)據(jù)必須穩(wěn)定,且保持一定的時間Tsu)可以列一個不等式:數(shù)據(jù)時延 < 時鐘間隔,即

Tclk1 + Tco + Tdata + Tsetup-slack + Tsu <= Tclk + Tclk2

同理,根據(jù)保持時間要求(時鐘上升沿到來后,寄存器鎖存數(shù)據(jù)的時候,數(shù)據(jù)要保持一定的穩(wěn)定時間Th)可以列一個不等式:

Tco + Tdata <= Th

隨著系統(tǒng)時鐘 fclk 變大時,Tclk變小,則要求 Tco + Tdata 也變小,當 Tco + Tdata 不滿足第一個不等式時,不滿足建立時間要求;但是,Tco + Tdata 也不是越小越好,當其太小時,不滿足第二個不等式時,觸發(fā)器不能正常鎖存數(shù)據(jù),即不滿足保持時間要求。從某種意義上說,Th限制了數(shù)據(jù)傳輸速率。

對于設計者來說最大的目的是提高時序的裕量,這樣即使信號完整性上出現(xiàn)一點問題,或者外界環(huán)境發(fā)生一定的變化,系統(tǒng)仍然能正常工作,這就是一個設計優(yōu)良的系統(tǒng)應該體現(xiàn)出的超強的穩(wěn)定性。

審核編輯 :李倩

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

    關注

    1620

    文章

    21510

    瀏覽量

    598921
  • 時鐘
    +關注

    關注

    10

    文章

    1673

    瀏覽量

    130959
  • 時序分析
    +關注

    關注

    2

    文章

    127

    瀏覽量

    22527

原文標題:時序分析是FPGA設計中永恒的話題

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA的IO口時序約束分析

      在高速系統(tǒng)FPGA時序約束不止包括內部時鐘約束,還應包括完整的IO時序約束和時序例外約束才能實現(xiàn)PCB板級的
    發(fā)表于 09-27 09:56 ?1638次閱讀

    時序分析的一些基本概念

    時序分析FPGA設計永恒的話題,也是FPGA開發(fā)
    發(fā)表于 10-21 09:28 ?1830次閱讀

    FPGA時序分析

    FPGA時序分析系統(tǒng)時序基礎理論對于系統(tǒng)設計工程師來說,時序問題在設計是至關重要的,尤其是隨著
    發(fā)表于 08-11 17:55

    靜態(tài)時序分析在高速 FPGA設計的應用

    介紹了采用STA (靜態(tài)時序分析)對FPGA (現(xiàn)場可編程門陣列)設計進行時序驗證的基本原理,并介紹了幾種與STA相關聯(lián)的時序約束。針對
    發(fā)表于 05-27 08:58 ?70次下載
    靜態(tài)<b class='flag-5'>時序</b><b class='flag-5'>分析</b>在高速 <b class='flag-5'>FPGA</b>設計<b class='flag-5'>中</b>的應用

    基于時序路徑的FPGA時序分析技術研究

    基于時序路徑的FPGA時序分析技術研究_周珊
    發(fā)表于 01-03 17:41 ?2次下載

    時序分析的一些基本概念

    時序分析FPGA設計永恒的話題,也是FPGA開發(fā)
    發(fā)表于 02-11 19:08 ?4166次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b><b class='flag-5'>中</b>的一些基本概念

    基于KNN的話題跟蹤研究_李樹平

    基于KNN的話題跟蹤研究_李樹平
    發(fā)表于 03-18 09:50 ?0次下載

    FPGA時序約束設計

    一個好的FPGA設計一定是包含兩個層面:良好的代碼風格和合理的約束。時序約束作為FPGA設計不可或缺的一部分,已發(fā)揮著越來越重要的作用。毋庸置疑,
    發(fā)表于 11-17 07:54 ?2478次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>時序</b>約束設計

    結合詞向量和聚類算法的話題演進分析

    的詞向量,利用K-means對詞向量進行聚類,從而實現(xiàn)話題關鍵詞的抽取。實驗對比了基于PLSA和LDA主題模型下的話題抽取效果,發(fā)現(xiàn)本文的話題分析效果優(yōu)于主題模型的方法。同時,采集足夠
    發(fā)表于 11-24 15:44 ?1次下載

    關于怎么代碼對齊的話題

    關于代碼對齊的話題
    的頭像 發(fā)表于 03-20 14:00 ?2204次閱讀
    關于怎么代碼對齊<b class='flag-5'>的話題</b>

    正點原子FPGA靜態(tài)時序分析時序約束教程

    時序分析結果,并根據(jù)設計者的修復使設計完全滿足時序約束的要求。本章包括以下幾個部分: 1.1 靜態(tài)時序分析簡介 1.2
    發(fā)表于 11-11 08:00 ?60次下載
    正點原子<b class='flag-5'>FPGA</b>靜態(tài)<b class='flag-5'>時序</b><b class='flag-5'>分析</b>與<b class='flag-5'>時序</b>約束教程

    時序分析時序約束的基本概念詳細說明

    時序分析FPGA設計永恒的話題,也是FPGA開發(fā)
    發(fā)表于 01-08 16:57 ?28次下載
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>和<b class='flag-5'>時序</b>約束的基本概念詳細說明

    FPGAIO口的時序分析詳細說明

    在高速系統(tǒng)FPGA時序約束不止包括內部時鐘約束,還應包括完整的IO時序約束利序例外約束才能實現(xiàn)PCB板級的時序收斂。因此,
    發(fā)表于 01-13 17:13 ?11次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>IO口的<b class='flag-5'>時序</b><b class='flag-5'>分析</b>詳細說明

    FPGA設計時序分析的基本概念

    時序分析FPGA設計永恒的話題,也是FPGA開發(fā)
    的頭像 發(fā)表于 03-18 11:07 ?2542次閱讀

    深度解析FPGA時序約束

    建立時間和保持時間是FPGA時序約束兩個最基本的概念,同樣在芯片電路時序分析也存在。
    的頭像 發(fā)表于 08-06 11:40 ?325次閱讀
    深度解析<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>時序</b>約束