Transcript 下載/瀏覽
組合邏輯 Chapter 4 4.1 簡介 數位系統的邏輯電路可能是組合的 (combinational) 或序向的 (sequential)。 組合電路所包含的邏輯閘,其輸出在任何時間 都是僅由目前輸入的組合所決定。 組合電路包含輸入變數、邏輯閘及輸出變數。 組合邏輯閘會對其輸入的信號值產生反應進而 產生輸出信號值,可將已知輸入資料的二元資 訊轉換成所需的輸出資料。 Digital Circuits 2 4.2 組合電路 數位系統的邏輯電路 序向電路 除了邏輯閘外還有儲存元件 它們的輸出,除了與當時的輸入有關外,還受儲存元件的 狀態所影響。因為儲存元件的狀態,乃是先前輸入的函數。 因此,序向電路的輸出,不僅由目前輸入值決定,還受過 去的輸入的影響,並且電路的行為是輸入及內部狀態時間 序列的函數。 Digital Circuits 3 4.2 組合電路 組合電路 對於 n 個輸入變數而言,將有 2 種可能的輸入組合。 標準組合電路 n 加法器 (adders)、減法器 (subtractors)、比較器 (comparators)、解碼器 (decoders)、編碼器 (encoders),以 及多工器 (multiplexers)。 中型積體 (MSI) 電路或標準晶胞 (standard cells) Digital Circuits 4 4-3 分析步驟 組合電路的分析就是需要去決定該電路所執行的 函數。 分析的第一個步驟是要確認所給定的電路是組合電路而 不是序向電路。 不具有回授路徑或記憶元件 進行求取輸出布林函數或真值表。 設計驗證 解釋電路的操作 Digital Circuits 5 分析步驟 要從邏輯圖得到輸出的布林函數,則可以由以下 步驟來進行: 利用任意的符號 (但必須是有意義的名稱) 將所有閘輸出 標示為輸入變數的函數。對每一個閘輸出決定出布林函 數。 將已標示為輸入變數的函數之閘,以之前已標示的閘再 利用其他任意的符號加以標示,找出這些閘的布林函數。 重複在步驟2的過程直到得出電路的輸出為止。 利用先前定義的函數重複置換,則可以得到用輸入變數 的輸出布林函數。 Digital Circuits 6 分析步驟 直接從邏輯圖獲得真值表而不經由布林函數的推導, 其過程如下: Digital Circuits 7 直接順向法 F2 = AB+AC+BC T1 = A+B+C T2 = ABC T3 = F2'T1 F1 = T3+T2 Digital Circuits 8 F1 = T3+T2 = F2'T1+ABC = (AB+AC+BC)'(A+B+C)+ABC = (A'+B')(A'+C')(B'+C')(A+B+C)+ABC = (A'+B'C')(AB'+AC'+BC'+B'C)+ABC = A'BC'+A'B'C+AB'C'+ABC 全加器 F1:和 F2:進位 Digital Circuits 9 真值表 Digital Circuits 10 4-4 設計步驟 組合電路的設計過程包含下列各步驟: 組合電路的設計,係從設計目的規格的描述開始,而 結束於邏輯圖的完成,或是由邏輯圖獲得一組簡化的 布林函數。 1.由電路的規格,決定所需的輸入與輸出的個數,並且 對每一個輸入與輸出安排一個變數符號。 2.導出真值表並定義輸入與輸出間所需的關係。 3.對每一個輸出求出以輸入變數為函數之簡化的布林函 數。 4.畫出邏輯圖,並且證明 (以人工方式或模擬方式) 設計 的正確性。 Digital Circuits 11 功能(函數)描述 布林函數 HDL (硬體描述語言) Verilog HDL VHDL Schematic entry 邏輯化簡 閘數 閘輸入數 傳播時間延遲 電路互連數目 各閘推動能力的限制 Digital Circuits 12 碼轉換的例子 BCD碼轉換成超3碼 真值表 Digital Circuits 13 卡諾圖 Digital Circuits 14 化簡後的函數 z = D' y = CD +C'D' x = B'C + B'D+BC'D' w = A+BC+BD 另一種形式實現的電路 z = D' y = CD +C'D' = CD + (C+D)' x = B'C + B'D+BC'D‘ = B'(C+D) +B(C+D)' w = A+BC+BD Digital Circuits 15 邏輯圖 Digital Circuits 16 4-5 二進位加法器-減法器 半加法器 0 + 0 = 0 ; 0 + 1 = 1 ; 1 + 0 = 1 ; 1 + 1 = 10 兩個輸入變數: x, y 兩個輸入變數: C (進位), S (和) 真值表 Digital Circuits 17 S = x'y+xy' C = xy 電路實現的彈性 S= x y S = (x+y)(x'+y') S' = xy+x'y' S = (C+x'y')' C = xy = (x'+y')' Digital Circuits 18 Digital Circuits 19 全加法器 處理三個輸入位元算術和的組合電路 具有三個輸入位元 x, y:兩個有效位元 z:從前級較低有效位置送來的進位 兩個輸出位元: C, S Digital Circuits 20 Digital Circuits 21 S = x'y'z+x'yz'+ xy'z'+xyz C = xy + xz + yz S = z (xy) = z'(xy'+x'y)+z(xy'+x'y)' = z'xy'+z'x'y+z((x'+y)(x+y')) = xy'z'+x'yz'+xyz+x'y'z C = z(xy'+x'y)+xy = xy'z+x'yz+ xy Digital Circuits 22 二進位加法器 Digital Circuits 23 進位傳播 正確的輸出總和在輸出端出現 最長傳播延遲時間是使得進位傳遞過全加法器所要 花的時間。(the worst case) (A1,B1,C1) > C2 > C3 > C4 > (C5,S4) > 8個閘階層 Digital Circuits 24 減少進位傳播延遲 採用較快速的邏輯閘 應用前瞻進位 邏輯 (carry lookahead (增加裝置的 複雜度,來減少進位延遲時間) 進位傳播 (carry propagate):Pi = AiBi 進位產生 (carry generate):Gi = AiBi 和:Si = PiCi 進位:Ci+1 = Gi+PiCi C1 = G0+P0C0 C2 = G1+P1C1 = G1+P1(G0+P0C0) = G1+P1G0+P1P0C0 C3 = G2+P2C2 = G2+P2G1+P2P1G0+ P2P1P0C0 Digital Circuits 25 邏輯圖 Digital Circuits 26 4位元前瞻進位加法器的電路 傳播延遲 Digital Circuits 27 二進位減法器 A B = A+(B的2’s補數) 4-位元加法器-減法器 M=0, A+B; M=1, A+B’+1 Digital Circuits 28 溢位 (overflow) 保存數字的位元數是有限的 若是兩個同時是正數相加,得出一負數,則可能出 現溢位。 兩個同時是負數的數字,得出一正數,則可能出現 溢位。 V = 0,無溢位; V = 1,溢位 範例: Digital Circuits 29 4-6 十進位加法器 兩個 BCD數相加 9 個輸入:兩個 BCD數與一個進位輸入 5個輸出:一個 BCD數與一個進位輸出 設計方法 真值表(含有29個entries) 利用二進位全加法器 和 <= 9 + 9 + 1 = 19 二進位碼 至 BCD碼轉換 Digital Circuits 30