




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
EDA技術(shù)與應(yīng)用第10章Verilog狀態(tài)機(jī)設(shè)計技術(shù)編輯課件
EDA技術(shù)與應(yīng)用§10.1
Verilog狀態(tài)機(jī)的一般形式廣義而論,只要涉及觸發(fā)器的電路,無論電路大小,都能歸結(jié)為狀態(tài)機(jī)。有限狀態(tài)機(jī)用來實現(xiàn)一個數(shù)字電路的控制局部。與CPU的功能類似,綜合了時序邏輯和組合邏輯電路。CPU是通過操作指令和硬件操作單元來實現(xiàn)控制功能,而有限狀態(tài)機(jī)是通過狀態(tài)轉(zhuǎn)移來實現(xiàn)控制功能。綜合器能從不同表述形態(tài)的HDL代碼中輕易萃取出狀態(tài)機(jī),并加以多側(cè)面、多目標(biāo)和多種形式的優(yōu)化。編輯課件
EDA技術(shù)與應(yīng)用§10.1.1狀態(tài)機(jī)的特點(diǎn)與優(yōu)勢面對同一個設(shè)計工程的不同形式的邏輯設(shè)計方案中,利用有限狀態(tài)機(jī)的設(shè)計方案來描述和實現(xiàn)將可能是最正確選擇。有限狀態(tài)機(jī)的優(yōu)越性:〔1〕高效的順序控制模型〔2〕容易利用現(xiàn)成的EDA工具進(jìn)行優(yōu)化設(shè)計〔3〕性能穩(wěn)定〔4〕高速性能〔5〕高可靠性能編輯課件
EDA技術(shù)與應(yīng)用§10.1.2狀態(tài)機(jī)的一般結(jié)構(gòu)用Verilog設(shè)計的狀態(tài)機(jī)根據(jù)不同的分類標(biāo)準(zhǔn)可以分為多種不同形式:從狀態(tài)機(jī)的信號輸出方式上分:Mealy型和Moore型狀態(tài)機(jī)從狀態(tài)機(jī)的結(jié)構(gòu)描述上分:單過程狀態(tài)機(jī)和多過程狀態(tài)機(jī)從狀態(tài)表達(dá)方式上分:符號化狀態(tài)機(jī)和確定狀態(tài)編碼的狀態(tài)機(jī)從狀態(tài)機(jī)編碼方式上分:順序編碼、一位熱編碼或其他編碼方式狀態(tài)機(jī)最一般和最常用的狀態(tài)機(jī)結(jié)構(gòu)中通常包含了說明局部、主控時序過程、主控組合過程、輔助過程等幾個局部編輯課件
EDA技術(shù)與應(yīng)用說明局部中包含狀態(tài)轉(zhuǎn)換變量的定義和所有可能狀態(tài)的說明,必要時還要確定每一狀態(tài)的編碼形式,最好是純抽象的符號化狀態(tài)機(jī),即所定義的狀態(tài)序列和狀態(tài)轉(zhuǎn)換變量都不涉及具體的數(shù)值、編碼,甚至數(shù)據(jù)類型或變量類型。1、狀態(tài)機(jī)說明局部parameter[2:0]s0=0,s1=1,s2=2,s3=3,s4=4;reg[2:0]current_state,next_state;狀態(tài)元素s0、s1等用關(guān)鍵詞parameter來定義,各狀態(tài)元素所取得數(shù)值或編碼必須寫出具體值。parameter旁的位寬說明可寫可不寫current_state是現(xiàn)態(tài)變量和next_state是次態(tài)變量編輯課件
EDA技術(shù)與應(yīng)用2005版本的SystemVerilog1、狀態(tài)機(jī)說明局部typedefenum{s0,s1,s2,s3,s4}type_user;type_usercurrent_state,next_state;typedef是用戶數(shù)據(jù)類型自定義語句關(guān)鍵詞enum是定義枚舉類型關(guān)鍵詞type_user是用戶定義狀態(tài)元素s0、s1、s2、s3、s4為type_user類型的標(biāo)識符第二句將狀態(tài)變量current_state、next_state定義為type_user類型編輯課件
EDA技術(shù)與應(yīng)用2、主控時序過程主控時序過程指負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的過程。狀態(tài)機(jī)是隨外部時鐘信號,以同步時序方式工作的,狀態(tài)機(jī)中必須包含一個對工作時鐘敏感的過程,狀態(tài)機(jī)向下一狀態(tài)轉(zhuǎn)換的實現(xiàn)僅取決于時鐘信號的到來。當(dāng)時鐘的有效跳變到來時,時序過程只是機(jī)械地將代表次態(tài)的信號next_state中的內(nèi)容送入現(xiàn)態(tài)的信號current_state中,而信號next_state中的內(nèi)容完全由其他過程根據(jù)實際情況來決定。此時序過程中也可放置一些同步或異步清0或置位方面的控制信號。編輯課件
EDA技術(shù)與應(yīng)用3、主控組合過程主控組合過程根據(jù)當(dāng)前狀態(tài)和外部的信號發(fā)出控制信號,同時確定下一狀態(tài)的走向。在時鐘的作用下,REG時序過程將次態(tài)信號的內(nèi)容next_state傳遞給現(xiàn)態(tài)信號current_stateCOM組合過程通過信號current_state中的狀態(tài)值,進(jìn)入相應(yīng)的狀態(tài);在此狀態(tài)中根據(jù)外部的信號〔如state_inputs〕向內(nèi)或向外發(fā)出控制信號〔如com_outputs〕;同時根據(jù)外部信號〔如state_inputs〕向次態(tài)信號next_state中賦相應(yīng)的狀態(tài)值,確定下一狀態(tài)的走向;此狀態(tài)值通過next_state傳給REG時序過程,直到下一個時鐘脈沖的到來。編輯課件
EDA技術(shù)與應(yīng)用4、輔助過程輔助過程用于配合狀態(tài)機(jī)工作的組合過程或時序過程。例如為了完成某種算法的過程,或為了存儲數(shù)據(jù)的存儲過程,或用于配合狀態(tài)機(jī)工作的其他時序過程等。例10-1
moduleFSM_EXP(clk,reset,state_inputs,comb_outputs);inputclk; //狀態(tài)機(jī)工作時鐘inputreset; //狀態(tài)機(jī)復(fù)位控制input[0:1]state_inputs;//來自外部的狀態(tài)機(jī)控制信號output[3:0]comb_outputs;//狀態(tài)機(jī)對外部發(fā)出的控制信號輸出reg[3:0]comb_outputs;parameters0=0,s1=1,s2=2,s3=3,s4=4;//定義狀態(tài)參數(shù)reg[4:0]c_st,next_state;//定義現(xiàn)態(tài)和次態(tài)的狀態(tài)變量always@(posedgeclkornegedgereset)begin//主控時序過程if(!reset)c_st<=s0;//復(fù)位有效時,下一狀態(tài)進(jìn)入初態(tài)s0elsec_st<=next_state;end編輯課件
EDA技術(shù)與應(yīng)用例10-1-續(xù)
always@(c_storstate_inputs)begin//主控組合過程case(c_st)//為了在仿真波形中容易看清,將current_state簡寫為c_sts0:begincomb_outputs<=5;//進(jìn)入狀態(tài)s0時,輸出控制碼5 if(state_inputs==2`b00)next_state<=s0;//條件滿足,回初態(tài)s0 elsenext_state<=s1;end//條件不滿足,到下一狀態(tài)s1s1:begincomb_outputs<=8;//進(jìn)入狀態(tài)s1時,輸出控制碼8 if(state_inputs==2`b01)next_state<=s1; elsenext_state<=s2;ends2:begincomb_outputs<=12; if(state_inputs==2`b10)next_state<=s0; elsenext_state<=s3;ends3:begincomb_outputs<=14; if(state_inputs==2`b11)next_state<=s3; elsenext_state<=s4;ends4:begincomb_outputs<=9;next_state<=s0;enddefault:next_state<=s0;//現(xiàn)態(tài)假設(shè)未出現(xiàn)以上各態(tài),返回初態(tài)s0endcaseendendmodule編輯課件
EDA技術(shù)與應(yīng)用狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖狀態(tài)機(jī)的工作時序間接了解狀態(tài)機(jī)內(nèi)部運(yùn)行情況利用它改變狀態(tài)機(jī)變化模式和狀態(tài)轉(zhuǎn)變方向編輯課件
EDA技術(shù)與應(yīng)用§10.1.3初始控制與表述Verilog狀態(tài)機(jī)的相關(guān)設(shè)置控制:〔1〕翻開“狀態(tài)機(jī)萃取〞開關(guān):Assignments→Settings,在category欄,選擇Analysis&SynthesisSettings,單擊旁邊的按鈕MoreSettings,在彈出的對話框下方Existingoptionsettings欄單擊選中ExtractVerilogStateMachines。在上方的Option的Setting欄選擇On編輯課件
EDA技術(shù)與應(yīng)用§10.1.3初始控制與表述Verilog狀態(tài)機(jī)的相關(guān)設(shè)置控制:〔2〕關(guān)于參數(shù)定義表述:在狀態(tài)機(jī)設(shè)計中,用parameter進(jìn)行參數(shù)定義〔綜合器萃取狀態(tài)機(jī)的主要依據(jù)〕,一旦翻開“狀態(tài)機(jī)萃取〞開關(guān),其定義的形式可以十分隨意。比方,可以表述為“parameters0=0,s1=1〞,也可以表述為“parameters0=4`b1001,s1=4`b0011〞,最后狀態(tài)機(jī)被綜合的結(jié)果未必按照此表述方式來構(gòu)建。〔3〕狀態(tài)變量定義表述:如果已翻開“狀態(tài)機(jī)萃取〞開關(guān),定義句中位寬[msb:lsb]的表述可以比較隨意,不必一定與狀態(tài)數(shù)對應(yīng)。假設(shè)有5個狀態(tài),定義時“reg[2:0]c_st,next_state〞中用了位寬[2:0],而不是[4:0]。一旦翻開了“狀態(tài)機(jī)萃取〞開關(guān),就可利用QuartusII的狀態(tài)圖觀察器直觀了解當(dāng)前狀態(tài)圖走向,方法是:Tools→NetlistViewers→StateMachineViewer編輯課件
EDA技術(shù)與應(yīng)用§10.2
Moore型狀態(tài)機(jī)及其設(shè)計從信號輸出方式上分,有Moore型和Mealy型兩類狀態(tài)機(jī)。Mealy型狀態(tài)機(jī)屬于異步輸出狀態(tài)機(jī),它的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),它的輸出是在輸入變化后立即發(fā)生的,不依賴時鐘的同步。Moore型狀態(tài)機(jī)屬于同步輸出狀態(tài)機(jī),它的輸出僅為當(dāng)前狀態(tài)的函數(shù),這類狀態(tài)機(jī)在輸入發(fā)生變化時必須等待時鐘的到來,比Mealy機(jī)要多等待一個時鐘周期。例10-1既屬于Mealy型狀態(tài)機(jī),又屬于Moore型狀態(tài)機(jī)。編輯課件
EDA技術(shù)與應(yīng)用§10.2.1多過程結(jié)構(gòu)狀態(tài)機(jī)ADC0809工作時序和芯片引腳圖START為轉(zhuǎn)換啟動控制信號,高電平有效。ALE為模擬信號輸入選通端口地址鎖存信號,上升沿有效。EOC為狀態(tài)信號,START有效后,EOC為低電平,進(jìn)入轉(zhuǎn)換狀態(tài),轉(zhuǎn)換時間約100ms,轉(zhuǎn)換結(jié)束后,EOC變?yōu)楦唠娖?。OE為輸出允許控制,高電平有效。編輯課件
EDA技術(shù)與應(yīng)用控制ADC0809采樣狀態(tài)圖監(jiān)測EOC,低電平,轉(zhuǎn)換未結(jié)束,停留,高電平,轉(zhuǎn)換結(jié)束,進(jìn)入st3狀態(tài)機(jī)向0809發(fā)出OE信號(高電平),允許輸出,同時作為數(shù)據(jù)穩(wěn)定周期,以便下一個狀態(tài)中向鎖存器鎖入可靠的數(shù)據(jù)。狀態(tài)機(jī)向0809發(fā)出LOCK信號(上升沿),將0809輸出的數(shù)據(jù)進(jìn)行鎖存。編輯課件
EDA技術(shù)與應(yīng)用例10-2
:ADC0809采樣控制
moduleADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,Q,LOCK_T);input[7:0]D;//來自0809轉(zhuǎn)換好的8位數(shù)據(jù)inputCLK,RST;//狀態(tài)機(jī)工作時鐘和系統(tǒng)復(fù)位控制inputEOC;//轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換outputALE;//8個模擬信號通道地址鎖存信號outputSTART,OE;//轉(zhuǎn)換啟動信號和數(shù)據(jù)輸出三態(tài)控制信號outputADDA,LOCK_T;//信號通道控制信號和鎖存測試信號output[7:0]Q;regALE,START,OE;parameters0=0,s1=1,s2=2,s3=3,s4=4;//定義各狀態(tài)子類型reg[4:0]cs,next_state;//為了便于仿真顯示,現(xiàn)態(tài)名簡寫為csreg[7:0]REGL;regLOCK;//轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號always@(csorEOC)begin//主控組合過程,規(guī)定各狀態(tài)轉(zhuǎn)換方式case(cs) s0:beginALE=0;START=0;OE=0;LOCK=0; next_state<=s1;end//0809初始化 s1:beginALE=1;START=1;OE=0;LOCK=0; next_state<=s2;end//啟動采樣信號START編輯課件
EDA技術(shù)與應(yīng)用例10-2-續(xù)
:ADC0809采樣控制
s2:beginALE=0;START=0;OE=0;LOCK=0; if(EOC==1`b1)next_state<=s3;//EOC=0說明轉(zhuǎn)換結(jié)束 elsenext_state<=s2;end//轉(zhuǎn)換未結(jié)束,繼續(xù)等待 s3:beginALE=0;START=0;OE=1;LOCK=0;//開啟OE,翻開 AD數(shù)據(jù)口 next_state<=s4;end//下一狀態(tài)無條件轉(zhuǎn)向s4 s4:beginALE=0;START=0;OE=1;LOCK=1;//開啟數(shù)據(jù)鎖存信號 next_state<=s0;end default:beginALE=0;START=0;OE=0;LOCK=0; next_state<=s0;endendcaseendalways@(posedgeCLKorposedgeRST)begin//時序過程if(RST)cs<=s0;elsecs<=next_state;endalways@(posedgeLOCK)if(LOCK)REGL<=D;//在LOCK上升沿 將轉(zhuǎn)換好的數(shù)據(jù)鎖入assignADDA=0;assignQ=REGL;//選擇模擬信號進(jìn)入通道IN0assignLOCK_T=LOCK;//將測試信號輸出endmodule編輯課件
EDA技術(shù)與應(yīng)用采樣狀態(tài)機(jī)結(jié)構(gòu)框圖程序中包含三個過程結(jié)構(gòu):時序過程REG:在CLK的驅(qū)動下,不斷將next_state中的內(nèi)容〔狀態(tài)元素〕賦給現(xiàn)態(tài)cs,并由此信號將狀態(tài)變量傳輸給COM組合過程。組合過程COM:(1)狀態(tài)譯碼功能。根據(jù)從現(xiàn)態(tài)信號cs中獲得的狀態(tài)變量,以及來自0809的狀態(tài)線信號EOC,決定下一狀態(tài)的轉(zhuǎn)移方向,即次態(tài)的狀態(tài)變量。(2)采樣控制功能。根據(jù)cs中的狀態(tài)變量確定對0809的控制信號ALE、START、OE等輸出相應(yīng)控制信號,當(dāng)采樣結(jié)束后還要通過LOCK向鎖存器過程LATCH發(fā)出鎖存信號。鎖存器輔助過程LATCH:將由0809的D[7..0]數(shù)據(jù)輸出口輸出的8位已轉(zhuǎn)換好的數(shù)據(jù)鎖存起來。編輯課件
EDA技術(shù)與應(yīng)用ADC0809采樣狀態(tài)機(jī)工作時序狀態(tài)s0:復(fù)位信號后即進(jìn)入狀態(tài)s0。狀態(tài)s1:第二個時鐘上升沿后,狀態(tài)機(jī)進(jìn)入狀態(tài)s1〔即cs=s1〕,由START、ALE發(fā)出啟動采樣和地址選通的控制信號。狀態(tài)s2:EOC由高電平變?yōu)榈碗娖剑?809的8位數(shù)據(jù)輸出端呈現(xiàn)高阻態(tài)“ZZ〞。等待CLK數(shù)個時鐘周期后,EOC變?yōu)楦唠娖?,表示轉(zhuǎn)換結(jié)束。狀態(tài)s3:在此狀態(tài)的輸出允許OE被設(shè)置成高電平。此時8089的數(shù)據(jù)輸出端D[7..0]即輸出已經(jīng)轉(zhuǎn)換好的數(shù)據(jù)5EH。狀態(tài)s4:LOCK_T發(fā)出一個脈沖,其上升沿立即將D端口的5E鎖入Q和REGL中。由內(nèi)部LOCK信號引出的測試信號激勵按0809控制時序人為設(shè)定編輯課件
EDA技術(shù)與應(yīng)用例10-3:修改后的ADC0809采樣控制
//將組合過程COM拆分為兩個局部always@(csorEOC)begin//狀態(tài)譯碼和狀態(tài)轉(zhuǎn)換case(cs) s0:next_state<=s1; s1:next_state<=s2; s2:if(EOC==1`b1)next_state<=s3;elsenext_state<=s2; s3:next_state<=s4; s4:next_state<=s0; default:next_state<=s0;endcaseendalways@(csorEOC)begin//對外控制信號輸出case(cs) s0:beginALE=0;START=0;OE=0;LOCK=0;end s1:beginALE=1;START=1;OE=0;LOCK=0;end s2:beginALE=0;START=0;OE=0;LOCK=0;end s3:beginALE=0;START=0;OE=1;LOCK=0;end s4:beginALE=0;START=0;OE=1;LOCK=1;end default:beginALE=0;START=0;OE=0;LOCK=0;endendcaseend編輯課件
EDA技術(shù)與應(yīng)用§10.2.2序列檢測器及其狀態(tài)機(jī)設(shè)計序列檢測器用于檢測一組或多組由二進(jìn)制碼組成的脈沖序列信號,當(dāng)序列檢測器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測器中預(yù)先設(shè)置的碼相同,那么輸出1,否那么輸出0。這種檢測的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次正確碼及正確序列,直到連續(xù)的檢測中所收到的每一位碼都與預(yù)置數(shù)的對應(yīng)碼相同,任何一位不相等都將回到初始狀態(tài)重新開始檢測。編輯課件
EDA技術(shù)與應(yīng)用例10-4:8位序列數(shù)11010011的序列檢測器
moduleSCHK(inputCLK,DIN,RST,outputSOUT);parameters0=40,s1=41,s2=42,s3=43,s4=44,s5=45,s6=46,s7=47,s8=48;//設(shè)定9個狀態(tài)參數(shù)reg[8:0]ST,NST;always@(posedgeCLKorposedgeRST)beginif(RST)ST<=s0;elseST<=NST;endalways@(STorDIN)begin//11010011串行輸入,高位在前case(ST) s0:if(DIN==1`b1)NST<=s1;elseNST<=s0; s1:if(DIN==1`b1)NST<=s2;elseNST<=s0; s2:if(DIN==1`b0)NST<=s3;elseNST<=s0; s3:if(DIN==1`b1)NST<=s4;elseNST<=s0; s4:if(DIN==1`b0)NST<=s5;elseNST<=s0; s5:if(DIN==1`b0)NST<=s6;elseNST<=s0; s6:if(DIN==1`b1)NST<=s7;elseNST<=s0; s7:if(DIN==1`b1)NST<=s8;elseNST<=s0; s8:if(DIN==1`b0)NST<=s3;elseNST<=s0; default:NST<=s0;endcaseendassignSOUT=(ST==s8);endmodule測出的數(shù)據(jù)110恰好與原序列數(shù)的頭三位相同編輯課件
EDA技術(shù)與應(yīng)用§10.3
Mealy型狀態(tài)機(jī)設(shè)計Mealy型狀態(tài)機(jī)與Moore型狀態(tài)機(jī)相比,輸出變化要領(lǐng)先一個周期,即一旦輸入信號或狀態(tài)發(fā)生變化,輸出信號即刻發(fā)生變化。Mealy機(jī)與Moore機(jī)在設(shè)計上根本相同,只是Mealy機(jī)的組合過程結(jié)構(gòu)中的輸出信號是當(dāng)前狀態(tài)和當(dāng)前輸入的函數(shù)。Mealy機(jī)將時序過程與組合過程混合,在同一個過程中決定主控狀態(tài)譯碼和主控時序,所以不需要用次態(tài)來傳遞狀態(tài)。編輯課件
EDA技術(shù)與應(yīng)用例10-5
:雙過程Mealy機(jī)
moduleMEALY1(inputCLK,DIN1,DIN2,RST,outputreg[4:0]Q);reg[4:0]PST;parameterst0=0,st1=1,st2=2,st3=3,st4=4;always@(posedgeCLKorposedgeRST)begin:REGif(RST)PST<=st0;elsebegin case(PST) st0:if(DIN1==1`b1)PST<=st1;elsePST<=st0; st1:if(DIN1==1`b1)PST<=st2;elsePST<=st1; st2:if(DIN1==1`b1)PST<=st3;elsePST<=st2; st3:if(DIN1==1`b1)PST<=st4;elsePST<=st3; st4:if(DIN1==1`b0)PST<=st0;elsePST<=st4; default:PST<=st0; endcaseendendAlways@(PSTofDIN2)begin:COM//輸出控制信號的過程case(PST) st0:if(DIN2==1`b1)Q=5`H10;elseQ=5`H0A; st1:if(DIN2==1`b0)Q=5`H17;elseQ=5`H14; st2:if(DIN2==1`b1)Q=5`H15;elseQ=5`H13; st3:if(DIN2==1`b0)Q=5`H1B;elseQ=5`H09; st4:if(DIN2==1`b1)Q=5`H1D;elseQ=5`H0D; default:Q=5`b00000;endcaseendendmodule編輯課件
EDA技術(shù)與應(yīng)用過程REG是時序與組合混合型過程,將狀態(tài)機(jī)的主控時序電路和主控狀態(tài)譯碼電路同時用一個過程來表達(dá)。過程COM負(fù)責(zé)根據(jù)狀態(tài)和輸入信號給出不同的對外控制信號輸出。雙過程Mealy機(jī)狀態(tài)圖編輯課件
EDA技術(shù)與應(yīng)用雙過程Mealy機(jī)仿真波形PST是現(xiàn)態(tài)轉(zhuǎn)換情況,DIN1控制各狀態(tài)的轉(zhuǎn)換方式,DIN2控制對外控制信號碼的輸出:當(dāng)復(fù)位后,且DIN1=0時,一直處于st0狀態(tài),假設(shè)此時DIN2=0,輸出碼0AH;當(dāng)DIN1都為1時,每一個時鐘上升沿后,都轉(zhuǎn)入下一狀態(tài),直到狀態(tài)s4,同時根據(jù)每一個狀態(tài)下的DIN2的值輸出相應(yīng)設(shè)定的控制碼,一直到DIN1=0才回到初始狀態(tài)s0。輸出信號中存在毛刺,為了排除毛刺,可通過選擇可能的優(yōu)化設(shè)置,也可將輸出通過存放器鎖存,濾除毛刺。毛刺一旦輸入信號DIN2發(fā)生變化,Q即刻發(fā)生變化(異步)編輯課件
EDA技術(shù)與應(yīng)用例10-6
:單過程Mealy機(jī)
moduleMEALY2(inputCLK,DIN1,DIN2,RST,outputreg[4:0]Q);reg[4:0]PST;parameterst0=0,st1=1,st2=2,st3=3,st4=4;always@(posedgeCLKorposedgeRST)begin:REGif(RST)PST<=st0;elsebegin case(PST) st0:beginif(DIN2==1`b1)Q=5`H10;elseQ=5`H0A; if(DIN1==1`b1)PST<=st1;elsePST<=st0;end st1:beginif(DIN2==1`b0)Q=5`H17;elseQ=5`H14; if(DIN1==1`b1)PST<=st2;elsePST<=st1;end st2:beginif(DIN2==1`b1)Q=5`H15;elseQ=5`H13; if(DIN1==1`b1)PST<=st3;elsePST<=st2;end st3:beginif(DIN2==1`b0)Q=5`H1B;elseQ=5`H09; if(DIN1==1`b1)PST<=st4;elsePST<=st3;end st4:beginif(DIN2==1`b1)Q=5`H1D;elseQ=5`H0D; if(DIN1==1`b0)PST<=st0;elsePST<=st4; default:beginPST<=st0;Q=5`b00000;end endcaseendendendmodule編輯課件
EDA技術(shù)與應(yīng)用單過程Mealy機(jī)仿真波形單過程Mealy機(jī)狀態(tài)圖〔與雙過程相同〕輸入信號DIN2發(fā)生變化,要等時鐘上升沿后Q才發(fā)生變化(同步)編輯課件
EDA技術(shù)與應(yīng)用例10-7
:單過程序列檢測器Mealy機(jī)
moduleSCHK(inputCLK,DIN,RST,outputSOUT);parameters0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8;reg[8:0]ST;always@(posedgeCLK)beginSOUT=0;if(RST)ST<=s0;elsebegin case(ST) s0:if(DIN==1`b1)ST<=s1;elseST<=s0; s1:if(DIN==1`b1)ST<=s2;elseST<=s0; s2:if(DIN==1`b0)ST<=s3;elseST<=s0; s3:if(DIN==1`b1)ST<=s4;elseST<=s0; s4:if(DIN==1`b0)ST<=s5;elseST<=s0; s5:if(DIN==1`b0)ST<=s6;elseST<=s0; s6:if(DIN==1`b1)ST<=s7;elseST<=s0; s7:if(DIN==1`b1)ST<=s8;elseST<=s0; s8:beginSOUT=1; if(DIN==1`b0)ST<=s3;elseST<=s0;end default:ST<=s0; endcaseendendendmodule編輯課件
EDA技術(shù)與應(yīng)用單過程序列檢測器Mealy機(jī)仿真波形與雙過程序列檢測器Moore機(jī)相比,單過程Mealy機(jī)的仿真波形在SOUT的輸出延遲了一個時鐘,這種延遲數(shù)據(jù)具有濾波作用。如果SOUT是一個多位復(fù)雜算法的組合邏輯輸出,可能會有許多毛刺,引起不良后果,利用單過程Mealy機(jī)形式可以有所改善。雙過程序列檢測器Moore機(jī)仿真波形編輯課件
EDA技術(shù)與應(yīng)用§10.4
狀態(tài)機(jī)圖形編輯設(shè)計〔1〕翻開狀態(tài)機(jī)圖形編輯窗:在QuartusII的工程管理窗中點(diǎn)擊File→New,選擇狀態(tài)機(jī)文件StateMachineFile?!?〕翻開狀態(tài)機(jī)圖形編輯窗后,在QuartusII的工程管理窗中點(diǎn)擊Tools→StateMachineWizard。編輯課件
EDA技術(shù)與應(yīng)用〔3〕在StateMachineWizard最初的對話框中選擇生成一個新狀態(tài)機(jī)“Createanewstatemachinedesign〞,然后在后面出來的框中分別選擇復(fù)位信號控制方式和有效方式,如異步和高電平有效:Asynchronous和active-high。編輯課件
EDA技術(shù)與應(yīng)用〔4〕在狀態(tài)機(jī)編輯器對話框中設(shè)置狀態(tài)元素、輸入輸出信號、狀態(tài)轉(zhuǎn)換條件等。狀態(tài)元素輸入信號轉(zhuǎn)換狀態(tài)條件輸出信號不同狀態(tài)對應(yīng)的輸出信號的值編輯課件
EDA技術(shù)與應(yīng)用〔5〕完成后存盤,文件后綴是.smf。可以從狀態(tài)機(jī)圖形編輯器上看到轉(zhuǎn)換圖形,還可以利用左側(cè)的工具進(jìn)行一些修改補(bǔ)充。將這個圖形狀態(tài)機(jī)存盤后,可以以此文件作為工程進(jìn)行設(shè)計。狀態(tài)轉(zhuǎn)換圖形編輯課件
EDA技術(shù)與應(yīng)用〔6〕也可以將這個圖形狀態(tài)機(jī)文件轉(zhuǎn)變成HDL代碼文件。選擇Tools→GenerateHDLFile〔HDL文件控制項〕,在翻開的窗口中,選擇需要轉(zhuǎn)變的硬件描述語言項,包括VHDL、VerilogHDL或SystemVerilog。編輯課件
EDA技術(shù)與應(yīng)用§10.5
不同編碼類型狀態(tài)機(jī)用文字符號定義各狀態(tài)元素的狀態(tài)機(jī)稱為符號化狀態(tài)機(jī),其狀態(tài)元素的具體編碼由Verilog狀態(tài)機(jī)的綜合器根據(jù)預(yù)設(shè)的約束來確定。可直接將各狀態(tài)用具體的二進(jìn)制數(shù)來定義,不使用文字符號,這種編碼方式稱為直接編碼方式。編輯課件
EDA技術(shù)與應(yīng)用§10.5.1直接輸出型編碼最典型的應(yīng)用實例就是計數(shù)器。計數(shù)器本質(zhì)上是一個主控時序過程與一個主控組合過程合二為一的狀態(tài)機(jī),計數(shù)輸出就是各狀態(tài)的狀態(tài)碼。決定了計數(shù)進(jìn)制數(shù)(或膜n)計數(shù)輸出是此狀態(tài)機(jī)狀態(tài)碼輸出若為異步清0,則計數(shù)器是模m計數(shù)器,若為同步清0,則計數(shù)器是模m+1計數(shù)器編輯課件
EDA技術(shù)與應(yīng)用狀態(tài)碼直接輸出型狀態(tài)機(jī):將狀態(tài)編碼直接輸出作為控制信號,即output=state,要求各狀態(tài)的編碼作特殊的安排,以適應(yīng)控制對象的要求。狀態(tài)狀態(tài)編碼STARTALEOELOCKB功能說明s000000初始態(tài)s111000啟動轉(zhuǎn)換s200001若測得EOC=1時,轉(zhuǎn)下一狀態(tài)ST3s300100輸出轉(zhuǎn)換好的數(shù)據(jù)s400110利用LOCK的上升沿江轉(zhuǎn)換好的數(shù)據(jù)鎖存控制ADC0809采樣狀態(tài)機(jī)的狀態(tài)編碼表編輯課件
EDA技術(shù)與應(yīng)用例10-8:ADC0809采樣控制〔狀態(tài)碼直接輸出型〕moduleADC0809(D,CLK,ECO,RST,ALE,START,OE,ADDA,Q,LOCK_T);input[7:0]D;inputCLK,RST,EOC;outputSTART,OE,ALE,ADDA,LOCK_T;output[7:0]Q;parameters0=5`B00000,s1=5`B11000,s2=5`B00001,s3=5`B00100,s4=5`B00110;reg[4:0]cs,SOUT,next_state;reg[7:0]REGL;regLOCK;always@(csorEOC)begincase(cs)s0:beginnext_state<=s1;SOUT=s0;ends1:beginnext_state<=s2;SOUT=s1;ends2:beginSOUT=s2;if(EOC==1`b1)next_state=s3;elsenext_state=s2;ends3:beginSOUT=s3;next_state=s4;ends4:beginSOUT=s4;next_state=s0;end default:beginnext_state=s0;SOUT=s0;endendcaseendalways@(posedgeCLKorposedgeRST)begin//時序過程if(RST)cs<=s0;elsecs<=next_state;endalways@(posedgeSOUT[1])//存放器過程if(SOUT[1])REGAL<=D;assignADDA=0;assignQ=REGL;assignLOCK_T=SOUT[1];assignOE=SOUT[2];assignALE=SOUT[3];assignSTART=SOUT[4];endmodule編輯課件
EDA技術(shù)與應(yīng)用狀態(tài)機(jī)工作時序狀態(tài)碼直接輸出型狀態(tài)機(jī)的優(yōu)點(diǎn):輸出速度快,不大可能出現(xiàn)毛刺現(xiàn)象〔因為控制輸出信號直接來自構(gòu)成狀態(tài)編碼的觸發(fā)器〕。狀態(tài)碼直接輸出型狀態(tài)機(jī)的缺點(diǎn):程序可讀性差,用于狀態(tài)譯碼的組合邏輯資源比其他以相同觸發(fā)器數(shù)量構(gòu)成的狀態(tài)要多,而且控制非法狀態(tài)出現(xiàn)的容錯技術(shù)要求較高。編輯課件
EDA技術(shù)與應(yīng)用§10.5.2用宏定義語句定義狀態(tài)編碼例10-9:ADC0809采樣控制〔宏替換語句`define定義狀態(tài)元素〕`defines05`B00000`defines15`B11000`defines25`B00001`defines35`B00100`defines45`B00110moduleADC0809(D,CLK,ECO,RST,ALE,START,OE,ADDA,Q,LOCK_T);input[7:0]D;inputCLK,RST,EOC;outputSTART,OE,ALE,ADDA,LOCK_T;output[7:0]Q;reg[4:0]cs,SOUT,next_state;reg[7:0]REGL;regLOCK;always@(csorEOC)begincase(cs)
`s0:beginnext_state<=`s1;SOUT=`s0;end`s1:beginnext_state<=`s2;SOUT=`s1;end
`s2:beginSOUT=`s2;if(EOC==1`b1)next_state=`s3;elsenext_state=`s2;end
`s3:beginSOUT=`s3;next_state=`s4;end
`s4:beginSOUT=`s4;next_state=`s0;end default:beginnext_state=`s0;SOUT=`s0;endendcaseend編輯課件
EDA技術(shù)與應(yīng)用§10.5.2用宏定義語句定義狀態(tài)編碼例10-9-續(xù):ADC0809采樣控制〔宏替換語句`define定義狀態(tài)元素〕always@(posedgeCLKorposedgeRST)begin//時序過程if(RST)cs<=`s0;elsecs<=next_state;endalways@(posedgeSOUT[1])//存放器過程if(SOUT[1])REGAL<=D;assignADDA=0;assignQ=REGL;assignLOCK_T=SOUT[1];assignOE=SOUT[2];assignALE=SOUT[3];assignSTART=SOUT[4];endmodule用`define或parameter來定義狀態(tài)元素的編碼的區(qū)別是:`define定義可以針對整個設(shè)計全局,它定義的可以是全局符號常量,可以在各個不同的模塊中通用,這時定義語句必須放在模塊語句module外;也可以針對局部,放在module中。parameter定義在某個模塊module中,只有局部特征。編輯課件
EDA技術(shù)與應(yīng)用例10-8采用parameter來定義狀態(tài)元素的仿真波形例10-9采用`define來定義狀態(tài)元素的仿真波形在狀態(tài)機(jī)仿真波形中直接看到各狀態(tài)的編碼編輯課件
EDA技術(shù)與應(yīng)用§10.5.3宏定義命令語句宏定義命令語句`define屬于編譯指示語句,不參與綜合,只是在綜合前做一些數(shù)據(jù)控制操作。通過`define語句的定義,可以用簡單的名稱或稱為宏名的標(biāo)識符來替代一個復(fù)雜的名字,或字符串,或表達(dá)式等。`define宏名〔標(biāo)識符〕宏內(nèi)容〔字符串〕`define屬于編譯預(yù)處理命令語句。在編譯預(yù)處理時,把程序中在該定義以后的所有同名宏名或標(biāo)識符的內(nèi)容都換成定義中指定的宏內(nèi)容。`definesA+B+C+DassignDOUT=`s+EassignDOUT=A+B+C+D+E編輯課件
EDA技術(shù)與應(yīng)用§10.5.3宏定義命令語句采用宏定義的好處是,簡化了程序的書寫,便于程序修改。在`define`具體應(yīng)用上還應(yīng)注意〔1〕宏定義語句行末尾不加分號?!?〕在程序中引用已定義的宏名時,必須在定義了宏名的標(biāo)識符簽名加上符號“`〞,以示該標(biāo)識符是一個宏定義名字。編輯課件
EDA技術(shù)與應(yīng)用§10.5.4順序編碼優(yōu)點(diǎn):這種編碼方式最為簡單,使用的觸發(fā)器數(shù)量最少〔6狀態(tài)狀態(tài)機(jī)只需3個觸發(fā)器〕,剩余的非法狀態(tài)也最少,容錯技術(shù)最為簡單。缺點(diǎn):常常會占用狀態(tài)轉(zhuǎn)換譯碼組合邏輯較多的資源,特別是有的相鄰狀態(tài)或不相鄰的狀態(tài)轉(zhuǎn)換時涉及多個觸發(fā)器的同時狀態(tài)轉(zhuǎn)換,將耗用更長的轉(zhuǎn)換時間,而且容易出現(xiàn)毛刺現(xiàn)象,這對于觸發(fā)器資源豐富而組合邏輯資源相對珍貴的FPGA器件意義不大,也不適宜。狀態(tài)(States)順序編碼(Sequential-Encoded)State0000State1001State2010State3011State4100State5101編輯課件
EDA技術(shù)與應(yīng)用§10.5.5一位熱碼編碼用n個觸發(fā)器來實現(xiàn)具有n個狀態(tài)的狀態(tài)機(jī)。每一個狀態(tài)都由其中一個觸發(fā)器的狀態(tài)表示,處于該狀態(tài)時,對應(yīng)的觸發(fā)器為1,其余的觸發(fā)器為0。使用了較多的觸發(fā)器,但簡化了狀態(tài)譯碼邏輯,提高了狀態(tài)轉(zhuǎn)換速度,增強(qiáng)了狀態(tài)機(jī)的工作穩(wěn)定性,適合FPGA。因此一位熱碼編碼方式是狀態(tài)機(jī)最常用的編碼方式。狀態(tài)(States)一位熱碼編碼(One-Hot-Encoded)State0100000State1010000State2001000State3000100State4000010State5000001編輯課件
EDA技術(shù)與應(yīng)用§10.5.6狀態(tài)編碼設(shè)置將需要的編碼方式直接寫在程序中,不需要EDA軟件工具進(jìn)行干預(yù)。所有Verilog狀態(tài)機(jī)都屬于用戶自定義編碼型的狀態(tài)機(jī)??刂坪镁C合器,使其不要干預(yù)程序的編碼方式,設(shè)置為用戶自定義編碼方式“User-Encoded〞。在確定編碼方式前要翻開“狀態(tài)機(jī)萃取〞開關(guān)。1、用戶自定義方式編輯課件
EDA技術(shù)與應(yīng)用直接在Verilog程序中使用屬性定義語句指示編譯器按照要求選擇編碼方式。2、用屬性定義語句設(shè)置例10-10:序列檢測器〔用屬性定義語句〕moduleSCHK(inputCLK,DIN,RST,outputregSOUT);parameters0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8;(*syn_encoding=“one-hot〞*)reg[8:0]ST;always@(posedgeCLK)begin(*syn_encoding=“one-hot〞*)“one-hot〞是對編碼的約束。在編譯前要翻開“狀態(tài)機(jī)萃取〞開關(guān)。編碼方式的屬性表述:編輯課件
EDA技術(shù)與應(yīng)用中選用默認(rèn)型編碼“default〞時,計算機(jī)自動選擇“one-hot〞型編碼。編碼方式編碼方式屬性定義邏輯宏單元數(shù)LC觸發(fā)器數(shù)REG一位熱碼(*syn_encoding=“one-hot”*)1310用戶自定義碼(*syn_encoding=“user”*)125格雷碼(*syn_encoding=“gray”*)85順序碼(*syn_encoding=“sequential”*)105約翰遜碼(*syn_encoding=“johnson”*)236默認(rèn)編碼(*syn_encoding=“default”*)1310最簡碼(*syn_encoding=“compact”*)95安全一位熱碼(*syn_encoding=“safe,one-hot”*)2110例10-7不同編碼方式的屬性定義及資源耗用編輯課件
EDA技術(shù)與應(yīng)用3、直接設(shè)置方法在QuartusII中,選擇Assignments→Settings,在跳出的對話框中,選擇Category欄中的Analysis&SynthesisSetting選項,在出現(xiàn)的窗口中單擊按鈕MoreSettings,然后選擇新對話框的Option→Name→StateMachinePocessing,而在其下的Setting欄選擇需要的編碼方式。編輯課件
EDA技術(shù)與應(yīng)用§10.6
異步有限狀態(tài)機(jī)設(shè)計對于異步有限狀態(tài)機(jī),通常情況下,綜合器的“狀態(tài)機(jī)萃取〞開關(guān)對它們沒有影響,而且編譯后也無法自動生成狀態(tài)轉(zhuǎn)換圖。編輯課件
EDA技術(shù)與應(yīng)用例10-11:moduleASM_WAVE1(inputCLK,RST,outputW1,W2);(*synthesis,keep*)reg[1:0]CS;//為在波形圖中了解CS的情況reg[1:0]NS;regW1,W2;parameterS0=1,S1=3,S2=2,S3=0;always@(RSTorNS)//注意其狀態(tài)編碼形式,這將影響狀態(tài)機(jī)功能beginif(RST)CS<=S0;elseCS<=NS;endalways@(CS)beginif(CS==S0)beginW1=1`b0;W2=1`b0;endif(CS==S1)beginW1=1`b1;W2=1`b0;endif(CS==S2)beginW1=1`b1;W2=1`b1;endif(CS==S3)beginW1=1`b0;W2=1`b1;endendalways@(CLK)begincase(CS)S0:if(CLK)NS=S1;elseNS=S0;S1:if(~CLK)NS=S2;elseNS=S1;S2:if(CLK)NS=S3;elseNS=S2;S3:if(~CLK)NS=S0;elseNS=S3;default:NS=S0;endcaseendendmodule工作時序輸出W1在輸入CLK的上升沿翻轉(zhuǎn),輸出W2在輸入CLK的下降沿翻轉(zhuǎn)編輯課件
EDA技術(shù)與應(yīng)用例10-12:moduleASM_WAVE2(CLK1,CLK2,RST,W);inputCLK1,CLK2,RST;outputW;reg[1:0]NS;regW,Z;(*synthesis,keep*)reg[1:0]CS;//為在波形圖中了解CS的情況parameterS0=1,S1=3,S2=2,S3=0;//注意其狀態(tài)編碼形式always@(RSTorNS)beginif(RST)CS<=S0;elseCS<=NS;endalways@(CSorW)begincase(CS)S0:if(W==1)Z=0;elseZ=1;S1:if(W==1)Z=0;elseZ=1;S2:if(W==1)Z=0;elseZ=1;endcaseendalways@(CSorCLK1orCLK2)begincase(CS)S0:if({CLK1,CLK2}==2`b00)beginNS<=S0;W=W;endelseif({CLK1,CLK2}==2`b01)NS<=S1;elseif({CLK1,CLK2}==2`b10)NS<=S2;elseif({CLK1,CLK2}==2`b11)NS<=S3;elseNS<=S0;輸入信號CLK1和CLK2,復(fù)位信號RST,輸出信號W。當(dāng)(CLK1,CLK2)=00時,W保持原值;當(dāng)(CLK1,CLK2)=01時,W輸出低電平;當(dāng)(CLK1,CLK2)=10時,W輸出高電平;當(dāng)(CLK1,CLK2)=11時,W改變當(dāng)前電平值;工作時序編輯課件
EDA技術(shù)與應(yīng)用例10-12-續(xù):S1:if({CLK1,CLK2}==2`b00)NS<=S0;elseif({CLK1,CLK2}==2`b01)beginNS<=S1;W=1`b0;endelseif({CLK1,CLK2}==2`b10)NS<=S2;elseif({CLK1,CLK2}==2`b11)NS<=S3;elseNS<=S0;S2:if({CLK1,CLK2}==2`b00)NS<=S0;elseif({CLK1,CLK2}==2`b01)NS<=S1;elseif({CLK1,CLK2}==2`b10)beginNS<=S2;W<=1`b1;endelseif({CLK1,CLK2}==2`b11)NS<=S3;elseNS<=S0;S3:if({CLK1,CLK2}==2`b00)NS<=S0;elseif({CLK1,CLK2}==2`b01)NS<=S1;elseif({CLK1,CLK2}==2`b10)NS<=S2;elseif({CLK1,CLK2}==2`b11)beginNS<=S3;W<=Z;endelseNS<=S0;endcaseendendmodule輸入信號CLK1和CLK2,復(fù)位信號RST,輸出信號W。當(dāng)(CLK1,CLK2)=00時,W保持原值;當(dāng)(CLK1,CLK2)=01時,W輸出低電平;當(dāng)(CLK1,CLK2)=10時,W輸出高電平;當(dāng)(CLK1,CLK2)=11時,W改變當(dāng)前電平值;編輯課件
EDA技術(shù)與應(yīng)用例10-13:moduleASM3(inputCLK1,CLK2,RST,outputregW);(*synthesis,keep*)reg[2:0]CS;reg[2:0]NS;wireCLK;parameterS0=3`b000,S1=3`b001,S2=3`b011,S3=3`b010,S4=3`b110,S5=3`b111,S6=3`b101,S7=3`b100;
//注意狀態(tài)編碼形式assignCLK=CLK1&CLK2;always@(RSTorNS)if(RST)CS<=S0;elseCS<=NS;always@(CSorCLK)begincase(CS)S0:if(~CLK)NS=S1;elsebeginNS=S0;W=1`b0;endS1:if(CLK)NS=S2;elsebeginNS=S1;W=1`b0;endS2:if(~CLK)NS=S3;elsebeginNS=S2;W=1`b0;endS3:if(CLK)NS=S4;elsebeginNS=S3;W=1`b0;endS4:if(~CLK)NS=S5;elsebeginNS=S4;W=1`b0;endS5:if(CLK)NS=S6;elsebeginNS=S5;W=1`b0;endS6:if(~CLK)NS=S7;elsebeginNS=S6;W=1`b1;endS7:NS=S0;default:beginNS=S0;W=1`b0;endendcaseendendmodule輸入信號CLK1和CLK2,輸出信號W。CLK1總是和CLK2同時有效,且每隔兩個CLK2的有效電平,當(dāng)?shù)谌齻€有效電平出現(xiàn)時,立即輸出W,且其維持有效的時間與CLK2的有效時間相同。編輯課件
EDA技術(shù)與應(yīng)用§10.7平安狀態(tài)機(jī)設(shè)計狀態(tài)機(jī)設(shè)計中,無論使用枚舉類型還是直接指定狀態(tài)編碼的程序中,特別是使用了一位熱碼編碼方式后,不可防止出現(xiàn)大量剩余狀態(tài),即未被定義的編碼組合。這些狀態(tài)在狀態(tài)機(jī)的正常運(yùn)行中是不可能出現(xiàn)的,稱為非法狀態(tài)。在外界不確定的干擾下,或是隨機(jī)上電的初始啟動后,狀態(tài)機(jī)都有可能進(jìn)入不可預(yù)測的非法狀態(tài),后果是對外界出現(xiàn)短暫失控,或是完全無法擺脫非法狀態(tài)而失去正常功能,除非使用復(fù)位控制信號Reset。但在無人控制時,無法獲取復(fù)位信號。對于穩(wěn)定性要求高的控制電路,狀態(tài)機(jī)剩余狀態(tài)的處理,即狀態(tài)機(jī)系統(tǒng)容錯技術(shù)的應(yīng)用,是設(shè)計者必須慎重考慮的問題。剩余狀態(tài)的處理會不同程度地耗用邏輯資源,這就要求設(shè)計者在選用何種狀態(tài)機(jī)結(jié)構(gòu)、何種狀態(tài)編碼方式、何種容錯技術(shù)及系統(tǒng)的工作速度與資源利用率等方面權(quán)衡比較。編輯課件
EDA技術(shù)與應(yīng)用§10.7平安狀態(tài)機(jī)設(shè)計例10-1狀態(tài)順序編碼合法狀態(tài)s0000s1001s2010s3011s4100非法狀態(tài)s5101s6110s7111如果要使此5狀態(tài)的狀態(tài)機(jī)有可靠的工作性能,必須設(shè)法使系統(tǒng)在任何不利情況下都在落入非法狀態(tài)后還能返回正常的狀態(tài)轉(zhuǎn)移路徑中。編輯課件
EDA技術(shù)與應(yīng)用§10.7.1狀態(tài)導(dǎo)引法在狀態(tài)元素定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度澳大利亞大學(xué)本碩連讀合同
- 二零二五年度勞動合同解除協(xié)議
- 二零二五年度農(nóng)村合作社鄉(xiāng)村旅游開發(fā)合作協(xié)議
- 鏟車勞務(wù)承包合同鏟車合同書
- 社交網(wǎng)絡(luò)運(yùn)營合作合同
- 公司內(nèi)外部往來文書規(guī)范手冊
- 小熊維尼的友情世界讀后感
- 生物技術(shù)在農(nóng)村綜合利用項目協(xié)議
- 新能源汽車充電站投資協(xié)議
- 企業(yè)數(shù)字化轉(zhuǎn)型解決方案手冊
- 公有云技術(shù)應(yīng)用PPT高職完整全套教學(xué)課件
- 養(yǎng)老專題:養(yǎng)老理念
- 藝術(shù)概論P(yáng)PT全套完整教學(xué)課件
- 幼兒園多媒體PPT課件制作PPT完整全套教學(xué)課件
- 《蘇東坡傳》閱讀匯報
- 2023離婚協(xié)議模板下載
- 特殊需要兒童的鑒定與分類
- 《正常人體結(jié)構(gòu)》考試參考題庫(大學(xué)復(fù)習(xí))
- 裝飾員工薪資工資表
- 怒江水電開發(fā)的工程倫理案例分析
- 2023新疆中考數(shù)學(xué)試卷及答案解析
評論
0/150
提交評論