閱讀這篇文章前你需要:
紅石邏輯閘基本教學
(可樂)布林代數 ←這篇乘法部分有錯誤 看不懂沒關西┌(┌ ^o^)┐
基本的定理可樂那篇都有提到了
不再多做說明了
第摩根定理
(A+B)' = A'.B'
(A.B)' = A'+B'
由此定理就能將OR替換成AND
這就是為什麼NOR和NAND會被稱為萬用閘
因為你只需要NOT再加上OR或AND就能模擬出任何邏輯閘
------------------------------------------------------------------------------------------------------------
布林代數的類型主要可分為積項之和(sum of product 簡稱SOP)
與和項之積(product of sum 簡稱 POS) 兩種。
所謂積項和式就是將一個或一個以上的積項相加在一起所形成的運算式
例: f = AB+ABC+BCD+BC
而和項積式就是指一個或一個以上的和項相乘所形成的運算式
例: f = (A+B)(A+C)(A+B+C+D)
因為很多所以本篇只講和項之積
和項積式中有所謂的標準和項
意即函數中所有變數都存在的和項,又稱最大項
例: f (A,B,C) = (X'+Y+Z)(X+Y'+Z')(X+Z')
X'+Y+Z和X+Y'+Z'都是f (A,B,C)的標準和項 而X+Z'則不是
標準和項是以變數的原形來代表"0"輸入,以補數來代表"1"輸入
當輸入ABC=011時,其標準和項為A+B'+C' = M3
當輸入ABC=101時,其標準和項為A'+B+C' = M5
項序 (十進制) |
輸入 ABC |
標準和項 (最大項) |
0 |
000 |
A+B+C = M0 |
1 |
001 |
A+B+C' = M1 |
2 |
010 |
A+B'+C = M2 |
3 |
011 |
A+B'+C' = M3 |
4 |
100 |
A'+B+C = M4 |
5 |
101 |
A'+B+C' = M5 |
6 |
110 |
A'+B'+C = M6 |
7 |
111 |
A'+B'+C' = M7 |
所謂標準和項積式就是指全部由標準和項(最大值)所組成的和項積式
它是積項和式的標準式。其函數表達可簡寫如下:
例: f (A,B,C) = (A+B+C')(A+B'+C)(A+B+C)
=M1.M2.M6 = π (1,2,6)
f(A,B,C)= |
(A+B+C') |
(A+B'+C) |
(A'+B'+C) |
= |
001 |
010 |
110 |
= |
1 |
2 |
6 |
= |
M1 |
M2 |
M6 |
π |
1 |
2 |
6 |
布林代數的獲得是根據條件敘述轉換而來的,其轉換的最佳媒介就是真值表
因為唯有在真值表中,我們才能清楚看出,所有輸入組合與輸出的關係。
和項積式的取得,就是將真值表中可使輸出為0的最大值相乘
AB |
Y |
|
|
00
|
0 |
→A+B |
↘ |
01 |
0 |
→A+B' |
Ypos = (A+B)(A+B') |
10 |
1 |
|
|
11 |
1 |
|
|
由此我們可以歸納,由真值表求其和項積式的方法如下:
1.從真值表挑出輸出0的各列,並將其寫成標準和項。
若原變數在真值表中為0,則在和項積式中是以原形表示
若其為1,則以補數形態出現。
2.將各輸出為0的標準和項相乘
------------------------------------------------------------------------------------------------------------
將真值表轉換成電路的過程大致如上
舉個例子: 半加器
1.列出真值表
A |
B |
C (進位輸出) |
S (輸出) |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
2.轉換成標準和項積式
我們分成兩部分
C(進位輸出) :
A |
B |
C |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
抓出輸出為0的部分
M0.M1.M2 = π (0,1,2)
= (A+B)(A+B')(A'+B)
S(輸出) :
A |
B |
S |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
一樣抓出輸出為0的部分
M0.M3 = π (0,3) = (A+B)(A'+B')
將它簡化
C = (A+B)(A+B')(A'+B)
= [ A+(B.B') ] (A'+B) \\ 提出A,且X.X' = 0
= A(A'.B) = AA'+AB = AB
S = (A+B)(A'+B')
= AA'+AB'+A'B+BB' \\ 乘開,X.X' = 0
= AB'+A'B
得到:
C = AB
S = AB'+A'B \\也可寫成XOR
3.畫出電路圖
驗證一下電路是否符合真值表
沒有錯誤┌(┌ ^o^)┐
這次的教學就到這裡了
感覺已經脫離紅石太多了