數(shù)字電路與邏輯設(shè)計(jì) 課件 (陳彥輝)7-10 時(shí)序邏輯電路_第1頁
數(shù)字電路與邏輯設(shè)計(jì) 課件 (陳彥輝)7-10 時(shí)序邏輯電路_第2頁
數(shù)字電路與邏輯設(shè)計(jì) 課件 (陳彥輝)7-10 時(shí)序邏輯電路_第3頁
數(shù)字電路與邏輯設(shè)計(jì) 課件 (陳彥輝)7-10 時(shí)序邏輯電路_第4頁
數(shù)字電路與邏輯設(shè)計(jì) 課件 (陳彥輝)7-10 時(shí)序邏輯電路_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

時(shí)序邏輯電路1片上微控制系統(tǒng)原理與項(xiàng)目設(shè)計(jì)第七講授課內(nèi)容觸發(fā)器寄存器同步時(shí)序電路分析同步時(shí)序電路設(shè)計(jì)時(shí)序電路例子護(hù)士呼叫系統(tǒng)2呼叫按鈕:指示燈亮松開按鈕后保持燈亮清除按鈕:指示燈滅能夠用組合邏輯方法實(shí)現(xiàn)么?QCallCancelaaBitStorageBluelightCallbuttonCancelbutton1.Callbuttonpressed–lightturnsonBitStorageBluelightCallbuttonCancelbutton2.Callbuttonreleased–lightstaysonBitStorageBluelightCallbuttonCancelbutton3.Cancelbuttonpressed–lightturnsoff?嘗試1-反饋電路使用一個(gè)邏輯門,并將輸出反饋到輸入??梢酝瓿尚枨竺??QSt101010QtS0t1QS00t1QS11t1QS11t0QS1a否:一旦Q變?yōu)?(S=1),Q永遠(yuǎn)保持1–沒有任何S的輸入值可以讓Q輸出0嘗試2-基本RS觸發(fā)器蝶形交叉反饋的電路,可以完成需求么?可以!怎么想到的...001R=1S=0tQ1010RS10t10QQS(set)SRlatchR(reset)100101tQS=0R=0tQS=1R=0011tQR=0S=010100011X0Recall…a應(yīng)用實(shí)例使用基本RS鎖存器實(shí)現(xiàn)護(hù)士呼叫系統(tǒng)2Call=1:Q置1Q保持1Cancel=1:復(fù)位,Q置0如果RS同時(shí)按下?如果同時(shí)按下了“Call”和“Cancel”按鈕

