前言:這個一周多都在看數電,因為過的會比較快,進行整理,到時候好回顧
只記錄到時序電路為止,后面的就沒看了,因為考試沒要求,總體感受時序電路那邊感覺有點不好理解,關於級聯的知識點可能也需要花點時間理解,其他的都還好
視頻看的是西電的任愛鋒老師的,課程地址:https://www.bilibili.com/video/BV1NE411r7dr
基礎門電路
基礎邏輯代數
式(8 )、( 8′ )稱為同一律;
式( 9 )、( 9 ′ )稱為交換律;
式( 10 )、( 10 ′ )稱為結合律;
式(11 )、( 11 ′ )稱為分配律;
式( 12 )、( 12 ′ )稱為德·摩根( De.Morgan )定律;
式( 13 )稱為還原律。
這里的話德·摩根( De.Morgan )定律會比較有用,但是后面學了三個規則中的“反演規則”,可以直接根據這個規則可以寫出來
三個規則
代入規則
這個如何理解?其實就是A + B,這里的話就設置B = C + D,那么原式就是 A + (C+D) 這樣即可
反演規則
反演規則一般都是相當於求反函數的時候
注意:如果是多個代數整體上面求非的時候,這時候這個非不在反演規則的范圍之內,舉個例子如下,如下紅線圈出來的部分,在反演規則中就不需要進行取反操作
只要是兩個代數以上的,整體帽子就不存在“反演規則”以內
對偶規則
這個跟“反演規則”不同,不同之處在於,取反的范圍縮小的,只有如下幾個點,也就是不需要對“原變量變反變量”
注意:如果兩個函數相等,則它們的對偶函數亦相等。
這里來講下異或與同或,這兩個既是對偶函數,又是互補函數
關於合並律/吸收律
合並律推導
吸收律推導
吸收律1的邏輯代數推導
吸收律2的邏輯代數推導
這里的話其實不用下面這樣也可以,通過上面的吸收律1 A=A+AB
,將下面的A進行替換,同樣也可以化出來
吸收律3的邏輯代數推導
推導方法都是一樣的,這里就把圖放上去方便做個記錄,以后想看的話就直接看
邏輯運算符的完備性
自己的理解,比如“與 或 非”這三種運算符,在邏輯代數中可以通過這三種來組成任意想要的邏輯函數,所以這里將“與、或、非”稱作為“完備集”
這里理解了運算符的完備集之后,再來思考下,這里通過這三個“與 或 非”來實現電路中的需求的話,在實際中就需要用到這三個電路門,難免會很麻煩
但是如果通過一個運算符(也就是一個電路門),同樣可以實現所需要的電路中的需求的話,那么我們只需要單一的采集這個電路門即可!
與非 / 或非 實現完備集
這里就來學習下,如何通過 與非門 / 或非門 來實現這三種基本運算,使其成為完備集。
或非實現或,如下圖所示
以下的表達式都是等價的,了解即可
上面相關的五種形式的電路門如下:
最小項、最小項標准式
最小項
n個變量的最小項是n個變量的“與項”,其中每個變量都以原變量或反變量的形式出現一次。
比如AB這兩個變量,那么最小項就有四個,a'b a'b' ab' ab
比如ABC這三個變量,那么最小項就有八個
總結下那么變量的最小項共有2^n
個。
最小項的性質
1、n變量的全部最小項的邏輯和恆為1,如何理解?直接來看下面這個圖,可以看到這個圖的話,每條紅色橫線的和恆為1,那么也就是這個性質
2、任意兩個不同的最小項的邏輯乘恆為0,如何理解?看下面的圖,可以看到任意兩個相乘都為0,也就是這個性質
3、n個變量的每一個最小項有n個相鄰項,如下圖所示,對於三個變量來說,a'bc的最小項如果想要就只改變一個變量,那么只能改變成如下a'bc' a'b'c abc 這三種,也就是如下,那么也就是3個相鄰項
老師畫的圖,就只改變其中的一個變量所得出的三個結果,為如下,那么就只有三個相鄰項。
最小項表達式————標准與或式
如何理解?這里給一張圖即可,個人理解標准與或式需要滿足兩個條件:
1、是與或表達式
2、該與或表達式中的"與項"均為最小項
最大項、最大項標准式
最大項(標准或項)
n個變量的最大項是n個變量的"或項",其中每一個變量都以原變量或反變量的形式出現一次。
比如AB這兩個變量,那么最大項就有四個,a'b a'b' ab' ab
比如ABC這三個變量,那么最大項就有八個
總結下那么變量的最小項共有2^n個。
最大項的性質
1、n變量的全部最大項的邏輯乘恆為0
2、n變量的任意兩個不同的最大項的邏輯和必等於1,即
3、n變量的每個最大項有n個相鄰項,跟最小項的相鄰項的定義是一樣的
小知識點:最小項mi和最大項Mi互為反函數,這個在后面用最小項標准式來求最大項標准式非常有用。
真值表寫標准式
真值表寫最小項標准式
學習完關於什么是最小/大項,什么是最小/大項標准式,這里繼續來學習通過真值表來寫出最小/大項標准式
根據真值表中的最小項的函數值為1的進行相或即可寫出相關最小項標准式,可能會有疑惑,為什么一定需要相或呢?你想一下,真值表其實也就是F表達式表達的一種形式,如果真值表F為1的話,那么表達式F的結果肯定也為1,表達式F中存在由多個最小項組成,因為表達式是與或表達式,所以只要滿足最小項其中的一個為1,那么這個表達式的結果就為1,所以這里相或!
真值表寫最大項標准式
真值表寫出最大項標准式可以通過兩種方法:
第一種:通過mi和Mi的互補的關系,先求出最小項標准式,然后再去求最大項標准式
通過真值表寫出最大項標准式分為如下兩步操作:
1、先寫出最小項標准式F的反函數標准式
2、然后對該反函數的最小項標准式子F非,再求一次反,得出的結果就是其最大項的標准式
上面說一下肯定不好理解,這里舉例子來進行學習
這里其實還有一種方法,就是直接用最大項來寫出與或表達式真值表中為"0"的部分,寫出來的結果同樣是最大項的標准式
卡諾圖
上面了解了如果通過真值表寫出最小/大項表達式,這里還有一種是通過卡諾圖來寫出相關的表達式
需要知道的一點:卡諾圖其實也是跟真值表類似,其實就是表達式F的一種表達形式,卡諾圖其實是真值表另外的一種表示形式
在邏輯函數的真值表中, 輸入變量的每一種組合都和一個最小項相對應,這種真值表也稱最小項真值表。
卡諾圖就是根據最小項真值表按邏輯相鄰規則排列(格雷碼的順序)的方格圖。
這里的邏輯相鄰規則排列是什么意思?就是從最小項真值表中取兩個最小項,這兩個最小項只有一位不同,如下圖所示,其實就是跟格雷碼的順序一樣
真值表寫卡諾圖
這里繼續舉個例子,A和B,有四種取值的情況A'B A'B' AB AB',如果要寫出卡諾圖的話,先寫出真值表的情況,然后再寫出相鄰順序排列的情況
在相鄰順序排列寫好了之后,接着繼續畫卡諾圖,下面圖中右邊的三種畫卡諾圖的方法都是可以的
又或者如下
那么這里繼續來看下三個變量ABC的卡諾圖,個人理解如果了解了格雷碼之后,其實就不需要再嘗試去排序,根據格雷碼的特性就可以直接畫出對應的卡諾圖即可
四個變量ABCD的卡諾圖為如下(2*2的畫法)
五個變量ABCDE的卡諾圖為如下(3*2的畫法)
卡諾圖的位置關系
在卡諾圖中位置關系分為幾何相鄰(在圖中體現),還有一種是邏輯相鄰
對於幾何相鄰有三種位置關系:
小知識點:
1、下面這個圖的理解其實就是 如果你要畫四個變量的卡諾圖的畫,那么該圖中任何一個最小項則有四個相鄰項
2、自己需要注意的,就是如果是五個變量ABCDE的卡諾圖,直接看就是有四個相鄰項,但是根據知識點1可以知道,五個變量的卡諾圖應該是有5個相鄰項的,所以這里還需要加上一個相重的相鄰項,如下圖所示
對於邏輯相鄰,其實就是一個位數的不同,最上面的時候有提到過,其實就是格雷碼的排序
這個如何理解?其實就是ABC',ABC,這兩個其實就是對於邏輯相鄰的兩個“與項”
卡諾圖的特點/優點/缺點
關於卡諾圖的缺點
卡諾圖的主要缺點是隨着輸入變量的增加圖形迅速復雜,相鄰項不那么直觀,因此它只適於用來表示6個以下變量的邏輯函數。
表達式寫卡諾圖
與或表達式中,真值表和表達式的關系,在與或表達式中結果為1的情況下,此時真值表的結果為1,如果與或表達式其中的結果為0的時候,那么此時真值表的結果則為0,其實理解卡諾圖其實就是真值表的另外一種表達形式。
這里來看個或與表達式,此時表達式為F=AB'+A'B,那么也就是包含的最小項為AB'+A'B,那么在真值表中就需要滿足該AB'和A'B這兩個最小項的對應的值則為1,然后根據這個圖畫出對應的卡諾圖,在卡諾圖中對應的坐標位中填為1即可
這種的話就跟正常真值表畫卡諾圖一樣即可,然后將其0/1代入進行計算
比如下面這張圖,當給了表達式,我們直接根據卡諾圖的對應的位代入即可,000 010 110 100 001 011 111 101 代入到表達式,然后在對應的位中寫出對應的值即可
000 代入到 AB+A'C+BC 所得到的值為0,填入到000的位置中即可,同樣的其他的也根據對應的計算填入即可
其實這種方法太麻煩,還需要一個一個代入,會浪費很多時間,這里再來講一種快捷的方法——"覆蓋法"
比如下面這道題,要求通過 一般與或式->卡諾圖
分析上面的與或表達式 F=AB'C+A'B'C+D+AD 可以知道,如果想要表達式F的值為1的話,那么可以將其分成AB'C 和 A'B'C 和 D 和 AD 這四個部分,其中滿足任何一個表達式都可以使得結果為1,這里的話就單獨分開討論即可,比如AB'C,如果想讓AB'C這個表達式為1的話,那么此時的ABC的值需要為101,然后A'BC則為111,接着還需要考慮下D,此時D沒有在A'BC中,所以D的情況任意 0/1都可以,所以1011 1010 都可以,也就是右下角的兩格
與或表達式(最小項表達式)寫卡諾圖
第一種方法可以通過先寫出該最小項表達式的真值表,然后再通過真值表再去畫出對應的卡諾圖即可,但是對於存在需要多個變量的表達式的時候來說就會比較麻煩了
這里有一句話"任何一個邏輯函數都等於其卡諾圖上填1的那些最小項之和",這里的"和"其實也就是"或"的意思
上圖中畫出的卡諾圖為如下圖所示
或與表達式(最大項表達式)寫卡諾圖
先來講關於最大項表達式->卡諾圖
接着繼續來講一般或與表達式->卡諾圖
第一種方法:遇到或與表達式,可以將其先轉換為與或表達式,然后通過上面的方法來繼續運算
第二種方法:同樣還是用到上面說的"覆蓋法",不過因為是或與表達式,所以正常的A非則為1,B非則為1
卡諾圖寫表達式
到這里已經會了通過表達式去畫對應的卡諾圖,最后還需要學會如何讀圖
這里先學習第一個知識點:最小項合並規律
其實這個之前學過,就比如AB+AB',那么就是A(B+B')則值為A
第二個知識點:K-圈
最簡表達式准則如下圖所示
下面這句話如何理解?在卡諾圖化簡邏輯函數部分的時候,所圈出的不同的k-圖,可能都是最簡化的表達式,但是可能表達式就不是一樣的
舉個如下例題來進行說明,下面這是第一種的k-圈,如下圖所示,同樣的可以寫出其表達式為如下 YZ + W'X'Y' + WXY' + WY'Z'
第二種的k-圈,如下圖所示,同樣的可以寫出其最簡表達式 YZ + W'X'Y' + WXY' + X'Y'Z' , 可以看出這兩個表達式不一樣,但是都是同一個卡諾圖的最簡邏輯函數
小知識點:與或表達式和與非與非表達式的轉換之間的關系,與或表達式 轉為 與非與非表達式,只需要將其電路門都轉換為與非門 即可
這里來個相關例題來說明,將F=BC'+A'B'D+AB'C
先畫出相關的與或門
那么如何將其通過與非門來進行實現呢?求兩次反即可,轉換過程如下
邏輯電路圖為如下所示
卡諾圖寫或與表達式
1、第一種方法(間接)
先對這個與或卡諾圖中的值取反,將其為0的寫為1,1的寫為0,然后寫出對應的與或表達式
再對這個與或表達式整體取反,得到的表達式就是或與表達式
組合邏輯電路分析與設計
數字電路分為兩種,一種是組合邏輯,一種是時序邏輯
組合邏輯:輸入什么就按照自己的運算輸出
時序邏輯:當前的產生與之前的變化有對應的關系,后面講到觸發器的時候會涉及
組合邏輯電路的分析步驟
總結下一般給的題目都是一個要求,讓你畫出對應的邏輯電路圖,解題步驟如下
1、分析,首先需要的就是畫出對應的真值表(這里就需要自己先了解題目給的需求,提前知道它的輸入和輸出的內容)
2、列出真值表之后,畫出對應的卡諾圖的表達形式,因為在卡諾圖中通過畫k圈
3、通過畫k-圈,最后寫出最簡表達式
4、通過最簡表達式畫出對應的邏輯電路即可,又或者讓你通過指定的門電路來實現對應邏輯電路
第二種題型則是給你一個對應的門電路,然后讓你說出該電路所實現的邏輯功能是如何,解題步驟一般為如下
實現一個三變量多數表決器
所謂的三變量多數表決器,其實就是輸入三個,如果有兩個為1,那么就是表示“通過”,否則就是“不通過”
那么畫出的真值表為如下所示
接着畫出對應的卡諾圖,K-圈即可寫出最簡與或表達式
加法器
這里學習了兩種加法器,一個是一位二進制的半加器,一個是一位二進制的全加器,還有擴展知識 多位二進制的全加器
實現一位二進制半加器(不考慮低位的進位的情況)
半加器不考慮低位進位來的進位值,那么就不需要低位的輸入端了,這樣的話只有兩個本位輸入(加數和被加數),兩個輸出(本位的進位數值和本位自身數值),電路由一個與門和異或門構成。
Ci+1 為本位的進位,Si表示本位的位,輸入端A,B,那么真值表為如下所示,通過真值表就可以寫出對應的F表達式,那么通過與門和異或門就可以畫出對應的二進制半加器的邏輯電路圖。
Ci+1 = Ai & Bi
Si = Ai ^ Bi
實現一位二進制全加器(考慮低位的進位的情況)
對於一個二進制全加器,跟二進制半加器不同的是,我們還需要考慮到低位是否存在進位的情況,所以這里還多出了一個輸入端Ci,其他的話跟二進制半加器是一樣的
首先還是得自己先了解,對於一個二進制全加器的內部運算的過程
首先寫出上面的邏輯電路的表達式,上面有兩個輸出,所以這里的Si和Ci+1兩個表達式
對應的真值表為如下
實現多位二進制全加器
假如要去實現兩位的二進制全加器,二位的二進制全加器和一位的二進制全加器的區別是什么,可以想象下兩位的二進制全加器肯定是從低位往前的,那么其中的一個二進制全加器就是去表現低位,另一個去表現高位。
首先來看低位的二進制全加器,其實需要展示的就是本位,最重要的需要把自己本位是否存在進位的情況傳送給高位的二進制全加器,所以這里的Ci+1肯定要傳輸給高位的二進制全加器的,那么也就是低位的Ci+1傳送給高位全加器的Ci,那么這樣就可以去計算高位二進制全加器的本位情況,最后實現多位二進制全加器!
任愛鋒老師說過二進制全加器並不是最好的加法器,自己在書本上也看到過相關的超前加法器,因為是計算機專業,所以沒要求學習這個
實現一位二進制全減器
既然是減法,那么至少有兩個輸入端A,B,其中一個作為被減數,一個作為減數,至少有一個輸出端D,用來展示A-B的差
然后還需要考慮低位的借位情況,如果低位需要向本位借位的情況,那么本位就需要向高位借位,所以這里有引出了兩個變量,一個低位的情況Cn,一個高位的情況Cn+1
得到的真值表為如下,通過真值表則可以寫出對應的表達式,從而畫出對應的邏輯電路
下圖中的左圖是通過與或非門來進行實現,下圖中的右圖是通過異或門來進行實現
推導過程,一位二進制的全加器和全減器的結果都是A異或B異或C
編碼器
實現8421BCD碼轉余3碼器
思路:正常的一個0000,則輸出就是0000+0011,也就是0+3即可,畫出的真值表如下圖所示
實現一個兩個十進制數(8421BCD碼)加法轉換十進制數(8421BCD碼)
思路:
1、用到8421來代表二進制數,那么兩個就需要用到八個輸入端,分別是8421 8421
2、輸出的話,同樣兩個十進制數需要8個輸出端,8421 8421,然后因為每位數相加還需要進位,所以還需要加上一個輸出端cout進位標志
3、如果相加結果是大於9的話,還需要加上0110(6),也就是對應的輸出端 8421 8421 + 0110(二進制)
74LS138譯碼器與擴展
3-8譯碼器實現地址譯碼電路,譯碼范圍A0H-A7H
A0 A1 A2為 000 - 111的范圍,這個范圍不變
然后利用使能端來進行調整譯碼范圍,使能端E1 E2A E2B的輸入端控制為10100即可實現A0H-A7H的譯碼范圍
3-8譯碼器實現地址譯碼電路,譯碼范圍2E0H-2E7H
A0 A1 A2為 000 - 111的范圍,這個范圍不變
然后利用使能端來進行調整譯碼范圍,使能端E1 E2A E2B的輸入端控制為1011100即可實現2E0H-2E7H的譯碼范圍,真值表如下
電路圖如下
兩個3-8譯碼器實現4-16譯碼電路,譯碼范圍2E0H-2EFH
A0 A1 A2為 000 - 111的范圍,這個范圍不變
這里最重要的就是通過使能端來控制兩個3-8譯碼器的乒乓式工作,所以兩個3-8譯碼器的使能端輸入肯定是相反的
這是一種設計方法
還有一種設計方法,直接將兩個E1使能端連接起來,其中一個其中放置一個非門,同樣也可以實現4-16譯碼
3-8譯碼器實現一位二進制全加器
A/a,B/b,C/ci為全加器和譯碼器的輸入,OUT為譯碼器的輸出(0-7),S為加法器的和,Cout為加法器的進位輸出
PS:假定譯碼器的輸出為高電平有效。
A/a B/b C/ci OUT S Cout
0 0 0 0 0 0
0 0 1 1 1 0
0 1 0 2 1 0
0 1 1 3 0 1
1 0 0 4 1 0
1 0 1 5 0 1
1 1 0 6 0 1
1 1 1 7 1 1
根據上面的真值表
將3-8譯碼器的輸出S(1、2、4、7)作為一個4輸入的或門的輸入,或門的輸出作為加法器的和。
將3-8譯碼器的輸出OUT(3、5、6、7)作為一個4輸入的或門的輸入,或門的輸出作為加法器的進位輸出。
關於譯碼器實現組合邏輯函數
下面划出紅色的部分是自己之前看的時候的問題,就是實現組合邏輯函數的時候為什么還需要在后面再去添加上少量的門電路,想了下3-8譯碼器可能不能完全實現我們的組合邏輯函數,所以有時候可能我們自己還需要添加上基本的門電路上去。
2-4譯碼器實現4-16譯碼器
前言:2-4譯碼器是存在使能端的,要不然無法進行拓展
思路:
1、因為是4-16,所以輸出端是16個輸出端
2、因為是4-16,所以輸入端的話也是4個輸入端
3、要通過2-4實現4-16的話,那么電路中肯定需要4個2-4譯碼器,這樣的話輸出端的話,才能滿足16個輸出端
4、如果要控制 4個2-4譯碼器的話,所以還需要一個2-4譯碼器來接入這四個2-4譯碼器的使能端
5、剩下的兩個輸入端就用來對2-4譯碼器的輸入端來進行控制
數據選擇器與擴展
數據選擇器(data selector) 根據給定的輸入地址代碼,從一組輸入信號中選出指定的一個送至輸出端的組合邏輯電路。有時也把它叫做多路選擇器或多路調制器(multiplexer)。
特點:n位地址輸入,2^n位數據輸入、1位輸出
對應數據選擇器的通用表達式為如下,這里的mi是由函數的輸入變量A、B、C、…組成的最小項
那么就可以知道了對於數據選擇器,我們可以寫出該數據選擇器的邏輯函數的表達式
關於數據選擇器實現組合邏輯函數
參考視頻地址:https://www.bilibili.com/video/BV1NE411r7dr?p=23
當所求的F表達式中最小項的變量的個數等於輸入端的個數的時候
詳細操作如下圖所示,自己來講述下是如何寫的,一般都是先寫出關於數據選擇器的最小項表達式,也就是圖中的“Y=”相關的表達式(其中的d0對應的就是最小項),然后再寫出對應的最小項標准式(根據F表達式來寫出,有的話系數為1,沒有則系數為0),最后根據系數來寫出對應的數據輸入端的0/1
第一道題:
第二道題:
注意點:當F給的不是最小項標准式的時候,可以先將其換成最小項標准式然后再進行對比即可。
當所求的F表達式中最小項的變量的個數小於輸入端的個數的時候
將MUX的高位地址輸入端不用(接0或1),其余同上。
解決方法:這時候可以將輸入端高位地址設置為0,也就是不使用輸入端高位地址(接0或者1,區別就是前四個m1234 或者m5678的最小項),這樣子的作用可以將其高位的計算省去,因為基於計算的其實是F表達式中的變量個數來進行決定的,而不是輸入端的個數來進行決定。
當所求的F表達式中的最小項的變量的個數大於輸入端的個數的時候
下面的圖中AB*C
應該是AB*0
,倒數第二行的+
應該是=
8-1數據選擇器實現16-1擴展
重點還是在於對使能端的操作
4-1數據選擇器實現16-1擴展
數據分配器與擴展
XXXX
奇偶校驗電路應用設計
關於奇偶校驗
奇偶校驗(Parity Check)是一種校驗代碼傳輸正確性的方法。
根據被傳輸的一組二進制代碼的數位中"1"的個數是奇數或偶數來進行校驗。
采用奇數的稱為奇校驗,反之,稱為偶校驗。采用何種校驗是事先自己來規定好的。
通常專門設置一個奇偶校驗位,用它使這組代碼中"1"的個數為奇數或偶數。
若用奇校驗,則當接收端收到這組代碼時,校驗"1"的個數是否為奇數,從而確定傳輸代碼的正確性。
這里的奇偶校驗並不是根據奇數或者偶數來判斷所理解的,而是奇偶校驗是兩種選擇
如果你采用的是奇偶校驗中的的"奇校驗"模式的話,那么就是根據一段二進制位中的"1"的個數是否是奇數來進行判斷,如果給定一組數據位中 1 的個數是偶數,那么奇校驗位就置為 1
同理可得,如果是"偶校驗"模式的話,那么就是根據一段二進制中的"1"的個數是否是偶數來進行判斷, 如果給定一組數據位中 1 的個數是奇數,那么偶校驗位就置為 1
電路設計
XXXX
基本RS觸發器
用途:在后面寫時序邏輯電路中,時序邏輯電路的重要組成部分就是由相關觸發器所組成的,所以觸發器是基礎,同樣也是時序邏輯電路的重點部分。
基本RS觸發器是構成各種功能觸發器的基本單元,所以稱為基本觸發器。它可以用兩個與非門或兩個或非門交叉耦合構成。
這里的話則以或非門為例子,如下圖所示
基本RS觸發器具有置0、置1和保持的邏輯功能,通常SD稱為置1端或置位(SET)端,RD稱為置0或復位(RESET)端,因此該觸發器又稱為置位—復位(Set-Reset)觸發器或RDSD觸發器
關於RS觸發器的特點?
第一印象最大的特點就是,電路中一端的輸出值作為另外一端的輸入值
其中規定兩個輸入端不能同時為0。
關於RS觸發器的狀態?
對於Rd與Sd不同的輸出都會有不同的含義,如下圖所示
關於什么是現態和次態?
一般寫法都是 Q^n 和 Qn+1,Qn 的含義則是現態,Q^n+1的含義是次態
基本RS觸發器關系表達式
對於觸發器來講,關系表達式又被稱作為特征方程,也就是在觸發器中F關系表達式一般都稱作為特征方程。
到這里,自己還可以發現下 組合電路 和 觸發器的相關表達式還不同,組合電路輸入的內容和輸出的內容已經是固定了的,但是對於觸發器來說,它的輸出是根據當前輸入和當前狀態總共所決定的。
這里寫相關的特征方程通過畫卡諾圖來進行表述,卡諾圖為如下所示
通過卡諾圖寫出的特征方程(函數表達式)如下,這里需要填上相關約束條件(因為基本RS觸發器中規定了Sd+Rd只能為1,也就是Sd和Rd不能同時為0)
什么是狀態轉移真值表?
將觸發器的次態Qn+1與現態Qn、輸入信號之間的邏輯關系用表格形式表示出來,這種表格就稱為狀態轉移真值表,簡稱狀態表。
怎么理解這個狀態表,個人理解就是一張表中存在現態和次態,現態為輸入,相關的輸入信號為輸入,次態為輸出,然后類似真值表的方式寫出,這種表就是狀態表。
對於RS觸發器的邏輯電路,兩個輸入和兩個輸出,如下圖所示,你會發現為什么輸出就只有一個,原因就是你分析過你會發現,這兩個輸出實則是互斥的,所以簡話下就可以寫成下面第一張圖的左側的形式。
知識點:說是說狀態表,其實也可以作為真值表,它們最大的不同其實就是在真值表中加入了現態和次態的關系,所以通過下面的狀態表,我們其實也就是畫出對應的卡諾圖,從而寫出對應的函數表達式。
什么是狀態轉移圖?
為什么Rd=0和Sd=0情況是不允許的?
上面的圖中寫到Rd=0 Sd=0的情況是不允許的,原因其實就是門的延遲時間是不一致的,這就會導致觸發器的次態不確定,具體是什么意思?
基本RS觸發器的波形圖(時序波形)
工作波形圖又稱時序圖,它反映了觸發器的輸出狀態隨時間和輸入信號變化的規律,是實驗中可觀察到的波形。
下面的圖是基本RS觸發的波形圖,其中紅框的地方需要注意,也就是如果兩個輸入端Rd和Sd為0和0的話(RS觸發器規定所不允許的值),此時從波形圖中可以看到,Q和Q非都來到了1的情況,然后后面又給了一個Rd和Sd為1的情況,按照默認情況來講的話兩個輸入為1應該是保持當前狀態,但是這里的情況顯示的是“不定”,具體的原因是什么呢?
前置知識點:只要是電子元件,那么這些元件都存在延時的情況,因為並不是百分之白的無延遲
這種情況其實只會發生在前面00 后面11,保持的時候因為延時的原因就可能會導致不同的結果,所以寫上“不定的情況”
這里舉個例題,如果Rd的延時比Sd的延時長的話,那么一開始為00,此時的Rd就會遲一點來到高電平,而Sd的話則是快一點來到高電平,然后接着就是11的輸入,那么此時就會保持Reset的狀態
在學習鍾控RS觸發器之前,先來看下基本RS觸發器和鍾控RS觸發器的不同點,如下圖所示為鍾控RS觸發器的邏輯電路
可以看到,它比起基本RS觸發器多了兩個與非門,和一個輸入端CP。
這個CP輸入端有什么作用的?可以看到如果CP輸入端為1的話,那么這個與非門的只受到R或者S輸入端控制,如果CP輸入端為0的話,那么當R或者S不管輸入什么,最終經過與非門出來的值都是為1,Rd和Sd都為1,最終的結果就是讓該觸發器保持之前的狀態運行。
所以這里可以知道,這里的CP輸入端的作用其實就是讓電路當CP=0時候讓其一直保持工作,或者CP=1的時候正常工作
鍾控RS觸發器
鍾控RS觸發器是在基本RS觸發器基礎上加兩個與非門構成的,R為置0端,S為置1端,CP為時鍾輸入端。
當CP=1時,RD=R, SD=S,觸發器狀態將發生轉移。
鍾控RS觸發器的特征方程
將RD、SD代入基本RS觸發器的特征方程中可得出鍾控RS觸發器的特征方程為如下圖所示
這里為了引出下面的鍾控D觸發器,這里來講下關於約束條件,有什么辦法可以將約束條件進行去除,如果不去除那么就有時候可能誤操作導致相關問題的產生,就比如這里鍾控RS觸發器的約束條件是R*S=0才可以進行運行,那么有什么辦法可以將這個約束條件進行去除,讓我們不管輸入什么都是可以正常運行的,這樣的話也可以使得誤操作產生的問題所去除,那么這里就需要用到鍾控D觸發器,實際上鍾控RS觸發器和鍾控D觸發器的區別就是在於該約束條件。
解決方法就是讓RS=0恆成立的話,那么該約束條件也就不存在了,鍾控D觸發器就實現了這個RS=0為恆成立!
鍾控D觸發器
為了解決R、S之間有約束條件問題,可以將鍾控RS觸發器的R端接至D門的輸出端,並將S改為D,便構成了如下圖所示的鍾控D觸發器
此時有兩種情況:
如果CP=1的時候,那么此時Rd的值就是Sd非,那么帶會約束條件中就是 S非*S = 0,此時這個鍾控D觸發器中的電路約束條件則恆成立。
如果CP=0的時候,那么R為1,S為1,此時不符合約束條件,所以就是保持之前的狀態即可。
鍾控D觸發器的特征方程
此時的Sd和Rd的輸入值為如下
然后將其代入到基本鍾控RS觸發器的特征方程中
鍾控D觸發器在時鍾作用下,其次態Qn+1始終和D輸入一致,因此常把它稱為數據鎖存器或延遲 (Delay)觸發器。由於D觸發器的功能和結構都很簡單,因此目前得到普遍應用。
鍾控D觸發器的狀態表和激勵表
鍾控T觸發器
鍾控T觸發器又是從鍾控JK觸發器上面變動而來的。
其實就是在鍾控JK觸發器上,當J=K=T的時候,此時的觸發器就為鍾控T觸發器。
鍾控T觸發器的特征方程
同樣將鍾控T觸發器中的輸入端的表達式Sd和Rd帶回到基本RS觸發器中,當CP=1,得出如下特征方程表達式
鍾控T觸發器的狀態表和激勵表
鍾控JK觸發器
JK觸發器具有保持、置位1/0、翻轉的功能。
鍾控D觸發器,鍾控JK觸發器也可以消除約束條件。
鍾控JK觸發器的特征方程
如下的表達式帶到基本RS觸發器中的特征方程即可
JK觸發器的拓展
1、如何通過JK觸發器實現T觸發器?
當J=K=T的時候(這里的T代表的是D觸發器中的“T”變量),都作為T帶進去化簡就可以得到T觸發器的特征方程。
2、如果通過JK觸發器實現D觸發器?
當J=D,k=D非,導入化簡就可以得到D觸發器的特征方程。
3、如果通過JK觸發器RS觸發器的功能?
當J=R,K=S,替換字母即可得到RS觸發器的特征方程。
上面三個問題對應的邏輯電路如下所示
關於觸發器的總結圖
關於這四種鍾控觸發器的表達式都需要牢記,因為在后面時序電路中都遇到!
下面的圖中RS觸發器的R=1 S=1的時候應該是維持,而R=0 S=0的時候應該是不允許
邊沿觸發器
其實所有的邊沿觸發器,實際上也就是在上面的四種觸發器中修改了一點東西,一般考點都會考關於邊沿觸發器的時序圖!
同時具備以下條件的觸發器稱為邊沿觸發方式觸發器 (簡稱邊沿觸發器):
1、觸發器僅在CP某一約定跳變到來時,才接收輸入信號;
2、在CP=0或CP=1期間,輸入信號變化不會引起觸發器輸出狀態變化。
因此,邊沿觸發器不僅克服了空翻現象,而且大大提高了抗干擾能力,工作更為可靠。
邊沿觸發方式的觸發器有兩種類型:
一種是維持—阻塞式觸發器,它是利用直流反饋來維持翻轉后的新狀態,阻塞觸發器在同一時鍾內再次產生翻轉
任愛鋒老師教的是下面這種,通過時鍾跳變來接收輸入信號
另一種是邊沿觸發器,它是利用觸發器內部邏輯門之間延遲時間的不同,使觸發器只在約定時鍾跳變時才接收輸入信號。
時序圖
這里的考點一般都是給你一個由觸發器所構成的電路,然后給你CP的輸入值,然后讓你畫出對應的時序圖
作題步驟如下,作題的步驟,每次都最好先以時鍾CP的作用沿畫好線,然后再根據對應的觸發器方程來畫圖即可
還有注意的就是異步操作的時候是不受到時鍾CP的控制的,這種屬於強行操作,在畫圖的時候需要注意。
第一種就是給你簡單的一個邊沿觸發器,不存在相關的,讓你畫,比如下面這道題畫對應D觸發器的時序圖
這里需要注意的就是起始狀態,題目中沒有說明,所以這里可以任意
第二種就是一個邊沿觸發器存在異步操作的時候,這時候在畫圖的時候還需要注意是否進行了異步操作,異步操作的優先級大於輸入端。
第三種就是兩個邊沿觸發器級聯的情況,這種讓你畫時序圖,如下圖所示
問題:在觸發器級聯的時候,如上面這道題,因為q=x,r=x,那么可以說q=x嗎?
答案是不能的,只有當q=x r=x q=x的情況是出現在邊沿鍾控觸發的時候才成立。
如果是邏輯電路的情況下,這種說法是成立的。
時序電路的分析和設計
什么是時序電路
邏輯電路分為兩類:一類是組合邏輯電路,另一類是時序邏輯電路。
在組合邏輯電路中,任一時刻的輸出僅與該時刻輸入變量的取值有關,而與輸入變量的歷史情況無關;
在時序邏輯電路中,任一時刻的輸出不僅與該時刻輸入變量的取值有關,而且與電路的原狀態,即與過去的輸入情況有關。
與組合邏輯電路相比,時序邏輯電路有兩個特點:
1、時序邏輯電路包含組合邏輯電路和存儲電路兩部分,存儲電路具有記憶功能,通常由觸發器組成;
2、存儲電路的狀態反饋到組合邏輯電路的輸入端,與外部輸入信號共同決定組合邏輯電路的輸出。
組合邏輯電路的輸出除包含外部輸出外,還包含連接到存儲電路的內部輸出,它將控制存儲電路狀態的轉移。
時序電路的描述
一個時序電路都會有三個方程組,第一個方程組稱為輸出方程,第二個方程組稱為驅動方程(或激勵方程), 第三個方程組稱為狀態方程。
這里直接拿一個時序電路(存儲電路由D觸發器組成)來進行描述這三個方程組,如下圖所示
時序電路的分類
同步與異步分類
時序電路也分為同步時序電路和異步時序電路。
同步時序電路:時鍾端來源於同一個時鍾源
異步時序電路:時鍾端來源於不同的時鍾源
輸出信號分類
時序電路按輸出信號的特點又可以分為兩種時序電路,分別為米里型和摩爾型
米里型(Mealy)時序電路:輸出方程可以看出內部狀態和外部輸入有關,即輸出方程為Z=F(X,Q)
特點:可以直接看到外部的輸入
摩爾型(Moore)時序電路:輸出方程看出只與內部狀態有關的話,即輸出方程為Z=F(Q)
特點:看不到外部的輸入
這里繼續提出一個問題,如何能夠將米里型的電路和摩爾型的電路進行切換?
任愛鋒老師說可以在輸出的后面再加上一個D觸發器,這樣就可以實現隱藏外部輸入的情況,從而只能看到關於Q內部狀態的情況。
時序電路的分析
1、根據邏輯圖求出時序電路的輸出方程和各觸發器的激勵方程
2、根據已求出的激勵方程和所用觸發器的特征方程,獲得時序電路的狀態方程
3、根據時序電路的狀態方程和輸出方程, 建立狀態轉移表, 進而畫出狀態圖和波形圖
4、分析電路的邏輯功能
例題一:
1、根據邏輯圖求出時序電路的輸出方程和各觸發器的激勵方程
2、根據已求出的激勵方程和所用觸發器的特征方程,獲得時序電路的狀態方程
3、根據時序電路的狀態方程和輸出方程, 建立狀態轉移表, 進而畫出狀態圖和波形圖
狀態轉移表:
狀態圖:
波形圖:
4、分析電路的邏輯功能
知識點:
1、其實狀態轉移表是有兩種的,同樣分別為米里型和摩爾型的狀態轉移表,比如上面的狀態轉移表,這種的話是一般都是米里型時序電路
類似這種輸出Z一般都是寫在外面的,那么這種一般都是米里型的
其狀態轉移圖也會有點不一樣,可以看到圖中米里型的狀態轉移圖輸出是寫在外面的
下面這種一般是摩爾型的,但也不是一定的,可以看到輸出Z是寫在里面的
其狀態轉移圖也會有點不一樣,可以看到圖中米里型的狀態轉移圖輸出Z是寫在里面的
如果一個時序電路沒有外部的輸入和輸出的話,那么狀態轉移表一般都是如下這種樣子來畫的,感覺其實咋畫都可以,沒有外部的輸入那么就是摩爾型的
但是自己的書本上的話,盡管是摩爾型的,但是輸出也同樣是寫在外面的,就比如"000"->"001"
但是書本上是標了圖例的,有表注進行說明
小技巧:環中一般有X個圈(有效狀態),就可以說是模X計數器,因為環是閉合的,並且是遞進的,所以是循環的
注意:我這里說並不是說只要是環,其中的圈都是,這里還分為"有效狀態","無效狀態","自啟動"這幾個概念
什么是有效狀態?什么是無效狀態?什么是自啟動?
下面這種就是不能自啟動的電路
寄存器
寄存器用於寄存一組二進制代碼,它被廣泛用於各類數字系統和數字計算機中。因為一個觸發器能存儲一位二進制代碼, 所以用n個觸發器組成的寄存器能存儲一組n位二進制代碼。對寄存器中使用的觸發器只要求具有置1、置0的功能
即可, 因而無論是用基本RS結構的觸發器,還是用數據鎖存器、主從結構或邊沿觸發結構的觸發器,都能組成寄存器。
一般常用的就是D觸發器(鎖存器)
雙拍接收四位存儲寄存器
由基本RS觸發器構成的二拍接收四位數據寄存器。當清0端為邏輯1,接收端為邏輯0時,寄存器保持原狀態。
當需將四位二進制數據存入數據寄存器時,需二拍完成:第一拍,發清0信號(一個負向脈沖),使寄存器狀態為 0 (Q3Q2Q1Q0=0000);第二拍,將要保存的數據D3/D2/D1/D0送數據輸入端(如D3/D2/D1/D0 =1101),再送接收信號(一個正向脈沖),要保存的數據將被保存在數據寄存器中(Q3/Q2/Q1/Q0 =1101)。從該數據寄存器的輸出端Q3/Q2/Q1/Q0可獲得被保存的數據。
下面的圖,對應的就是雙拍接收四位存儲寄存器
自己的理解過程如下:
單接收四位存儲寄存器
由D觸發器(數據鎖存器)構成的單拍接收四位數據寄存器。當接收端為邏輯0時,寄存器保持原狀態;當需將四位二進制數據存入數據寄存器時,單拍即能完成——將要保存的數據D3/D2/D1/D0送數據輸入端(如D3/D2/D1/D0=1101),再送接收信號(一個正向脈沖),要保存的數據將被保存在數據寄存器中(Q3/Q2/Q1/Q0=1101)。同樣從數據寄存器的輸出端Q3/Q2/Q1/Q0可獲得被保存的數據。
移位寄存器
當存在串行數據的時候,就需要通過移位寄存器來進行保存了
這里的串行就是多個數據連續單條發送。
按照移動位置的方向,還分為,單向移位寄存器(左移,右移),雙向移位寄存器(兩個方向的移動都滿足)
第一個就是左移或者右移的單向移位寄存器
第二個就是雙向移位寄存器
計數器
計數器的主要功能是累計輸入脈沖的個數。
計數器有許多不同的類型。按時鍾控制方式來分,有異步、同步兩大類; 按計數過程中數值的增減來分,有加法、減法、可逆計數器三類;按模值來分,有二進制、十進值和任意進制計數器。