時(shí)序分析的一些基本概念
時(shí)序分析時(shí)FPGA設計中永恒的話(huà)題,也是FPGA開(kāi)發(fā)人員設計進(jìn)階的必由之路。慢慢來(lái),先介紹時(shí)序分析中的一些基本概念。
本文引用地址:http://dyxdggzs.com/article/201808/385204.htm1. 時(shí)鐘相關(guān)
時(shí)鐘的時(shí)序特性主要分為抖動(dòng)(Jitter)、偏移(Skew)、占空比失真(Duty Cycle Distortion)3點(diǎn)。對于低速設計,基本不用考慮這些特征;對于高速設計,由于時(shí)鐘本身的原因造成的時(shí)序問(wèn)題很普遍,因此必須關(guān)注。
1. 時(shí)鐘抖動(dòng) (clock jitter)
理想的時(shí)鐘信號應該是理想的方波,但是現實(shí)中的時(shí)鐘的邊沿變化不可能是瞬變的,它有個(gè) 從低到高 / 從高到低 的變化過(guò)程,如圖1所示。
常見(jiàn)的抖動(dòng)參數有3種:
周期抖動(dòng)(Period Jitter):
周期抖動(dòng)率(Period Jitter)測量時(shí)鐘輸出傳輸偏離其理想位置的最大偏離。Period Jitter代表周期差抖動(dòng)的上下邊界。

周期差抖動(dòng)(cycle-to-cycle Jitter):
周期差抖動(dòng)率(cycle-to-cycle jitter)是兩個(gè)相鄰周期的時(shí)間偏差。它總是小于周期抖動(dòng)(period jitter)

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

時(shí)鐘抖動(dòng)的原因就是噪聲。時(shí)鐘抖動(dòng)是永遠存在的,當其大到可以和時(shí)鐘周期相比擬的時(shí)候,會(huì )影響到設計,這樣的抖動(dòng)是不可接受的。
2. 時(shí)鐘偏斜 (clock skew)
時(shí)鐘信號要提供給整個(gè)電路的時(shí)序單元,所以時(shí)鐘信號線(xiàn)非常長(cháng),并構成分布式的RC網(wǎng)路。它的延時(shí)與時(shí)鐘線(xiàn)的長(cháng)度、時(shí)序單元的負載電容、個(gè)數有關(guān),所以產(chǎn)生所謂的時(shí)鐘偏移。時(shí)鐘偏移是指同一個(gè)時(shí)鐘信號到達兩個(gè)不同的寄存器之間的時(shí)間差值,根據差值可以分為正偏移和負偏移。