又被同時(shí)釋放。SR由“11”變?yōu)椤?0”RSQCallbuttonBluelightCancelbuttonBitStorageBluelightCallbuttonCancelbutton基本RS觸發(fā)器存在的問題如果S=1R=1結(jié)果?Q可能會(huì)振蕩.然而,由于一條路徑的時(shí)延可能比另一條稍微長一點(diǎn),這時(shí)Q會(huì)被隨機(jī)至0至1–但是我們無法得知是哪個(gè).兩個(gè)與非門構(gòu)成的基本RS觸發(fā)器觸發(fā)器的狀態(tài)表中,輸出端的現(xiàn)態(tài)為輸入量,輸出端的次態(tài)為輸出量,狀態(tài)表表明次態(tài)不僅與輸入有關(guān),還與現(xiàn)態(tài)有關(guān)。相同的RD和SD輸入其輸出Q不一定相同。基礎(chǔ)RS觸發(fā)器的討論問題不僅僅是一個(gè)用戶同時(shí)按下兩個(gè)按鈕即使SR輸入來自從未同時(shí)設(shè)置S=1和R=1的電路,也可能發(fā)生由于不同路徑的不同延遲從X到R的路徑比到S的路徑長,導(dǎo)致SR=11持續(xù)很短的時(shí)間–可能足夠長,會(huì)導(dǎo)致振蕩RYXSSRlatchQArbitrarycircuit鐘控SR鎖存器添加使能輸入“C”,如圖所示僅當(dāng)C=0時(shí),才允許S和R更改只有在S和R足夠穩(wěn)定之后,才將C更改為1當(dāng)C變?yōu)?時(shí),穩(wěn)定的S和R值通過兩個(gè)與門傳遞到SR鎖存器的S1R1輸入。R1S1SCRLevel-sensitiveSRlatchQThoughSR=11briefly......S1R1never=11SCQ’QRLevel-sensitiveSRlatchsymbolR1S1SXYCClkRLevel-sensitiveSRlatchQ010101010SRCS1R11a鐘控D觸發(fā)器SR鎖存器需要仔細(xì)設(shè)計(jì),以確保SR=11永遠(yuǎn)不會(huì)發(fā)生D型觸發(fā)器減輕了設(shè)計(jì)人員的負(fù)擔(dān)插入非門確保R始終與S相反RSDCDlatchQDQ’QCDlatchsymbolR1S1SCRLevel-sensitiveSRlatchQmoduleDFF(CP,D,Q);inputCP,D;outputregQ;always@(*)if(CP)Q<=D;//特征方程Qn+1=Dendmodule鐘控D觸發(fā)器的討論D鎖存器仍然有問題(SR鎖存器也是如此)當(dāng)C=1時(shí),信號(hào)將通過多少個(gè)鎖存器?取決于多長時(shí)間C=1Clk_A——信號(hào)可以通過多個(gè)鎖存器Clk_B——信號(hào)可以通過更少的鎖存器很難選擇長度合適的C我們可以設(shè)計(jì)只在時(shí)鐘信號(hào)的上升沿存儲(chǔ)一個(gè)值的位存儲(chǔ)嗎?Clkrisingedges邊緣D觸發(fā)器Flip-flop觸發(fā)器:存儲(chǔ)在時(shí)鐘沿而不是電平有效時(shí)存儲(chǔ)一種設(shè)計(jì)——“主仆”觸發(fā)器兩個(gè)鎖存器第一個(gè)鎖存器的輸出進(jìn)入第二個(gè)鎖存器的輸入,第一個(gè)鎖存器具有反相時(shí)鐘信號(hào)“主鎖存器”在C=0時(shí)加載,從方在C=1時(shí)加載當(dāng)C從0變?yōu)?時(shí),主鎖存器被禁用,從鎖存器加載C改變之前D處的值——即C上升期間D處的值ClkrisingedgesNote:Hundredsofdifferentflip-flopdesignsexistDlatchmasterDlatchservantDDmDsCsQmQs’QsQQ’CmClkDflip-flopCDQ’QDFFsymbol比特存儲(chǔ)模塊D觸發(fā)器是更好的比特存儲(chǔ)模塊。Dflip-flopDlatchmasterDlatchservantDmQmCmDsDClkQs’CsQsQ’QSRDQCDlatch特點(diǎn):只加載時(shí)鐘上升沿出現(xiàn)的D值,因此在同一時(shí)鐘周期內(nèi),值不能傳播到其他觸發(fā)器。權(quán)衡:在內(nèi)部使用比D鎖存器更多的門,并且需要比SR更多的外部門——但現(xiàn)在門數(shù)不再是問題。特征:如果D在C=1之前和之前穩(wěn)定,則SR不能為11。

