《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > FPGA建立時(shí)間和保持時(shí)間你必須知道的

FPGA建立時(shí)間和保持時(shí)間你必須知道的

2019-07-17
關(guān)鍵詞: FPGA 建立時(shí)間

  只要設(shè)計(jì)到時(shí)鐘上升沿或者下降沿的采樣,,就會(huì)提到建立時(shí)間(setup TIme) 和保持時(shí)間(hold TIme) ,。時(shí)鐘是FPGA設(shè)計(jì)中最重要的信號(hào),,F(xiàn)PGA系統(tǒng)內(nèi)大部分器件的動(dòng)作都是在時(shí)鐘的上升沿或者下降沿進(jìn)行,。無(wú)論是在輸入,輸出或是寄存器與寄存器之間,,

  建立時(shí)間(Tsu:set up TIme)是指在時(shí)鐘沿到來(lái)之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時(shí)間,,如果建立的時(shí)間不滿(mǎn)足要求那么數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被穩(wěn)定的打入觸發(fā)器;保持時(shí)間(Th:hold TIme)是指數(shù)據(jù)穩(wěn)定后保持的時(shí)間,如果保持時(shí)間不滿(mǎn)足要求那么數(shù)據(jù)同樣也不能被穩(wěn)定的打入觸發(fā)器,。

  建立時(shí)間和保持時(shí)間這兩個(gè)指標(biāo)說(shuō)明器件本身不是理想的(有時(shí)延等),,正是這個(gè)不理想的特性,限制了FPGA的時(shí)鐘工作頻率,。

  首先我們都知道setup TIme 和holdup time是由器件決定的,,并不是說(shuō)可以隨著你FPGA設(shè)計(jì)的改變而改變。那么FPGA時(shí)鐘頻率是怎么計(jì)算的呢,,在不考慮時(shí)鐘延時(shí)抖動(dòng)等條件下,,一個(gè)信號(hào)從觸發(fā)器的D端到Q端的延時(shí)假設(shè)是Tcd,從Q端出來(lái)之后會(huì)經(jīng)過(guò)組合電路延時(shí),,這里注意即使沒(méi)有組合電路,,就單單經(jīng)過(guò)導(dǎo)線(xiàn)也是有延時(shí)的,這個(gè)延時(shí)稱(chēng)作Tdelay,,經(jīng)過(guò)這個(gè)延時(shí)之后,,信號(hào)將要去下一個(gè)觸發(fā)器,,而且必須要滿(mǎn)足觸發(fā)器的建立時(shí)間tsetup,不然時(shí)鐘無(wú)法采樣到穩(wěn)定的數(shù)據(jù),。

5d2d7081b160c-thumb.png

  所以這三個(gè)時(shí)間加起來(lái)應(yīng)該比時(shí)鐘周期要小,,否則數(shù)據(jù)無(wú)法打入下一個(gè)觸發(fā)器,那就會(huì)進(jìn)入亞穩(wěn)態(tài),。Tcd+Tdelay+Tsetup

  至于FPGA時(shí)鐘頻率與holdup time的關(guān)系,,具體做設(shè)計(jì)的時(shí)候還是需要滿(mǎn)足Tcd+Tdelay+TsetupTholdup,也就是說(shuō)Tholdup 決定了最短路徑的下限,,也就是說(shuō)組合邏輯是不能太大也不能太小的。這就是hold time 能起作用的地方吧,。其實(shí)一般都能滿(mǎn)足保持時(shí)間,,一般只要考慮都是要滿(mǎn)足建立時(shí)間。

  建立時(shí)間與保持時(shí)間的簡(jiǎn)單示意圖如下圖1所示,,在圖1中我們看到clk_r3的前后各有一條虛線(xiàn),,前一條虛線(xiàn)(最左邊的虛線(xiàn),左邊代表出現(xiàn)時(shí)間早,,與modelsim仿真時(shí)信號(hào)依次從左往右出現(xiàn))到clk_r3上升沿的這段時(shí)間即為建立時(shí)間,,clk_r3上升沿到后一條虛線(xiàn)(最右邊的虛線(xiàn))的這段時(shí)間即為保持時(shí)間。

  前面對(duì)建立時(shí)間和保持時(shí)間下定義時(shí)提到過(guò),,在這段時(shí)間內(nèi)不能夠有數(shù)據(jù)的變化,,數(shù)據(jù)必須保持穩(wěn)定。而在這個(gè)波形中,,也確實(shí)沒(méi)有看到在建立時(shí)間和保持時(shí)間內(nèi),,reg3in的數(shù)據(jù)有任何的變化,因此我們可以穩(wěn)定的將reg3in的數(shù)據(jù)鎖存到reg3的輸出reg3out中,。

  同樣的一些信號(hào),,但我們發(fā)現(xiàn)reg3in在clk_r3的建立時(shí)間內(nèi)發(fā)生了變化,這帶來(lái)的后果就是clk_r3上升沿鎖存到的reg3in數(shù)據(jù)不確定,,那么隨后的reg3out值也會(huì)處于一個(gè)不確定狀態(tài),。比如第一個(gè)時(shí)鐘周期,原本reg3in應(yīng)該是穩(wěn)定的低電平,,但是由于整個(gè)路徑上的延時(shí)時(shí)間(Tcd+Tdelay)過(guò)長(zhǎng),,導(dǎo)致了reg3in在clk_r3的建立時(shí)間內(nèi)數(shù)據(jù)還未能穩(wěn)定下來(lái),在建立時(shí)間內(nèi)信號(hào)出現(xiàn)了電平從高到低的變化,,即不穩(wěn)定的狀態(tài),,那么導(dǎo)致的后果就是reg3out的最終輸出不是確定的狀態(tài),很可能是忽高忽低的亞穩(wěn)態(tài),,而不是原本期望的低電平,。

  我們?cè)賮?lái)看看保持時(shí)間違規(guī)的情況,,這次是數(shù)據(jù)傳輸?shù)锰炝?不滿(mǎn)足Tcd+Tdelay>Tholdup,也就是Tcd+Tdelay時(shí)延太小),,原本應(yīng)該下一個(gè)時(shí)鐘周期到達(dá)clk_r3的數(shù)據(jù)竟然在clk_r3的前一個(gè)時(shí)鐘周期的保持時(shí)間還未過(guò)去就來(lái)到了,。因此,它出現(xiàn)的最終危害也是后端輸出的reg3out處于不確定的狀態(tài),。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected]