狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法_第1頁(yè)
狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法_第2頁(yè)
狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法_第3頁(yè)
狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法_第4頁(yè)
狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

狀態(tài)機(jī)“毛刺”的產(chǎn)生及消除方法隨著EDA技術(shù)的高速發(fā)展,以大規(guī)模和超大規(guī)模器件FPGA/CPLD為載體、以VHDL(硬件描述語(yǔ)言)為工具的電子系統(tǒng)設(shè)計(jì)越來(lái)越廣泛。有限狀態(tài)機(jī)(簡(jiǎn)稱狀態(tài)機(jī))作為數(shù)字系統(tǒng)控制單元的重要設(shè)計(jì)方案之一,無(wú)論與基于VHDL語(yǔ)言的其他設(shè)計(jì)方案相比,還是與可完成相似功能的CPU設(shè)計(jì)方案相比,在運(yùn)行速度的高效、執(zhí)行時(shí)間的確定性和高可靠性方面都顯現(xiàn)出強(qiáng)大的優(yōu)勢(shì)。因此狀態(tài)機(jī)在數(shù)字電子系統(tǒng)設(shè)計(jì)中的地位日益凸顯。1狀態(tài)機(jī)“毛刺”的產(chǎn)生狀態(tài)機(jī)通常包含主控時(shí)序進(jìn)程、主控組合進(jìn)程和輔助進(jìn)程三個(gè)部分。其中,主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào)和當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)的取向,并確定對(duì)外輸出內(nèi)容和對(duì)內(nèi)部其他組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。一方面,由于有組合邏輯進(jìn)程的存在,狀態(tài)機(jī)輸出信號(hào)會(huì)出現(xiàn)毛刺——競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象;另一方面,如果狀態(tài)信號(hào)是多位值的,則在電路中對(duì)應(yīng)了多條信號(hào)線。由于存在傳輸延遲,各信號(hào)線上的值發(fā)生改變的時(shí)間則存在先后,從而使得狀態(tài)遷移時(shí)在初始狀態(tài)和目的狀態(tài)之間出現(xiàn)臨時(shí)狀態(tài)——毛刺。例如,采用Moore型有限狀態(tài)機(jī)方案對(duì)ADC0809采樣過(guò)程實(shí)現(xiàn)控制,其主要程序如下:beginlock<=lock1;process(current_state,eoc)begincasecurrent_stateISwhenst0=>ale<=‘0’;start<=‘0’;oe<=‘0’;lock1<=‘0’;next_state<=st1;whenst1=>ale<=‘1’;start<=‘0’;oe<=‘0’;lock1<=‘0’;next_state<=st2;whenst2=>ale<=‘0’;start<=‘1’;oe<=‘0’;lock1<=‘0’;next_state<=st3;whenst3=>ale<=‘0’;start<=‘0’;oe<=‘0’;lock1<=‘0’;if(eoc=‘1’)thennext_state<=st3;elsenext_state<=st4;endif;whenst4=>ale<=‘0’;start<=‘0’;OE<=‘0’;lock1<=‘0’;if(eoc=‘0’)thennext_state<=st4;elsenext_state<=st5;endif;whenst5=>ale<=‘0’;start<=‘0’;oe<=‘1’;lock1<=‘0’;next_state<=st6;whenst6=>ale<=‘0’;start<=‘0’;oe<=‘1’;lock1<=‘1’;next_state<=st0;whenothers=>ale<=‘0’;start<=‘0’;oe<=‘0’;lock1<=‘0’;next_state<=st0;endcase;endprocess;process(clk)beginif(clk’eventandclk=‘1”)thencurrent_state<=next_state;endif;endprocess;process(lock1)beginiflock1=‘1’andlock1’eventthenregl<=d;endif;endprocess;q<=regl;……其時(shí)序仿真波形如圖1所示。Moore型狀態(tài)機(jī)組成框圖如圖2所示。

