1、前言
可能很多FPGA初學(xué)者在剛開(kāi)始學(xué)習(xí)FPGA設(shè)計(jì)的時(shí)候(當(dāng)然也包括我自己),經(jīng)常聽(tīng)到類(lèi)似于”這個(gè)信號(hào)需要打一拍、打兩拍(寄存),以防止亞穩(wěn)態(tài)問(wèn)題的產(chǎn)生“這種話,但是對(duì)這個(gè)打拍和亞穩(wěn)態(tài)問(wèn)題還是一知半解,接下來(lái)結(jié)合一些資料談下自己的理解。
2、觸發(fā)器的建立時(shí)間和保持時(shí)間
時(shí)序電路的基礎(chǔ)是觸發(fā)器(FF、Flip-Flop),觸發(fā)器正常工作需要滿(mǎn)足建立時(shí)間和保持時(shí)間的時(shí)序要求。
建立時(shí)間(Tsu:set up time)
是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被穩(wěn)定的打入觸發(fā)器,Tsu就是指這個(gè)最小的穩(wěn)定時(shí)間
保持時(shí)間(Th:hold time)
是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被穩(wěn)定的打入觸發(fā)器,Th就是指這個(gè)最小的保持時(shí)間
3、亞穩(wěn)態(tài)
亞穩(wěn)態(tài) (Metastability):如果數(shù)據(jù)傳輸中不滿(mǎn)足觸發(fā)器的Tsu和Th不滿(mǎn)足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后比較長(zhǎng)的一段時(shí)間處于不確定的狀態(tài),在這段時(shí)間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數(shù)據(jù)輸入端D的值。這段時(shí)間稱(chēng)為決斷時(shí)間Tmet(resolution time)。經(jīng)過(guò)resolution time之后Q端將穩(wěn)定到0或1上,但是穩(wěn)定到0或者1,是隨機(jī)的,與輸入沒(méi)有必然的關(guān)系。
亞穩(wěn)態(tài)振蕩時(shí)間 Tmet 關(guān)系到后級(jí)寄存器的采集穩(wěn)定問(wèn)題,Tmet 影響因素包括:器件 的生產(chǎn)工藝、溫度、環(huán)境以及寄存器采集到亞穩(wěn)態(tài)里穩(wěn)定態(tài)的時(shí)刻等。甚至某些特定條 件,如干擾、輻射等都會(huì)造成 Tmet 增長(zhǎng)。
只要系統(tǒng)中有異步元件,亞穩(wěn)態(tài)就是無(wú)法避免的,亞穩(wěn)態(tài)主要發(fā)生在異步信號(hào)檢測(cè)、跨時(shí)鐘域信號(hào)傳輸以及復(fù)位電路等常用設(shè)計(jì)中。由于產(chǎn)生亞穩(wěn)態(tài)后,寄存器Q端輸出在穩(wěn)定下來(lái)之前可能是毛刺、振蕩、固定的某一電壓值。在信號(hào)傳輸中產(chǎn)生亞穩(wěn)態(tài)就會(huì)導(dǎo)致與其相連其他數(shù)字部件將其作出不同的判斷,有的判斷到“1”有的判斷到“0”,有的也進(jìn)入了亞穩(wěn)態(tài),數(shù)字部件就會(huì)邏輯混亂。
4、如何防止亞穩(wěn)態(tài)
首先,在同步系統(tǒng)中,輸入信號(hào)總是系統(tǒng)時(shí)鐘同步,能夠達(dá)到寄存器的時(shí)序要求,所以亞穩(wěn)態(tài)肯定不會(huì)發(fā)生。在異步系統(tǒng)的信號(hào)輸出過(guò)程中,如果無(wú)法滿(mǎn)足建立時(shí)間和保持時(shí)間的要求則會(huì)發(fā)生亞穩(wěn)態(tài)。
預(yù)防亞穩(wěn)態(tài)的方法就是將輸入信號(hào)(單bit信號(hào))打拍,也就是在要使用的時(shí)鐘域下,將信號(hào)寄存。
rx是相對(duì)于時(shí)鐘域sys_clk的異步信號(hào),rx_reg1、rx_reg2分別是rx在時(shí)鐘域sys_clk打一拍(寄存一次、可以理解為延遲一個(gè)時(shí)鐘周期 )、打兩拍(寄存一兩次、可以理解為延遲兩個(gè)時(shí)鐘周期)的信號(hào)??梢钥吹絩x_reg1可能還存在低概率的亞穩(wěn)態(tài)現(xiàn)象,當(dāng)然rx_reg2雖然在示意圖里是穩(wěn)定的,不過(guò)實(shí)際過(guò)程中也仍然存在亞穩(wěn)態(tài)發(fā)生的概率。
單比特信號(hào)從慢速時(shí)鐘域同步到快速時(shí)鐘域需要使用打兩拍的方式消除亞穩(wěn)態(tài)。 第一級(jí)寄存器產(chǎn)生亞穩(wěn)態(tài)并經(jīng)過(guò)自身后可以穩(wěn)定輸出的概率為 70%~80%左右,第二級(jí)寄存 器可以穩(wěn)定輸出的概率為 99%左右,后面再多加寄存器的級(jí)數(shù)改善效果就不明顯了,所以 數(shù)據(jù)進(jìn)來(lái)后一般選擇打兩拍即可。這里注意,該方法僅僅適用單比特信號(hào)從慢速時(shí)鐘域同步到快速時(shí)鐘域,單比特信號(hào)從快速時(shí)鐘域同步到慢速時(shí)鐘域還僅僅使用打兩拍的方式則會(huì)漏采數(shù)據(jù)。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21750瀏覽量
604070 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61206 -
亞穩(wěn)態(tài)
+關(guān)注
關(guān)注
0文章
46瀏覽量
13302
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論