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

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

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

時序分析是FPGA設(shè)計中永恒的話題

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

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

1時鐘相關(guān)

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

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

2時鐘抖動 (clock jitter)

理想的時鐘信號應(yīng)該是理想的方波,但是現(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)定義為一個時鐘沿相對于基準(zhǔn)周期時鐘沿經(jīng)過一段時間的延時之后,與其理想位置的偏離。此測量可以捕獲鎖相環(huán)低頻周期變化(緩慢的,頻率很低的)。長期抖動對圖形、串行連接通訊系統(tǒng)、打印機(jī)和任何光柵掃描操作非常重要。

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

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

3時鐘偏斜 (clock skew)

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

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

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

時鐘偏移是永遠(yuǎn)存在的,當(dāng)其大到一定程度會影響電路的時序。解決方法就是在FPGA的設(shè)計中讓主要的時鐘信號走全局時鐘網(wǎng)絡(luò)。該網(wǎng)絡(luò)采用全銅工藝和樹狀結(jié)構(gòu),并設(shè)計了專用時鐘緩沖和驅(qū)動網(wǎng)絡(luò),到所有的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è)備輸入信號的電路的數(shù)量。

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

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

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

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

6launch edge

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

7latch edge

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

8Clock-to-Output Delay

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

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

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

建立時間(setup time)是指觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間。輸入信號應(yīng)提前時鐘上升沿(如上升沿有效)T 時間到達(dá)芯片,這個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ù)在有效時鐘沿后到達(dá)所需要的時間。主要分為三部分:時鐘到達(dá)寄存器時間(Tclk1),寄存器輸出延時(Tco)和數(shù)據(jù)傳輸延時(Tdata)

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

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

11Clock Arrival Time

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

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

Clock Arrival Time = Lacth edge + Tclk2

12建立裕量 Setup Slack

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

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

Setup slack = Data Required Time - Data Arrival Time

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

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之后釋放。注意異步復(fù)位亞穩(wěn)態(tài)問題!

14最大時鐘頻率

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

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

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

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

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

15時序分析

分析第9節(jié)的圖,數(shù)據(jù)傳播的路徑從上一級觸發(fā)器到下一級觸發(fā)器建立經(jīng)過的數(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 也變小,當(dāng) Tco + Tdata 不滿足第一個不等式時,不滿足建立時間要求;但是,Tco + Tdata 也不是越小越好,當(dāng)其太小時,不滿足第二個不等式時,觸發(fā)器不能正常鎖存數(shù)據(jù),即不滿足保持時間要求。從某種意義上說,Th限制了數(shù)據(jù)傳輸速率。

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

審核編輯 :李倩

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

    關(guān)注

    1624

    文章

    21580

    瀏覽量

    600797
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1706

    瀏覽量

    131224
  • 時序分析
    +關(guān)注

    關(guān)注

    2

    文章

    127

    瀏覽量

    22538

原文標(biāo)題:時序分析是FPGA設(shè)計中永恒的話題

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

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA的IO口時序約束分析

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

    時序分析的一些基本概念

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

    FPGA時序分析

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

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

    介紹了采用STA (靜態(tài)時序分析)對FPGA (現(xiàn)場可編程門陣列)設(shè)計進(jìn)行時序驗證的基本原理,并介紹了幾種與STA相關(guān)聯(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>設(shè)計<b class='flag-5'>中</b>的應(yīng)用

    基于時序路徑的FPGA時序分析技術(shù)研究

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

    時序分析的一些基本概念

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

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

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

    FPGA時序約束設(shè)計

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

    結(jié)合詞向量和聚類算法的話題演進(jìn)分析

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

    關(guān)于怎么代碼對齊的話題

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

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

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

    時序分析時序約束的基本概念詳細(xì)說明

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

    FPGAIO口的時序分析詳細(xì)說明

    在高速系統(tǒng)FPGA時序約束不止包括內(nèi)部時鐘約束,還應(yīng)包括完整的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>詳細(xì)說明

    FPGA設(shè)計時序分析的基本概念

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

    深度解析FPGA時序約束

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