首頁 › 半導體、電子電路與資訊計算工具
邏輯電路模擬器
放置邏輯閘與 D 型正反器並連接導線,切換輸入開關,就能立即看到訊號如何傳遞。可載入半加器、全加器、SR 鎖存器、2 位元計數器等範例,沒有時脈的電路還會自動產生真值表。
邏輯電路模擬器
元件
輸入 輸出 時脈 AND OR NOT NAND NOR XOR XNOR D 型正反器
載入範例 載入範例 半加器 全加器 2 對 1 多工器 SR 鎖存器(NOR) 只用 NAND 做出 XOR 2 位元計數器
刪除選取項目
全部清除
暫停時脈
前進一個時脈
複製分享連結
訊號無法穩定(正在振盪)。請檢查電路中的迴路。
從「元件」加入零件,拖曳即可移動。先點選輸出接腳、再點選輸入接腳即可接線;點選輸入開關可在 0 與 1 之間切換。選取元件或導線後按「刪除選取項目」即可刪除。
真值表
以圖表檢視
橫軸的輸入
縱軸的結果
其他輸入維持目前的值,只讓選擇的輸入在目前值的 1/4 到 4 倍之間變化時的結果。紅點是目前的值。
基本邏輯閘與真值表
AND 只有在所有輸入皆為 1 時輸出 1,OR 只要有任一輸入為 1 就輸出 1,NOT 則將 0 與 1 反相。NAND 與 NOR 是將 AND 與 OR 的輸出反相,XOR 在兩個輸入不同時輸出 1,XNOR 則在相同時輸出 1。放置 2 個輸入與 1 個輸出,中間接上一個邏輯閘,就會自動產生真值表 。n 個輸入共有 2ⁿ 種組合,2 個輸入為 4 列,6 個輸入為 64 列。換上不同的邏輯閘比較真值表,就能看出 NAND 正好是 AND 的反相、XNOR 正好是 XOR 的反相。在「2 對 1 多工器 」範例中,選擇訊號 C 為 0 時輸入 A 出現在輸出 X,為 1 時則是輸入 B,可以確認用邏輯閘的組合就能切換資料的路徑。
半加器、全加器與進位的原理
將 1 位元的 A 與 B 相加,和為 A XOR B,進位為 A AND B。1 + 1 在二進位為 10,因此和為 0、進位為 1。請載入「半加器」範例(X 為和,Y 為進位),切換 A 與 B 確認看看。連同來自低位的進位 Cin 一起相加的是全加器 ,可由 2 個半加器與 1 個 OR 閘構成,和為 A⊕B⊕Cin,進位為 AB + Cin(A⊕B)。從「全加器」範例(C 為來自低位的進位 Cin,X 為和,Y 為進位)的真值表 可以看出,3 個輸入中 1 的個數為奇數時和為 1,2 個以上為 1 時進位為 1,也能確認 1 + 1 + 1 = 11(二進位)。將半加器的進位接到全加器的 Cin,就成為 2 位元加法器;由於只有 4 個輸入,可以用 16 列的真值表確認所有結果。
NAND 與 NOR 是通用閘
將 NAND 的兩個輸入接到同一個訊號就成為 NOT,在 NAND 後面接 NOT 則成為 AND。根據笛摩根定理 ,將輸入分別反相後再送入 NAND 就成為 OR,因此只用 NAND 就能構成任何邏輯電路。「只用 NAND 做出 XOR」範例由 4 個 NAND 組成:第 1 個的輸出 N1 = NAND(A, B) 同時送入 NAND(A, N1) 與 NAND(B, N1),最後再用一個 NAND 將這兩個輸出合併。請確認其真值表 與 XOR 相同。NOR 也同樣是通用閘,若以相同接法、把所有 NAND 換成 NOR,結果會變成 XNOR。在 CMOS 中,2 輸入 NAND 只需 4 個電晶體,比 AND 還少,因此實際的邏輯電路也常以 NAND 與 NOR 為基礎。
組合電路與循序電路,以及用 NOR 構成的 SR 鎖存器
加法器與多工器 是輸出只由目前輸入決定的組合電路 。若有將輸出送回輸入的回授,就成為能記住過去輸入的循序電路 。「SR 鎖存器(NOR)」範例(A 為 S,B 為 R,X 為 Q,Y 為其反相)將 2 個 NOR 的輸出分別送回對方 NOR 的輸入。S = 1 時 Q 變為 1,R = 1 時 Q 變為 0,兩者都回到 0 時則保持先前的狀態。S = R = 1 時,Q 與原本應為其反相的另一個輸出都變成 0,破壞了兩個輸出互為反相的前提,因此稱為禁止輸入。本模擬器一次只能切換一個開關,結果由最後仍維持 1 的輸入決定;但在實際電路中若兩者同時回到 0,最後會穩定在哪一邊無法確定,可能發生振盪或進入亞穩態 。
D 型正反器與 2 位元計數器
D 型正反器 只在時脈從 0 變為 1 的上升緣那一瞬間擷取 D 的值並送到 Q,其他時候即使 D 改變也會保持 Q。請將輸入開關與時脈接到 D 型正反器,暫停時脈後切換 D,確認 Q 不會改變,直到按下「前進一個時脈」才會擷取。本工具的 D 型正反器只有 Q 輸出,因此「2 位元計數器」範例用 NOT 閘將 Q 反相後送回 D。如此一來 Q 在每個上升緣都會反相,Q 的頻率為時脈的 1/2。高位元的正反器接上同一個時脈,D 則輸入 Q1 XOR Q0。高位元只在低位元為 1 時反相,因此以時脈 1/4 的頻率切換,輸出(Y, X)依 00→01→10→11→00 的順序計數。所有正反器都由同一個時脈驅動,所以是同步計數器。
練習邏輯設計題目
A 和為AND,進位為OR B 和為NOR,進位為NAND C 和為XOR,進位為AND
查看答案與解析 正確答案:C. 和為XOR,進位為AND
將1位元的A、B相加,和為A XOR B,進位為A AND B。例如1+1在二進位為10,因此和為0、進位為1。連同來自低位的進位一起相加的全加器 ,可由兩個半加器與一個OR閘構成,和為 A⊕B⊕Cin,進位為 AB + Cin(A⊕B)。CPU的運算單元(ALU)即以這種全加器為基礎,並結合高速的進位方式製成。
A AND B NOT(反相器) C XOR
查看答案與解析 正確答案:B. NOT(反相器)
當兩個輸入都輸入相同的值A時,輸出為 NOT(A AND A) = NOT A,作用如同反相器。只要能用NAND做出NOT,AND = NAND之後接NOT,OR = 將輸入各自反相後再接NAND(笛摩根),因此僅用NAND即可構成任意邏輯電路。NOR也是同樣的通用閘。不過在實際電路中,將輸入並接會使輸入電容增加,因此使用專用的反相器較有效率。
A 2倍 B 1/2倍 C 1/4倍
查看答案與解析 正確答案:B. 1/2倍
T型正反器 (T = 1)在每個時脈邊緣輸出就反相,因此2個時脈為1個週期,頻率為時脈的1/2。輸出的工作週期 可精確為50%也是優點。串聯起來則成為1/4、1/8…的除頻器或漣波計數器。PLL 的回授電路中也使用除頻器,例如從100 MHz的參考頻率改變除頻比,即可合成數GHz的頻率。
常見問題
可以免費使用嗎?需要安裝嗎?
完全免費,不需註冊也不需安裝。只要有瀏覽器即可使用,電腦和手機都能操作;在手機上以點選代替滑鼠點擊。
做好的電路可以儲存或分享給別人嗎?
電路會儲存在您使用的瀏覽器中,下次開啟時可以接著使用。按下「複製分享連結」會產生包含電路內容的網址,開啟該網址的人也能操作相同的電路,適合用於課堂作業或說明電路。
為什麼會顯示「訊號無法穩定」?
因為電路中有輸出反相後回到自身輸入的迴路,值會在 0 與 1 之間不斷切換而無法確定。例如將 NOT 閘的輸出接回自己的輸入,就會 1 變 0、0 變 1 地一直變化。在實際電路中,將奇數個反相器接成環狀,會以由閘延遲決定的週期振盪,稱為環形振盪器。像 SR 鎖存器這樣繞迴路一圈後反相會互相抵消的電路,則會穩定在某個狀態。
真值表最多支援幾個輸入?
輸入為 1~6 個(最多 2⁶ = 64 列)、至少有 1 個輸出,且不使用時脈、正反器及迴路(如 SR 鎖存器的回授)的電路才會顯示真值表。這些電路的輸出也取決於過去的狀態,因此無法只用輸入的表格來表示。
會模擬邏輯閘的傳遞延遲嗎?
不會。每當輸入改變時,本工具只會反覆計算邏輯值直到訊號不再變化,因此不會表現閘延遲,也不會表現設定時間、保持時間等時序。所以因各路徑延遲差異而瞬間出現的突波也不會出現。若要確認時序,請使用加入延遲資訊的閘級模擬或靜態時序分析(STA)。