4 / 63 · 概念
NAND、NOR 與反相符號的判讀
區分反相的作用範圍,透過德摩根定律連結功能相同的符號與算式。
單元可免費閱讀,註冊課程即可儲存學習進度。
小圓圈反相的是整個輸出值
NAND 反相 AND 的結果,NOR 反相 OR 的結果。NAND 並非「分別反相輸入後做 AND」。請先確認反相反相是將 0 變為 1、1 變為 0 的 NOT 運算。公式上方的橫線表示對線下的整個運算式套用 NOT。涵蓋的範圍。
| a | b | NAND | NOR |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| a | b | y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
選擇 NAND,確認只有 11 時輸出為 0;再切換成 NOR,只有 00 時輸出為 1。反相後的輸出仍是有效的 0/1 訊號,並非「尚未算出的值」。
德摩根定律也是閱讀邏輯閘的方法
把 AND 輸出的反相移到輸入時,運算也要改為 OR。只移動反相圓圈卻保留 AND,就變成不同函數。當 ,NAND 為 1,但 為 0,立刻就能找到反例。
- NAND: Y = NOT (a AND b)
- 各輸入分別反相: 產生 NOT a 與 NOT b
- 以 OR 結合: Y = (NOT a) OR (NOT b)
Active-low 表示訊號生效的極性
像 reset_n 這種在 0 時動作的訊號稱為 active-low低有效(active-low)表示訊號為 0 時,請求或功能才啟用。名稱結尾的 _n 是常見命名慣例,實際行為仍由規格定義。。名稱中的 _n 是慣例,實際行為由規格與電路決定。若兩個請求 req0_n、req1_n 任一為 0 時,要讓警報 alarm 為 1,可按下式計算。
各訊號上方的橫線對該訊號做 NOT。最後的長橫線則對兩訊號 AND 的整體結果做 NOT,因此一個 NAND 就能實作。例如兩輸入為 11 時沒有請求,alarm=0;為 01 時第一個請求有效,alarm=1。
訊號「有效」不一定等於數值 1。閱讀輸入時,請分別確認邏輯值、有效條件與反相符號。
自己試試看
兩個低有效許可訊號 permit0_n、permit1_n 都有效時,go 才能為 1。應使用 NAND 還是 NOR?
查看解說
只有兩者都為 0 時才要輸出 1,所以用 NOR:go=NOT(permit0_n OR permit1_n)。只看到「兩者都」就選 AND,會忽略訊號的有效極性。