問題:C=1太久會(huì)通過太多的鎖存器傳播新值;太短可能不會(huì)導(dǎo)致該位被存儲(chǔ)。S1R1SQCRLevel-sensitiveSRlatch特點(diǎn):S和R只在C=1時(shí)有效。我們可以設(shè)計(jì)外部電路,因此當(dāng)C=1時(shí),SR=11永遠(yuǎn)不會(huì)發(fā)生。問題:避免SR=11仍是一種負(fù)擔(dān)。R(reset)S(set)QSRlatch特點(diǎn):S=1將Q設(shè)置為1,R=1將Q重置為0。問題:SR=11產(chǎn)生未定義的Q。.實(shí)驗(yàn):采用DFF實(shí)現(xiàn)護(hù)士呼叫系統(tǒng)2?(1)異步復(fù)位/置位D觸發(fā)器moduleDFF(CP,Rd,Sd,D,Q);inputCP,Rd,Sd,D;outputregQ;always@(posedgeCPornegedgeRdornegedgeSd)if(!Rd)//低電平有效Q<=1'd0;//清零elseif(!Sd)//低電平有效Q<=1'd1;//置位elseQ<=D;endmodule(2)同步復(fù)位/置位D觸發(fā)器moduleDFF(CP,Rd,Sd,D,Q);inputCP,Rd,Sd,D;outputregQ;always@(posedgeCP)Q<=!Rd?0:!Sd?1:D。endmodule觸發(fā)器的應(yīng)用【例1】二分頻電路:電路有一個(gè)輸入時(shí)鐘和一個(gè)輸出時(shí)鐘,輸出時(shí)鐘的周期是輸入時(shí)鐘的二倍。采用D觸發(fā)器進(jìn)行電路設(shè)計(jì)并給出HDL代碼。moduleFDiv2(NRST,CP,F);inputCP,NRST;outputregF;always@(posedgeCPornegedgeNRST)F<=!NRST?0:~F;endmodule【例2】兩個(gè)帶異步清零和置位端的上升沿D觸發(fā)器構(gòu)成圖4-13所示的電路,試畫出波形圖,說明功能,并給出Verilog描述。modulePulseGen(NRST,X,Y,F);inputNRST,X,Y;outputregF;regrd0;always@(posedgeXornegedgeNRSTornegedgerd0)if(!NRST|!rd0)F<=0;elseF<=1;always@(posedgeYornegedgeF)if(!F)rd0<=1;elserd0<=0;endmodule作業(yè)仿真實(shí)驗(yàn):仿真觸發(fā)器應(yīng)用例1、例2八分頻電路:電路有一個(gè)輸入時(shí)鐘和一個(gè)輸出時(shí)鐘,并可異步復(fù)位,輸出時(shí)鐘的周期是輸入時(shí)鐘的8倍。采用D觸發(fā)器進(jìn)行電路設(shè)計(jì)并給出HDL代碼。某電路有一個(gè)輸入X,該輸入連接到D觸發(fā)器的輸入。使用若干D觸發(fā)器,使電路的輸出Y等于X的值,但延遲3個(gè)時(shí)鐘周期(如圖所示)。試給出電路硬件語言描述。時(shí)序邏輯電路2片上微控制系統(tǒng)原理與項(xiàng)目設(shè)計(jì)第八講授課內(nèi)容觸發(fā)器寄存器同步時(shí)序電路分析同步時(shí)序電路設(shè)計(jì)比特存儲(chǔ)模塊D觸發(fā)器是更好的比特存儲(chǔ)模塊。Dflip-flopDlatchmasterDlatchservantDmQmCmDsDClkQs’CsQsQ’QSRDQCDlatch特點(diǎn):只加載時(shí)鐘上升沿出現(xiàn)的D值,因此在同一時(shí)鐘周期內(nèi),值不能傳播到其他觸發(fā)器。權(quán)衡:在內(nèi)部使用比D鎖存器更多的門,并且需要比SR更多的外部門——但現(xiàn)在門數(shù)不再是問題。特征:如果D在C=1之前和之前穩(wěn)定,則SR不能為11。

