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