因?yàn)镸oore型狀態(tài)機(jī)的輸出信號(hào)來(lái)自組合邏輯——輸出譯碼器,輸出信號(hào)中帶有“毛刺”,且引起了輸出信號(hào)Q的誤動(dòng)作,結(jié)果從其仿真時(shí)序圖中可以發(fā)現(xiàn)。2毛刺的消除在同步電路中,一般情況下“毛刺”不會(huì)產(chǎn)生重大影響。因?yàn)椤懊獭眱H發(fā)生在時(shí)鐘有效邊沿之后的一小段時(shí)間內(nèi),只要在下一個(gè)時(shí)鐘有效邊沿到來(lái)之前“毛刺”消失即可。但當(dāng)狀態(tài)機(jī)的輸出信號(hào)作為其他功能模塊的控制信號(hào),例如作為異步控制、三態(tài)使能控制或時(shí)鐘信號(hào)使用時(shí),將會(huì)使受控模塊發(fā)生誤動(dòng)作,造成系統(tǒng)工作混亂。因此,在這種情況下必須通過(guò)改變?cè)O(shè)計(jì)消除毛刺。消除狀態(tài)機(jī)輸出信號(hào)的“毛刺”一般可采用三種方案:(1)調(diào)整狀態(tài)編碼,使相鄰狀態(tài)間只有1位信號(hào)改變,從而消除競(jìng)爭(zhēng)冒險(xiǎn)的發(fā)生條件,避免了毛刺的產(chǎn)生。常采用的編碼方式為格雷碼。它適用于順序遷移的狀態(tài)機(jī)。(2)在有限狀態(tài)機(jī)的基礎(chǔ)上采用時(shí)鐘同步信號(hào),即把時(shí)鐘信號(hào)引入組合進(jìn)程。狀態(tài)機(jī)每一個(gè)輸出信號(hào)都經(jīng)過(guò)附加的輸出寄存器,并由時(shí)鐘信號(hào)同步,因而保證了輸出信號(hào)沒(méi)有毛刺,如圖3所示。這種方法存在一些弊端:由于增加了輸出寄存器,硬件開銷增大,這對(duì)于一些寄存器資源較少的目標(biāo)芯片是不利的;從狀態(tài)機(jī)的狀態(tài)位到達(dá)輸出需要經(jīng)過(guò)兩級(jí)組合邏輯,這就限制了系統(tǒng)時(shí)鐘的最高工作頻率;由于時(shí)鐘信號(hào)將輸出加載到附加的寄存器上,所以在輸出端得到信號(hào)值的時(shí)間要比狀態(tài)的變化延時(shí)一個(gè)時(shí)鐘周期。

(3)直接把狀態(tài)機(jī)的狀態(tài)碼作為輸出信號(hào),即采用狀態(tài)碼直接輸出型狀態(tài)機(jī),使?fàn)顟B(tài)和輸出信號(hào)一致,使得輸出譯碼電路被優(yōu)化掉了,因此不會(huì)出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。這種方案,占用芯片資源少,信號(hào)與狀態(tài)變化同步,因此速度快,是一種較優(yōu)方案。但在設(shè)計(jì)過(guò)程中對(duì)狀態(tài)編碼時(shí)可能增加狀態(tài)向量,出現(xiàn)多余狀態(tài)。雖然可用CASE語(yǔ)句中WHENOTHERS來(lái)安排多余狀態(tài),但有時(shí)難以有效控制多余狀態(tài),運(yùn)行時(shí)可能會(huì)出現(xiàn)難以預(yù)料的情況。因此它適用于狀態(tài)機(jī)輸出信號(hào)較少的場(chǎng)合。若對(duì)ADC0809的采樣控制采用狀態(tài)碼直接輸出型狀態(tài)機(jī)方案,其主要程序如下:beginlock<=lock1;process(current_state,eoc)begincasecurrent_stateISwhenst0=>next_state<=st1;whenst1=>next_state<=st2;whenst2=>next_state<=st3;whenst3=>if(eoc=‘1’)thennext_state<=st3;elsenext_state<=st4;endif;whenst4=>if(eoc=’0’)thennext_state<=st4;elsenext_state<=st5;endif;whenst5=>next_state<=st6;whenst6=>next_state<=st0;whenothers=>next_state<=st0;endcase;out4<=current_state(5downto2);ale<=current_state(5);start<=current_state(4);oe<=current_state(3);lock1<=current_state(2);endprocess;process(clk)beginif(clk’eventandclk=‘1’)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論