色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA設計中毛刺信號解析

          FPGA設計中毛刺信號解析

          作者: 時間:2011-08-08 來源:網(wǎng)絡 收藏

          中,現(xiàn)象是長期困擾電子工程師的問題之一, 是影響工程師設計效率和數(shù)字系統(tǒng)設計有效性和可靠性的主要因素。由于的內(nèi)部走線和通過邏輯單元時造成的延遲,在多路變化的瞬間,組合邏輯的輸出常常產(chǎn)生一些小的尖峰,即,這是由 內(nèi)部結構特性決定的。現(xiàn)象在FPGA的設計中是不可避免的,有時任何一點毛刺就可以導致系統(tǒng)出錯,尤其是對尖峰脈沖或脈沖邊沿敏感的電路更是如此。

          本文引用地址:http://cafeforensic.com/article/150396.htm

          任何組合電路、反饋電路和計數(shù)器都可能是潛在的毛刺信號發(fā)生器,但毛刺并不是對所有輸入都有危害,如觸發(fā)器的D輸入端,只要毛刺不出現(xiàn)在時鐘的上升沿并滿足數(shù)據(jù)的建立保持時間,就不會對系統(tǒng)造成危害。而當毛刺信號成為系統(tǒng)的啟動信號、控制信號、握手信號,觸發(fā)器的清零信號(CLEAR)、預置信號(PRESET)、時鐘輸入信號(CLK)或鎖存器的輸入信號時就會產(chǎn)生邏輯錯誤。在實際設計過程中,應盡量避免將帶有毛刺的信號直接接入對毛刺敏感的輸入端上,對于產(chǎn)生的毛刺,應仔細分析毛刺的來源和性質(zhì),針對不同的信號,采取不同的解決方法加以消除。

          因此,克服和解決毛刺問題對現(xiàn)代數(shù)字系統(tǒng)設計尤為重要。本文從FPGA的原理結構的角度探討了產(chǎn)生毛刺的原因及產(chǎn)生的條件,在此基礎上,總結了多種不同的消除方法,在最后結合具體的應用對解決方案進行深入的分析。

            1毛刺產(chǎn)生的原因

            以圖1的例子分析毛刺產(chǎn)生的起因:圖1是一個3位同步加法計數(shù)器,當使能端為高電平時,在每個時鐘上升沿時刻,QA ,QB,QC從000逐步變到111,進入到全1狀態(tài)后,進位輸出端輸出半個時鐘脈沖寬度的高電平,但從圖2仿真結果中可以看到在011變化到100時刻ROC出現(xiàn)了尖脈沖,即毛刺。

            以Xilinx的FPGA為例分析其內(nèi)部結構,如圖3所示[2]。

            FPGA芯片是由可構造的輸入輸出塊(Input/OutputBlock,IOB)、可構造邏輯塊(Cinfigur able Logic Block,CLB)和可編程連線資源(Programmable Interconnect Array,PIA)3種可構造單元構成的。IOB位于芯片內(nèi)部四周,在內(nèi)部邏輯陣列與外部芯片封裝引腳之間提供一個可編程接口,他主要由邏輯門、觸發(fā)器和控制單元組成。CLB組成了FPGA的核心陣列,能完成用戶指定的邏輯功能;每個CLB主要有一個組合邏輯、幾個觸發(fā)器、若干個多選一電路和控制單元組成;PIA位于芯片內(nèi)部的邏輯塊之間,經(jīng)編程后形成連線網(wǎng)絡,用于芯片內(nèi)部邏輯間的相互連接,并在他們之間傳遞信息。從圖3中可以看出,對于不同的輸入1、2,到邏輯塊(M)的走線可能是不同的,這就造成了輸入信號的延遲,假設1、2同時變化,由于延遲的存在,到達M時就有先有后(這種現(xiàn)象稱為競爭),在邏輯輸出端就可能會有險象(也稱冒險),即產(chǎn)生了毛刺。在上述例子中的011狀態(tài),假設QA與QB同時從1變化到0,而QC提前了2 ns從0變到1 ,產(chǎn)生一個2 ns的高電平,這就是毛刺。也就是說,在FPGA設計中,毛刺產(chǎn)生的根本原因是信號在芯片內(nèi)部走線時產(chǎn)生的延遲。

            2毛刺產(chǎn)生的條件

            借助同樣的例子來分析毛刺產(chǎn)生的條件。QA,QB,QC在每一個時鐘上升沿同時發(fā)生翻轉(zhuǎn),但實際中由于延遲的存在,并不能保證QA,QB,QC到D觸發(fā)器的布線長短一致。如果QC比Q A,QB提前了2 ns,這就形成了2 ns的全1狀態(tài),稱為“假象全1”,進而導致進位輸出產(chǎn)生一個尖脈沖。值得注意的是,在3變到4即011到100時,3位中有2位同時發(fā)生翻轉(zhuǎn),即在同一時刻有大于一個的信號發(fā)生改變。由于延遲的作用,多個信號到達終點的時間有先有后,形成了競爭,由競爭產(chǎn)生的錯誤輸出就是毛刺。所以,毛刺發(fā)生的條件就是在同一時刻有多個信號輸入發(fā)生改變。

            3消除毛刺的方法

            知道了毛刺產(chǎn)生的條件,就可以通過改變設計,破壞其條件來減少毛刺的發(fā)生。例如,利用格雷碼計數(shù)器每次輸出只有一位跳變的特性,代替普通的二進制計數(shù)器,避免了毛刺的產(chǎn)生[3]。還可以對電路進行改進,以消除毛刺對系統(tǒng)的影響。下面對各種方法做分別介紹:

            3.1利用冗余項法

            利用冗余項消除毛刺有2種方法:代數(shù)法和卡諾圖法,兩者都是通過增加冗余項來消除險象,只是前者針對于函數(shù)表達式而后者針對于真值表。以卡諾圖為例,若兩個卡諾圓相切,其對應的電路就可能產(chǎn)生險象。因此,修改卡諾圖,在卡諾圖的兩圓相切處增加一個圓,以增加多余項來消除邏輯冒險。但該法對于計數(shù)器型產(chǎn)生的毛刺是無法消除的。

            3.2采樣法

            由于冒險多出現(xiàn)在信號發(fā)生電平跳變的時刻,即在輸出信號的建立時間內(nèi)會產(chǎn)生毛刺,而在保持時間內(nèi)不會出現(xiàn),因此,在輸出信號的保持時間內(nèi)對其進行采樣,就可以消除毛刺信號的影響,常用的采樣方法有2種:一種使用一定寬度的高電平脈沖與輸出相與,從而避開了毛刺信號,取得輸出信號的電平值。這種方法必須保證采樣信號在合適的時間產(chǎn)生,并且只適用于對輸出信號時序和脈沖寬度要求不嚴的情況。另一種更常見的方法叫鎖存法,是利用D觸發(fā)器的輸入端D對毛刺信號不敏感的特點,在輸出信號的保持時間內(nèi),用觸發(fā)器讀取組合邏輯的輸出信號。由于在時鐘的上升沿時刻,輸出端Q=D,當輸入的信號有毛刺時,只要不發(fā)生在時鐘的上升沿時刻,輸出就不會有毛刺。這種方法類似于將異步電路轉(zhuǎn)化為同步電路,實現(xiàn)簡單,但同樣會涉及到時序問題。

            3.3吸收法

            由于產(chǎn)生的毛刺實際上是高頻窄脈沖,故增加輸出濾波,在輸出端接上小電容C就可以濾除毛刺。但輸出波形的前后沿將變壞,在對波形要求較嚴格時,應再加整形電路,該方法不宜在中間級使用。

            3.4延遲法

            因為毛刺最終是由于延遲造成的,所以可以找出產(chǎn)生延遲的支路。對于相對延遲小的支路,加上毛刺寬度的延遲可以消除毛刺。但有時隨著負載增加,毛刺會繼續(xù)出現(xiàn),而且,當溫度變化,所加的電壓變化或要增加邏輯門時,所加的延遲是不同的,必須重新設計延遲線,因而這種方法也是有局限性的。而且采用延遲線的方法產(chǎn)生延遲會由于環(huán)境溫度的變化而使系統(tǒng)可靠性變差。

            3.5硬件描述語言法

            這種方法是從硬件描述語言入手,找出毛刺產(chǎn)生的根本原因,改變語言設計,產(chǎn)生滿足要求的功能模塊,來代替原來的邏輯功能塊。在圖1電路中,一個3位計數(shù)器可能會在011到100和101到110發(fā)生跳變時產(chǎn)生毛刺,究其原因是因為一次有2位發(fā)生跳變,可以采用VHDL語言對計數(shù)器編寫如下,產(chǎn)生的計數(shù)模塊代替原來普通的計數(shù)器。

          塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