摘 要:現場可編程門陣列(FPGA)由于其內部構成,容易引起競爭冒險現象,從而使電路工作的穩(wěn)定性大受影響,電路也容易產生誤動作,以致產生意想不到的后果。本文詳細介紹了冒險現象的產生,并結合實例介紹了消除競爭冒險現象的各種方法。這些方法主要通過改變設計,破壞毛刺產生的條件來減少毛刺的發(fā)生。他能夠使FPGA設計中毛刺的出現幾率減到最小,大大減少了邏輯錯誤,加強了電路工作的穩(wěn)定性,有效地抑制了干擾,使設計也更加優(yōu)化、合理。
關鍵詞:FPGA;競爭冒險;毛刺;邏輯錯誤
在數字電路設計中,經常需要考慮競爭和冒險現象帶來的問題。尤其是采用FPGA器件后,這個問題尤為明顯,為了改善系統(tǒng)性能,加強系統(tǒng)的穩(wěn)定性,有效地抑制干擾,使得設計更加優(yōu)化、合理,本文將對競爭與冒險帶來的問題與消除方法加以詳細討論。
1 FPGA中的冒險現象
在使用分立元件設計數字系統(tǒng)時,由于PCB走線時存在分布電感和電容,所以幾納秒的毛刺將被自然濾除,而在PLD內部無分布電感和電容,所以在PLD/FPGA設計中,競爭和冒險問題將變得尤為突出,電路工作的穩(wěn)定性也大受影響。
由于信號在FPGA器件內部通過連線和邏輯單元時都有一定的延時。延時的大小與連線的長短和邏輯單元的數目有關,同時還受器件的制造工藝、工作電壓、溫度等條件的影響。另外信號高低電平的轉換也需要一定的過渡時間。所以多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時變化,往往會出現一些不正確的尖峰信號,這些尖峰信號稱為“毛刺”。如果一個組合邏輯電路中有“毛刺“出現,就說明該電路存在“冒險”。
由于無法保證所有連線的長度一致,所以即使4個輸入信號在輸入端同時變化,但經過PLD內部的走線到達或門的時間也是不一樣的,必然產生毛刺。概括來說,只要輸入信號同時變化,經過內部走線后,組合邏輯必將產生毛刺。如將他們的輸出直接連接到時鐘輸入端、清零或置位端口,就可能會導致嚴重的后果。所以在設計電路時必須檢查設計中所有時鐘、清零和置位等對毛刺十分敏感的輸入端口,確保輸入不會含有任何毛刺。
2 毛刺的消除
可以通過改變設計,破壞毛刺產生的條件來減少毛刺的發(fā)生。毛刺并不是對所有的輸入都有危害,對于D觸發(fā)器的D輸入端,只要毛刺不出現在時鐘的上升沿并且不滿足數據的建立和保持時間,就不會對系統(tǒng)造成危害,因此可認為D觸發(fā)器的D輸入端對毛刺不敏感。根據這個特性,應當在系統(tǒng)中盡可能采用同步電路,因為同步電路信號的變化都發(fā)生在時鐘沿,只要毛刺不出現在時鐘的沿口并且不滿足數據的建立和保持時間,就不會對系統(tǒng)造成危害。由于毛刺很短,多為幾納秒,基本上都不可能滿足數據的建立和保持時間。
這種方法可以大大減少毛刺,但他并不能完全消除毛刺,必須手工修改電路來去除毛刺。一般,冒險出現在信號發(fā)生電平轉換的時刻,即在輸出信號的建立時間內會發(fā)生冒險,而在輸出信號的保持時間內是不會有毛刺信號出現的。如果在輸出信號的保持時間內對其進行“采樣”,就可以消除毛刺信號的影響。
“采樣”可通過兩種方法實現:一種是在輸出信號的保持時間內,用一定寬度的高電平脈沖與輸出信號做邏輯“與”運算,由此獲取輸出信號的電平值。
TEST端引出的是一個帶有毛刺的信號,由于有采樣脈沖SAMPLE的輸入,在SAMPLE為高電平前,輸出端與門關閉,OUT端沒有輸出。從前面的分析看出,由于毛刺信號主要存在于輸出信號的建立時間內,所以可通過控制SAMPLE信號在TEST信號建立時間后再開放與門的方法來消除毛刺。從圖4所示仿真圖中可以看出OUT端得到的不帶毛刺的信號。
上述方法的一個缺點是必須人為地保證SAMPLE信號必須在合適的時間中產生,否則仍不能得到滿意的結果。另一種實現方法是可利用D觸發(fā)器的D輸入端對毛刺信號不敏感的特點,在輸出信號的保持時間內,用D觸發(fā)器讀取組合邏輯的輸出信號,這種方法類似于將異步電路轉化為同步電路。圖5給出了應用這種方法的電路實例。
從以上分析看出,通過上述的電路處理可以有效減少毛刺的產生,從而減少邏輯錯誤,提高芯片工作的穩(wěn)定性。
3 結 語
FPGA在數字電路設計中雖功能強大,修改靈活,但內部易產生冒險而出現工作不穩(wěn)定情況,采取以上措施,可有效減少毛刺的產生,從而減少邏輯錯誤,大大提高芯片工作的穩(wěn)定性。
來源:零八我的愛0次