時(shí)鐘偏移的計算公式: Tskew = Tclk2 - Tclk1
時(shí)鐘偏移是永遠存在的,當其大到一定程度會(huì )影響電路的時(shí)序。解決方法就是在FPGA的設計中讓主要的時(shí)鐘信號走全局時(shí)鐘網(wǎng)絡(luò )。該網(wǎng)絡(luò )采用全銅工藝和樹(shù)狀結構,并設計了專(zhuān)用時(shí)鐘緩沖和驅動(dòng)網(wǎng)絡(luò ),到所有的IO單元、CLB和塊RAM的偏移非常小,可以忽略不計。
3. 占空比失真DCD (Duty Cycle Distortion)
即時(shí)鐘不對稱(chēng),時(shí)鐘的脈沖寬度發(fā)生了變化。DCD會(huì )吞噬大量的時(shí)序裕量,造成數字信號的失真,使過(guò)零區間偏離理想的位置。DCD通常是由信號的上升沿和下降沿之間時(shí)序不同而造成的。
2. 信號扇入/扇出 (fan-in/fan-out)
The number of circuits that can be fed input signals from an output device. 扇出,輸出可從輸出設備輸入信號的電路的數量。
扇出(fan-out)是定義單個(gè)邏輯門(mén)能夠驅動(dòng)的數字信號輸入最大量的術(shù)語(yǔ)。大多數TTL邏輯門(mén)能夠為10個(gè)其他數字門(mén)或驅動(dòng)器提供信號。因而,一個(gè)典型的TTL邏輯門(mén)有10個(gè)扇出信號。
在一些數字系統中,必須有一個(gè)單一的TTL邏輯門(mén)來(lái)驅動(dòng)10個(gè)以上的其他門(mén)或驅動(dòng)器。這種情況下,被稱(chēng)為緩沖器(buf)的驅動(dòng)器可以用在TTL邏輯門(mén)與它必須驅動(dòng)的多重驅動(dòng)器之間。這種類(lèi)型的緩沖器有25至30個(gè)扇出信號。邏輯反向器(也被稱(chēng)為非門(mén))在大多數數字電路中能夠輔助這一功能。
模塊的扇出是指模塊的直屬下層模塊的個(gè)數。一般認為,設計得好的系統平均扇出是3或4。一個(gè)模塊的扇出數過(guò)大或過(guò)小都不理想,過(guò)大比過(guò)小更嚴重。一般認為扇出的上限不超過(guò)7。扇出過(guò)大意味著(zhù)管理模塊過(guò)于復雜,需要控制和協(xié)調過(guò)多的下級。解決的辦法是適當增加中間層次。一個(gè)模塊的扇入是指有多少個(gè)上級模塊調用它。扇人越大,表示該模塊被更多的上級模塊共享。這當然是我們所希望的。但是不能為了獲得高扇人而不惜代價(jià),例如把彼此無(wú)關(guān)的功能湊在一起構成一個(gè)模塊,雖然扇人數高了,但這樣的模塊內聚程度必然低。這是我們應避免的。
設計得好的系統,上層模塊有較高的扇出,下層模塊有較高的扇人。其結構圖像清真寺的塔,上面尖,中間寬,下面小。
3. launch edge
時(shí)序分析起點(diǎn)(launch edge):第一級寄存器數據變化的時(shí)鐘邊沿,也是靜態(tài)時(shí)序分析的起點(diǎn)。
4. latch edge
時(shí)序分析終點(diǎn)(latch edge):數據鎖存的時(shí)鐘邊沿,也是靜態(tài)時(shí)序分析的終點(diǎn)。
5. Clock-to-Output Delay
數據輸出延時(shí)(Tco):這個(gè)時(shí)間指的是當時(shí)鐘有效沿變化后,數據從輸入端到輸出端的最小時(shí)間間隔。

6. 寄存器建立/保持時(shí)間 Setup/Hold Time
建立時(shí)間(setup time)是指觸發(fā)器的時(shí)鐘信號上升沿到來(lái)以前,數據穩定不變的時(shí)間。輸入信號應提前時(shí)鐘上升沿(如上升沿有效)T 時(shí)間到達芯片,這個(gè)T 就是建立時(shí)間Setup time。簡(jiǎn)而言之,時(shí)鐘邊沿觸發(fā)前,要求數據必須存在一段時(shí)間,這就是器件需要的建立時(shí)間。如不滿(mǎn)足setup time,這個(gè)數據就不能被這一時(shí)鐘打入觸發(fā)器,只有在下一個(gè)時(shí)鐘上升沿,數據才能被打入觸發(fā)器。
保持時(shí)間(hold time)是指觸發(fā)器的時(shí)鐘信號上升沿到來(lái)以后,數據穩定不變的時(shí)間。簡(jiǎn)而言之,時(shí)鐘邊沿觸發(fā)后,數據也必須保持一段時(shí)間,以便能夠穩定讀取,這就是器件需要的保持時(shí)間。如果hold time 不夠,數據同樣不能被打入觸發(fā)器。

如果不滿(mǎn)足建立和保持時(shí)間的話(huà),那么DFF(D type flip-flop/D類(lèi)型觸發(fā)器) 將不能正確地采樣到數據,將會(huì )出現亞穩態(tài)(metastability )的情況。如果數據信號在時(shí)鐘沿觸發(fā)前后持續的時(shí)間均超過(guò)建立和保持時(shí)間,那么超過(guò)量就分別被稱(chēng)為建立時(shí)間裕量和保持時(shí)間裕量。
7. Data Arrival Time
輸入數據在有效時(shí)鐘沿后到達所需要的時(shí)間。主要分為三部分:時(shí)鐘到達寄存器時(shí)間(Tclk1),寄存器輸出延時(shí)(Tco)和數據傳輸延時(shí)(Tdata)

Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata
8. Clock Arrival Time
時(shí)鐘從latch邊沿到達鎖存寄存器時(shí)鐘輸入端所消耗的時(shí)間為時(shí)鐘到達時(shí)間。