問題:C=1太久會(huì)通過太多的鎖存器傳播新值;太短可能不會(huì)導(dǎo)致該位被存儲(chǔ)。S1R1SQCRLevel-sensitiveSRlatch特點(diǎn):S和R只在C=1時(shí)有效。我們可以設(shè)計(jì)外部電路,因此當(dāng)C=1時(shí),SR=11永遠(yuǎn)不會(huì)發(fā)生。問題:避免SR=11仍是一種負(fù)擔(dān)。R(reset)S(set)QSRlatch特點(diǎn):S=1將Q設(shè)置為1,R=1將Q重置為0。問題:SR=11產(chǎn)生未定義的Q。.實(shí)驗(yàn):采用DFF實(shí)現(xiàn)護(hù)士呼叫系統(tǒng)2?寄存器存儲(chǔ)信息1bit:DFFMbits:采用多個(gè)D觸發(fā)器保存一組二進(jìn)制信息的電路稱為寄存器,也稱為數(shù)據(jù)寄存器。moduleReg4hl(CP,D,Q);inputCP;input[3:0]D;outputreg[3:0]Q;always@(*)if(CP)Q<=D;endmodulemoduleReg4pe(CP,D,Q);inputCP;input[3:0]D;outputreg[3:0]Q;always@(posedgeCP)Q<=D;endmodule具有載入功能的寄存器寄存器可以用來存儲(chǔ)信息—狀態(tài)有些場(chǎng)景下,希望僅僅時(shí)我們讓他存儲(chǔ)時(shí)才存儲(chǔ)。DQDQDQDQI2I3Q2Q3Q1Q0I1I0clk4-bitregisterload應(yīng)用舉例1秤有兩個(gè)顯示屏當(dāng)前重量減輕重量有助于將當(dāng)前項(xiàng)目與上一個(gè)項(xiàng)目進(jìn)行比較使用寄存器存儲(chǔ)重量按下按鈕會(huì)使當(dāng)前重量存儲(chǔ)在寄存器中寄存器內(nèi)容始終顯示為“已保存的重量”,即使出現(xiàn)新的當(dāng)前重量也是如此ScaleSavedweightWeightSamplerPresentweightclkbSaveI3I2I1I0Q3Q2Q1Q0load3pounds001100113pounds00102pounds1a應(yīng)用實(shí)例2有些汽車在后視鏡上方設(shè)有顯示屏。駕駛員可以按下按鈕,在顯示外部溫度(T),汽車的平均里程數(shù)(A),油耗(I)和剩余里程數(shù)(M)之間進(jìn)行選擇。方案1:只使用數(shù)據(jù)選擇器需要32根線方案2:使用寄存器需要11根線Cd0d1d2d3ei0i0i1i2i3a0a1loadi12×488888Dd8xys1s08-bit4×1loadloadloadloadreg0reg1reg2reg3TAIM01000010101100001010Loadedonclockedge移位寄存器若干個(gè)D觸發(fā)器級(jí)聯(lián)構(gòu)成的D觸發(fā)器組稱為移位寄存器。數(shù)據(jù)從S輸入,每個(gè)時(shí)鐘節(jié)拍接收一位保存在D觸發(fā)器內(nèi)。moduleShiftRegm(CP,S,Q);inputCP,S;outputreg[m-1:0]Q;always@(posedgeCP)Q<={Q[m-2:0],S};endmodule串行輸入端Ri的值通過1個(gè)時(shí)鐘后從Q3端輸出,2個(gè)時(shí)鐘后從Q2端輸出,3個(gè)時(shí)鐘后從Q1端輸出,4個(gè)時(shí)鐘后從Q0端輸出。因此,移位寄存器實(shí)質(zhì)就是延時(shí)器,常用于數(shù)字信號(hào)處理電路中。若將D觸發(fā)器的數(shù)據(jù)輸入端通過2-1MUX來連接前級(jí)觸發(fā)器的狀態(tài)和并行輸入,則構(gòu)成可預(yù)置移位寄存器。modulePLSReg4(CP,Ri,LD,D,Q);inputCP,Ri,LD;input[3:0]D;outputreg[3:0]Q;always@(posedgeCP)Q<=LD?D:{Ri,Q[3:1]}endmodule應(yīng)用實(shí)例2(續(xù))方案1:只使用數(shù)據(jù)選擇器需要32根線方案2:使用寄存器需要11根線方案3:使用移位寄存器4根線11wirescd0d1d2d3ei0i0s1s0xyi1i2i3a0a1shifti12×48888Dd4×1shrshr_inshrshr_inshrshr_inshrshr_inreg0reg1reg2reg3TAIM注意:1bit,而不是之前的8bits時(shí)序邏輯電路3片上微控制系統(tǒng)原理與項(xiàng)目設(shè)計(jì)第九講授課內(nèi)容觸發(fā)器寄存器同步時(shí)序電路分析同步時(shí)序電路設(shè)計(jì)計(jì)數(shù)器上節(jié)課——寄存器存儲(chǔ)信息1bit:DFFMbits:采用多個(gè)D觸發(fā)器保存一組二進(jìn)制信息的電路稱為寄存器,也稱為數(shù)據(jù)寄存器。上節(jié)課——移位寄存器若干個(gè)D觸發(fā)器級(jí)聯(lián)構(gòu)成的D觸發(fā)器組稱為移位寄存器。數(shù)據(jù)從S輸入,每個(gè)時(shí)鐘節(jié)拍接收一位保存在D觸發(fā)器內(nèi)。moduleShiftRegm(CP,S,Q);inputCP,S;outputreg[m-1:0]Q;always@(posedgeCP)Q<={Q[m-2:0],S};endmodule同步時(shí)序電路的分析將電路轉(zhuǎn)換為狀態(tài)圖,并指出功能,稱為對(duì)電路進(jìn)行分析。電路的分析不僅有助于更好地理解時(shí)序電路設(shè)計(jì),而且還可用于了解以前設(shè)計(jì)的電路的行為,由別的設(shè)計(jì)人員創(chuàng)建的電路檢查我們?cè)O(shè)計(jì)的電路是否具有正確的行為觸發(fā)器描述的電路同步時(shí)序電路的分析過程一般按以下步驟進(jìn)行:①根據(jù)邏輯圖求出時(shí)序電路的輸出方程和各觸發(fā)器的激勵(lì)方程;②根據(jù)已求出的激勵(lì)方程和所用觸發(fā)器的特征方程獲得時(shí)序電路的狀態(tài)方程;③根據(jù)時(shí)序電路的狀態(tài)方程和輸出方程建立狀態(tài)表;④根據(jù)狀態(tài)表畫出狀態(tài)圖;⑤確定初始狀態(tài)和輸入波形,根據(jù)狀態(tài)表畫出波形圖;⑥分析電路的邏輯功能。【例】有三個(gè)LED控制電路圖如圖所示,分析該同步時(shí)序電路的邏輯功能。①激勵(lì)方程②狀態(tài)方程⑥邏輯功能分析

