FPGA設(shè)計中毛刺信號解析
注意在新的計數(shù)器中,每次狀態(tài)發(fā)生改變時Q0,Q1,Q2 只有1位發(fā)生跳變,從根本上消除了毛刺。但計數(shù)器的輸出狀態(tài)沒有規(guī)律,不便于其他電路利用。如果希望計數(shù)器的輸出狀態(tài)有規(guī)律變化以便其他電路使用,可以考慮采用雙輸出電路,一路是單信號輸出,一路是正常計數(shù)輸出。這種方法從根本上消除了毛刺產(chǎn)生的根源,具有普遍的意義,對系統(tǒng)也不會產(chǎn)生影響,是最為可靠的方法,其不利之處是這種方法對VHDL語言要求比較高,必須對電路的工作狀態(tài)及其轉(zhuǎn)變有全面的分析和掌握,而隨著電路的復(fù)雜度提高,毛刺產(chǎn)生的來源繁雜,實現(xiàn)起來比較困難。
對于一般情況下產(chǎn)生的毛刺,可以嘗試用D觸發(fā)器來消除。但用D觸發(fā)器消除時,有時會影響到時序,需要考慮很多問題。所以應(yīng)根據(jù)不同情況,仔細地分析毛刺產(chǎn)生的來源和毛刺的性質(zhì),結(jié)合系統(tǒng)資源選擇具體辦法,消除毛刺的影響。
4具體實例
在實際應(yīng)用中要對一個周期同步脈沖信號進行檢測,要求若在給定的時間內(nèi)沒有檢測到同步信號則給出一定脈沖寬度的高電平,作為復(fù)位信號。設(shè)計思想是采用一個計數(shù)器,當(dāng)有同步信號時對其清零,并同時開始計數(shù),根據(jù)給定時間和系統(tǒng)時鐘周期設(shè)定計數(shù)器的模數(shù),經(jīng)過給定的時間后輸出高電平,滿足寬度后再置低。
實際要求檢測時間大約1 s,脈沖寬度保持在20 ms左右,采用5片74161級聯(lián),第5片計數(shù)器的ROC接D觸發(fā)器的使能端。同步信號輸入后,清零并開始計數(shù),若不再出現(xiàn)同步脈沖,經(jīng)16^5 個時鐘周期后,第5片的RCO端輸出一個高電平,使觸發(fā)器的Q輸出D(高電平),再過16^3*2個時鐘周期后使第4片的QA,QB,QC,QD接組合門電路輸出低電平,接到D觸發(fā)器的計數(shù)器預(yù)制端,使Q輸出為零。這樣就實現(xiàn)經(jīng)一定延時后的一定寬度的脈沖。經(jīng)仿真結(jié)果如圖4所示。
仿真平臺采用Max+PlusⅡ,時鐘周期設(shè)為10 ns,經(jīng)計算可以知道在10.485 928 2 ms處產(chǎn)生寬度為81.92μs的高電平,但由于存在數(shù)據(jù)建立時間和保持時間,仿真結(jié)果中的變化時刻并不是嚴格與計算相符的,其中 q0,q1,q2,q3是第5片74161的輸出,roc1是第4片的進位輸出,roc是第5片的進位輸出,roc1輸出16個高電平后,roc同時輸出一個高電平。圖4中復(fù)位信號reset卻在5.247 ms和10.485 297 9 ms處發(fā)生。第一個錯誤的原因是,由于計數(shù)器累加,內(nèi)部走線造成的延時,當(dāng)?shù)?片計數(shù)器從0111狀態(tài)跳變到1 000時,輸入同時有3位變化,致使進位輸出roc在roc1的第8個輸出時產(chǎn)生了一個尖脈沖,使觸發(fā)器的Q端提前發(fā)生電平轉(zhuǎn)變,導(dǎo)致了在5.247 ms處產(chǎn)生錯誤復(fù)位信號。同樣的原因,第4片的進位輸出roc1在第14個輸出跳變到第15個輸出時發(fā)生毛刺,而該毛刺使第5片161進入計數(shù)狀態(tài),在roc端也產(chǎn)生了毛刺,就出現(xiàn)了圖4中復(fù)位信號提前翻轉(zhuǎn)的結(jié)果。
對于該電路中存在的毛刺問題,可以采用2種方法修改電路。由于該電路對時間要求的不是很嚴格,對第4,5片74LS161取1110狀態(tài)做最后輸出,就避免了由延遲造成的假象全1狀態(tài),仿真結(jié)果證明這種方法是有效的。但這種方法增加了邏輯門數(shù)量,同時也增加了險象發(fā)生的可能性。
另一種比較可靠且常用的方法是用帶使能端的D觸發(fā)器代替原來的觸發(fā)器,把計數(shù)器最后的輸出roc接到觸發(fā)器的使能端,時鐘用統(tǒng)一的計數(shù)時鐘,由于毛刺本身是尖脈沖,不能滿足數(shù)據(jù)的建立時間和保持時間,避免了產(chǎn)生的毛刺對Q的輸出的影響。從仿真結(jié)果(圖5)中可以看到,雖然這種方法并不能消除毛刺,但是毛刺已經(jīng)不具有危害性,故這是一種簡單有效的方法。
5結(jié)語
毛刺問題在FPGA設(shè)計中非常關(guān)鍵,只有深刻理解毛刺的本質(zhì),才有可能真正掌握設(shè)計的精髓,本文就FPGA設(shè)計中的毛刺問題進行了深入的探討,分析其產(chǎn)生的原因和條件,給出了幾種常用的消除方法,希望對FPGA設(shè)計者有一定的參考作用。
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
評論