第二章 基本的時(shí)序路徑
第二章?基本的時(shí)序路徑
2.1時(shí)鐘的概念
1、時(shí)鐘的定義
同步設(shè)計(jì)中是指電路的狀態(tài)變化總是由某個(gè)周期信號(hào)的變化進(jìn)行觸發(fā)控制的,這個(gè)信號(hào)的上升沿和下降沿通常都可以作為電路狀態(tài)的觸發(fā)條件。同步設(shè)計(jì)中這個(gè)觸發(fā)電路狀態(tài)變化的信號(hào)稱為時(shí)鐘。
2、時(shí)鐘偏差
FPGA設(shè)計(jì)中最基本的時(shí)鐘來(lái)源通常為外接的晶振;然后其內(nèi)部集成了PLL等時(shí)鐘管理模塊,可以對(duì)基準(zhǔn)時(shí)鐘進(jìn)行分頻與倍頻。但這些時(shí)鐘他們的周期無(wú)法保證絕對(duì)的精準(zhǔn),由于外部因素會(huì)有偏差。當(dāng)然在內(nèi)部通過(guò)PLL得到的時(shí)鐘,編譯器在設(shè)計(jì)過(guò)程中已經(jīng)預(yù)留有時(shí)序余量。這時(shí)我們主要關(guān)注的是由外部晶振產(chǎn)生的時(shí)鐘信號(hào)。
晶振產(chǎn)生的時(shí)鐘通常會(huì)因?yàn)椴牧吓c工藝的因素產(chǎn)生一部分偏差,這些無(wú)法改變且影響較小。當(dāng)然你作為超高速應(yīng)用時(shí)也有很大關(guān)系。但最主要的還是晶振源固有的噪聲和干擾帶來(lái)的時(shí)鐘信號(hào)的周期性偏差,稱為時(shí)鐘抖動(dòng)。怎么理解,理解為按鍵消抖中被消去那一部分高低快速變化的時(shí)間。
2.2建立時(shí)間和保存時(shí)間
由于這個(gè)個(gè)人比較熟,簡(jiǎn)略記錄。
建立時(shí)間指時(shí)鐘上升沿到來(lái)之前數(shù)據(jù)必須保持穩(wěn)定的時(shí)間;
保持時(shí)間指時(shí)鐘上升沿到來(lái)之后數(shù)據(jù)必須保持穩(wěn)定的時(shí)間;
為什么要有這些要求,建立時(shí)間:坐飛機(jī)一樣(雖然我沒(méi)坐過(guò)),在飛機(jī)到了之前你得先到;保持時(shí)間:飛機(jī)到了之后你要登記啥的,需要一段時(shí)間;不能直接起飛。
下面舉例引入啟動(dòng)沿與鎖存沿
有兩級(jí)寄存器reg1與reg2,1在2前面,他們相互連接。
數(shù)據(jù)A,到達(dá)reg1門(mén)前,這時(shí)時(shí)鐘上升沿Launch來(lái)到,A寄存在reg1,reg2寄存reg1之前的數(shù)據(jù),不是A;又過(guò)了一會(huì)兒,時(shí)鐘上升沿Latch來(lái)到,這時(shí)reg2寄存了reg1中的數(shù)據(jù)A。
時(shí)鐘上升沿Launch,稱為啟動(dòng)沿
時(shí)鐘上升沿Latch,稱為鎖存沿
一般鎖存沿在啟動(dòng)沿的后一個(gè)周期,當(dāng)然這是沒(méi)有進(jìn)行時(shí)序約束的情況下。
2.3時(shí)序路徑分析
在這本書(shū)中這一部分內(nèi)容較多,且公式多,也是簡(jiǎn)單記錄。
首先明確一點(diǎn),數(shù)據(jù)在傳輸過(guò)程中不是越快越好,最重要的是要符合時(shí)序要求。
剛剛翻書(shū)的時(shí)候看到這一節(jié)的時(shí)候還是有點(diǎn)疑惑的,書(shū)中公式中使用的是Launch與Latch,按照個(gè)人理解,建立時(shí)間裕量與保持時(shí)間裕量應(yīng)該是與該周期之前之后有關(guān)。一開(kāi)始認(rèn)為書(shū)中寫(xiě)的不夠嚴(yán)謹(jǐn),但在我翻看書(shū)中介紹啟動(dòng)沿與鎖存沿時(shí),他是對(duì)數(shù)據(jù)A與數(shù)據(jù)A之前的數(shù)據(jù)進(jìn)行分析的;在我的學(xué)習(xí)過(guò)程中,我是以數(shù)據(jù)A為主體,進(jìn)行時(shí)序分析的,這會(huì)導(dǎo)致大家使用的鎖存沿的不同,導(dǎo)致分析中會(huì)出現(xiàn)歧義,但是這都是可以的,使用書(shū)中的說(shuō)法進(jìn)行時(shí)序分析會(huì)更加嚴(yán)謹(jǐn)。
但這會(huì)對(duì)我之前所寫(xiě)的關(guān)于鎖存沿的介紹產(chǎn)生沖突,所以這里延用個(gè)人理解。
首先,兩個(gè)寄存器都連接同一個(gè)時(shí)鐘,但是電信號(hào)的傳輸,導(dǎo)致各個(gè)寄存器上升沿到來(lái)的時(shí)間會(huì)有偏差,這里設(shè)reg1時(shí)間偏差為0,reg2時(shí)間偏差為遲到T1;
建立時(shí)間裕量:在我們知道建立時(shí)間是數(shù)據(jù)在上升沿到達(dá)時(shí)需要提前到達(dá)的最短時(shí)間,而建立時(shí)間裕量就是數(shù)據(jù)A比要求的最短建立時(shí)間提前到達(dá)的時(shí)間。
啟動(dòng)沿到達(dá)后,數(shù)據(jù)經(jīng)過(guò)寄存器1內(nèi)部,再輸出經(jīng)過(guò)內(nèi)部連線,到達(dá)寄存器2輸入端的時(shí)刻T2,而鎖存沿到達(dá)之前的建立時(shí)間為T(mén)3,那么T3-T2就是建立時(shí)間裕量。
保持時(shí)間裕量:我們知道鎖存沿到達(dá)后要經(jīng)過(guò)一個(gè)保持時(shí)間,而前面所說(shuō),鎖存沿是落后啟動(dòng)沿一個(gè)周期的,那么這時(shí)reg1已經(jīng)對(duì)數(shù)據(jù)A之后的數(shù)據(jù)B進(jìn)行操作了,經(jīng)過(guò)一段時(shí)間會(huì)到達(dá)reg2的輸入端,設(shè)到達(dá)的時(shí)刻為T(mén)5,但這時(shí)reg2在對(duì)數(shù)據(jù)A進(jìn)行操作,就是還處于保持時(shí)間,設(shè)通過(guò)保持時(shí)間的時(shí)刻為T(mén)4,那么T4-T5就是保持時(shí)間裕量。
上面只是進(jìn)行了簡(jiǎn)單的分析,具體內(nèi)容分析較為復(fù)雜,涉及參數(shù)眾多,可以參考書(shū)本。
而前面所說(shuō)數(shù)據(jù)不是越快越好,這就涉及到保持時(shí)間裕量了,我們應(yīng)該知道,裕量都要求是正數(shù),只有這樣數(shù)據(jù)才能正常處理。
在時(shí)序分析中會(huì)有很多種路徑分析,書(shū)中有非常詳細(xì)的講解。所以這里主要講解的是建立時(shí)間裕量與保持時(shí)間裕量的意義吧,無(wú)論在同步還是異步,其主要分析與要滿足的時(shí)序都與上面的分析相差不大。
?
?