版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章有限狀態(tài)機(jī)的設(shè)計(jì)有限狀態(tài)機(jī)(Finite-StateMachine,FSM)簡(jiǎn)稱(chēng)狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)是一種實(shí)現(xiàn)高可靠控制模塊的經(jīng)典方法,具有速度快、可靠性高、結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn),是數(shù)字系統(tǒng)設(shè)計(jì)的重要組成部分。在VerilogHDL設(shè)計(jì)中,常用always和case來(lái)描述狀態(tài)機(jī)。第7章有限狀態(tài)機(jī)的設(shè)計(jì)有限狀態(tài)機(jī)是由組合邏輯和寄存器邏輯構(gòu)成的時(shí)序電路,組合邏輯主要用于狀態(tài)的判斷、譯碼和信號(hào)的產(chǎn)生輸出,寄存器邏輯主要負(fù)責(zé)狀態(tài)的存儲(chǔ)和轉(zhuǎn)移。有限狀態(tài)機(jī)可分為兩類(lèi):摩爾型(Moore)和米里型(Mealy)。7.1有限狀態(tài)機(jī)的分類(lèi)如圖7.1所示,摩爾型狀態(tài)機(jī)的輸出僅由當(dāng)前狀態(tài)決定。狀態(tài)機(jī)的輸出會(huì)在一個(gè)完整的時(shí)鐘周期后保持穩(wěn)定,即當(dāng)輸入變化時(shí),還需等下一個(gè)時(shí)鐘的到來(lái),輸出才會(huì)發(fā)生變化(異步輸出)。7.1.1摩爾型狀態(tài)機(jī)圖7.1摩爾型狀態(tài)機(jī)框架圖如圖7.2所示,米里型狀態(tài)機(jī)的輸出由當(dāng)前狀態(tài)和輸入信號(hào)決定。狀態(tài)機(jī)的輸出在一個(gè)完整的時(shí)鐘周期內(nèi)就保持穩(wěn)定,即當(dāng)輸入變化時(shí),輸出也立即發(fā)生變化(同步輸出)。7.1.2米里型狀態(tài)機(jī)圖7.2米里型狀態(tài)機(jī)框架圖一般情況下?tīng)顟B(tài)機(jī)都采用同步時(shí)序方式設(shè)計(jì),可以降低亞穩(wěn)態(tài)出現(xiàn)的概率,增強(qiáng)抗干擾能力。摩爾型狀態(tài)機(jī)的輸出在有限個(gè)脈沖延時(shí)后達(dá)到穩(wěn)定,所以噪聲少,將輸入與輸出分開(kāi)是摩爾型狀態(tài)機(jī)主要特征。米里型狀態(tài)機(jī)輸出受輸入影響,輸入信號(hào)可能在任一時(shí)鐘周期下發(fā)生變化,雖然會(huì)比摩爾型狀態(tài)機(jī)提前一個(gè)時(shí)鐘周期,但也可能將輸入噪聲帶到輸出端。有限狀態(tài)機(jī)有三種表示方法:流程圖(ASM圖)、狀態(tài)圖(狀態(tài)轉(zhuǎn)移圖)、狀態(tài)表。三種表示方法是可以相互轉(zhuǎn)換的,但狀態(tài)圖是最常用的表示方式(延用數(shù)字邏輯電路時(shí)序電路的表示方式)。在VerilogHDL設(shè)計(jì)中,常用一段式、兩段式和三段式來(lái)描述狀態(tài)機(jī)。7.2有限狀態(tài)機(jī)的表示與描述狀態(tài)圖的每個(gè)圓圈表示一個(gè)狀態(tài),每個(gè)箭頭表示一次跳轉(zhuǎn)。摩爾型狀態(tài)機(jī)的輸出寫(xiě)在圓圈內(nèi),如圖7.3所示。米里型狀態(tài)機(jī)的輸入和輸出寫(xiě)在箭頭上,如圖7.4所示。7.2.1有限狀態(tài)機(jī)的狀態(tài)圖畫(huà)法圖7.3模6計(jì)數(shù)器摩爾型狀態(tài)圖圖7.4模6計(jì)數(shù)器米里型狀態(tài)圖有限狀態(tài)機(jī)屬于時(shí)序電路,設(shè)計(jì)的對(duì)象包括:狀態(tài)寄存器(現(xiàn)態(tài):CurrentState)、狀態(tài)邏輯(次態(tài):NextState)和輸出邏輯(輸出:OutputLogic)。次態(tài)的描述應(yīng)該按照狀態(tài)圖、狀態(tài)表或者流程圖進(jìn)行跳轉(zhuǎn),在描述風(fēng)格上主要分為以下三種:(1)一段式:在一個(gè)always中將現(xiàn)態(tài)、次態(tài)和輸出邏輯寫(xiě)在一起。這種方法不容易維護(hù),特別是狀態(tài)復(fù)雜時(shí)容易出錯(cuò)。(2)兩段式:將現(xiàn)態(tài)和次態(tài)放在一個(gè)always中,將輸出邏輯寫(xiě)在另一個(gè)always中;或者將現(xiàn)態(tài)放在一個(gè)always中,將次態(tài)和輸出邏輯寫(xiě)在另一個(gè)always中。這種方法便于閱讀、維護(hù),有利于綜合器優(yōu)化代碼。但是,在描述當(dāng)前狀態(tài)的輸出采用組合邏輯實(shí)現(xiàn),容易產(chǎn)生毛刺。(3)三段式:將現(xiàn)態(tài)、次態(tài)和輸出邏輯分別寫(xiě)在三個(gè)always中描述。與兩段式相比,三段式是根據(jù)上一狀態(tài)的輸入條件決定當(dāng)前的狀態(tài)輸出,在不插入時(shí)鐘的前提下實(shí)現(xiàn)寄存器輸出的,從而消除了組合邏輯輸出帶來(lái)的亞穩(wěn)態(tài)和毛刺的隱患,而且更有利于綜合和布局布線(xiàn)。7.2.2有限狀態(tài)機(jī)的描述方法采用一段式、兩段式和三段式分別設(shè)計(jì)模6計(jì)數(shù)器:系統(tǒng)帶有同步復(fù)位端(低電平復(fù)位);計(jì)數(shù)器從0開(kāi)始計(jì)數(shù)到5(101),輸出端z等于1;計(jì)數(shù)器狀態(tài)編碼采用順序編碼。7.3模6計(jì)數(shù)器的VerilogHDL描述模6計(jì)數(shù)器的狀態(tài)跳轉(zhuǎn)需6次,這里采用localparam對(duì)6種狀態(tài)進(jìn)行順序編碼。在同一個(gè)always語(yǔ)句中對(duì)現(xiàn)態(tài)、次態(tài)和輸出邏輯統(tǒng)一描述。【例7.1】采用一段式狀態(tài)機(jī)描述模6計(jì)數(shù)器(方法一)。`timescale1ns/1psmodulefsm_counter6_1(Q,z,clk,Res);outputreg[2:0]Q;outputregz;inputclk;inputRes;reg[2:0]state;localparam[2:0]s0=3'b000,s1=3'b001,s2=3'b010,//狀態(tài)編碼s3=3'b011,s4=3'b100,s5=3'b101;always@(posedgeclk)7.3.1模6計(jì)數(shù)器的一段式描述beginif(Res==0)beginstate<=s0;Q<=0;z<=0;end//同步復(fù)位elsebegincase(state)s0:beginstate<=s1;Q<=3'b000;z<=0;ends1:beginstate<=s2;Q<=3'b001;z<=0;ends2:beginstate<=s3;Q<=3'b010;z<=0;ends3:beginstate<=s4;Q<=3'b011;z<=0;ends4:beginstate<=s5;Q<=3'b100;z<=0;ends5:beginstate<=s0;Q<=3'b101;z<=1;enddefault:beginstate<=s0;Q<=3'b000;z<=0;end//多余的狀態(tài)處理endcaseendendendmodule7.3.1模6計(jì)數(shù)器的一段式描述例7.1設(shè)計(jì)了一個(gè)帶同步復(fù)位端的模6計(jì)數(shù)器。在時(shí)鐘上升沿的瞬間檢測(cè)Res為低電平時(shí)復(fù)位,為高電平時(shí)機(jī)器正常工作;采用case語(yǔ)句描述狀態(tài)機(jī)完成了6次跳轉(zhuǎn),因?yàn)閟tate不是fullcase(state為3位變量,可以表示0~7,這里只用到0~5),將多余的狀態(tài)用default進(jìn)行處理,以確保在當(dāng)轉(zhuǎn)移條件不滿(mǎn)足或者狀態(tài)突變時(shí)可以實(shí)現(xiàn)自恢復(fù)。7.3.1模6計(jì)數(shù)器的一段式描述兩段式的描述可分為兩種,在7.2小節(jié)里介紹過(guò)了。例7.2將現(xiàn)態(tài)和次態(tài)放在一個(gè)always中,將輸出邏輯在另一個(gè)always中描述;例題7.3則將次態(tài)與輸出邏輯放在一個(gè)always中描述,現(xiàn)態(tài)則單獨(dú)描述?!纠?.2】采用兩段式狀態(tài)機(jī)描述模6計(jì)數(shù)器(方法二)。`timescale1ns/1psmodulefsm_counter6_2(Q,z,clk,Res);outputreg[2:0]Q;outputregz;inputclk;inputRes;reg[2:0]state;localparam[2:0]s0=3'b000,s1=3'b001,s2=3'b010,//狀態(tài)編碼s3=3'b011,s4=3'b100,s5=3'b101;7.3.2模6計(jì)數(shù)器的兩段式描述always@(posedgeclk)beginif(Res==0)beginstate<=s0;end//同步復(fù)位elsebegincase(state)s0:beginstate<=s1;ends1:beginstate<=s2;ends2:beginstate<=s3;ends3:beginstate<=s4;ends4:beginstate<=s5;ends5:beginstate<=s0;enddefault:beginstate<=s0;end//多余狀態(tài)的處理endcaseendend7.3.2模6計(jì)數(shù)器的兩段式描述always@(state)begincase(state)s0:beginQ=3'b000;z=0;end//輸出邏輯s1:beginQ=3'b001;z=0;ends2:beginQ=3'b010;z=0;ends3:beginQ=3'b011;z=0;ends4:beginQ=3'b100;z=0;ends5:beginQ=3'b101;z=1;enddefault:beginQ=3'b000;z=0;end//多余的狀態(tài)處理endcaseendendmodule例7.2采用的兩段式狀態(tài)機(jī)將現(xiàn)態(tài)和次態(tài)用一個(gè)過(guò)程來(lái)描述:一般用case表示當(dāng)前狀態(tài),用if判斷下一狀態(tài)的跳轉(zhuǎn)。將輸出(Q和z)在另一個(gè)過(guò)程中描述:采用組合邏輯也可采用時(shí)序邏輯描述,摩爾機(jī)僅需用case根據(jù)當(dāng)前狀態(tài)描述輸出,而米里機(jī)要在case語(yǔ)句中用if語(yǔ)句根據(jù)當(dāng)前輸入值和狀態(tài)決定輸出值。7.3.2模6計(jì)數(shù)器的兩段式描述【例7.3】采用兩段式狀態(tài)機(jī)描述模6計(jì)數(shù)器(方法三)。`timescale1ns/1psmodulefsm_counter6_3(Q,z,clk,Res);outputreg[2:0]Q;outputregz;inputclk;inputRes;reg[2:0]state,next_state;localparam[2:0]s0=3'b000,s1=3'b001,s2=3'b010,//狀態(tài)編碼s3=3'b011,s4=3'b100,s5=3'b101;always@(posedgeclk)beginif(Res==0)beginstate<=s0;end//同步復(fù)位elsestate<=next_state;endalways@(posedgeclk)7.3.2模6計(jì)數(shù)器的兩段式描述beginif(Res==0)beginnext_state<=s0;Q<=3'b000;z<=0;endelsecase(state)s0:beginnext_state<=s1;Q<=3'b000;z<=0;end//次態(tài)和輸出邏輯s1:beginnext_state<=s2;Q<=3'b001;z<=0;ends2:beginnext_state<=s3;Q<=3'b010;z<=0;ends3:beginnext_state<=s4;Q<=3'b011;z<=0;ends4:beginnext_state<=s5;Q<=3'b100;z<=0;ends5:beginnext_state<=s0;Q<=3'b101;z<=1;enddefault:beginnext_state<=s0;Q<=3'b000;z<=0;end//多余的狀態(tài)處理endcaseendendmodule例7.3采用的兩段式狀態(tài)機(jī)將現(xiàn)態(tài)用一個(gè)過(guò)程描述,即“state<=next_state”。在另一個(gè)過(guò)程對(duì)次態(tài)和輸出邏輯進(jìn)行描述。7.3.2模6計(jì)數(shù)器的兩段式描述例7.4采用的三段式狀態(tài)機(jī)將現(xiàn)態(tài)、次態(tài)和輸出邏輯分別放在三個(gè)always中描述。三段式狀態(tài)機(jī)代碼容易理解和維護(hù),采用時(shí)序邏輯輸出可以較好地解決組合邏輯電路的毛刺現(xiàn)象,但會(huì)消耗更多資源?!纠?.4】采用三段式狀態(tài)機(jī)描述模6計(jì)數(shù)器(方法四)。`timescale1ns/1psmodulefsm_counter6_4(Q,z,clk,Res);outputreg[2:0]Q;outputregz;inputclk;inputRes;reg[2:0]state,next_state;localparam[2:0]s0=3'b000,s1=3'b001,s2=3'b010,//狀態(tài)編碼s3=3'b011,s4=3'b100,s5=3'b101;always@(posedgeclk)beginif(Res==0)beginstate<=s0;end//同步復(fù)位elsestate<=next_state;//現(xiàn)態(tài)end7.3.3模6計(jì)數(shù)器的三段式描述always@(state)begincase(state)//次態(tài)s0:beginnext_state=s1;ends1:beginnext_state=s2;ends2:beginnext_state=s3;ends3:beginnext_state=s4;ends4:beginnext_state=s5;ends5:beginnext_state=s0;enddefault:beginnext_state=s0;end//多余的狀態(tài)處理endcaseendalways@(posedgeclk)beginif(Res==0)beginQ<=3'b000;z<=0;endelsecase(state)//輸出邏輯s0:beginQ<=3'b000;z<=0;ends1:beginQ<=3'b001;z<=0;end7.3.3模6計(jì)數(shù)器的三段式描述s2:beginQ<=3'b010;z<=0;ends3:beginQ<=3'b011;z<=0;ends4:beginQ<=3'b100;z<=0;ends5:beginQ<=3'b101;z<=1;enddefault:beginQ<=3'b000;z<=0;endendcaseendendmodule7.3.3模6計(jì)數(shù)器的三段式描述針對(duì)例7.1~例7.3編寫(xiě)仿真激勵(lì)程序:設(shè)計(jì)一個(gè)時(shí)鐘周期為100ns的信號(hào),采用同步復(fù)位分別對(duì)例7.1-例7.3進(jìn)行仿真,產(chǎn)生波形如圖7.5所示。Res等于高電平后(Q從000加到101),z等于1?!纠?.5】模6計(jì)數(shù)器的仿真激勵(lì)程序`timescale1ns/1psmodulefsm_counter6_1_tb();wire[2:0]Q;wirez;regclk;regRes;parameterPeriod=100;//定義周期常量Period為100fsm_counter6_3uut(.Q(Q),.z(z),.clk(clk),.Res(Res));initial7.3.4模6計(jì)數(shù)器的仿真激勵(lì)beginclk=0;Res=0;clk=1;#Period;//同步復(fù)位Res=1;//停止復(fù)位#(Period*5)$stop;//5個(gè)周期后停止endalwaysbegin#(Period/2)clk=~clk;//100ns時(shí)鐘產(chǎn)生endendmodule仿真波形如圖7.5如示。7.3.4模6計(jì)數(shù)器的仿真激勵(lì)圖7.5模6計(jì)數(shù)器仿真波形狀態(tài)編碼是指使用特定數(shù)量的寄存器,通過(guò)特定形式將狀態(tài)集合表示出來(lái)的過(guò)程。如例7.1~例7.4中狀態(tài)變量s0~s5就是具體的狀態(tài)編碼。狀態(tài)編碼的方式有多種,如二進(jìn)制編碼、格雷碼、約翰遜碼、獨(dú)熱碼等。狀態(tài)編碼的方式?jīng)Q定了保存狀態(tài)所需的觸發(fā)器數(shù)量,會(huì)影響狀態(tài)機(jī)的次態(tài)及輸出邏輯的復(fù)雜程度。7.4狀態(tài)的編碼1.順序編碼順序編碼一般采用順序的二進(jìn)制方式來(lái)實(shí)現(xiàn)編碼,比如例7.1中的6個(gè)狀態(tài)s0~s5,分別用000、001、010、011、100、101來(lái)表示。它的特點(diǎn)是編碼形式簡(jiǎn)單、使用的觸發(fā)器最少,但是在狀態(tài)轉(zhuǎn)換時(shí)有可能出現(xiàn)多個(gè)比特位同時(shí)發(fā)生變化(電路會(huì)產(chǎn)生較大尖峰脈沖)、瞬變次數(shù)較多,容易產(chǎn)生毛刺現(xiàn)象,增加了輸出噪聲。2.格雷碼格雷碼采用相鄰狀態(tài)轉(zhuǎn)換時(shí)只有一個(gè)比特位發(fā)生翻轉(zhuǎn)的方法來(lái)實(shí)現(xiàn)編碼,比如例7.1中的6個(gè)狀態(tài)分別用000、001、011、010、110、111來(lái)表示。它的特點(diǎn)是使用的邏輯單元少,消除了狀態(tài)轉(zhuǎn)換時(shí)傳輸延遲產(chǎn)生的毛刺和亞穩(wěn)態(tài)。3.約翰遜碼約翰遜碼采用把輸出的最高位取反后做為輸入反饋到最低位來(lái)實(shí)現(xiàn)編碼。比如例7.1中的6個(gè)狀態(tài)分別用000、001、011、111、110、100來(lái)表示。它的特點(diǎn)是相鄰兩個(gè)比特間只有一個(gè)位不同,瞬變次數(shù)少,不容易產(chǎn)生毛刺現(xiàn)象。4.獨(dú)熱碼獨(dú)熱碼采用N個(gè)狀態(tài)寄存器對(duì)N個(gè)狀態(tài)進(jìn)行編碼,每個(gè)狀態(tài)都有獨(dú)立的寄存器位。比如例7.1中的6個(gè)狀態(tài)分別用000001、000010、000100、001000、010000、100000來(lái)表示。它的特點(diǎn)是在狀態(tài)比較時(shí)僅需比較一個(gè)位,雖然用了較多的觸發(fā)器,卻簡(jiǎn)化了譯碼邏輯(組合邏輯電路少),可以工作于較高的頻率上,更適合FPGA上的設(shè)計(jì)。7.4.1狀態(tài)編碼的分類(lèi)狀態(tài)編碼是一種常量,為了增強(qiáng)可讀性和靈活性,在Verilog中采用三種方法定義狀態(tài)編碼:`define、parameter和localparam。1.`define概念:`define一般寫(xiě)在需要定義的module上面,若`define指令被編譯,在整個(gè)編譯過(guò)程中都有效,直到遇到`undef。
舉例說(shuō)明:`definemsb9調(diào)用格式:reg[`msb:0]x_in;2.parameter概念:parameter在module內(nèi)部定義,可用于一般常量或表達(dá)式的定義,但無(wú)法進(jìn)行參數(shù)傳遞;在module內(nèi)定義可以實(shí)現(xiàn)參數(shù)的傳遞。使用格式:module_name#(parametername1=value1,parametername2=value2)(portmap); 舉例說(shuō)明:moduleseq100#(parametera=10,parametermsb=9,parameterlsm=0)//參數(shù)傳遞 (inputclk,inputRes,outputz);parametersum=a+b,q="abc";//module內(nèi)部定義一般常量或表達(dá)式7.4.2狀態(tài)編碼的定義7.4.2狀態(tài)編碼的定義
parameterIDLE=3’b001,s0=3’b010,s1=3’b100;always@(posedgeclk)……調(diào)用格式:module_name#(.parameter_name(value),.parameter_name(value)) inst_name(portmap);舉例說(shuō)明:moduleseq100#(.msb(8),.delay(10),.lsb(0))//名字映射法 uut(.clk(clk_100M),.Res(Res),.z(z));3、localparam
概念:localparam寫(xiě)在需要定義的module內(nèi)部,無(wú)法實(shí)現(xiàn)參數(shù)傳遞。localparam一般用于狀態(tài)機(jī)的狀態(tài)編碼定義。
舉例說(shuō)明:localparammsb=9,lsb=0; 調(diào)用格式:reg[msb:0]x_in;采用何種編碼應(yīng)該綜合考慮編程芯片的內(nèi)部資源、狀態(tài)的多少等因素。順序編碼、格雷碼、約翰遜碼使用的組合邏輯較多,觸發(fā)器少,比較適用于CPLD器件(組合邏輯資源較多)或者小型狀態(tài)機(jī)。獨(dú)熱碼使用的觸發(fā)器較多,組合邏輯較少,比較適用于FPGA器件(觸發(fā)器資源豐富)或者速度較高的場(chǎng)合。順序編碼與格雷碼和約翰遜碼比較:格雷碼和約翰遜碼跳轉(zhuǎn)時(shí)只有1個(gè)位發(fā)生翻轉(zhuǎn)(例7.1中順序編碼從s3跳到s4時(shí)有3個(gè)位翻轉(zhuǎn),而格雷碼和約翰遜碼只有1個(gè)位翻轉(zhuǎn)),可以消除多條信號(hào)線(xiàn)由于傳輸延時(shí)或門(mén)延時(shí)所產(chǎn)生的毛刺,減低功耗。獨(dú)熱碼與其他編碼的比較:在狀態(tài)比較時(shí),獨(dú)熱碼僅需比較一個(gè)位,而其他編碼需要對(duì)所有位進(jìn)行比較(例7.1中比較state與s0是否相等時(shí),獨(dú)熱碼僅需比較state[0]=1,而其他編碼需比較3個(gè)位),在速度上占有優(yōu)勢(shì)。但是獨(dú)熱碼位寬一般比其他編碼多,需要的觸發(fā)器也就多,從而增加了設(shè)計(jì)面積。在資源允許的情況下采用獨(dú)熱碼當(dāng)然是最好的,但在通常情況下是要綜合考慮的。建議在4個(gè)狀態(tài)以?xún)?nèi)用二進(jìn)制碼(譯碼電路不復(fù)雜),5~24個(gè)狀態(tài)采用獨(dú)熱碼(觸發(fā)器用得不多),24個(gè)狀態(tài)以上采用格雷碼(綜合設(shè)計(jì)面積和資源考慮)。7.4.3狀態(tài)編碼的設(shè)計(jì)建議序列檢測(cè)器是指將特定的序列中串行的數(shù)字碼流從檢測(cè)出來(lái)的機(jī)器。本節(jié)分別采用摩爾型狀態(tài)機(jī)、米里型狀態(tài)機(jī)設(shè)計(jì)一個(gè)“100”檢測(cè)器。檢測(cè)器的狀態(tài)機(jī)設(shè)計(jì)采用三段式描述風(fēng)格,使用獨(dú)熱碼編碼,并帶有同步復(fù)位端。7.5序列檢測(cè)器的VerilogHDL描述圖7.6為“100”序列檢測(cè)器的摩爾型狀態(tài)圖。當(dāng)Res等于0時(shí)跳轉(zhuǎn)到IDLE態(tài),進(jìn)入復(fù)位后的初始態(tài)。在IDLE態(tài)下檢測(cè)到輸入x等于1后跳轉(zhuǎn)到s1態(tài),否則停留在IDLE態(tài);s1態(tài)下x應(yīng)為0才跳轉(zhuǎn)到s2態(tài),否則一直停留在s1態(tài);在s2態(tài)下檢測(cè)到x為0后跳轉(zhuǎn)到s3態(tài),x若為1則跳回s1態(tài);在s3態(tài)下輸出端z為1,若輸入x為1時(shí)跳轉(zhuǎn)至s1態(tài),否則跳轉(zhuǎn)至IDLE態(tài)。7.5.1序列檢測(cè)器的三段式摩爾型狀態(tài)機(jī)描述圖7.6序列檢測(cè)器的摩爾型狀態(tài)圖【例7.6】“100”序列檢測(cè)器的三段式摩爾型狀態(tài)機(jī)Verilog描述。`timescale1ns/1ps//摩爾型狀態(tài)機(jī)moduleseq100_1(z,x,clk,Res);//sequentialdetectoroutputregz;inputx,clk,Res;reg[3:0]state,next_state;localparam[3:0]IDLE=4'b0001,s1=4'b0010,//狀態(tài)編碼s2=4'b0100,s3=4'b1000;//獨(dú)熱碼always@(posedgeclk)//時(shí)鐘上升沿;beginif(Res==0)beginstate<=IDLE;end//同步復(fù)位elsestate<=next_state;//現(xiàn)態(tài)endalways@(state,x)begincase(state)//次態(tài)跳轉(zhuǎn)
7.5.1序列檢測(cè)器的三段式摩爾型狀態(tài)機(jī)描述IDLE:beginif(x==1)next_state=s1;elsenext_state=IDLE;ends1:beginif(x==0)next_state=s2;elsenext_state=s1;ends2:beginif(x==0)next_state=s3;elsenext_state=s1;ends3:beginif(x==0)next_state=IDLE;elsenext_state=s1;enddefault:beginnext_state=IDLE;end//多余的狀態(tài)處理endcaseendalways@(state,Res)beginif(Res==0)beginz=0;endelsecase(state)//輸出與現(xiàn)態(tài)有關(guān),與輸入x無(wú)關(guān)。摩爾型狀態(tài)機(jī)s3:z=1;default:z=0;endcaseendendmodule7.5.1序列檢測(cè)器的三段式摩爾型狀態(tài)機(jī)描述圖7.7為“100”序列檢測(cè)器的米里型狀態(tài)圖。當(dāng)Res等于0時(shí)跳轉(zhuǎn)到IDLE態(tài),進(jìn)入復(fù)位后的初始態(tài)。在IDLE態(tài)下檢測(cè)到輸入x等于1后跳轉(zhuǎn)到s1態(tài),否則停留在IDLE態(tài);s1態(tài)下x應(yīng)為0才跳轉(zhuǎn)到s2態(tài),否則一直停留在s1態(tài);在s2態(tài)下檢測(cè)到x為0后輸出端z為1同時(shí)跳轉(zhuǎn)到跳轉(zhuǎn)至IDLE態(tài),若輸入x為1時(shí)跳轉(zhuǎn)至s1態(tài)。7.5.2序列檢測(cè)器的三段式米里型狀態(tài)機(jī)描述圖7.7序列檢測(cè)器的米里型狀態(tài)圖【例7.7】“100”序列檢測(cè)器的三段式米里型狀態(tài)機(jī)Verilog描述。`timescale1ns/1psmoduleseq100_2(z,x,clk,Res);//sequentialdetectoroutputregz;inputx,clk,Res;reg[2:0]state,next_state;localparam[2:0]IDLE=4'b001,s1=4'b010,//狀態(tài)編碼s2=4'b100;//獨(dú)熱碼always@(posedgeclk)//時(shí)鐘上升沿;beginif(Res==0)beginstate<=IDLE;end//同步復(fù)位elsestate<=next_state;//現(xiàn)態(tài)endalways@(state,x)begin7.5.2序列檢測(cè)器的三段式米里型狀態(tài)機(jī)描述case(state)//次態(tài)跳轉(zhuǎn)IDLE:beginif(x==1)next_state=s1;elsenext_state=IDLE;ends1:beginif(x==0)next_state=s2;elsenext_state=s1;ends2:beginif(x==0)next_state=IDLE;elsenext_state=s1;enddefault:beginnext_state=IDLE;end//多余的狀態(tài)處理endcaseendalways@(state,Res)//輸出邏輯beginif(Res==0)beginz=0;endelsecase(state)s2:if(x==0)z=1;//輸出與輸入和現(xiàn)態(tài)有關(guān)。default:z=0;endcaseendendmodule7.5.2序列檢測(cè)器的三段式米里型狀態(tài)機(jī)描述針對(duì)例7.6~例7.7編寫(xiě)仿真激勵(lì)程序:設(shè)計(jì)一個(gè)時(shí)鐘周期為100ns的信號(hào),采用同步復(fù)位分別對(duì)例7.6~例7.7進(jìn)行仿真。在輸入的串行碼流“0110000100”中檢測(cè)到兩次“100”序列,z輸出為1?!纠?.8】“100”序列檢測(cè)器的仿真激勵(lì)程序`timescale1ns/1psmoduleseq100_1_tb;wirez;regx,clk,Res;parameterPeriod=100;//定義周期常量Period為100parametermsb=9;//定義x_in的位寬parameterlsb=0;reg[msb:lsb]x_in=10'b0110000100;seq100_1uut(//名字映射.z(z),.x(x),.clk(clk),.Res(Res));initial7.5.3序列檢測(cè)器的仿真激勵(lì)beginclk=0;x=0;Res=0;clk=1;#Period;//同步復(fù)位Res=1;//停止復(fù)位#(Period*(msb+2))$stop;endalwaysbegin #(Period/2)clk=~clk;//100ns時(shí)鐘產(chǎn)生endalways@(posedgeclk)begin#5x=x_in[msb];x_in=x_in<<1;endendmodule圖7.8為檢測(cè)器的摩爾型狀態(tài)機(jī),當(dāng)x出現(xiàn)連續(xù)的“100”序列后的下一個(gè)時(shí)鐘周期z輸出1。圖7.9為檢測(cè)器的米里型狀態(tài)機(jī),當(dāng)x出現(xiàn)連續(xù)的“100”序列時(shí)z馬上輸出1。米里型狀態(tài)機(jī)比摩爾型狀態(tài)機(jī)提前一個(gè)時(shí)鐘周期得到輸出信號(hào)。7.5.3序列檢測(cè)器的仿真激勵(lì)7.5.3序列檢測(cè)器的仿真激勵(lì)圖7.8“100”序列檢測(cè)器的三段式摩爾型狀態(tài)機(jī)仿真圖圖7.9“100”序列檢測(cè)器的三段式米里型狀態(tài)機(jī)仿真圖數(shù)碼管是設(shè)計(jì)中經(jīng)常使用的顯示器件,它的驅(qū)動(dòng)分為兩種:靜態(tài)顯示和動(dòng)態(tài)顯示。動(dòng)態(tài)顯示是用兩位以上的數(shù)碼管通過(guò)分時(shí)掃描每一位,利用人眼的視覺(jué)停留現(xiàn)象,造成一種假靜態(tài)顯示的效果。本節(jié)將重點(diǎn)介紹動(dòng)態(tài)顯示的電路、狀態(tài)機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)和激勵(lì)仿真。7.6動(dòng)態(tài)顯示的VerilogHDL描述圖7.10是八位共陰動(dòng)態(tài)顯示電路圖,該電路由兩個(gè)4位共陰數(shù)碼管、8個(gè)NPN三極管和若干個(gè)電阻電容組成。當(dāng)SMG1的數(shù)據(jù)端A~H輸入高電平(如:8’b0110_0000),且Q1基極LED_BIT1為高電平,則最左邊數(shù)碼管點(diǎn)亮(顯示1)。此時(shí)數(shù)據(jù)端B、C的電流流經(jīng)數(shù)碼管,從COM1輸出至三極管Q1的集電極再經(jīng)射極到GND,最左邊數(shù)碼管B、C段點(diǎn)亮。動(dòng)態(tài)方式顯示時(shí)各數(shù)碼管分時(shí)輪流選通:即在某一時(shí)刻只選通一位數(shù)碼管(對(duì)應(yīng)的NPN三極管為導(dǎo)通),并送出相應(yīng)的字型碼給數(shù)據(jù)端A~H;在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的字型碼。依此規(guī)律循環(huán),既可使數(shù)碼管分別將要顯示的不同字符顯示在相應(yīng)的位置上。由于人眼存在視覺(jué)暫留效應(yīng)(人眼在觀(guān)察景物時(shí),光信號(hào)傳入大腦神經(jīng),需經(jīng)過(guò)一段短暫的時(shí)間,光的作用結(jié)束后,視覺(jué)形象并不立即消失,這種被稱(chēng)為“視覺(jué)暫留”或“余暉效應(yīng)”),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺(jué)。通常數(shù)碼管顯示周期20ms左右即可,周期太短會(huì)有重影,周期太長(zhǎng)會(huì)有閃爍現(xiàn)象。現(xiàn)實(shí)中經(jīng)常把SMG1的A~H與SMG2的A~H并聯(lián)在一起,這里使用的EGO1開(kāi)發(fā)板兩個(gè)4位數(shù)碼管的數(shù)據(jù)端A~H是獨(dú)立分開(kāi)的。7.6.1動(dòng)態(tài)顯示的工作原理7.6.1動(dòng)態(tài)顯示的工作原理圖7.10八位共陰動(dòng)態(tài)顯示電路圖本次開(kāi)發(fā)板有源晶振為100MHz,八位數(shù)碼管共占用20ms時(shí)間,則每位數(shù)碼管占用2.5ms時(shí)間,動(dòng)態(tài)顯示的時(shí)鐘由有源晶振分頻所得?!纠?.9】采用三段式狀態(tài)機(jī)設(shè)計(jì)一個(gè)八位動(dòng)態(tài)顯示程序,顯示內(nèi)容為1~8。`timescale1ns/1psmodulesmg8_fsm(LED_BITS,DATA1_A_G,DATA2_A_G,clk,Res);inputclk;//100MHzinputRes;//高電平復(fù)位outputreg[7:0]LED_BITS;//位選端outputreg[6:0]DATA1_A_G,DATA2_A_G;//數(shù)據(jù)端a~gparameterdiv_dat=250000;//分頻比250000wireclk_div;//分頻輸出reg[7:0]state,next_state;//必須和狀態(tài)編碼位數(shù)一樣reg[19:0]cnt;//cnt的位數(shù)必須大于等于div_dat;localparams0=8'b0000_0001,s1=8'b0000_0010,
s2=8'b0000_0100,s3=8'b0000_1000,s4=8'b0001_0000,s5=8'b0010_0000,s6=8'b0100_0000,s7=8'b1000_0000;//獨(dú)熱碼編碼;7.6.2動(dòng)態(tài)顯示的狀態(tài)機(jī)描述always@(state,Res)beginif(Res)beginnext_state<=s0;endelsebegincase(state)//次態(tài)s0:beginnext_state<=s1;ends1:beginnext_state<=s2;ends2:beginnext_state<=s3;ends3:beginnext_state<=s4;ends4:beginnext_state<=s5;ends5:beginnext_state<=s6;ends6:beginnext_state<=s7;ends7:beginnext_state<=s0;enddefault:beginnext_state<=s0;endendcaseendendalways@(state,Res)//輸出邏輯begin7.6.2動(dòng)態(tài)顯示的狀態(tài)機(jī)描述
if(Res)beginLED_BITS=8'h00;DATA1_A_G=7'h00;DATA2_A_G=7'h00;endelsebegincase(state)//1-7'h06,2-7'h5b,3-7'h4f,4-7'h66,5-7'h6d,6-7'h7d,7-7'h07,8-7'h7fs0:beginDATA1_A_G=7'h06;DATA2_A_G=7'h00;LED_BITS=8'h80;ends1:beginDATA1_A_G=7'h5b;DATA2_A_G=7'h00;LED_BITS=8'h40;ends2:beginDATA1_A_G=7'h4f;DATA2_A_G=7'h00;LED_BITS=8'h20;ends3:beginDATA1_A_G=7'h66;DATA2_A_G=7'h00;LED_BITS=8'h10;ends4:beginDATA2_A_G=7'h6d;DATA1_A_G=7'h00;LED_BITS=8'h08;ends5:beginDATA2_A_G=7'h7d;DATA1_A_G=7'h00;LED_BITS=8'h04;ends6:beginDATA2_A_G=7'h07;DATA1_A_G=7'h00;LED_BITS=8'h02;ends7:beginDATA2_A_G=7'h7f;DATA1_A_G=7'h00;LED_BITS=8'h01;enddefault:beginDATA1_A_G=7'h00;DATA2_A_G=7'h00;LED_BITS=8'h00;endendcaseendendendmodule7.6.2動(dòng)態(tài)顯示的狀態(tài)機(jī)描述例7.9對(duì)數(shù)碼管的位選端的控制順序采用localparam(獨(dú)熱碼)進(jìn)行編碼。用cnt對(duì)100MHz的系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù)分頻,產(chǎn)生2.5ms的clk_div信號(hào)用于分時(shí)驅(qū)動(dòng)8位數(shù)碼管。后三個(gè)always則是動(dòng)態(tài)顯示的三段式描述,對(duì)現(xiàn)態(tài)、次態(tài)和輸出邏輯分別進(jìn)行描述。7.6.2動(dòng)態(tài)顯示的狀態(tài)機(jī)描述對(duì)例7.9激勵(lì)仿真,系統(tǒng)在復(fù)位后只需采用always產(chǎn)生時(shí)鐘信號(hào)即可。仿真波形如圖7.11所示,從波形中可看到DATA1_A_G、DATA2_A_G和LED_BITS與例7.9中的always@(state,Res)的輸出邏輯一致?!纠?.10】三段式八位動(dòng)態(tài)顯示狀態(tài)機(jī)仿真激勵(lì)程序。`timescale1ns/1psmodulesmg8_fsm_tb();regclk;//100MHzregRes;//高電平復(fù)位wire[7:0]LED_BITS;//位選端wire[6:0]DATA1_A_G,DATA2_A_G;//數(shù)據(jù)端a~gparameterPeriod=10;//定義周期常量Period為10smg8_fsmuut(LED_BITS,DATA1_A_G,DATA2_A_G,clk,Res);//位置映射initialbegin clk=0;Res=1;#Period; Res=0;//不復(fù)位;endalways7.6.3動(dòng)態(tài)顯示的仿真激勵(lì)begin #(Period/2)clk=~clk;//10ns時(shí)鐘產(chǎn)生endendmodule7.6.3動(dòng)態(tài)顯示的仿真激勵(lì)圖7.11三段式八位動(dòng)態(tài)顯示狀態(tài)機(jī)仿真圖數(shù)模轉(zhuǎn)換器是將串行或并行的二進(jìn)制數(shù)字量轉(zhuǎn)換為直流電壓或直流電流的器件,經(jīng)常用于波形產(chǎn)生、數(shù)控恒流穩(wěn)壓等,或用在數(shù)字音頻播放器等上。本節(jié)講述的是8位并行數(shù)模轉(zhuǎn)換器DAC0832芯片的運(yùn)用,圖7.12所示為單極性輸出的DAC0832電路。EGO1開(kāi)發(fā)板上DAC0832的參考電壓Vref是兩個(gè)電阻對(duì)負(fù)5V電壓的分壓所得,電壓實(shí)測(cè)為負(fù)3.68V。模數(shù)轉(zhuǎn)換后輸出后經(jīng)過(guò)雙電源供電的運(yùn)放LM324得到一個(gè)正電壓((0~3.68)*255/256V)。7.7數(shù)/模轉(zhuǎn)換器DAC0832的VerilogHDL描述圖7.12單極性輸出DAC0832電路DAC0832的控制方式有三種:直通模式、單緩沖模式和雙緩沖模式。直通模式是分別將ILE置1,、、和均置0,此時(shí)二進(jìn)制數(shù)據(jù)直接從DAC0832的輸入端D0~D7輸入,通過(guò)兩級(jí)寄存器到達(dá)DA轉(zhuǎn)換器輸出。單緩沖模式是將ILE、、、和其中一個(gè)端口置為無(wú)效(設(shè)置其中一級(jí)寄存器為直通),二進(jìn)制數(shù)據(jù)輸入后(有效時(shí)間大于90ns)再同時(shí)開(kāi)啟另一級(jí)寄存器(有效時(shí)間大于500ns),完成DA轉(zhuǎn)換和輸出。雙緩沖模式是將二進(jìn)制數(shù)據(jù)輸入后(有效時(shí)間大于90ns),開(kāi)啟第一級(jí)寄存器讓數(shù)據(jù)鎖存在第一級(jí)寄存器中再關(guān)閉第一級(jí)寄存器(有效時(shí)間大于500ns),當(dāng)總線(xiàn)上控制多個(gè)DAC0832時(shí)同時(shí)開(kāi)啟第二級(jí)寄存器可實(shí)現(xiàn)同時(shí)輸出(有效時(shí)間大于500ns)。7.7.1DAC0832的工作模式采用直通模式設(shè)計(jì)的數(shù)模轉(zhuǎn)換器DAC0832的驅(qū)動(dòng)程序必須對(duì)100MHz系統(tǒng)時(shí)鐘進(jìn)行分頻,以免DAC0832沒(méi)有足夠的建立時(shí)間而產(chǎn)生數(shù)據(jù)擁塞。將DAC0832兩級(jí)寄存器的控制端ILE、CS、WR1、WR2、XFER中的ILE設(shè)置為低電平,其他控制端設(shè)置為高電平(直通模式)。由于減少了兩級(jí)寄存器的緩沖時(shí)間,直通模式的程序簡(jiǎn)單、輸出轉(zhuǎn)換頻率最高,但無(wú)法實(shí)現(xiàn)總線(xiàn)并聯(lián)控制?!纠?.11】采用直通模式設(shè)計(jì)數(shù)模轉(zhuǎn)換器DAC0832輸出鋸齒波。`timescale1ns/1psmodule
dac0832_simple(DAC_out,ILE,CS,WR1,WR2,XFER,clk,Res);outputregILE,CS,WR1,WR2,XFER;outputreg[7:0]DAC_out;inputclk;//100MinputRes;//平時(shí)為低電平,按下后高電平復(fù)位parameterdiv_dat=10000;//分頻比10000wireclk_div;reg[15:0]cnt;//cnt位數(shù)應(yīng)大于等于div_datalways@(posedgeclk,posedgeRes)7.7.2DAC0832的Verilog描述beginif(Res)begincnt<=0;endelsebeginif(cnt==div_dat)begincnt<=0;endelsebegincnt<=cnt+1'b1;endendendassignclk_div=(cnt==div_dat)?1:0;//時(shí)鐘分頻100MHz/div_datalways@(posedgeclk_div,posedgeRes)beginif(Res)begin{ILE,CS,WR1,WR2,XFER}<=5'b01111;DAC_out<=8'b0000_0000;end
7.7.2DAC0832的Verilog描述elsebegin{ILE,CS,WR1,WR2,XFER}<=5'b10000;//設(shè)置為直通模式DAC_out<=DAC_out+1;endendendmodule直通模式只需設(shè)置兩級(jí)寄存器一直開(kāi)啟然后發(fā)送二進(jìn)制數(shù)據(jù),僅存在一種狀態(tài),所以無(wú)須用狀態(tài)機(jī)描述。DAC_out是一條8位的總線(xiàn),自加到255后會(huì)自動(dòng)回零。時(shí)鐘的分頻比div_dat=10000,對(duì)系統(tǒng)100MHz時(shí)鐘進(jìn)行分頻,使數(shù)字信號(hào)有足夠時(shí)間完成數(shù)模轉(zhuǎn)換?!纠?.12】采用單緩沖模式設(shè)計(jì)數(shù)模轉(zhuǎn)換器DAC0832輸出鋸齒波。`timescale1ns/1psmoduledac0832_fsm1(DAC_out,ILE,CS,WR1,WR2,XFER,clk,Res);outputregILE,CS,WR1;outputWR2,XFER;outputreg[7:0]DAC_out;inputclk;//100MHzinputRes;//平時(shí)為低電平,按下后高電平復(fù)位
7.7.2DAC0832的Verilog描述parameterdiv_dat=100;//分頻比100parameterMSB=2,LSB=0;wireclk_div;//分頻后的時(shí)鐘reg[7:0]cnt;//cnt位數(shù)應(yīng)大于等于div_datreg[MSB:LSB]state,next_state;//與localparam編碼位數(shù)一致localparam[MSB:LSB]IDLE=3'b001,s1=3'b010,s2=3'b100;always@(posedgeclk,posedgeRes)beginif(Res)cnt<=0;elsebeginif(cnt>=div_dat)begincnt<=0;endelsebegincnt<=cnt+1;endendend7.7.2DAC0832的Verilog描述assignclk_div=(cnt==div_dat)?1:0;//時(shí)鐘分頻100MHz/div_datalways@(posedgeclk_div,posedgeRes)//時(shí)鐘上升沿beginif(Res)beginstate<=IDLE;end//同步復(fù)位elsestate<=next_state;//現(xiàn)態(tài)endalways@(posedgeclk_div,posedgeRes)beginif(Res)beginnext_state<=IDLE;endelsebegincase(state)//次態(tài)跳轉(zhuǎn)
IDLE:beginnext_state<=s1;ends1:beginnext_state<=s2;ends2:beginnext_state<=IDLE;enddefault:beginnext_state<=IDLE;end//多余的狀態(tài)處理endcaseendend7.7.2DAC0832的Verilog描述assign{WR2,XFER}=2'b00;//第二級(jí)緩沖設(shè)為直通always@(posedgeclk_div,posedgeRes)beginif(Res)begin{ILE,CS,WR1}=3'b011;DAC_out=8'b0000_0000;endelsebegincase(state)IDLE:beginDAC_out=DAC_out+1;end//發(fā)送數(shù)據(jù)s1:begin{ILE,CS,WR1}=3'b100;end//第一級(jí)緩沖開(kāi)s2:begin{ILE,CS,WR1}=3'b011;end//第一級(jí)緩沖關(guān)default:begin{ILE,CS,WR1}=3'b011;DAC_out=0;end//多余的狀態(tài)處理
7.7.2DAC0832的Verilog描述endcaseendendendmodule采用三段式狀態(tài)機(jī)設(shè)計(jì)單緩沖的DAC0832鋸齒波發(fā)生器。DAC0832的第二級(jí)緩沖設(shè)計(jì)為常開(kāi),只對(duì)第一級(jí)緩沖進(jìn)行控制。鋸齒波的頻率可以通過(guò)變量clk_div進(jìn)行改變。DAC_out發(fā)生變化后,開(kāi)啟緩沖使數(shù)據(jù)進(jìn)入轉(zhuǎn)換器進(jìn)行DA轉(zhuǎn)換?!纠?.13】采用雙緩沖模式設(shè)計(jì)數(shù)模轉(zhuǎn)換器DAC0832輸出鋸齒波。`timescale1ns/1psmoduledac0832_fsm2(DAC_out,ILE,CS,WR1,WR2,XFER,clk,Res);outputregILE,CS,WR1;outputregWR2,XFER;outputreg[7:0]DAC_out;inputclk;//100MHzinputRes;//平時(shí)為低電平,按下后高電平復(fù)位parameterdiv_dat=100;//分頻比1007.7.2DAC0832的Verilog描述parameterMSB=3,LSB=0;wireclk_div;//分頻后的時(shí)鐘reg[7:0]cnt;//cnt位數(shù)應(yīng)大于等于div_datreg[MSB:LSB]state,next_state;//與localparam編碼位數(shù)一致localparam[MSB:LSB]IDLE=4'b0001,s1=4'b0010,s2=4'b0100,s3=4'b1000;always@(posedgeclk,posedgeRes)beginif(Res)cnt<=0;elsebeginif(cnt>=div_dat)begincnt<=0;endelsebegincnt<=cnt+1;endendend
7.7.2DAC0832的V
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度多功能車(chē)床銷(xiāo)售與售后服務(wù)合同4篇
- 2025版事業(yè)單位管理崗位人員勞動(dòng)合同簽訂協(xié)議2篇
- 個(gè)人購(gòu)車(chē)貸款2024年度合同
- 二零二五版工程車(chē)輛國(guó)際市場(chǎng)拓展與代理合同3篇
- 二零二五年度高性能服務(wù)器設(shè)備購(gòu)銷(xiāo)及服務(wù)保障合同
- 二零二五年度酒店客房升級(jí)改造與維護(hù)合同3篇
- 2025版美容院人力資源規(guī)劃與招聘服務(wù)合同4篇
- 個(gè)人保險(xiǎn)合同(2024版)14篇
- 2025年度儲(chǔ)藏煤場(chǎng)智能化管理系統(tǒng)租賃合同4篇
- 2025年度體育場(chǎng)館租賃與賽事運(yùn)營(yíng)服務(wù)合同4篇
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專(zhuān)題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級(jí)英語(yǔ)下冊(cè)寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓(xùn)
- 統(tǒng)編版(2024新版)七年級(jí)《道德與法治》上冊(cè)第一單元《少年有夢(mèng)》單元測(cè)試卷(含答案)
- 100道20以?xún)?nèi)的口算題共20份
- 高三完形填空專(zhuān)項(xiàng)訓(xùn)練單選(部分答案)
- 護(hù)理查房高鉀血癥
- 項(xiàng)目監(jiān)理策劃方案匯報(bào)
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
- 建筑企業(yè)新年開(kāi)工儀式方案
評(píng)論
0/150
提交評(píng)論