組合邏輯電路
1.組合電路 v.s 循序電路
- 組合電路:
- 循序電路:
- 使用了儲存原件與邏輯閘
- 輸出關係到輸入與先前儲存的結果
2.組合電路設計順序
- 確定問題
- 確定輸入與輸出
- 指派輸入與輸出變數
- 推導真值表
- 簡化布林函式
- 繪製邏輯電路圖並驗證結果
3.加法器
- 半加器:2輸入2輸出,兩個當前要相加的bit,輸出該位元相加值與進位值
- 全加器:3輸入2輸出,兩個當前要相加的bit,一個為前個bit的進位 ,輸出該位元相加值與進位值
- 透過串連的全加器,可夠成N-bit的加法器(漣波進位加法器)
- 跟直觀的人為加法一樣,由後往前加,所以必須知道前一個bit是否有進位才可繼續運算 →造成傳遞延遲
- 為了避免漣波進位的延遲 → 超前進位加法器
- 因電路複雜使成本增加,但是簡短了運算時間
- 打破資料相依性,使相加結果只與C0(初始值)有關
- 使用疊代,將目前進位以前一次相加的結果取代,始終用最低位元表示
- 因此,越高層(高bit)的電路,複雜度會愈趨增加
- 使用加法器實做減法器
- 可以透過一個位元操作
- 減法其實等於與2補數相加,而2補數為1補數再加1
- 那麼
- 有AB兩數
- 透過一個位元M,傳給C0,先將與B的各個Bit與M做Xor再送入全加器
- 當M = 0時,B xor M = B,C0 = 0,為加法
- 當M = 1時,B xor M = B',C0 = 1,所得為B的1補數+1=B的2補數,為減法
4. 溢位
- 定義:一個n-bits間的運算卻造成了n+1-bits的結果 → 進位到了表示正負號的bit
- 電腦必須偵測溢位並設置正反器以供之後調用
- 如何避免溢位?
- 假設有7bits相加
- 使用9bits去儲存,多的2個bit
- 第9 bit當作正負號
- 第8 bit當做額外進位(7→8)
5.比較器
- 兩輸入:A、B,三輸出:A>B、A<B、A=B
- 假設A、B的為4bits:A3A2A1A0、B3B2B1B0
- 令Xi = AiBi + Ai'Bi' (Ai XNOR Bi)、即Ai、Bi相同時為1
- 當A = B → A3 = B3(X3 = 1) ...... A0 = B0(X0 = 1) → A=B可以表示為 X3*X2*X1*X0
- 判斷A > B:A3B3'+x3A2B2'+x3x2A1B1'+x3x2x1 A0B0'
- 先看A3B3'
- 如果A3是1、B3是1:該項為0 → 往下一bit繼續比
- 如果A3是1、B3是0:該項為1 → 不用比了,A > B
- 如果A3是0、B3是1:該項為0,而且x3為0 → 接下來的每項都 = 0 → A < B
- 如果A3是0、B3是0:該項為0、不過x3為1 → 可以往下一bit繼續比
- 可以發現x3、x2...可以用做比較是否進行的標準
- 判斷A < B:A3'B3+x3A2'B2+x3x2A1'B1+x3x2x1 A0'B0
6.n to m 解碼器
- 有 n 個 bits→ 能表示 2^n種情形
- 解碼器目的:輸入有n bits,產生2^n種輸出
- 即是表現出所有的 minterm 型式
- 既然能表示出所有的 minterm,即能利用解碼器實做出任何電路
7.編碼器
- 解碼器的逆操作: 2^n → n
- 無法用卡諾圖化簡,直接用結果畫電路
- 優先權編碼器
- 允許多個輸入為1,因為只看最高位元,其他為Don't care (X)
8.多工器 (選擇器)
- 目的:從多個輸入中,選擇出其中一個輸入
- 比如說有輸入A、B,選擇用位元S
- 使 A AND S、B AND S',再將他們做 OR
- 在 S = 0時,輸出的是 B
- 在 S = 1時,輸出的是 A
9.三態閘
- 輸出:0、1、高阻抗(斷開電路,不會產生邏輯訊號)
沒有留言:
張貼留言