<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2022-03-18 11:07 ? 次閱讀

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

1. 時鐘相關

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

1. 時鐘抖動 (clock jitter)

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

ec1ad0e6-a666-11ec-952b-dac502259ad0.jpg

常見的抖動參數有3種:

周期抖動(Period Jitter):

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

ec2fd5ae-a666-11ec-952b-dac502259ad0.jpg

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

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

ec47342e-a666-11ec-952b-dac502259ad0.jpg

長期抖動(Long-term Jitter):

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

ec5ded22-a666-11ec-952b-dac502259ad0.jpg

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

2. 時鐘偏斜 (clock skew)

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

ec744fae-a666-11ec-952b-dac502259ad0.jpg

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

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

3. 占空比失真DCD (Duty Cycle Distortion)

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

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

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

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

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

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

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

3. launch edge

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

4. latch edge

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

5. Clock-to-Output Delay

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

ec92fb66-a666-11ec-952b-dac502259ad0.jpg

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

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

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

ecac6f4c-a666-11ec-952b-dac502259ad0.jpg

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

7. Data Arrival Time

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

ecc4f206-a666-11ec-952b-dac502259ad0.jpg

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

8. Clock Arrival Time

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

ecda3878-a666-11ec-952b-dac502259ad0.jpg

Clock Arrival Time = Lacth edge + Tclk2

9. 建立裕量 Setup Slack

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

ecf0e2c6-a666-11ec-952b-dac502259ad0.jpg

Setup slack = Data Required Time - Data Arrival Time

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

10. Recovery/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之后釋放。注意異步復位亞穩態問題!

11. 最大時鐘頻率

時鐘最小周期:系統時鐘能運行的最高頻率。

1. 當數據需求時間大于數據到達時間時,時鐘具有余量;

2. 當數據需求時間小于數據到達時間時,不滿足時序要求,寄存器經歷亞穩態或者不能正確獲得數據;

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

最小時鐘周期為數據到達時間等于數據需求時間。

12. 時序分析

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

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

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

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

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

Tco + Tdata 《= Th

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

對于設計者來說最大的目的是提高時序的裕量,這樣即使信號完整性上出現一點問題,或者外界環境發生一定的變化,系統仍然能正常工作,這就是一個設計優良的系統應該體現出的超強的穩定性。

原文標題:FPGA學習-時序分析/約束:相關概念

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

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

    關注

    1608

    文章

    21367

    瀏覽量

    594616
  • 時序分析
    +關注

    關注

    2

    文章

    126

    瀏覽量

    22493
  • 時鐘信號
    +關注

    關注

    4

    文章

    387

    瀏覽量

    28193

原文標題:FPGA學習-時序分析/約束:相關概念

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    時序分析中的一些基本概念

    時序分析FPGA設計中永恒的話題,也是FPGA開發人員設計進階的必由之路。慢慢來,先介紹時序分析
    發表于 10-21 09:28 ?1522次閱讀

    Fpga Cpld的基本概念

    Fpga Cpld的基本概念
    發表于 08-20 17:14

    FPGA時序時序分析基本概念

    + 組合邏輯延時Tlogic + FPGA內部的網絡延時Tnet + 寄存器時鐘建立時間Tsu –時鐘偏斜TclkskewFmax = 1 / Tclk在QuartusII時序分析后很容易看到Fmax
    發表于 07-03 02:11

    FPGA時序時序分析基本概念

    + 組合邏輯延時Tlogic + FPGA內部的網絡延時Tnet + 寄存器時鐘建立時間Tsu –時鐘偏斜TclkskewFmax = 1 / Tclk在QuartusII時序分析后很容易看到Fmax
    發表于 07-09 09:16

    FPGA時序分析與約束(1)——基本概念 精選資料分享

    FPGA時序分析與約束(1)本文中時序分析使用的平臺:quartusⅡ13.0芯片廠家:Inter1、什么是
    發表于 07-26 06:56

    時序分析中的一些基本概念

    時序分析FPGA設計中永恒的話題,也是FPGA開發人員設計進階的必由之路。慢慢來,先介紹時序分析
    發表于 02-11 19:08 ?4051次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>中的一些<b class='flag-5'>基本概念</b>

    時序分析基本概念——STA概述簡析

    時序分析基本概念介紹——STA概述,動態時序分析,主要是通過輸入向量作為激勵,來驗證整個設計的時序
    的頭像 發表于 12-14 17:01 ?2.8w次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>——STA概述簡析

    時序分析基本概念介紹——時序庫Lib,除了這些你還想知道什么?

    時序分析基本概念介紹——時序庫Lib。用于描述物理單元的時序和功耗信息的重要庫文件。lib庫是最基本的
    的頭像 發表于 12-15 17:11 ?1.1w次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>介紹——<b class='flag-5'>時序</b>庫Lib,除了這些你還想知道什么?

    詳細介紹時序基本概念Timing arc

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

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

    時序分析FPGA設計中永恒的話題,也是FPGA開發人員設計進階的必由之路。慢慢來,先介紹時序分析
    發表于 01-08 16:57 ?28次下載
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>和<b class='flag-5'>時序</b>約束的<b class='flag-5'>基本概念</b>詳細說明

    時序設計基本概念之collection

    今天我們要介紹的時序分析基本概念是collection。代表的是一個集合,類似指針。在數字后端工具中,我們可以通過命令get_*來尋找想要的Object。這些get_*命令返回的就是collection。不同類型的object對
    的頭像 發表于 11-26 10:30 ?3404次閱讀

    靜態時序分析基本概念和方法

    向量和動態仿真 。本文將介紹靜態時序分析基本概念和方法,包括時序約束,時序路徑,時序裕量,se
    的頭像 發表于 06-28 09:38 ?918次閱讀
    靜態<b class='flag-5'>時序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>和方法

    介紹時序分析基本概念lookup table

    今天要介紹的時序分析基本概念是lookup table。中文全稱時序查找表。
    的頭像 發表于 07-03 14:30 ?854次閱讀
    介紹<b class='flag-5'>時序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>lookup table

    介紹時序分析基本概念MMMC

    今天我們要介紹的時序分析基本概念是MMMC分析(MCMM)。全稱是multi-mode, multi-corner, 多模式多端角分析模式。
    的頭像 發表于 07-04 15:40 ?1773次閱讀
    介紹<b class='flag-5'>時序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>MMMC

    時序分析Slew/Transition基本概念介紹

    今天要介紹的時序分析基本概念是Slew,信號轉換時間,也被稱為transition time。
    的頭像 發表于 07-05 14:50 ?1954次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>Slew/Transition<b class='flag-5'>基本概念</b>介紹
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>