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

2021-01-06 電子產品世界

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

本文引用地址:http://www.eepw.com.cn/article/201710/365595.htm1. 時鐘相關

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

1. 時鐘抖動 (clock jitter)

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

常見的抖動參數有3種:

周期抖動(Period Jitter):

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

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

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

長期抖動(Long-term Jitter):

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

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

2. 時鐘偏斜 (clock skew)

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

時鐘偏移的計算公式: 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):這個時間指的是當時鐘有效沿變化後,數據從輸入端到輸出端的最小時間間隔。

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

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

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

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

7. Data Arrival Time

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

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

8. Clock Arrival Time

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

Clock Arrival Time = Lacth edge + Tclk2

9. 建立裕量 Setup Slack

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

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限制了數據傳輸速率。

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

相關焦點

  • 時序分析基本概念介紹
    今天我們要介紹的時序分析概念是min period,全稱為最小周期檢查。
  • 詳細介紹時序基本概念Timing arc
    打開APP 詳細介紹時序基本概念Timing arc 發表於 2018-01-02 09:29:04 今天我們要介紹的時序基本概念是
  • FPGA工程師進階必學:時序分析的基本步驟和整體設計思路
    最近看了看了一篇《vivado使用誤區與進階》的文章,覺得寫得挺不錯了,看完後自己對時序分析又有了更深一層的理解,故記錄下來。可能排版有些亂,有些圖都是直接從文章中截取,但是不影響閱讀。時序分析的基本步驟一個合理的時序約束,可以分為以下步驟:
  • 單片機時序分析
    這個鈴是按一定的時間安排來響的,我們可以稱之為「時序#0;#0;時間的順序」。一個由人組成的單位尚且要有一定的時序,計算機當然更要有嚴格的時序。事實上,計算機更象一個大鐘,什麼時候分針動,什麼時候秒針動,什麼時候時針動,都有嚴格的規定,一點也不能亂。計算機要完成的事更複雜,所以它的時序也更複雜。
  • 時序數據分析利器,青雲QingCloud ChronusDB 時序資料庫正式上線
    Tesla 自動駕駛過程中隨著時間和環境變化,通過傳感器收集的周邊數據。為了滿足工業物聯網、智能家居、監控等行業對時序數據的需求,青雲QingCloud 推出了 ChronusDB,它是我們自研的一款高效、安全、易用,具備強大分析能力的時序資料庫,具備超強的查詢分析功能、高性能並發讀寫、低成本存儲、豐富的時序數據處理能力、穩定可擴展等特性。
  • 時序資料庫的前世今生
    Facebook開源了beringei時序資料庫,基於PostgreSQL打造的時序資料庫TimeScaleDB也開源了。時序資料庫作為物聯網方向一個非常重要的服務,業界的頻頻發聲,正說明各家企業已經迫不及待的擁抱物聯網時代的到來。 本文會從時序資料庫的基本概念、應用場景、需求與能力等方面一一展開,帶你了解時序資料庫的前世今生。
  • 十分鐘看懂時序資料庫(I)-存儲
    時序資料庫作為物聯網方向一個非常重要的服務,業界的頻頻發聲,正說明各家企業已經迫不及待的擁抱物聯網時代的到來。本文會從時序資料庫的基本概念、使用場景、解決的問題一一展開,最後會從如何解決時序數據存儲這一技術問題入手進行深入分析。1.
  • FPGA quartus ii裡的靜態時序分析
    FPGA quartus ii裡的靜態時序分析 huan09900990 發表於 2020-11-25 11:39:35 在fpga工程中加入時序約束的目的: 1、給quartusii
  • NumPy中對數組進行切分及一些基本概念
    在NumPy中,該操作要用到切分方法。同理,我們也有一組函數,水平切分用hsplit( )函數,垂直切分用vsplit( )函數。水平切分數組的意思是把數組按照寬度切分成兩部分,例如4x4矩陣將被切分為兩個4x2的矩陣。反之,垂直切分指的是將數組按照高度分為兩部分,如4x4矩陣將被切分為兩個2x4矩陣。
  • 時序邏輯電路的特點及邏輯圖分析
    時序邏輯電路其任一時刻的輸出不僅取決於該時刻的輸入,而且還與過去各時刻的輸入有關。常見的時序邏輯電路有觸發器、計數器、寄存器等。由於時序邏輯電路具有存儲或記憶的功能,檢修起來就比較複雜。
  • 「監控」時序資料庫 InfluxDB 概述
    簡介InfluxDB 是一個用於存儲和分析時間序列數據的開源資料庫(集群模式的不對外開源)。適合處理和分析資源監控數據這種時序相關的數據。自帶的各種特殊函數(標準差,隨機取樣,統計數據變化比)等,使得數據分析變得十分方便。
  • 實例介紹UML時序圖用法
    UML的基本原理UML建模機制描述UML有靜態和動態兩種分析方法和建模機制。靜態建模分析主要通過類圖、對象圖、用例圖等來描述,一般用於系統的核心模塊設計;動態建模通過合作圖、狀態圖、活動圖、UML時序圖來表述,可以用來描述系統對象間的關係模式。
  • 數據分析中連結數據及基本操作
    若行列屬性不正確(如數值保留了字符串格式未轉化為數值格式),則無法進行可視化分析。適用於一些本地已有文件(如一些店鋪數據或是自錄數據表)的分析,或是一些未購買資料庫的企業。不需要分析的列名可點擊搜索框的「x」按鈕,刪除此列名。此方法是最為簡便的搜索方法,雙擊搜索即分析,尤其是一些列名規範的數據表,如「產品名稱」、「銷售金額」等寫明確的數據表,則能快速進行分析,雙擊兩個列名即可出現每個產品的銷售金額情況。
  • 騰訊優圖實驗室高級研究員棟豪:時序動作分析技術的研究與應用 |...
    12月14日晚7點,「騰訊優圖專場」第三講上線,由騰訊優圖實驗室高級研究員棟豪參與,並圍繞《時序動作分析技術的研究與應用》這一主題進行直播講解。對於時序的分析一直是學術研究的熱點領域,研究人員們也提出了針對序列化信息建模的各種方法,比如RNN、LSTM、GRU以及在NLP領域已廣泛應用的Transformer。
  • 「發個筆記」時間序列分析方法(實驗向):上手時序分析-SPSS
    顯示不那麼靠譜,但是也有一些事情,比如,明天的太陽從東邊升起,這個就很好預測,那麼問題來了,什麼事情是可以被預測的呢?由於譜分析過程一般都比較複雜,其分析結果也比較抽象,不易於進行直觀解釋,所以一般來說譜分析方法的使用具有較大的局限性。而時域分析方法的基本思想是源於事件的發展通常都具有一定的慣性,這種慣性可以使用統計語言中的相關關係來描述序列,也就是說序列具有統計意義。
  • Cleanits:製造業時序數據清洗系統
    工業大數據分析的合理性和可靠性對數據質量提出較高要求,然而機器採集的原始數據中往往混有許多錯誤。基於此,結合實際製造業數據質量問題現狀,本文研究並開發了一個製造業時序數據清洗系統:Cleanits. 該系統實現了對三種嚴重的製造業時序數據質量問題的檢測和修復,有效地提高製造業大數據的質量及其可用性。
  • 陳純:通過時序大數據打造實時智能分析大平臺
    世界浙商網9月24日訊 ( 《浙商》記者 陳曉 )「數據中所蘊藏的價值就在於分析的過程大數據分析處理技術將進入實時智能時代。」 2020年9月2日,中國工程院院士、浙江大學陳純教授在2020中國(杭州)傳媒技術生態高峰論壇上做了題為「時序大數據實時智能處理」的主題報告,分析了時序大數據實時智能處理技術,並介紹了該項技術目前的應用情況。
  • Python深度學習之TensorFlow中的一些基本概念
    在機器學習算法中,張量在數據流圖中從前往後流動一遍就完成了一次前向傳播(forward propagation),而殘差從後向前流動一遍就完成了一次反向傳播(backward propagation)。殘差指的是實際觀察值與訓練的估計值之間的差。
  • JUST技術:CK實現時序數據管理
    時序數據幾乎無處不在,在目前單向的時間流中,人的脈搏、空氣的溼度、股票的價格等都隨著時間的流逝不斷變化。時序數據是數據的一種,因為它顯著而有價值的特點,成為我們特別分析的對象。TDengine是濤思團隊開發的一個高效存儲、查詢和分析時序大數據的平臺,其創始人陶建輝年近5旬,依然開發出了這個資料庫。TDengine的定位是物聯網、車聯網、運維監測等時序數據,其設計也是專門針對每個設備。每個採集點一張表,比如空氣監測站有1000萬個,那麼就建1000萬個表,為了對多個採集點聚合查詢,又提出了超表的概念,將同類型的採集點表通過標籤區分,結構一樣。
  • 初學者Web介紹一些前端開發中的基本概念用到的技術
    今天,本文向初學者介紹一些Web開發中的基本概念和用到的技術,從A到Z總共26項,每項對應一個概念或者技術。初學者Web:介紹一些前端開發中的基本概念和用到的技術A — AJAXAJAX 全稱為「Asynchronous JavaScript and XML」(異步JavaScript和XML),是一種創建交互式網頁應用的網頁開發技術。