③列出狀態(tài)表④列出狀態(tài)圖⑤畫波形圖三個(gè)LED輪流發(fā)光,發(fā)光周期為3T,這種輪流點(diǎn)亮的燈也稱為跑馬燈。脈沖分配器。具有自啟動(dòng)能力。HDL描述的電路同步時(shí)序電路的分析過程一般按以下步驟進(jìn)行:①根據(jù)語句找出時(shí)序電路的輸入、輸出和狀態(tài);②分析語句的含義,初步給出部分功能;③列出狀態(tài)圖或狀態(tài)表;④分析電路的邏輯功能。【例】控制電路的HDL代碼如下,分析該邏輯電路的功能。moduleLedCtrl(CP,Z);inputCP;outputreg[2:0]Z;reg[1:0]Q;always@(posedgeCP)Q<=Q+1;always@(Q) case(Q)2'b00:Z<=3'b110;2'b01,2'b11:Z<=3'b101;2'b10:Z<=3'b011;endmodule①確定輸入、輸出和狀態(tài)。CP上升沿有效,Z為3位輸出,Q為二位狀態(tài)量,最多4個(gè)狀態(tài)。②語句分析

③狀態(tài)圖課堂練習(xí)試分析下列電路clkStateregisteryzFSMoutputsFSMinputsn0n1s0s1x同步時(shí)序電路的設(shè)計(jì)狀態(tài)圖是同步時(shí)序電路設(shè)計(jì)的前提。(1)采用D觸發(fā)器設(shè)計(jì)邏輯電路時(shí)①根據(jù)狀態(tài)圖畫出狀態(tài)表,同時(shí)對(duì)無關(guān)狀態(tài)進(jìn)行處理以保證系統(tǒng)的自啟動(dòng)性;②根據(jù)狀態(tài)表列出狀態(tài)方程和輸出方程的最小項(xiàng)表達(dá)式,邏輯變量為X和Q的組合;③列出激勵(lì)方程,并畫出邏輯電路圖。(2)采用HDL描述時(shí)①根據(jù)狀態(tài)圖畫出狀態(tài)表,同時(shí)對(duì)無關(guān)狀態(tài)進(jìn)行處理以保證系統(tǒng)的自啟動(dòng)性;

