![《數(shù)字邏輯》第7章時(shí)序邏輯電路_第1頁](http://file4.renrendoc.com/view/5fa7170a5cc8a25be8eaaf09b776266a/5fa7170a5cc8a25be8eaaf09b776266a1.gif)
![《數(shù)字邏輯》第7章時(shí)序邏輯電路_第2頁](http://file4.renrendoc.com/view/5fa7170a5cc8a25be8eaaf09b776266a/5fa7170a5cc8a25be8eaaf09b776266a2.gif)
![《數(shù)字邏輯》第7章時(shí)序邏輯電路_第3頁](http://file4.renrendoc.com/view/5fa7170a5cc8a25be8eaaf09b776266a/5fa7170a5cc8a25be8eaaf09b776266a3.gif)
![《數(shù)字邏輯》第7章時(shí)序邏輯電路_第4頁](http://file4.renrendoc.com/view/5fa7170a5cc8a25be8eaaf09b776266a/5fa7170a5cc8a25be8eaaf09b776266a4.gif)
![《數(shù)字邏輯》第7章時(shí)序邏輯電路_第5頁](http://file4.renrendoc.com/view/5fa7170a5cc8a25be8eaaf09b776266a/5fa7170a5cc8a25be8eaaf09b776266a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)字邏輯》第7章時(shí)序邏輯電路2第7章時(shí)序邏輯電路
本章介紹時(shí)序邏輯電路的描述方法和分析方法,具體介紹FSM、寄存器、移位寄存器、計(jì)數(shù)器等常用時(shí)序邏輯電路的工作原理、邏輯功能及使用方法,時(shí)序邏輯電路和數(shù)字系統(tǒng)的HDL設(shè)計(jì)方法。7.1
概述
7.2
有限狀態(tài)機(jī)
7.3
數(shù)碼寄存器和移位寄存器7.4
7.5
基于VerilogHDL的時(shí)序邏輯電路設(shè)計(jì)共8學(xué)時(shí)3本章重點(diǎn)
時(shí)序邏輯電路的描述方法和分析方法;有限狀態(tài)機(jī)FSM的HDL設(shè)計(jì)方法;常用時(shí)序邏輯電路的工作原理、邏輯功能及使用方法;基于VerilogHDL的時(shí)序邏輯電路設(shè)計(jì)方法。47.1
概述
7.1.1時(shí)序邏輯電路的描述方法7.1.2時(shí)序邏輯電路的分析方法內(nèi)容概要57.1.1時(shí)序邏輯電路的描述方法數(shù)字邏輯組合邏輯——由門電路構(gòu)成,沒有存儲(chǔ)電路和反饋電路時(shí)序邏輯——由組合邏輯電路和存儲(chǔ)電路構(gòu)成程序邏輯——由控制電路(硬件)和程序數(shù)據(jù)(軟件)構(gòu)成可編程邏輯——由用戶定制構(gòu)成各種類型的電路按存儲(chǔ)單元狀態(tài)改變的特點(diǎn)分類同步時(shí)序邏輯電路:構(gòu)成時(shí)序邏輯電路的各級(jí)觸發(fā)器受一個(gè)系統(tǒng)時(shí)鐘統(tǒng)一控制。
異步時(shí)序邏輯電路:構(gòu)成時(shí)序邏輯電路的各級(jí)觸發(fā)器可以有各自的時(shí)鐘信號(hào),不受系統(tǒng)時(shí)鐘統(tǒng)一控制。脈沖異步電路:記憶元件是觸發(fā)器,電路的輸入是脈沖信號(hào)電位異步電路:記憶元件由帶反饋的門電路組成,電路的輸入是電平信號(hào)按輸出信號(hào)的特點(diǎn)分類摩爾(Moore)型——輸出信號(hào)僅與電路當(dāng)前狀態(tài)有關(guān)米里(Mealy)型——輸出信號(hào)與電路當(dāng)前狀態(tài)及輸入信號(hào)有關(guān)按時(shí)序電路的邏輯功能分類數(shù)碼寄存器,移位寄存器,計(jì)數(shù)器6時(shí)序邏輯電路分類7時(shí)序邏輯電路的描述方法時(shí)序邏輯電路可以用邏輯關(guān)系表達(dá)式(方程組)來描述。X為電路的輸入,Y為電路的輸出,式(7.1)稱為輸出方程:電路輸出端的邏輯表達(dá)式;Z為存儲(chǔ)電路的輸入,式(7.2)稱為驅(qū)動(dòng)方程(激勵(lì)方程):構(gòu)成存儲(chǔ)電路的觸發(fā)器輸入端的表達(dá)式;Q為存儲(chǔ)電路的輸出,式(7.3)稱為狀態(tài)方程:表示觸發(fā)器的狀態(tài)變化特性,由驅(qū)動(dòng)方程代入觸發(fā)器的特性方程得到。X0X1Xi-1Y0Y1Yj-1組合邏輯電路存儲(chǔ)電路Q0…Ql-1Z0…Zk-1其他描述方法:狀態(tài)轉(zhuǎn)換表、狀態(tài)轉(zhuǎn)換圖、時(shí)序圖同步時(shí)序邏輯電路舉例+XCPYDQQ組合邏輯電路存儲(chǔ)電路輸出方程:Y=XQn驅(qū)動(dòng)(激勵(lì))方程:D=XQn+XQn=XQn狀態(tài)(特征)方程:Qn+1=D=XQn+XQn=XQn同步時(shí)序邏輯電路:有一個(gè)公共的時(shí)鐘信號(hào),電路中各記憶元件受它統(tǒng)一控制。只有該時(shí)鐘信號(hào)到來時(shí),記憶元件的狀態(tài)才能發(fā)生變化,從而使時(shí)序電路的輸出發(fā)生變化。每來一次時(shí)鐘信號(hào),記憶元件的狀態(tài)和時(shí)序電路的輸出才可能變化一次。8.脈沖異步電路舉例時(shí)鐘方程:
CP0=CP2=CPCP1=Q0
K0Q0Q0J0K0Q0J1K1Q1Q1J2K2Q2Q2.CP驅(qū)動(dòng)方程:J0=Q2nJ1=Q0nJ2=Q1nQ0nK0=1K1=1K2=1狀態(tài)方程:
Q1n+1=Q1nQ0n(Q0
)Q2n+1=Q2nQn1Q0n(CP
)
Q0n+1=Q2nQ0n
(CP)
9脈沖異步電路的分析過程(3)狀態(tài)轉(zhuǎn)換圖000001010011100101110111結(jié)論:電路為異步五進(jìn)制加法計(jì)數(shù)器(2)狀態(tài)轉(zhuǎn)換表Q2nQ1nQ0nQ2n+1
Q1n+1
Q0n+1000001010011100001010011100000101110111010
010000
Q1n+1=Q1nQ0n(Q0
)Q2n+1=Q2nQn1Q0n(CP
)
Q0n+1=Q2nQ0n
(CP)
10(1)狀態(tài)方程:117.1.2時(shí)序邏輯電路的分析方法時(shí)序邏輯電路的分析方法:根據(jù)電路結(jié)構(gòu),寫出方程式——時(shí)鐘方程(異步時(shí)序電路)、輸出方程、驅(qū)動(dòng)方程和狀態(tài)方程(將驅(qū)動(dòng)方程代入觸發(fā)器的特性方程得到)。將輸入變量和觸發(fā)器初態(tài)的各種取值組合(按從小到大的順序),代入狀態(tài)方程和輸出方程,計(jì)算出各級(jí)觸發(fā)器的次態(tài)值和電路的輸出值,得到狀態(tài)轉(zhuǎn)換表。根據(jù)狀態(tài)轉(zhuǎn)換表,畫狀態(tài)轉(zhuǎn)換圖或時(shí)序圖。根據(jù)狀態(tài)轉(zhuǎn)換圖和時(shí)序圖,說明電路的邏輯功能?!纠?.1】分析下面電路的邏輯功能
CPD
CPD
CPDCP↑Q2Q1Q0QQQ(1)寫出驅(qū)動(dòng)方程、狀態(tài)方程和輸出方程根據(jù)電路結(jié)構(gòu),寫出驅(qū)動(dòng)方程;將驅(qū)動(dòng)方程代入觸發(fā)器的特性方程得到狀態(tài)方程;由于該電路的輸出就是各觸發(fā)器的輸出,所以輸出方程同狀態(tài)方程D2=Q1nD1=Q0nD0=Q2n驅(qū)動(dòng)方程D觸發(fā)器的特性方程Q2n+1=D2=Q1nQ1n+1=D1=Q0nQ0n+1=D0=Q2n12狀態(tài)方程QQQ畫出狀態(tài)轉(zhuǎn)換表和狀態(tài)轉(zhuǎn)換圖(2)狀態(tài)轉(zhuǎn)換表Q2nQ1nQ0nQ2n+1Q1n+1Q0n+1000001001011010101011111100000101010110100111110假設(shè)Q2Q1Q0初始狀態(tài):000000001110111011100010101有效循環(huán)無效循環(huán)13(3)狀態(tài)轉(zhuǎn)換圖按從小到大的順序?qū)懗鲇|發(fā)器初態(tài)的各種取值組合計(jì)數(shù)器相關(guān)概念14幾個(gè)概念有效狀態(tài)(編碼狀態(tài))——設(shè)計(jì)時(shí)選中進(jìn)入計(jì)數(shù)循環(huán)的狀態(tài)無效狀態(tài)(非編碼狀態(tài))——設(shè)計(jì)時(shí)未選中進(jìn)入計(jì)數(shù)循環(huán)的狀態(tài)(010、101)死循環(huán)(無效循環(huán))——由無效狀態(tài)構(gòu)成的循環(huán)自啟動(dòng)——不存在死循環(huán),計(jì)數(shù)循環(huán)以外的狀態(tài),都能回到計(jì)數(shù)循環(huán)中來(4)時(shí)序圖CPQ0Q1Q2電路功能:同步3位格雷碼計(jì)數(shù)器或同步六進(jìn)制計(jì)數(shù)器由于計(jì)數(shù)循環(huán)以外的狀態(tài)不能回到計(jì)數(shù)循環(huán)里來,所以該計(jì)數(shù)器不能自啟動(dòng)15Q2Q1Q0000001011111110100000【例7.2】分析下面電路的邏輯功能D觸發(fā)器的特性方程16
QCPDQ
QCPD
QCPDCPQ2Q1Q0QQ.....驅(qū)動(dòng)方程D2=Q1nD1=Q0nD0=Q0nQ1nQ2n=(Q0n+Q1n)Q2n狀態(tài)方程Q2n+1=Q1nQ1n+1=Q0nQ0n+1==Q0nQ1nQ2n=(Q0n+Q1n)Q2n狀態(tài)轉(zhuǎn)換表和狀態(tài)圖17狀態(tài)轉(zhuǎn)換表Q2nQ1nQ0nQ2n+1Q1n+1Q0n+100000100101101010
0011111100000101010110100111110000001101110111010011100Q2Q1Q0狀態(tài)轉(zhuǎn)換圖能夠回到計(jì)數(shù)循環(huán)中來最終狀態(tài)圖和電路功能18整理后的狀態(tài)轉(zhuǎn)換圖電路功能:能夠自行進(jìn)入工作循環(huán)的同步3位格雷碼計(jì)數(shù)器(同步六進(jìn)制計(jì)數(shù)器)由于計(jì)數(shù)循環(huán)以外的狀態(tài)都能回到計(jì)數(shù)循環(huán)里來,所以稱該計(jì)數(shù)器為能自啟動(dòng)的同步六進(jìn)制計(jì)數(shù)器000001110111101011010100197.2有限狀態(tài)機(jī)7.2.1有限狀態(tài)機(jī)概述7.2.2Moore型有限狀態(tài)機(jī)7.2.3Mealy型有限狀態(tài)機(jī)內(nèi)容概要7.2.1有限狀態(tài)機(jī)概述有限狀態(tài)機(jī)(FiniteStateMachine,F(xiàn)SM)是表示有限個(gè)狀態(tài)以及這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的離散數(shù)學(xué)模型。有限狀態(tài)機(jī)是組合邏輯和寄存器邏輯的特殊組合。組合邏輯部分包括次態(tài)邏輯和輸出邏輯,分別用于狀態(tài)譯碼和產(chǎn)生輸出信號(hào);寄存器邏輯部分用于存儲(chǔ)狀態(tài)。20輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯Moore型狀態(tài)機(jī)典型結(jié)構(gòu)?組合邏輯組合邏輯寄存器邏輯FSM常用于時(shí)序邏輯電路設(shè)計(jì),尤其適于設(shè)計(jì)數(shù)字系統(tǒng)的控制模塊。具有速度快、結(jié)構(gòu)簡(jiǎn)單、可靠性高、邏輯清晰、復(fù)雜問題簡(jiǎn)單化的優(yōu)點(diǎn)。根據(jù)輸出信號(hào)產(chǎn)生的機(jī)理不同,狀態(tài)機(jī)可以分成兩類:摩爾(Moore)型狀態(tài)機(jī)--輸出信號(hào)僅與當(dāng)前狀態(tài)有關(guān)米里(Mealy)型狀態(tài)機(jī)--輸出信號(hào)與當(dāng)前狀態(tài)及輸入信號(hào)有關(guān)有限狀態(tài)機(jī)的分類21輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯Mealy型狀態(tài)機(jī)的典型結(jié)構(gòu)??有限狀態(tài)機(jī)的表示方法22狀態(tài)機(jī)有3種表示方法狀態(tài)圖(StateDiagram)、狀態(tài)表(StateTable)和流程圖三者等價(jià),可以相互轉(zhuǎn)換000/0001/0010/0011/0100/1狀態(tài)(轉(zhuǎn)換)圖Q2nQ1nQ0nQ2n+1Q1n+1Q0n+1C000001000101000100
1
1001110
001000001狀態(tài)(轉(zhuǎn)換)表有限狀態(tài)機(jī)的設(shè)計(jì)方法實(shí)用的狀態(tài)機(jī)一般都設(shè)計(jì)為同步時(shí)序邏輯電路,它在同一個(gè)時(shí)鐘信號(hào)的觸發(fā)下,完成各狀態(tài)之間的轉(zhuǎn)移。狀態(tài)機(jī)設(shè)計(jì)步驟:
1.分析設(shè)計(jì)要求,列出全部可能狀態(tài);
2.畫出狀態(tài)轉(zhuǎn)移圖;
3.用Verilog
HDL語言描述狀態(tài)機(jī),主要采用always塊語句,完成3項(xiàng)任務(wù):
(1)定義起始狀態(tài)(敏感信號(hào)為時(shí)鐘和復(fù)位信號(hào));(2)用case或if-else語句描述出狀態(tài)的轉(zhuǎn)移(根據(jù)現(xiàn)態(tài)和輸入產(chǎn)生次態(tài));(3)用case或if-else語句描述狀態(tài)機(jī)的輸出信號(hào)(敏感信號(hào)為現(xiàn)態(tài))。23狀態(tài)機(jī)的設(shè)計(jì)要點(diǎn)起始狀態(tài)的選擇 起始狀態(tài)指電路復(fù)位后所處的狀態(tài),選擇一個(gè)合理的起始狀態(tài)將使整個(gè)系統(tǒng)簡(jiǎn)捷高效。有限狀態(tài)機(jī)必須有時(shí)鐘信號(hào)和復(fù)位信號(hào)(建議采用異步復(fù)位)!狀態(tài)編碼方式二進(jìn)制編碼:采用log2N個(gè)觸發(fā)器來表示這N個(gè)狀態(tài)——節(jié)省邏輯資源,但可能產(chǎn)生毛刺格雷編碼:采用log2N個(gè)觸發(fā)器來表示這N個(gè)狀態(tài),同時(shí)相鄰狀態(tài)只有一個(gè)比特位不同。節(jié)省邏輯資源;又避免產(chǎn)生毛刺——在狀態(tài)的順序轉(zhuǎn)換中,相鄰狀態(tài)每次只有一個(gè)比特位產(chǎn)生變化一位熱碼狀態(tài)機(jī)編碼(One-HotStateMachineEncoding):采用N個(gè)觸發(fā)器來表示這N個(gè)狀態(tài)。可以避免狀態(tài)機(jī)產(chǎn)生錯(cuò)誤的輸出24對(duì)8個(gè)狀態(tài)三種編碼方式的對(duì)比狀態(tài)二進(jìn)制編碼格雷編碼一位熱碼編碼state000000000000001state100100100000010state201001100000100state301101000001000state410011000010000state510111100100000state611010101000000state711110010000000采用一位熱碼編碼,雖然使用觸發(fā)器較多,但可以有效節(jié)省和簡(jiǎn)化組合邏輯電路。FPGA有豐富的寄存器資源,門邏輯相對(duì)缺乏,采用一位熱碼編碼可以有效提高電路的速度和可靠性,也有利于提高器件資源的利用率。25狀態(tài)編碼的HDL定義狀態(tài)編碼的定義有兩種方式:parameter和‵define語句【例】為state0,state1,state2,state3四個(gè)狀態(tài)定義碼字為:00,01,11,10parameterstate0=2‵b00,state1=2‵b01,state2=2‵b11,state3=2‵b10;……
case(state)state0:……;state1:……;……‵definestate0=2‵b00//不要加分號(hào)‵definestate1=2‵b01‵definestate2=2‵b11‵definestate3=2‵b10case(state)‵state0:……;‵state1:……;……方式一:用parameter參數(shù)定義用n個(gè)parameter常量表示n個(gè)狀態(tài)方式二:用‵define語句定義用n個(gè)宏名表示n個(gè)狀態(tài)26狀態(tài)轉(zhuǎn)換的描述一般用case、casez或casex語句,比用if-else語句更清晰明了! 在case語句的最后,要加上default分支語句,以避免鎖存器的產(chǎn)生。狀態(tài)機(jī)一般應(yīng)設(shè)計(jì)為同步方式,并由一個(gè)時(shí)鐘信號(hào)來觸發(fā)。實(shí)用的狀態(tài)機(jī)都應(yīng)設(shè)計(jì)為由唯一的時(shí)鐘邊沿觸發(fā)的同步運(yùn)行方式27
Moore型有限狀態(tài)機(jī)28輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯Moore型狀態(tài)機(jī)典型結(jié)構(gòu)?輸入現(xiàn)態(tài)輸出次態(tài)輸出Moore型狀態(tài)圖的表示
Moore型狀態(tài)機(jī),其輸出只為狀態(tài)機(jī)當(dāng)前狀態(tài)的函數(shù),而與外部輸入無關(guān)。外部輸出是內(nèi)部狀態(tài)的函數(shù)。29第1步:分析設(shè)計(jì)要求,列出全部可能狀態(tài):
未收到一個(gè)有效位(0) :S0
收到一個(gè)有效位(1) :S1
連續(xù)收到兩個(gè)有效位(11) :S2
連續(xù)收到三個(gè)有效位(110) :S3
連續(xù)收到四個(gè)有效位(1101) :S4
由于序列檢測(cè)器的輸出只為狀態(tài)機(jī)當(dāng)前狀態(tài)的函數(shù),而與外部輸入無關(guān),所以為Moore型狀態(tài)機(jī)Moore型有限狀態(tài)機(jī)設(shè)計(jì)舉例【例7.3】設(shè)計(jì)一個(gè)序列檢測(cè)器。要求檢測(cè)器連續(xù)收到串行碼{1101}后,輸出檢測(cè)標(biāo)志為1,否則輸出檢測(cè)標(biāo)志為0。序列1101S0/0S1/0S2/0S4/1S3/01101010100Si/ZOiData_INi30第2步:畫出狀態(tài)圖只有在S4狀態(tài)下輸出zo置1,其他狀態(tài)下zo為0,且輸出與外部輸入無關(guān)31第3步:用Verilog語言描述狀態(tài)機(jī)在程序的開頭定義狀態(tài)機(jī)狀態(tài)的編碼形式用parameter或‵define語句復(fù)位時(shí)回到起始狀態(tài)敏感信號(hào)為時(shí)鐘和復(fù)位信號(hào)狀態(tài)轉(zhuǎn)換描述用case或if-else語句描述出狀態(tài)的轉(zhuǎn)移(根據(jù)現(xiàn)態(tài)和輸入產(chǎn)生次態(tài),可與復(fù)位時(shí)回到起始狀態(tài)的語句放在同一個(gè)always塊中,即敏感信號(hào)為時(shí)鐘和復(fù)位信號(hào))輸出信號(hào)描述用case語句(Mealy型狀態(tài)機(jī)還要用到if-else語句)描述狀態(tài)機(jī)的輸出信號(hào)(單獨(dú)放在一個(gè)always塊中,敏感信號(hào)為現(xiàn)態(tài))modulemonitor(clk,clr,data,zo,state);parameterS0=3'b000,S1=3'b001,S2=3‘b010,S3=3’b011,S4=3‘b100;//狀態(tài)編碼的定義inputclk,clr,data;outputzo;output[2:0]state;
//狀態(tài)機(jī)reg[2:0]state;regzo;always@(posedgeclkorposedgeclr)beginif(clr)state=S0;//(1)復(fù)位時(shí)回到初始狀態(tài)
elsebegincase(state)//(2)狀態(tài)的轉(zhuǎn)移 S0:if(data==1’b1)state=S1;elsestate=S0;S1:if(data==1’b1)state=S2;elsestate=S0; S2:if(data==1’b0)state=S3;elsestate=S2;S3:if(data==1’b1)state=S4;elsestate=S0; S4:if(data==1’b1)state=S1;elsestate=S0;default:state=S0;endcasezo=(state==S4)?1’b1:1’b0;//(3)狀態(tài)機(jī)的輸出信號(hào)endendendmodule32序列檢測(cè)器源程序(Moore型狀態(tài)機(jī))在S4時(shí)給zo置1——輸出只為狀態(tài)機(jī)當(dāng)前狀態(tài)的函數(shù),而與外部輸入無關(guān)33狀態(tài)機(jī)的輸出信號(hào)描述如果輸出表達(dá)式很簡(jiǎn)單,可以單獨(dú)用一條賦值語句寫出最好將狀態(tài)機(jī)的輸出語句單獨(dú)寫在一個(gè)always塊中,這樣邏輯清晰,不易出錯(cuò):
語句“zo=(state==S4)?1’b1:1’b0;”去掉,換成如下always塊(組合邏輯),monitor_good.v:
always@(state)//(3)狀態(tài)機(jī)的輸出信號(hào)
begincase(state)S0:zo=1'b0;S1:zo=1'b0;S2:zo=1'b0;S3:zo=1'b0;
S4:zo=1'b1;default:zo=1'b0;endcaseend返回34序列檢測(cè)器的仿真波形1101狀態(tài)機(jī)的Verilog描述一般采用雙過程描述:一個(gè)過程描述現(xiàn)態(tài)和次態(tài)時(shí)序邏輯;另一個(gè)過程描述輸出邏輯(組合邏輯)。這樣寫結(jié)構(gòu)清晰;將時(shí)序邏輯和組合邏輯分開描述,便于修改。描述包括3個(gè)部分:(1)復(fù)位時(shí)回到初始狀態(tài);(2)狀態(tài)的轉(zhuǎn)移;(3)狀態(tài)機(jī)的輸出信號(hào)。返回35輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯Mealy型狀態(tài)機(jī)的典型結(jié)構(gòu)??輸入/輸出現(xiàn)態(tài)次態(tài)Mealy型狀態(tài)機(jī),其輸出不僅與狀態(tài)機(jī)當(dāng)前狀態(tài)有關(guān),而且與輸入有關(guān)——外部輸出是內(nèi)部狀態(tài)和外部輸入的函數(shù)。在“Mealy型狀態(tài)圖的表示”中,每個(gè)圓圈表示狀態(tài)機(jī)的一個(gè)狀態(tài),每個(gè)箭頭表示狀態(tài)之間的一次轉(zhuǎn)移;引起狀態(tài)轉(zhuǎn)換的輸入信號(hào)及產(chǎn)生的輸出信號(hào)標(biāo)注在箭頭上。Mealy型狀態(tài)圖的表示
7.2.3Mealy型有限狀態(tài)機(jī)【例7.4】將【例7.3】采用Mealy型狀態(tài)機(jī)實(shí)現(xiàn)。1101S41/1S0S1S2S31/01/00/00/01/00/01/00/00/036序列檢測(cè)器的Mealy型有限狀態(tài)機(jī)狀態(tài)圖SiData_INi/ZOi在S3時(shí)若data=1,則zo置1:輸出是內(nèi)部狀態(tài)和外部輸入的函數(shù)modulemonitor2_good(clk,clr,data,zo,state);parameterS0=3’b000,S1=3’b001,S2=3’b010,S3=3’b011,S4=3’b100;inputclk,clr,data;outputzo;output[2:0]state;reg[2:0]state;regzo;always@(posedgeclkorposedgeclr)beginif(clr)state=S0;//(1)復(fù)位時(shí)回到初始狀態(tài)
elsebegincase(state)//(2)狀態(tài)的轉(zhuǎn)移
S0:if(data==1’b1)state=S1;
elsestate=S0;
S1:if(data==1’b1)state=S2;
elsestate=S0;S2:if(data==1’b0)state=S3;elsestate=S2;
37序列檢測(cè)器源程序(Mealy型狀態(tài)機(jī)) S3:if(data==1’b1)state=S4;elsestate=S0; S4:if(data==1’b1)state=S1;elsestate=S0;default:state=S0;endcaseendendendmodule always@(state)//(3)狀態(tài)機(jī)的輸出信號(hào)
begincase(state)S0:zo=1'b0;S1:zo=1'b0;S2:zo=1'b0;S3:if(data==1'b1)zo=1'b1;elsezo=1'b0;S4:zo=1'b0;default:zo=1'b0;endcaseendendmodule 38序列檢測(cè)器源程序及仿真波形1101在S3時(shí)若data=1,則zo置1:輸出是內(nèi)部狀態(tài)和外部輸入的函數(shù)采用Mealy型狀態(tài)機(jī)描述序列檢測(cè)器與采用Moore型狀態(tài)機(jī)的仿真波形稍有區(qū)別!波形比較與Moore型比較39假定頻率計(jì)有3個(gè)量程:1K、10K、100K控制器有6個(gè)工作狀態(tài):進(jìn)入100K量程、100K量程測(cè)量、進(jìn)入10K量程、10K量程測(cè)量、進(jìn)入1K量程、1K量程測(cè)量。【例7.5】自動(dòng)轉(zhuǎn)換量程頻率計(jì)控制器【例7.5】設(shè)計(jì)一個(gè)自動(dòng)轉(zhuǎn)換量程頻率計(jì)控制器,要求根據(jù)超量程或欠量程輸入信號(hào),自動(dòng)切換到合適的量程;并輸出復(fù)位頻率計(jì)計(jì)數(shù)器的信號(hào),以及選擇標(biāo)準(zhǔn)時(shí)基的信號(hào)。輸入信號(hào)clk:系統(tǒng)時(shí)鐘;clear:系統(tǒng)復(fù)位信號(hào);cntover:超量程;cntlow:欠量程。輸出信號(hào)reset:轉(zhuǎn)換到某量程時(shí)復(fù)位頻率計(jì)計(jì)數(shù)器信號(hào);std_f_sel:選擇標(biāo)準(zhǔn)時(shí)基信號(hào)40頻率計(jì)控制器狀態(tài)轉(zhuǎn)移圖(Moore型狀態(tài)機(jī))起始狀態(tài)選為一個(gè)中間量程,為C(進(jìn)入10K量程)。從“進(jìn)入某檔量程”轉(zhuǎn)移到“該檔量程測(cè)量”為無條件轉(zhuǎn)移;而當(dāng)在測(cè)量時(shí),根據(jù)超量程或欠量程,切換到適宜的量程。開始進(jìn)入100K量程(狀態(tài)A)reset=1;std_f_sel=00開始進(jìn)入10K量程(狀態(tài)C)reset=1;std_f_sel=01開始進(jìn)入1K量程(狀態(tài)E)reset=1;std_f_sel=11100K量程測(cè)量(狀態(tài)B)reset=0;std_f_sel=0010K量程測(cè)量(狀態(tài)D)reset=0;std_f_sel=011K量程測(cè)量(狀態(tài)F)reset=0;std_f_sel=11clear=1cntlow=1cntlow=1cntover=1cntover=1cntlow=0cntover=0起始狀態(tài)41頻率計(jì)控制器源程序(1/3)modulefrequency_right(clk,clear,cntover,cntlow,reset,std_f_sel,state);inputclk,clear,cntover,cntlow;outputreset;//量程轉(zhuǎn)換開始時(shí)復(fù)位頻率計(jì)計(jì)數(shù)器
output[1:0]std_f_sel;//選擇標(biāo)準(zhǔn)時(shí)基
output[5:0]state;reg[5:0]state;regreset;reg[1:0]std_f_sel;parameterstart_f100k=6'b000001,f100k_cnt=6'b000010,start_f10k=6'b000100,f10k_cnt=6'b001000,start_f1k=6'b010000,f1k_cnt=6'b100000;//①復(fù)位時(shí)回到起始狀態(tài)
always@(posedgeclkorposedgeclear)if(clear)state=start_f10k;//復(fù)位時(shí)“進(jìn)入10K量程”為起始狀態(tài)
else42頻率計(jì)控制器源程序(2/3)//②狀態(tài)的轉(zhuǎn)換(根據(jù)現(xiàn)態(tài)和輸入產(chǎn)生次態(tài))begincase(state)start_f100k:state=f100k_cnt;f100k_cnt:if(cntlow)state=start_f10k;//欠量程
elsestate=f100k_cnt;start_f10k:state=f10k_cnt;f10k_cnt:if(cntover)state=start_f100k;//超量程
elseif(cntlow)state=start_f1k;//欠量程
start_f1k:state=f1k_cnt;f1k_cnt:if(cntover)state=start_f10k;//超量程
elsestate=f1k_cnt;default:state=start_f10k; //默認(rèn)狀態(tài)為起始狀態(tài)“進(jìn)入10K量程”
endcaseend43頻率計(jì)控制器源程序(3/3)//③狀態(tài)機(jī)的輸出信號(hào)
always@(state)begin case(state) start_f100k:beginreset=1;std_f_sel=2'b00;endf100k_cnt:beginreset=0;std_f_sel=2'b00;endstart_f10k:beginreset=1;std_f_sel=2'b01;endf10k_cnt:beginreset=0;std_f_sel=2'b01;endstart_f1k:beginreset=1;std_f_sel=2'b11;endf1k_cnt:beginreset=0;std_f_sel=2'b11;enddefault:beginreset=1;std_f_sel=2'b01;end
endcaseendendmodule44頻率計(jì)控制器時(shí)序仿真波形異步復(fù)位457.3數(shù)碼寄存器和移位寄存器7.3.1數(shù)碼寄存器7.3.2移位寄存器7.3.3集成移位寄存器內(nèi)容概要4546寄存器的定義與分類寄存器是計(jì)算機(jī)的一個(gè)重要部件,用于暫時(shí)存放一組二值代碼,如參加運(yùn)算的數(shù)據(jù)、運(yùn)算結(jié)果、指令等。它被廣泛用于各類數(shù)字系統(tǒng)和數(shù)字計(jì)算機(jī)中。由有記憶功能的觸發(fā)器組成;還有一些接收數(shù)據(jù)的控制門,以便在同一個(gè)接收命令作用下使各觸發(fā)器同時(shí)接收數(shù)據(jù)。一個(gè)觸發(fā)器能儲(chǔ)存1位二值代碼,用N個(gè)觸發(fā)器組成的寄存器能儲(chǔ)存一組N位的二值代碼觸發(fā)器的觸發(fā)方式?jīng)Q定了寄存器的觸發(fā)方式。數(shù)碼寄存器常用的是上升沿觸發(fā)的D型觸發(fā)器(邊沿觸發(fā))和電位觸發(fā)器,較少采用主-從觸發(fā)器。寄存器的操作:讀/寫/復(fù)位(清零)寄存器
數(shù)碼寄存器
移位寄存器
數(shù)據(jù)寄存器(多位D型觸發(fā)器組成)數(shù)據(jù)鎖存器(多位電位觸發(fā)器組成)
寄存器陣列單向移位寄存器雙向移位寄存器477.3.1數(shù)碼寄存器4位D型寄存器電路結(jié)構(gòu)(N=4)D3D2D1D0:并行數(shù)據(jù)輸入Q3Q2Q1Q0:并行數(shù)據(jù)輸出QDRDQDRDQDRDQDRDD0D1D2D3Q0Q1Q2Q3FF0FF1FF2FF3CPRD工作方式(數(shù)據(jù)輸入輸出方式)——只能并入并出(2)置數(shù)(復(fù)位端無效時(shí))當(dāng),Q0Q1Q2Q3=D0D1D2D3;(1)清除(復(fù)位)
當(dāng),Q0Q1Q2Q3=0000;數(shù)碼寄存器具有接收、存放和傳輸數(shù)碼的功能。各種類型的觸發(fā)器都具有置0、置1和保持(記憶)功能,它們都可以用來構(gòu)成寄存器,而用D觸發(fā)器和D鎖存器構(gòu)成寄存器最為方便。工作原理47484位二進(jìn)制數(shù)寄存器CT741754位輸入端D3D2D1D0CPQ3Q2Q1Q0RGNDVcc+5V
CT74175(電源〕CP1D2D3D4D1Q2Q3Q4Q4位D型寄存器RD常見集成數(shù)碼寄存器種類
1、TTL型4位D型寄存器:CT74173、CT74175
2、TTL型8位D型寄存器:CT74273、CT74373
3、CMOS型4位D型寄存器:CC4076由邊沿觸發(fā)器組成4級(jí)DFF的輸入構(gòu)成4位數(shù)碼輸入端1D、2D、3D、4D,輸出構(gòu)成4位數(shù)碼輸出端各觸發(fā)器的時(shí)鐘連接在一起,作為整個(gè)寄存器的時(shí)鐘端CP異步置0端連在一起,作為整個(gè)寄存器的復(fù)位端49CT74175電路結(jié)構(gòu)RDQQRDQQRDQQRDQQCP1D2D3D4DRD2Q1Q3Q4Q1Q2Q3Q4QVcc(+5V)GNDD3D2D1D0CPQ3Q2Q1Q0R
CT742731D8D1Q8Q8位D型寄存器Q4Q5Q6Q7D4D5D6D7CP8位二進(jìn)制數(shù)D7~D0508位二進(jìn)制數(shù)寄存器CT74273RD數(shù)據(jù)寄存器根據(jù)構(gòu)成寄存器的記憶元件是D觸發(fā)器(邊沿觸發(fā))還是D鎖存器(電位觸發(fā)),將數(shù)碼寄存器區(qū)分為數(shù)據(jù)寄存器和數(shù)據(jù)鎖存器數(shù)據(jù)寄存器——由多位邊沿觸發(fā)器組成的用于保存一組二進(jìn)制代碼的寄存單元。當(dāng)時(shí)鐘信號(hào)的上升沿或下降沿到來時(shí),將輸入端數(shù)據(jù)打入寄存器,即此時(shí)輸出信號(hào)等于輸入信號(hào);在時(shí)鐘信號(hào)的其它時(shí)刻,輸出端保持剛才輸入的數(shù)據(jù),即為寄存狀態(tài),而不管此時(shí)輸入信號(hào)是否變化。
51在時(shí)鐘信號(hào)的上升沿,將輸入端數(shù)據(jù)打入寄存器。在clk的其它時(shí)刻,寄存數(shù)據(jù)數(shù)據(jù)有效提前于控制信號(hào)有效8位數(shù)據(jù)寄存器的HDL設(shè)計(jì)modulereg_8bit(qout,data,clk,clr);output[7:0]qout;input[7:0]data;inputclk,clr;reg[7:0]qout;always@(posedgeclkorposedgeclr)//沿觸發(fā)
beginif(clr)qout=0;
//異步清零
elseqout=data;endendmodule【例7.6】用always塊語句描述的8位數(shù)據(jù)寄存器52數(shù)據(jù)鎖存器數(shù)據(jù)鎖存器:由多位電位觸發(fā)器組成的用于保存一組二進(jìn)制代碼的寄存單元。功能:當(dāng)輸入控制信號(hào)(如時(shí)鐘)為高電平時(shí),門是打開的,輸出信號(hào)等于輸入信號(hào);當(dāng)輸入控制信號(hào)為低電平時(shí),門是關(guān)閉的,輸出端保持剛才輸入的數(shù)據(jù),即為鎖存狀態(tài),而不管此時(shí)輸入信號(hào)是否變化。通常由電平信號(hào)來控制,屬于電平敏感型,適于數(shù)據(jù)有效滯后于控制信號(hào)有效的場(chǎng)合。53數(shù)據(jù)有效滯后于控制信號(hào)有效當(dāng)clk為高電平時(shí),輸入數(shù)據(jù)當(dāng)clk為低電平時(shí),鎖存數(shù)據(jù)數(shù)據(jù)寄存器與數(shù)據(jù)鎖存器的區(qū)別數(shù)據(jù)寄存器和數(shù)據(jù)鎖存器的區(qū)別:數(shù)據(jù)寄存器由邊沿觸發(fā)的觸發(fā)器組成。通常由同步時(shí)鐘信號(hào)來控制,屬于脈沖敏感型,適于數(shù)據(jù)有效提前于控制信號(hào)(一般為時(shí)鐘信號(hào))有效、并要求同步操作的場(chǎng)合。數(shù)據(jù)鎖存器由電位觸發(fā)器(即D鎖存器)組成。一般由電平信號(hào)來控制,屬于電平敏感型,適于數(shù)據(jù)有效滯后于控制信號(hào)有效的場(chǎng)合。54數(shù)據(jù)鎖存器的實(shí)現(xiàn)方法:用assign語句——使用條件運(yùn)算符,簡(jiǎn)便!用always塊語句實(shí)現(xiàn)1位數(shù)據(jù)鎖存器的HDL設(shè)計(jì)modulelatch_1(q,d,clk);outputq;inputd,clk;assignq=clk?d:q;/*當(dāng)時(shí)鐘信號(hào)為高電平時(shí),將輸入端信號(hào)打入鎖存器;當(dāng)時(shí)鐘信號(hào)為低電平時(shí),鎖存原來已打入的數(shù)據(jù)。*/endmodule數(shù)據(jù)有效滯后于控制信號(hào)有效當(dāng)clk為低電平時(shí),鎖存數(shù)據(jù)【例7.7】1位數(shù)據(jù)鎖存器55帶置位和復(fù)位端的1位數(shù)據(jù)鎖存器的HDL設(shè)計(jì)modulelatch_2(q,d,clk,set,reset);outputq;inputd,clk,set,reset;assignq=reset?0:(set?1:(clk?d:q));endmodule復(fù)位置位打入數(shù)據(jù)鎖存數(shù)據(jù)【例7.8】帶置位和復(fù)位端的1位數(shù)據(jù)鎖存器568位數(shù)據(jù)鎖存器的HDL設(shè)計(jì)modulelatch_8bit(qout,data,clk);output[7:0]qout;input[7:0]data;inputclk;reg[7:0]qout;always@(clkordata)//電平敏感if(clk)qout=data;endmodule鎖存數(shù)據(jù)【例7.9】用always塊語句描述的8位數(shù)據(jù)鎖存器57數(shù)碼寄存器用于計(jì)算機(jī)并行輸入/輸出接口外部設(shè)備(打印機(jī))8D寄存器1D~8D1Q~8QCPD7~D0計(jì)算機(jī)CPU控制信號(hào)計(jì)算機(jī)CPU數(shù)據(jù)總線輸出接口計(jì)算機(jī)總線畫法:一條粗線代表8條線58數(shù)碼寄存器的應(yīng)用597.3.2移位寄存器(移存器)在計(jì)算機(jī)中,常要求寄存器有“移位”功能。例如,移位相加乘法器進(jìn)行乘法運(yùn)算時(shí),要求將乘數(shù)右移,被乘數(shù)左移;除法運(yùn)算時(shí),要求將余數(shù)左移;將并行傳遞的數(shù)轉(zhuǎn)換成串行數(shù)據(jù)以及將串行傳遞的數(shù)轉(zhuǎn)換成并行數(shù)據(jù)的過程中,需要移位。具有移位功能的寄存器稱為移位寄存器,每來一個(gè)時(shí)鐘脈沖,寄存器中數(shù)據(jù)就依次向左或向右移一位。分類左移移位寄存器,右移移位寄存器,雙向移位寄存器數(shù)據(jù)輸入方式串行輸入,并行輸入數(shù)據(jù)輸出方式串行輸出:右移寄存器、左移寄存器并行輸出:全部觸發(fā)器的輸出作為電路的輸出根據(jù)數(shù)據(jù)輸入/輸出方式,移位寄存器的工作方式有串入串出、串入并出、并入串出、并入并出5960串入串出、串入并出移位寄存器60移位寄存器應(yīng)采用邊沿觸發(fā)或主從觸發(fā)方式的觸發(fā)器,不能采用電位觸發(fā)的觸發(fā)器,以防止空翻。左移移位寄存器的串行輸入方式:在同一個(gè)時(shí)鐘的控制下,數(shù)據(jù)從寄存器的最右端串行輸入,同時(shí)已存入的信息左移一位。614位右移移位寄存器電路結(jié)構(gòu)(N=4右移)DIR:右移串行數(shù)據(jù)輸入1011DQRDQ0Q1Q2Q3FF0FF1FF2FF3CPRDDQRDDQRDDQRDDIR工作原理復(fù)位:CPDIRQ0Q1Q2Q310111011110100123461移位:624位右移移位寄存器工作方式工作方式串入并出
串并轉(zhuǎn)換(需要N個(gè)CP周期),經(jīng)過4個(gè)CP,串行輸入的4位數(shù)碼全部移入移位寄存器中,并從Q3Q2Q1Q0并行輸出1011串入串出把最右邊的觸發(fā)器的輸出作為電路的輸出。經(jīng)過4個(gè)CP后,Q3輸出的是最先串行輸入的數(shù)碼。從每個(gè)觸發(fā)器Q端輸出的波形相同,但后級(jí)觸發(fā)器Q端輸出波形比前級(jí)觸發(fā)器Q端輸出波形滯后一個(gè)時(shí)鐘周期。把工作于串入串出方式的移位寄存器稱為“延遲線”(第N級(jí)FF延遲N個(gè)CP周期)62634位串行輸入、串/并行輸出雙向移位寄存器63DA=SR+QB
DB=QA+QC
DC=QB+QD
DD=QC+SL
SSSSSSSSDAQADBQBDCQCDDQD++++SCPSRSLRD....................S=0,(往)左移S=1,(往)右移SR:右串行輸入端SL:左串行輸入端.0
1
644位串行輸入、串/并行輸出雙向移位寄存器工作原理復(fù)位移位(1)當(dāng)S=0
時(shí):左移移位寄存器
串入并出——數(shù)據(jù)從SL端串行輸入,順序左移,DA=QB,DB=QC,DC=QD,DD=SL。經(jīng)過4個(gè)CP,串行輸入的4位數(shù)碼全部移入移位寄存器中,并從QAQBQCQD并行輸出。串入串出——左移(右移)移位寄存器把最左邊(右邊)的觸發(fā)器的輸出作為電路的輸出。從每個(gè)觸發(fā)器Q端輸出的波形相同,但后級(jí)觸發(fā)器Q端輸出波形比前級(jí)觸發(fā)器Q端輸出波形滯后一個(gè)時(shí)鐘周期。左移時(shí),經(jīng)過4個(gè)CP,最先串行輸入的1位數(shù)碼從QA輸出,下一個(gè)CP上升沿到來時(shí),QA輸出串行移入的第2個(gè)數(shù)碼……。(2)S=1時(shí):右移移位寄存器數(shù)據(jù)從SR端串行輸入,順序右移,DA=SR,DB=QA,DC=QB,DD=QC。64654位串行輸入、串/并行輸出雙向移位寄存器輸出波形65CPSLQDQCQBQA101110111101001234左移時(shí)輸出波形并行輸出串行輸出667.3.3集成移位寄存器按輸入、輸出方式,集成移位寄存器分為5類串入-并出單向移位寄存器串入-串出單向移位寄存器串入、并入-串出單向移位寄存器串入、并入-并出單向移位寄存器串入、并入-并出雙向移位寄存器帶異步置0和置1的DFF構(gòu)成串入、并入-串出單向移位寄存器當(dāng)C=0時(shí)DFF清0,Q1Q2Q3Q4=0000;當(dāng)L=1、D1D2D3D4=1010時(shí),并行輸入數(shù)據(jù),Q1Q2Q3Q4=1010;經(jīng)過4個(gè)CP后,并行輸入的4位數(shù)據(jù)從Q4
串行移出(0101),最后輸出的數(shù)據(jù)是D1
。674位雙向移位寄存器CT74194Q3Q2Q1Q0D3D2D1D0DIRDILS1S0CPRDCT74194功能表置零保持右移左移并行輸入XXX↑00↑01↑10↑1101111功能CPS1S0RD工作方式串入并出——串并轉(zhuǎn)換串入串出——延遲線并入串出——并串轉(zhuǎn)換并入并出——數(shù)據(jù)預(yù)置S1S0:功能控制輸入端D3D2D1D0:并行數(shù)據(jù)輸入端Q3Q2Q1Q0:數(shù)據(jù)輸出DIR:右移串行輸入(Q3為串行輸出端)DIL:左移串行輸入(Q0為串行輸出端)6768CT74194電路結(jié)構(gòu)圖68功能控制電路移位電路S1S0=00,保持;S1S0=01,右移;S1S0=10,左移;S1S0=11,并入69集成移位寄存器擴(kuò)展方法用2片4位移位寄存器擴(kuò)展為8位移位寄存器Q0Q1Q2Q3D3D2D1D0DIRDILS1S0CPRDCT74194①Q(mào)0Q1Q2Q3D3D2D1D0DIRDILS1S0CPRDCT74194②S1S0CPRDD0D1D2D3Q0Q1Q2Q3DIRDILQ4Q5Q6Q7D4D5D6D7將片①的Q3接至片②的DIR,當(dāng)S1S0=01時(shí),右移,片②的輸出Q3作為整個(gè)電路的右移串行輸出端(Q7)。將片②的Q0接至片①的DIL,當(dāng)S1S0=10時(shí),左移,片①的輸出Q0作為整個(gè)電路的左移串行輸出端Q0。同時(shí)把兩片的S1、S0、CP和/RD分別并聯(lián)。70集成移位寄存器的用途數(shù)據(jù)保存與移位計(jì)算機(jī)串行通信中的并串轉(zhuǎn)換及串并轉(zhuǎn)換
串行通信——數(shù)據(jù)在一根傳輸線上一位一位地順序傳送。
并行通信——數(shù)據(jù)以字節(jié)(字)為單位在多根傳輸線上同時(shí)傳送。移存型計(jì)數(shù)器(環(huán)形計(jì)數(shù)器,扭環(huán)形計(jì)數(shù)器)利用移位寄存器組成的計(jì)數(shù)器叫做移存型計(jì)數(shù)器。計(jì)算機(jī)A并串轉(zhuǎn)換串并轉(zhuǎn)換計(jì)算機(jī)B并行數(shù)據(jù)串行數(shù)據(jù)并行數(shù)據(jù)傳輸主要用途71用移位寄存器實(shí)現(xiàn)環(huán)形計(jì)數(shù)器
Q0Q1Q2Q310000100001000010101101000001111STARTCPQ0Q1Q2Q3DIRDILS0S1D0D1D2D310001174194RD當(dāng)START信號(hào)脈沖有效時(shí),S1S0=11,并行輸入。當(dāng)START信號(hào)脈沖無效時(shí),S1S0=01,執(zhí)行右移。11000110001110011101111001111011當(dāng)D0D1D2D3為不同的初值,環(huán)形計(jì)數(shù)器的計(jì)數(shù)規(guī)律不同72用移位寄存器實(shí)現(xiàn)扭環(huán)形計(jì)數(shù)器
CPQ0Q1Q2Q3DIRDILS0S1D0D1D2D30000174194RDQ3取反后接至右串行輸入DIR端。當(dāng)START信號(hào)脈沖有效時(shí),S1S0=11,并行輸入。當(dāng)START信號(hào)脈沖無效時(shí),S1S0=01,執(zhí)行右移。清零4位格雷碼計(jì)數(shù)器(模8)0011000101111111100000001100111000101001010110111010010011010110普通八進(jìn)制計(jì)數(shù)器734位格雷碼計(jì)數(shù)器輸出波形因?yàn)檩敵鲂盘?hào)的頻率為CP的1/8,所以4位格雷碼計(jì)數(shù)器相當(dāng)于8除法器CPTTQ0Q1Q2Q30111100011110000744位格雷碼計(jì)數(shù)器也是序列信號(hào)發(fā)生器電路工作先清零,Q0Q1Q2Q3=0000,使電路進(jìn)入序列順序中。在第1個(gè)CP作用下,DIR=/Q3=1進(jìn)入Q0,以后“1”不斷移入Q0;在第4個(gè)CP來到后,DIR=/Q3=0,以后“0”不斷移入Q0。得到Q0序列為11110000、11110000、…。Q1為Q0的右移1位關(guān)系,Q1序列為01111000、01111000、…。Q2序列為00111100、00111100、…。Q3序列為00011110、00011110、…。CPQ0Q1Q2Q3DIRDILS0S1D0D1D2D3174194RDQ0Q1Q2Q3000010001100
11101111011100110001返回同步計(jì)數(shù)器754位移位寄存器的應(yīng)用——節(jié)日彩燈控制電路利用4位雙向移位寄存器CT74194設(shè)計(jì)一個(gè)節(jié)日彩燈控制電路,使其控制8個(gè)發(fā)光二極管,當(dāng)按下清0鍵時(shí),8個(gè)LED都亮;然后從第1個(gè)LED開始,每來一個(gè)CP,各LED依次熄滅;當(dāng)?shù)?個(gè)LED熄滅后,從第1個(gè)LED開始,每來一個(gè)CP,各LED又依次點(diǎn)亮;重復(fù)此規(guī)律。分析:因?yàn)橐刂?個(gè)發(fā)光二極管,而CT74194為4位雙向移位寄存器,所以需2片CT74194。清0信號(hào)(假定低有效)接CT74194的異步置零端/RD,可使寄存器清零(Q0~Q7=00000000);由于要求按下清0鍵時(shí),8個(gè)LED都亮,則CT74194的的各輸出端應(yīng)接LED的陰極。利用CT74194的右移功能,Q3為串行輸出端;將片①的Q3接至片②的DIR,構(gòu)成8位右移移位寄存器;要使LED熄滅,則串行輸入數(shù)據(jù)應(yīng)為“1”,故將片②的Q3反相后接至片①的DIR。Q0Q1Q2Q3DIRD0D1D2D3DIL
RDS1S0CP74194②+5V+5VS1=0,S0=18位右移移位寄存器Q0Q1Q2Q3DIRD0D1D2D3DIL
RDS1S0CP74194①+5V1CP1秒Q=0時(shí)LED亮清0按鍵1kL076節(jié)日彩燈控制電路連接圖L1L2L3L4L5L6L70000000011111111177節(jié)日彩燈控制電路工作原理把兩片4位移位寄存器的CP和/RD分別并聯(lián);S1S0=01,移位寄存器執(zhí)行右移功能。首先按清0鍵,移位寄存器清零,①和②的輸出Q0Q1Q2Q3均為0,則8個(gè)LED都亮。由于片①的Q3接至片②的DIR,則構(gòu)成8位右移移位寄存器。由于將片②的Q3反相后接至片①的DIR,則在第1個(gè)CP作用下,片②的/Q3=1進(jìn)入片①的Q0,使所驅(qū)動(dòng)的L0熄滅,以后“1”不斷移入Q0,則其后的LED依次熄滅;在第8個(gè)CP來到后,片①的DIR=片②的/Q3=0,以后“0”不斷移入片①的Q0。則從L0開始,每來一個(gè)CP,LED依次點(diǎn)亮。①Q(mào)0Q1Q2Q3②Q0Q1Q2Q3000010001100
11101111111111111111111101110011
00010000
0000
00000000000000000000
00000000100011001110
1111
1111
1111
1111
1111
011100110001787.4計(jì)數(shù)器7.4.1同步計(jì)數(shù)器7.4.2異步計(jì)數(shù)器7.4.3集成計(jì)數(shù)器內(nèi)容概要7.4.1同步計(jì)數(shù)器計(jì)數(shù)器是可以統(tǒng)計(jì)輸入脈沖個(gè)數(shù)的器件計(jì)數(shù)器的用途(脈沖)計(jì)數(shù)計(jì)時(shí)定時(shí)(定時(shí)器)分頻產(chǎn)生節(jié)拍脈沖(順序脈沖)和序列脈沖計(jì)數(shù)器的分類時(shí)鐘方式:根據(jù)計(jì)數(shù)器中觸發(fā)器時(shí)鐘端的連接方式,分為同步計(jì)數(shù)器,異步計(jì)數(shù)器計(jì)數(shù)方式:二進(jìn)制計(jì)數(shù)器,十進(jìn)制計(jì)數(shù)器,M進(jìn)制計(jì)數(shù)器狀態(tài)變化:根據(jù)計(jì)數(shù)器中的狀態(tài)變化規(guī)律分為加法計(jì)數(shù)器,減法計(jì)數(shù)器,加/減法計(jì)數(shù)器79序列信號(hào)發(fā)生器80同步計(jì)數(shù)器的分析方法【例7.10】分析下圖電路,說明電路的特點(diǎn)。[教材P167例6.2]解:(1)寫方程式1CP&1CFF1FF0FF2FF3C11J1K&&QQC11J1K&&QQC11J1K&&QQC11J1K&&QQ8081狀態(tài)轉(zhuǎn)換表(2)計(jì)算并列出狀態(tài)轉(zhuǎn)換表000000000101010100010010001101000101011001111000100100001011010011010100111100000000000100100011010001010110011110001001101010111100110111101111C82狀態(tài)轉(zhuǎn)換圖和時(shí)序圖(3)畫狀態(tài)轉(zhuǎn)換圖(或時(shí)序圖)0000000100100011010001010110011110001001101111011010110011101111/0/0/0/0/0/0/0/0/0/0/0/0/1/1/1/1畫狀態(tài)轉(zhuǎn)換圖時(shí)一定要畫出全部狀態(tài)的變化。畫時(shí)序圖時(shí)只畫出有效狀態(tài)構(gòu)成的計(jì)數(shù)循環(huán)的變化;注意觸發(fā)器的時(shí)鐘特性!CPQ0Q1Q2Q3CCP下降沿時(shí)觸發(fā)器翻轉(zhuǎn)!100183電路功能(4)說明電路功能根據(jù)狀態(tài)轉(zhuǎn)換圖,可知為同步十進(jìn)制加法計(jì)數(shù)器,有自啟動(dòng)能力計(jì)數(shù)器——由若干狀態(tài)構(gòu)成一個(gè)計(jì)數(shù)循環(huán)同步——構(gòu)成電路的全部FF的時(shí)鐘端連接在一起十進(jìn)制——計(jì)數(shù)循環(huán)的狀態(tài)個(gè)數(shù)為10(模10計(jì)數(shù)器)加法——計(jì)數(shù)狀態(tài)按遞增方向變化自啟動(dòng)——不存在死循環(huán),計(jì)數(shù)循環(huán)以外的狀態(tài),都能回到計(jì)數(shù)循環(huán)中來死循環(huán)(無效循環(huán))——由無效狀態(tài)構(gòu)成的循環(huán)11101111/0/11111設(shè)計(jì)計(jì)數(shù)器時(shí),不允許存在死循環(huán)!84同步計(jì)數(shù)器的特點(diǎn)所有觸發(fā)器的時(shí)鐘端并聯(lián)在一起,作為計(jì)數(shù)器的時(shí)鐘端各觸發(fā)器同時(shí)翻轉(zhuǎn),不存在時(shí)鐘到各觸發(fā)器輸出的傳輸延遲的積累由于其工作頻率只與一個(gè)觸發(fā)器的時(shí)鐘到輸出的傳輸延遲有關(guān),所以它的工作頻率比異步計(jì)數(shù)器高。由于計(jì)數(shù)器各觸發(fā)器幾乎是同時(shí)翻轉(zhuǎn)的,因此,各觸發(fā)器輸出波形的偏移為各觸發(fā)器時(shí)鐘到輸出的延遲之差,同步計(jì)數(shù)器輸出經(jīng)譯碼后所產(chǎn)生的尖峰信號(hào)寬度比較小。缺點(diǎn):結(jié)構(gòu)比較復(fù)雜(各觸發(fā)器的輸入由多個(gè)Q輸出相與得到),所用元件較多。84【例7.11】同步計(jì)數(shù)器的分析【例7.11】分析下圖電路,說明電路特點(diǎn)。[教材P170例6.3]J0=K0=1J1=K1=Q0nJ2=K2=Q1nQ0n
J3=K3=Q2nQ1nQ0n(1)寫出驅(qū)動(dòng)方程,狀態(tài)方程和輸出方程85QC11K1J0FQC11K1J2FQC11K1J3F&Q1K1J1F&&&“1”CPQ01Q2QQ3C狀態(tài)轉(zhuǎn)換表(2)列出狀態(tài)轉(zhuǎn)換表Q3nQ2nQ1nQ0nQ3n+1Q2n+1Q1n+1Q0n+1C000000010000100100001000110001101000010001010010101100011001110011110000100010010100110100101010110101
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板學(xué)校食堂承包經(jīng)營合同范本
- Unit2 He's cool(說課稿)2023-2024學(xué)年外研版(三起)四年級(jí)下冊(cè)
- 2025合同模板工程的變更范本
- 2025江蘇:安全責(zé)任寫進(jìn)集體合同模板范本
- Unit1 School(說課稿)-2024-2025人教版(新起點(diǎn))英語一年級(jí)上冊(cè)
- 2023七年級(jí)語文上冊(cè) 第四單元 綜合性學(xué)習(xí) 少年正是讀書時(shí)說課稿 新人教版
- Unit5 I'm cleaning my room(說課稿)-2023-2024學(xué)年人教精通版英語五年級(jí)下冊(cè)001
- 2024年九年級(jí)語文下冊(cè) 第二單元 第5課 孔乙己說課稿 新人教版
- 2024-2025學(xué)年高中化學(xué)下學(xué)期第20周 常見氣體的制備說課稿
- Unit 1 people of achievement Reading for writing 說課稿-2024-2025學(xué)年高中英語人教版(2019)選擇性必修第一冊(cè)
- 進(jìn)模模具設(shè)計(jì)
- 完整,滬教版小學(xué)四年級(jí)英語上冊(cè)單詞表
- 2021年高考化學(xué)真題和模擬題分類匯編專題20工業(yè)流程題含解析
- 2023年北京市高考作文評(píng)分標(biāo)準(zhǔn)及優(yōu)秀、滿分作文
- 2023年大唐尿素投標(biāo)文件
- 《鋼鐵是怎樣煉成的》名著閱讀(精講課件) 初中語文名著導(dǎo)讀
- 縮窄性心包炎課件
- 《工程電磁場(chǎng)》配套教學(xué)課件
- 職位管理手冊(cè)
- 東南大學(xué) 固體物理課件
- 行政人事助理崗位月度KPI績效考核表
評(píng)論
0/150
提交評(píng)論