今天寫一下時(shí)序問題常見的跨時(shí)鐘域的亞穩(wěn)態(tài)問題。
先說明一下亞穩(wěn)態(tài)問題:
D觸發(fā)器有個(gè)明顯的特征就是建立時(shí)間(setup time)和保持時(shí)間(hold time)
如果輸入信號(hào)在建立時(shí)間和保持時(shí)間發(fā)生變化,則可能產(chǎn)生亞穩(wěn)態(tài),如果在時(shí)鐘上升沿也就是D觸發(fā)器采樣期間,輸入點(diǎn)評(píng)判斷為1則輸出為1,如果是0則輸出為0,另外一種情況就是在時(shí)鐘上升沿時(shí),D在發(fā)生變化,在中間思考跳轉(zhuǎn)很久,但不知道Dinput跳到0還是1(此狀態(tài)出現(xiàn)概率非常低,但會(huì)出現(xiàn))到下一個(gè)時(shí)鐘還沒有思考好是0還是1,沒有出現(xiàn)穩(wěn)定狀態(tài),這就是亞穩(wěn)態(tài)。[1]
總結(jié):在FPGA系統(tǒng)中,如果數(shù)據(jù)傳輸中不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程中復(fù)位信號(hào)的釋放相對(duì)于有效時(shí)鐘沿的恢復(fù)時(shí)間(recovery time)不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后比較長的一段時(shí)間處于不確定的狀態(tài),在這段時(shí)間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數(shù)據(jù)輸入端D的值。這段時(shí)間稱為決斷時(shí)間(resolution time)。經(jīng)過resolution time之后Q端將穩(wěn)定到0或1上,但是穩(wěn)定到0或者1,是隨機(jī)的,與輸入沒有必然的關(guān)系。[2]
總結(jié)亞穩(wěn)態(tài)問題產(chǎn)生場(chǎng)景:1)跨時(shí)鐘域的信號(hào)傳輸,由于源信號(hào)時(shí)鐘與目的信號(hào)時(shí)鐘的相移未知,可能導(dǎo)致保持時(shí)間和建立時(shí)間條件不滿足,從而產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。2)異步信號(hào),最常見的為異步復(fù)位信號(hào),由于異步信號(hào)不與觸發(fā)器同步時(shí)鐘同步,所以可能導(dǎo)致保持時(shí)間和建立時(shí)間條件不滿足,產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。
(建立時(shí)間保持時(shí)間條件:數(shù)據(jù)在建立時(shí)間和保持時(shí)間保持穩(wěn)定)
亞穩(wěn)態(tài)導(dǎo)致的后果:
一般情況下亞穩(wěn)態(tài)產(chǎn)生的后果為產(chǎn)生不可預(yù)知的數(shù)據(jù),或者在前面所述亞穩(wěn)態(tài)第三種情況可能導(dǎo)致系統(tǒng)崩潰。在數(shù)據(jù)表現(xiàn)方面來說會(huì)產(chǎn)生毛刺、突變等現(xiàn)象。影響系統(tǒng)后續(xù)的邏輯判斷和程序整體運(yùn)行走向。
一般FPGA的建立時(shí)間和保持時(shí)間加起來為1ns左右,所以可以根據(jù)概率論來計(jì)算亞穩(wěn)態(tài)產(chǎn)生的概率,也就是同步時(shí)鐘周期的倒數(shù)。
亞穩(wěn)態(tài)的串?dāng)_,也就是D觸發(fā)器處于震蕩狀態(tài)時(shí)會(huì)影響后續(xù)觸發(fā)器的狀態(tài),一般來說如果震蕩狀態(tài)不超過同步時(shí)鐘周期,也就不會(huì)串?dāng)_下一個(gè)觸發(fā)器導(dǎo)致下一個(gè)觸發(fā)器也產(chǎn)生振蕩,一般工程上來講串兩至三個(gè)觸發(fā)器基本就可以保證不串?dāng)_。(是可能不串?dāng)_,不是一定不串?dāng)_,串?dāng)_的可能性很?。?/p>
針對(duì)上述的亞穩(wěn)態(tài)問題,常見的解決方法:
1)通過對(duì)異步信號(hào)邊沿提取實(shí)現(xiàn)異步信號(hào)同步處理,在邊沿提取過程中也要防止亞穩(wěn)態(tài)串?dāng)_,進(jìn)行多寄存器緩存減小亞穩(wěn)態(tài)串?dāng)_的可能性。
2)通過FIFO實(shí)現(xiàn)異步信號(hào)同步處理。
3)對(duì)于異步時(shí)鐘通過異步復(fù)位同步釋放的方法實(shí)現(xiàn)亞穩(wěn)態(tài)大可能的消除:
異步復(fù)位,同步釋放就是對(duì)異步復(fù)位時(shí)鐘進(jìn)行兩次或兩次以上緩存,盡可能的減少亞穩(wěn)態(tài)信號(hào)進(jìn)入到系統(tǒng)內(nèi)部。
在進(jìn)行異步復(fù)位同步釋放的時(shí)候一定能夠要進(jìn)行至少兩次緩存,這樣才能保證亞穩(wěn)態(tài)串?dāng)_的可能性大大降低。
原文標(biāo)題:【FPGA】幾種時(shí)序問題的常見解決方法
文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1703瀏覽量
131196 -
時(shí)序設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
21瀏覽量
43923
原文標(biāo)題:【FPGA】幾種時(shí)序問題的常見解決方法
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論