②直接采用always和case/if語句直接對(duì)狀態(tài)和輸出進(jìn)行賦值。外科醫(yī)生通過按下按鈕激活激光。假設(shè)激光應(yīng)該保持正好30ns。假設(shè)系統(tǒng)的時(shí)鐘周期為10ns,因此3個(gè)時(shí)鐘周期持續(xù)30ns。假設(shè)按鈕中的b與時(shí)鐘同步,并在正好1個(gè)時(shí)鐘周期內(nèi)保持高電平。?如何實(shí)現(xiàn)?

試試使用3個(gè)DFF?Controllerxbclklaserpatient這個(gè)系統(tǒng)不夠好!為什么?如果外科醫(yī)生在三個(gè)周期之內(nèi)第二次按下按鈕會(huì)發(fā)生什么?可能導(dǎo)致激光停留時(shí)間過長。狀態(tài)圖定義狀態(tài)和狀態(tài)之間的轉(zhuǎn)換示例:讓x在每個(gè)時(shí)鐘周期更改其切換(0到1和1到0)兩種狀態(tài):“關(guān)閉”(x=0)和“打開”(x=1)在時(shí)鐘上升沿從關(guān)閉轉(zhuǎn)換到開,或從開轉(zhuǎn)換到關(guān)沒有起始狀態(tài)的箭頭指向初始狀態(tài)(電路首次啟動(dòng)時(shí))Output:xOnOffx=0x=1clk^clk^狀態(tài)圖的例子——0111序列發(fā)生器生成

0,1,1,1,0,1,1,1,...序列每個(gè)值代表一個(gè)時(shí)鐘周期將其描述為狀態(tài)圖四種狀態(tài):關(guān)閉、打開1、打開2和打開3時(shí)鐘上升沿過渡到下一個(gè)狀態(tài)OffOffOn1On1On2On2On3On3OffclkxStateOutputs:Outputs:xOn1OffOn2On3clk^clk^clk^x=1x=1x=0x=1clk^四個(gè)狀態(tài)