Clock Arrival Time = Lacth edge + Tclk2
9. 建立裕量 Setup Slack
當數據需求時(shí)間大于數據到達時(shí)間時(shí),就說(shuō)時(shí)間有余量,Slack是表示設計是否滿(mǎn)足時(shí)序的一個(gè)稱(chēng)謂。

Setup slack = Data Required Time - Data Arrival Time
正的slack表示數據需求時(shí)間大于數據到達時(shí)間,滿(mǎn)足時(shí)序(時(shí)序的余量),負的slack表示數據需求時(shí)間小于數據到達時(shí)間,不滿(mǎn)足時(shí)序(時(shí)序的欠缺量)。
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.
也就是說(shuō)Recovery / Removal time類(lèi)似于Setup / Hold Time,不過(guò)是用于異步信號,比如set,reset信號。他們檢查異步型號的邊沿,釋放沿必須在時(shí)鐘沿前面提前recovery time釋放,或者在時(shí)鐘沿后removal time之后釋放。注意異步復位亞穩態(tài)問(wèn)題!
11. 最大時(shí)鐘頻率
時(shí)鐘最小周期:系統時(shí)鐘能運行的最高頻率。
1. 當數據需求時(shí)間大于數據到達時(shí)間時(shí),時(shí)鐘具有余量;
2. 當數據需求時(shí)間小于數據到達時(shí)間時(shí),不滿(mǎn)足時(shí)序要求,寄存器經(jīng)歷亞穩態(tài)或者不能正確獲得數據;
3. 當數據需求時(shí)間等于數據到達時(shí)間時(shí),這是最小時(shí)鐘運行頻率,剛好滿(mǎn)足時(shí)序。
最小時(shí)鐘周期為數據到達時(shí)間等于數據需求時(shí)間。
12. 時(shí)序分析
分析第9節的圖,數據傳播的路徑從上一級觸發(fā)器到下一級觸發(fā)器建立經(jīng)過(guò)的數據時(shí)延總和為:Tclk1 + Tco + Tdata + Tsetup-slack + Tsu
在兩級寄存器之間,時(shí)鐘間隔為:Tclk + Tclk2
根據建立時(shí)間要求(在下一個(gè)時(shí)鐘上升沿到來(lái)的時(shí)候,數據必須穩定,且保持一定的時(shí)間Tsu)可以列一個(gè)不等式:數據時(shí)延 時(shí)鐘間隔,即
Tclk1 + Tco + Tdata + Tsetup-slack + Tsu = Tclk + Tclk2
同理,根據保持時(shí)間要求(時(shí)鐘上升沿到來(lái)后,寄存器鎖存數據的時(shí)候,數據要保持一定的穩定時(shí)間Th)可以列一個(gè)不等式:
Tco + Tdata = Th
隨著(zhù)系統時(shí)鐘 fclk 變大時(shí),Tclk變小,則要求 Tco + Tdata 也變小,當 Tco + Tdata 不滿(mǎn)足第一個(gè)不等式時(shí),不滿(mǎn)足建立時(shí)間要求;但是,Tco + Tdata 也不是越小越好,當其太小時(shí),不滿(mǎn)足第二個(gè)不等式時(shí),觸發(fā)器不能正常鎖存數據,即不滿(mǎn)足保持時(shí)間要求。從某種意義上說(shuō),Th限制了數據傳輸速率。
對于設計者來(lái)說(shuō)最大的目的是提高時(shí)序的裕量,這樣即使信號完整性上出現一點(diǎn)問(wèn)題,或者外界環(huán)境發(fā)生一定的變化,系統仍然能正常工作,這就是一個(gè)設計優(yōu)良的系統應該體現出的超強的穩定性。
【文章轉載自網(wǎng)絡(luò ),版權歸原作者所有,若有侵權請聯(lián)系刪除】
評論