歐姆社漫畫數位電路讀後

📢 本文由 gemini-2.5-flash 翻譯

前言

最近?拜讀了《漫畫數位電路》一書,在此簡要記錄。

書中許多內容並未收錄於此。

前情提要

數位電路分為 組合電路 與 時序電路。

組合電路:由目前輸入資訊的組合決定輸出的電路。

時序電路:帶有「記憶」的電路。

MIL 符號

邏輯電路的 及閘或閘 符號引申為多個輸入一個輸出。

  • 符號含義

及閘 (ALL):多個輸入全為 1,輸出為 1。

或閘 (EXIST):若有一個輸入為 1,輸出為 1。

  • 電路線

圓圈 的為 低電位 (0、L)。

圓圈 的為 高電位 (1、H)。

組合電路的製作

多數決投票電路

多位投票人從兩個結果中選出一個。

  1. 列出真值表,即所有可能發生的情況。

  2. 在真值表 H 輸出處加上底線。

  3. 「輸入線」與「將輸入取反的線」架設框架。

    兩條向下的電路線,第二條為反相線,即從第一條連接 反閘 到第二條。

  4. 連接到 AND (及閘)

    1. 輸入為 L 時,從將輸入取反處開始 (第二列)。

    2. 輸入為 H 時,從最開始的地方畫線 (第一列)。

    3. 然後,接入 AND。

    重複此過程,完成第二步所畫的所有線。

  5. 將 AND 的所有輸出連接到 OR。

電路的化簡

數位電路設計流程:釐清問題 - 真值表 - 化簡 - 繪製電路。

透過 卡諾圖 進行化簡。

  1. 真值表轉換為卡諾圖。

    製作真值表時,欄位從最高位元開始,例如 [C、B、A],結果為 Z。

    卡諾圖是二維的真值表,通常用 0 與 1 表示電位。

    如果三個輸入,可以將行設為 B、A,列設為 C,然後將結果填入二維表。

  2. 化簡前須知

    卡諾圖的 左右 與 上下 都是相連的,因為卡諾圖的橫向與縱向都是按 位元 (1 位) 變化的。

  3. 化簡

    1. 將相鄰的 1 劃分為一個集合。

    2. 尋找行與列的共同點。

    3. 若共同點為某值為 0,則使用 負運算 (或反運算),即字母上方加一橫槓。

  4. 範例

C\BA00011110
011
1
上表中 共同點為 C 為 0,A 為 1,則運算式為 !C * A。
  1. 化簡的規則
  • 集合的形狀只能是長、寬為 1、2、4 的矩形 (或正方形)。

  • 集合可以相互重疊。

  • 集合的個數越少,面積越大越好。

註:左右和上下可以構成一個集合;如果無法進一步「形成集合」,則表示電路已無法再化簡。


化簡後繪製電路圖,只需將所有運算式依照上一步驟的繪圖步驟 (從第三步開始) 進行即可。

電路的忽略

在剛開始確定輸入時,因為二進位數的特性,可能會有一些不需考慮的輸入。

例如輸入為月份,需要使用四位二進位數,總共有 16 個輸入,其中 0、13、14、15 均為不需考慮的輸入。

這類輸入在卡諾圖中可以使用 - 代替,可以納入集合進行化簡。

時序電路的製作

時序電路需要 組合電路 與 觸發器。

關於 時序電路 的「記憶」,例如自動販賣機在投幣時會記錄目前投幣總數,若無記憶,則僅有最後一個硬幣的面額。

引入一個觸發器,例如 時脈 (CLK),僅在 CLK 觸發時,輸入才會對輸出有影響,否則輸出保持不變。


以繪製電子骰子為例。

  1. 繪製狀態轉移圖

    隨著時間的變化,電子骰子如何變化?

    若停止為低電位,從 1 開始到 6 再到 1。

    如果為高電位,則在某點一直保持停止。

  2. 用二進位數來表示狀態

    將每種情況或者說狀態使用二進位表示,然後繪製出 狀態轉移表。

    透過狀態轉移表繪製電路,可以使用 D 觸發器儲存狀態。

  3. 設計組合電路

    從 目前的狀態 決定 下一個狀態,實際上就是 組合電路。