在b為0(b')時(shí)處于“關(guān)閉”狀態(tài)等待

輸出x=0

當(dāng)b為1(和上升時(shí)鐘邊沿)時(shí),轉(zhuǎn)換到On1 輸出x=1

在接下來的兩個(gè)時(shí)鐘邊沿,過渡到On2,然后過渡到On3,這也設(shè)置x=1On2On1On3Offclk^clk^x=1x=1x=1x=0clk^b’*clk^b*clk^Input:b;Output:xOn2On1On3Offx=1x=1x=1x=0b’clk^clk^^clk*clk^*clk^bInputs:b;Outputs:xOn2On1On3Offx=1x=1x=1x=0b’bInput:b;Output:x練習(xí)【例】某邏輯電路的狀態(tài)轉(zhuǎn)移如圖,試采用D觸發(fā)器和HDL等兩種方式描述電路。采用D觸發(fā)器描述①列出狀態(tài)表②列狀態(tài)方程③列激勵(lì)方程,并畫出邏輯電路采用HDL描述①列出狀態(tài)表②HDL描述為moduleT4_5_3(CP,Q);inputCP;outputreg[2:0]Q;always@(posedgeCP)case(Q)3'b000:Q<=3'b001;3'b001:Q<=3'b011;3'b011:Q<=3'b101;3'b101:Q<=3'b110;default:Q<=3'b000;//無關(guān)項(xiàng)強(qiáng)制轉(zhuǎn)移到0000endcaseendmodulemoduletest;regCP;wire[2:0]Q;T4_5_3T_4_5_3a(.CP(CP),.Q(Q));always#100CP=~CP;initialbeginCP=0;#2100;$finish;endendmodule本周作業(yè)完成P12的電路分析完成P20的狀態(tài)圖實(shí)現(xiàn)P23頁的HDL例子的仿真。時(shí)序邏輯電路4數(shù)字邏輯電路與片上系統(tǒng)第十講授課內(nèi)容觸發(fā)器寄存器同步時(shí)序電路分析同步時(shí)序電路設(shè)計(jì)計(jì)數(shù)器應(yīng)用實(shí)例多功能的家用數(shù)字定時(shí)器。為一款廚房用定時(shí)器設(shè)計(jì)時(shí)序控制邏輯。該定時(shí)器需要具備倒計(jì)時(shí)、回滾計(jì)時(shí)、以單個(gè)按鈕控制啟動(dòng)和停止的功能。具體要求如下:(1)設(shè)定倒計(jì)時(shí)值:初始時(shí)通過外部輸入設(shè)定倒計(jì)時(shí)值(4位二進(jìn)制數(shù))。定時(shí)器在啟動(dòng)(S)信號(hào)變?yōu)楦唠娖綍r(shí)開始倒計(jì)時(shí),在計(jì)時(shí)結(jié)束時(shí)輸出信號(hào)Z為高電平一個(gè)時(shí)鐘周期。用VerilogHDL編寫模塊。(2)回滾功能:倒計(jì)時(shí)結(jié)束后,定時(shí)器自動(dòng)回滾到初始設(shè)定的倒計(jì)時(shí)值,準(zhǔn)備下一次啟動(dòng)。試用VerilogHDL編寫模塊。(3)系統(tǒng)綜合設(shè)計(jì):將上述各??旖M合為完整系統(tǒng),并仿真驗(yàn)證功能。計(jì)數(shù)器計(jì)數(shù)器主要功能是累計(jì)輸入脈沖的個(gè)數(shù)。它是一個(gè)周期性的時(shí)序電路,其中含有一個(gè)閉合環(huán)。閉合環(huán)循環(huán)一次所需要的時(shí)鐘個(gè)數(shù)M稱為模。模M加法計(jì)數(shù)器模M加法計(jì)數(shù)器采用n個(gè)觸發(fā)器,計(jì)數(shù)狀態(tài)Q值從0加至M-1,計(jì)到M-1時(shí),進(jìn)位標(biāo)志輸出Z為1。moduleCntIM(CLK,Q,Z);parameterM=,n=;inputCLK;outputZ;outputreg[n-1:0]Q;assignZ=Q==M–1;always@(posedgeCLK)Q<=Z?n'd0:Q+n'd1;endmodule模M減法計(jì)數(shù)器模M加法計(jì)數(shù)器采用n個(gè)觸發(fā)器,計(jì)數(shù)狀態(tài)Q值從M-1減至0,計(jì)到0時(shí),借位標(biāo)志輸出Z為1。作業(yè):寫出模1000減法計(jì)數(shù)器的HDL描述并仿真【例】設(shè)計(jì)一個(gè)模12的加法計(jì)數(shù)器,計(jì)至最后一個(gè)數(shù)時(shí)產(chǎn)生高電平,其它數(shù)時(shí)為低電平。給出該計(jì)數(shù)器的HDL代碼及仿真波形。assignZ=Q==4'd11;always@(posedgeCLK)Q<=Z?4'd0:Q+4'd1;MSI器件構(gòu)建常用器件74LS161是模24(四位二進(jìn)制)同步計(jì)數(shù)器具有計(jì)數(shù)、保持、同步置數(shù)、異步清零等功能。異步清零法當(dāng)狀態(tài)值為M時(shí)產(chǎn)生清零信號(hào),使?fàn)顟B(tài)值變?yōu)?。同步置數(shù)法同步置數(shù)法可以采用進(jìn)位置數(shù)和比較置數(shù)兩種方式。①比較置零法②進(jìn)位置數(shù)法③比較置數(shù)法控制器對(duì)指令代碼進(jìn)行譯碼生成控制信號(hào);輸出數(shù)據(jù)路徑所需的控制信號(hào),寄存器組選擇出相應(yīng)寄存器值;ALU對(duì)這些數(shù)據(jù)運(yùn)算;鎖存運(yùn)算結(jié)果至寄存器或讀寫數(shù)據(jù)存儲(chǔ)器。控制器運(yùn)行可以采用如圖狀態(tài)機(jī),共分為五個(gè)狀態(tài):指令讀?。ㄈ≈福?、指令譯碼(譯指)、操作數(shù)選?。ㄈ?shù))、數(shù)據(jù)運(yùn)算(執(zhí)行)、數(shù)據(jù)保存(回寫)。控制器周而復(fù)始地按這個(gè)順序執(zhí)行。討論:控制器的設(shè)計(jì)思路常用時(shí)序電路設(shè)計(jì)-分頻器分頻電路輸入頻率為FHz的時(shí)鐘脈沖,M分頻后輸出頻率為F/MHz的時(shí)鐘脈沖。分頻器采用計(jì)數(shù)器來實(shí)現(xiàn)分頻?!纠吭O(shè)計(jì)占空比為2:1的六分頻器。分頻器共有6個(gè)狀態(tài),即0~5。占空比為2:1,即4個(gè)狀態(tài)輸出高電平,2個(gè)狀態(tài)輸出低電平。always@(posedgeCP) Q<=Q<3’d5?Q+1:3'd0;assignZ=Q<=3'd3;常用時(shí)序電路設(shè)計(jì)-序列發(fā)生器序列信號(hào)發(fā)生器是重復(fù)產(chǎn)生一定長度的循環(huán)序列的電路,輸出序列由n位二進(jìn)制碼重復(fù)構(gòu)成,n為序列長度?!纠吭O(shè)計(jì)產(chǎn)生1101000101序列碼的計(jì)數(shù)型序列信號(hào)發(fā)生器,給出HDL代碼。moduleT4_7_2(CP,Z);inputCP;outputregZ;reg[3:0]S;always@(posedgeCP)S<=S<4'd9?S+4'd1:0;always@(S)case(S)4'd0,4'd1,4'd3,4'd7,4'd9:Z<=1;default:Z<=0;endcaseendmodule【例】設(shè)計(jì)一個(gè)能同時(shí)產(chǎn)生兩組序列碼的雙序列碼產(chǎn)生器,要求兩組代碼分別是:Z1=1101,Z2=01011,給出邏輯電路的HDL代碼。采用統(tǒng)一的計(jì)數(shù)器來同時(shí)產(chǎn)生這兩個(gè)序列,計(jì)數(shù)器模值取兩者長度的最小公倍數(shù)M=20,狀態(tài)值從0~19。moduleT4_7_3(CP,Z1,Z2);inputCP;outputregZ1,Z2;reg[4:0]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論