# 數邏筆記 ## 第二週 * BCD碼(二進位編碼十進數):用二進位表達十進位數,每4個位元表達一個十進位 * 互斥或 相同為0不同為1 * 二進位用互斥或轉格雷碼 * 二進位轉格雷碼 ![](https://i.imgur.com/TQUcXNr.png) * 格雷碼轉二進位 ![](https://i.imgur.com/ffdt21L.png) * ASCII 使用七個位元編碼128字元 * ASCII 分三種字元 * 格式效果字元 * 訊息分隔字元 * 通訊控制字元 * 同位位元 用來指示訊息中1的總數是偶數還是奇數的一個額外位元 * 偶同位 二進位+同位位元中的1的個數為偶數 * 奇同位 二進位+同位位元中的1的個數為奇數 * 二元晶胞是一個具有兩個穩定狀態的元件,他能儲存 0 OR 1 * register是一群二元晶胞的組合 * 布林代數 二進位元邏輯 * 二進位元邏輯 * AND * 111 100 010 000 * OR * 111 101 011 000 * NOT * 10 01 * AND | X | Y | Z | | -------- | -------- | -------- | | 1| 1 | 1 | | 1| 0 | 0 | | 0| 1 | 0 | | 0| 0 | 0 | * OR | X | Y | Z | | -------- | -------- | -------- | | 1| 1 | 1 | | 1| 0 | 1 | | 0| 1 | 1 | | 0| 0 | 0 | * NOT | X | Y | | -------- | -------- | | 1| 0 | | 0| 1 | <BR> * 邏輯閘 * 正邏輯 高電壓為1 低電壓為0 * 邏輯電路符號 ![](https://i.imgur.com/dWCxCaI.png) * 集合 具有相同特性物件之聚集 * 二值布林代數=交換代數 * 布林代數的公理定義 * 對運算元 + · 具有封閉性 * +具有單位元素0 $(x+0=x)$ * · 具有單位元素1 $(x · 1=x)$ * +具有交換律 $x+y=y+x$ * · 具有交換律 $x ·y=y ·x$ * · 對+具有分配律 $x ·(y+z)=(x ·y)+(x ·z)$ * +對 · 具有分配律 $x+(y ·z)=(x+y) ·(x+z)$ * 任一元素存在一元素為補數 $x+x'=1$且$x ·x'=0$ * 存在兩元素 使得$x≠y$ ## 第四週 * 布林代數的公理定義 * 對運算元 + · 具有封閉性 * +具有單位元素0 $(x+0=x)$ * · 具有單位元素1 $(x · 1=x)$ * +具有交換律 $x+y=y+x$ * · 具有交換律 $x ·y=y ·x$ * · 對+具有分配律 $x ·(y+z)=(x ·y)+(x ·z)$ * +對 · 具有分配律 $x+(y ·z)=(x+y) ·(x+z)$ * 任一元素存在一元素為補數 $x+x'=1$且$x ·x'=0$ * B集合中存在兩元素 使得$x≠y$ * AND | X | Y |X·Y | | -------- | -------- | -------- | | 1| 1 | 1 | | 1| 0 | 0 | | 0| 1 | 0 | | 0| 0 | 0 | * OR | X | Y | X+Y | | -------- | -------- | -------- | | 1| 1 | 1 | | 1| 0 | 1 | | 0| 1 | 1 | | 0| 0 | 0 | <BR><BR> * 用真值表推導X(Y+Z)和(X∙Y)+(X∙Z)相同 | X | Y | Z | |Y+Z|X(Y+Z)| | X∙Y | X∙Z | (X∙Y)+(X∙Z) | |-- |-- |-- |--| --| -- |--|--|--|--| | 0 | 0 | 0 | | 0| 0 | | 0 | 0 | 0 | | 0 | 0 | 1 | | 1| 0 | | 0 | 0 | 0 | | 0 | 1 | 0 | | 1| 0 | | 0 | 0 | 0 | | 0 | 1 | 1 | | 1| 0 | | 0 | 0 | 0 | | 1 | 0 | 0 | | 0| 0 | | 0 | 0 | 0 | | 1 | 0 | 1 | | 1| 1 | | 0 | 1 | 1 | | 1 | 1 | 0 | | 1| 1 | | 1 | 0 | 1 | | 1 | 1 | 1 | | 1| 1 | | 1 | 1 | 1 | <BR> * 對偶原理 * 對任意從布林代數所導出的表示式,使其運算子及單位元素互換,運算次序需不變,仍成立 <BR><BR> #### 布林代數基本定理 * X+X=X \begin{split}x+x&=(x+x)·1\\&=(x+x)(x+x')\\&=x+xx'\\&=x+0\\&=x\end{split} * X·X=X \begin{split}x·x&=xx+0\\&=xx+xx'\\&=x(x+x')\\&=x·1\\&=x\end{split} * X+1=1 \begin{split}x+1&=1·(x+1)\\&=(x+x')·(x+1)\\&=x+x'·1\\&=x+x'\\&=1\end{split} * (X')'=X * X+XY=X \begin{split}x+xy&=x·1+xy\\&=x(1+y)\\&=x(y+1)\\&=x·1\\&=x\end{split} <BR> * 運算子優先次序 1.括號 2.NOT 3.AND 4.OR ## 第五週 * 全及項(minterm):多個變數進行AND運算所出來的結果 * 全或項(maxterms):多個變數進行OR運算所出來的結果 * 全及項: |x|y|AND|符號| |---|---|---|---| |0|0|x'y'|$m_0$| |0|1|x'y|$m_1$| |1|0|xy'|$m_2$| |1|1|xy|$m_3$| * 全或項: |x|y|OR|符號| |---|---|---|---| |0|0|x+y|$M_0$| |0|1|x+y'|$M_1$| |1|0|x'+y|$M_2$| |1|1|x'+y'|$M_3$| * 全及項和全或項互為補數 * 布林函數的代數表示式 :::warning * $f_1=x'y'z+xy'z'+xyz=m_1+m_4+m_7$ * $f_2=(x+y+z)(x+y+z')(x+y'+z)(x'+y+z)=M_0M_1M_2M_4$ ::: * 全及項的和練習 :::info 將布林函數$F=A+B'\ C$表示為全及項的和 $\ x+x'=1\ \to A=A(B+B')=AB+AB'$ $AB=AB(C+C')=ABC+ABC'$ $AB'=AB'(C+C')=AB'C+AB'C'$ $B'C=AB'C+A'B'C$ $F=ABC+ABC'+AB'C+AB'C'+AB'C+A'B'C$ $F=m_7+m_6+m_5+m_4+m_1=\sum(1,4,5,6,7)$ ::: * 全或項的積練習 :::info 將布林函數$F=xy+x'z$表示為全或項的積 $分配律\ x+yz=(x+y)(x+z) \to\ xy+x'z=(xy+x')(xy+z)$ $(xy+x')(xy+z)=(x+x')(x'+y)(x+z)(y+z)$ $x'+y=(x'+y)+zz'=(x'+y+z)(x'+y+z')$ $x+z=(x+z)+yy'=(x+y+z)(x+y'+z)$ $y+z=(y+z)+xx'=(x+y+z)(x'+y+z)$ $F=(x'+y+z)(x'+y+z')(x+y+z)(x+y'+z)(x+y+z)(x'+y+z)$ $F=M_4M_5M_0M_2=\prod(0,2,4,5)$ ::: * 非標準積項和練習 :::info $求f=y'+xy+x'y'z'$ $y'=xy'+x'y'=xy'z+x'y'z+xy'z'+x'y'z'$ $xy=xyz+xyz'$ $f=xy'z+x'y'z+xy'z'+x'y'z'+xyz+xyz'+x'y'z'$ $f=m_5+m_1+m_4+m_0+m_7+m_6=\sum(0,1,4,5,6,7)$ ::: * 非標準和項積練習 :::info $求f=x(y'+z)(x'+y+z')$ $x=x+yy'=(x+y)(x+y')+zz'=(x+y+z)(x+y'+z)(x+y+z')(x+y'+z')$ $y'+z=(x+y'+z)(x'+y'+z)$ $f=(x+y+z)(x+y'+z)(x+y+z')(x+y'+z')(x+y'+z)(x'+y'+z)(x'+y+z')$ $f=M_0M_2M_1M_3M_6M_5=\prod(0,1,2,3,5,6)$ ::: * NAND * 代數函數 $F=(xy)'$ * |x|y|F| |--|--|--| |0|0|1| |0|1|1| |1|0|1| |1|1|0| * NOR * 代數函數 $F=(x+y)'$ * |x|y|F| |--|--|--| |0|0|1| |0|1|0| |1|0|0| |1|1|0| * XOR * 代數函數 $F= x\oplus y$ * |x|y|F| |--|--|--| |0|0|0| |0|1|1| |1|0|1| |1|1|0| * 圖形 ![](https://i.imgur.com/ypAsPnC.png) ## 第六週 * 邏輯閘層次最小化 * 每個**積項、和項變數<font color=red>減少</font>**$\to$邏輯閘 **<font color=red>輸入數最小</font>** * 積項、和項**項次<font color=red>減少</font>**$\to$邏輯 **<font color=red>閘數最少</font>** * 二變數卡諾圖 ![](https://i.imgur.com/asX57DD.png) * $\sum \to 有的填1$ * $\prod \to 有的填0$ * $\sum$化簡時變數為0取補數 * $\prod$化簡時變數為1取補數 * 二變數卡諾圖練習 :::info $f(x,y)=\sum(0,1,2)=m_0+m_1+m_2=\prod(3)=M_3$ ![](https://i.imgur.com/7pXXyDh.png) 卡諾圖化簡後為$x'+y'$ ::: :::info $f(x,y)=\prod(1,2,3)=M_1M_2M_3=\sum(0)=m_0$ ![](https://i.imgur.com/zwbsab0.png) 卡諾圖化簡後為$x'· y'$ ::: * 三變數卡諾圖練習 :::info $f(x,y,z)=\sum(0,1,3,4,5)=m_0+m_1+m_3+m_4+m_5=\prod(2,6,7)=M_2M_6M_7$ ![](https://i.imgur.com/t5vILcY.png) $y'+x'z+(xy'+x'y')+(y'z+y'z')$ 化簡後得$y'+x'z$ ::: * 四變數卡諾圖練習 :::info $f(w,x,y,z)=\sum(0,1,2,4,5,6,8,9,12,13,14)=\prod(3,7,11,14,15)$ ![](https://i.imgur.com/58vQ69e.png) 化簡後為$y'+xz'+w'z'=(y'+z')(w'+x+y')$ ::: :::info $f=A'B'C'+B'CD'+A'BCD'+AB'C'$ ![](https://i.imgur.com/mgJGJHE.png) $化簡後得B'D'+B'C'+A'CD'=(A'+B')(C'+D')(B'+C)$ ::: :::info $f(A,B,C,D)=(A'+B'+C')(B'+C+D')(A'+B+C+D')(A+B'+C')$ ![](https://i.imgur.com/LFTWsGK.png) 化簡後得$(A'+C+D')(B'+D')(B'+C')$ ::: ## 第七週 * 基本質含項:至少有一格沒被其他質含項包含 :::info $F(A,B,C,D)=\sum(0,2,3,5,7,8,9,10,11,13,15)$ ![](https://i.imgur.com/kIcG31f.png) $基本質含項為BD+B'D'$ \begin{aligned}F&=BD+B'D'+(CD+AD)\\&=BD+B'D'+(CD+AB')\\&=BD+B'D'+(B'C+AD)\\&=BD+B'D'+(B'C+AB')\end{aligned} ::: * 不理會條件:函數對於一些輸入組產生未定的輸出 :::info $f(w,x,y,z)=\sum(1,3,7,11,15)\\d(w,x,y,z)=\sum(0,2,5)\to不理會條件$ ![](https://i.imgur.com/X1hhpQT.png) \begin{aligned}f=yz&+w'z\\&+w'x'\end{aligned} ::: * NAND做NOT ![](https://i.imgur.com/uIj7G9c.png) * NAND做AND ![](https://i.imgur.com/jV64XKU.png) * NAND做OR ![](https://i.imgur.com/6evEHhF.png) * NOR做NOT ![](https://i.imgur.com/WkUPmrm.png) * NOR做OR ![](https://i.imgur.com/1yEBcQ1.png) * NOR做AND ![](https://i.imgur.com/b4K2yeo.png) * 互斥或XOR * |x|y|F| |--|--|--| |0|0|0| |0|1|1| |1|0|1| |1|1|0| * 變數為奇數個時: :::warning $(a\oplus b\oplus c...)=a ⨀ b ⨀ c...$ ::: * 變數為偶數個時: :::warning $(a\oplus b\oplus c\oplus d...)'=a ⨀ b ⨀ c ⨀ d...$ ::: <br> ## 第十週 * 組合電路 * 對於n個輸入,有$2^n$種二進位輸入組合 * 組合電路圖中的邏輯閘不具有回授路徑或記憶元件 * 半加法器 ![](https://hackmd.io/_uploads/ryKl5dvS2.png)![](https://hackmd.io/_uploads/Skj3sOwBh.png) |x|y|C|S| |--|--|-|-| |0|0|0|0| |0|1|0|1| |1|0|0|1| |1|1|1|0| * 全加法器 * 2個半加法器可構成一全加法器 ![](https://hackmd.io/_uploads/rJQ81KPB2.png)![](https://hackmd.io/_uploads/rJQ7lFPHn.png) |cin|x|y|C|S| |--|--|-|-|-| |0|0|0|0|0| |0|0|1|0|1| |0|1|0|0|1| |0|1|1|1|0| |1|0|0|0|1| |1|0|1|1|0| |1|1|0|1|0| |1|1|1|1|1| * 二進位加法器 ![](https://hackmd.io/_uploads/ryy2ItDB3.png) ## 第11週 * 進位傳播 * 前瞻進化邏輯 * 增加裝置複雜度,減少進位傳播時間 * 對於n位元加法器,進位從輸入到輸出傳播共有2n個閘階層 * 每個函數可利用一階的AND閘後面接OR閘(或利用2階NAND)來完成 ![](https://hackmd.io/_uploads/B1O1AFwB2.png) * 二進位減法器 * M=0,四位元加法器 * M=1,減法器 ![](https://hackmd.io/_uploads/rkwprqDHh.png) * 溢位:2個n位數元的數相加得到n+1位數元的數,超過表示範圍 ## 第12週 * 解碼器 * 使二進位碼能從n條輸入線轉換到最多$2^n$條輸出線的組合電路 * 2X4 Decoder ![](https://hackmd.io/_uploads/r12KGiPr2.png) |$E$|$X_1$|$X_0$||$Y_0$|$Y_1$|$Y_2$|$Y_3$|| |-|-|-|-|-|-|-|-|-| |1|0|0||1|0|0|0|$Y_0=X_1'X_0'E$| |1|0|1||0|1|0|0|$Y_1=X_1'X_0E$| |1|1|0||0|0|1|0|$Y_2=X_1X_0'E$| |1|1|1||0|0|0|1|$Y_3=X_1X_0E$| |0|x|x||0|0|0|0|禁能| ![](https://hackmd.io/_uploads/Syc7TnwS2.png) |$E$|$X_1$|$X_0$||$Y_0$|$Y_1$|$Y_2$|$Y_3$|| |-|-|-|-|-|-|-|-|-| |0|0|0||1|0|0|0|$Y_0=X_1'X_0'E'$| |0|0|1||0|1|0|0|$Y_1=X_1'X_0E'$| |0|1|0||0|0|1|0|$Y_2=X_1X_0'E'$| |0|1|1||0|0|0|1|$Y_3=X_1X_0E'$| |1||||||||致能| ![](https://hackmd.io/_uploads/HJERRnvS3.png) * 2X4 -> 3X8 Decoder |$X_2$|$X_1$|$X_0$||$Y_0$|$Y_1$|$Y_2$|$Y_3$|$Y_4$|$Y_5$|$Y_6$|$Y_7$| |-|-|-|-|-|-|-|-|-|-|-|-| |0|0|0||1|0|0|0|0|0|0|0| |0|0|1||0|1|0|0|0|0|0|0| |0|1|0||0|0|1|0|0|0|0|0| |0|1|1||0|0|0|1|0|0|0|0| |1|0|0||0|0|0|0|1|0|0|0| |1|0|1||0|0|0|0|0|1|0|0| |1|1|0||0|0|0|0|0|0|1|0| |1|1|1||0|0|0|0|0|0|0|1| ![](https://hackmd.io/_uploads/BJMVvjwS2.png) ![](https://hackmd.io/_uploads/HksUYoDH2.png)![](https://hackmd.io/_uploads/r1vT3jDB3.png) ## 第13週 * BCD加法器 * 10~15需修正,故需加6 ![](https://hackmd.io/_uploads/rkAj-sgL3.png) ![](https://hackmd.io/_uploads/SykY9TDHn.png) * 2X1多工器 ![](https://hackmd.io/_uploads/SyXnSigIh.png)![](https://hackmd.io/_uploads/rJ8NuigUh.png) ## 第15週 * **組合邏輯電路** * 輸出立即隨輸入而變 * <font color=red>**不具有記憶體**</font> * **序向電路** * 由<font color=red>**輸入、輸出、內部狀態時序**</font>來描述的電路 * 含有<font color=red>**組合邏輯電路**</font>及<font color=red>**儲存元件**</font> * 輸出取決於儲存元件的<font color=red>**present state**</font>(目前狀態) ![](https://hackmd.io/_uploads/S1nHkulL3.png) * 同步序向電路 * 其動作由<font color=red>**不連續瞬時信號**</font>決定 * 非同步序向電路 * 其動作由<font color=red>**瞬時輸入信號與輸入信號改變的次序**</font>決定 * 同步序向電路 * 使用到<font color=red>**脈波**</font> * 利用<font color=red>**時脈**</font>控制儲存元件$\to$<font color=red>**時脈序向電路**</font> * 此儲存元件又稱<font color=red>**正反器**</font> ![](https://hackmd.io/_uploads/rkdQVdl8n.png) * 正反器 * 一種<font color=red>**二元記憶元件**</font> * 序向電路可用<font color=red>**多個正反器**</font>儲存資料 * 為<font color=red>**edge-sensitive(邊緣-感測)裝置**</font> * 由<font color=red>**時脈轉態**</font>控制的儲存元件 * 閂鎖器 * 對<font color=red>**信號準位**</font>操作的儲存元件 * 為<font color=red>**level-sensitive(準位感測)裝置**</font> * SR閂鎖器 * 由兩個交連的<font color=red>**NOR**</font>或兩個交連的<font color=red>**NAND**</font>組成 * 兩個輸入端,S為設置輸入,R為重置輸入 * NOR構成SR閂鎖器 * 在實際上,<font color=red>**兩端輸入為1是禁止的**</font> ![](https://hackmd.io/_uploads/BycL1Ye8n.png)![](https://hackmd.io/_uploads/H1fYyteLh.png)![](https://hackmd.io/_uploads/H1VqTte83.png) * NAND構成SR閂鎖器 * 在實際上,<font color=red>**兩端輸入為0是禁止的**</font> ![](https://hackmd.io/_uploads/SJdSmFe82.png)![](https://hackmd.io/_uploads/rJGPmte82.png)![](https://hackmd.io/_uploads/rkyzRtgIh.png) * 具有控制輸入之SR閂鎖器 ![](https://hackmd.io/_uploads/BJ_98txIh.png)![](https://hackmd.io/_uploads/By2nIFxIh.png) * D型閂鎖器 * 兩個輸入端,D為資料,En為致能 * En為0,輸出不改變 ![](https://hackmd.io/_uploads/SJtYuFgIh.png)![](https://hackmd.io/_uploads/ryO5YKgLh.png)![](https://hackmd.io/_uploads/rJx8V5x8h.png) * JK正反器 ![](https://hackmd.io/_uploads/SkhLl5xLn.png)![](https://hackmd.io/_uploads/ByWCGqeUn.png)![](https://hackmd.io/_uploads/B1sJQqgUn.png) * 狀態表 ![](https://hackmd.io/_uploads/SymzdqeUh.png) * 狀態圖 ![](https://hackmd.io/_uploads/HkxaB55x8n.png) ## 第16週 * 狀態簡化 1. <font color=red>**沒有∅**</font>,用<font color=red>**分割法**</font> 2. <font color=red>**很多∅**</font>,用<font color=red>**合併表**</font> 3. <font color=red>**很少∅**</font>,用<font color=red>**合併表加合併圖**</font> <BR> * 狀態簡化練習(沒有∅) ![](https://hackmd.io/_uploads/H1SKA-G8h.png)![](https://hackmd.io/_uploads/B1DZxfzLh.png) ![](https://hackmd.io/_uploads/SJyUjfGU2.png) ![](https://hackmd.io/_uploads/BJAsb7M83.png) ![](https://hackmd.io/_uploads/Syw-7mGU3.png) ![](https://hackmd.io/_uploads/ry7KHQMU2.png) ![](https://hackmd.io/_uploads/H1TQ8XMLh.png) ![](https://hackmd.io/_uploads/rJA_DmMLn.png) ![](https://hackmd.io/_uploads/BJzbO7M82.png) <BR> * 設計程序 1. 從題目推導電路狀態圖 2. 如果需要,簡化狀態數量 3. 指定狀態的二進位值 4. 求出二進位編碼的狀態表 5. 選擇使用的正反器形式 6. 推導已簡化的輸入方程式與輸出方程式 7. 繪製邏輯圖 <BR> <BR> * D型正反器 ![](https://hackmd.io/_uploads/H1YiRQf83.png) * JK型正反器 ![](https://hackmd.io/_uploads/S1aBK1tI2.png) <br> ## 第17週 ![](https://hackmd.io/_uploads/S1waMnHD2.png)![](https://hackmd.io/_uploads/rkLJm2Hwh.png) * 計數器 * ex.7493 * 使用T型正反器 ![](https://hackmd.io/_uploads/rkL35ZoLn.png)