13 / 63 · 概念
DEMUX 與解碼器:把資料送往選定路徑
比較 MUX、DEMUX 與解碼器的方向和角色,驗證獨熱與獨熱或全零條件。
單元可免費閱讀,註冊課程即可儲存學習進度。
MUX 匯集,DEMUX 分送
MUX多工器是依選擇訊號,將多個輸入之一連至輸出的組合電路。必須明確定義選擇位元與輸入編號的對應關係。 詳細內容將多個資料輸入之一送到輸出。DEMUX解多工器(DEMUX)將一個資料輸入送往選擇訊號指定的輸出。未選中輸出的值也必須定義。把單一資料輸入 d 送到選定輸出,其餘輸出設為 0。1-to-4 DEMUX 的選擇位址若為 ,則:
用帶 enable 的解碼器看相同功能
下圖的 a1、a0 視為選擇位址,enable 視為資料 d。輸出 d0~d3 對應上式的 y0~y3。同一組合函數在不同應用脈絡下可以有不同名稱。
d[i] = enable AND (2 × a1 + a0 = i)
位址為 10、資料為 1 時,只有 y2 為 1。資料為 0 時,所有輸出都為 0,包含被選中的輸出。因此「永遠恰有一個 1」的獨熱獨熱碼(one-hot)表示多個位元中恰有一個為 1。若也允許全部為 0,則另稱為 one-hot-or-zero。 詳細內容條件不正確;完整行為符合「最多一個 1」的獨熱或全零條件。
區分選擇線與實際寫入事件
要寫入四個暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容之一,可把 write_en 接到 d,以位址選擇路徑。但解碼器解碼器啟用與二進位碼對應的輸出線。若有 enable,可在未啟用時將所有輸出設為 0。 詳細內容本身不儲存值。實際暫存器在時脈邊緣接收對應的 write enable 與資料並儲存。組合選擇線改變,不代表儲存值立即改變。
- 位址 + write_en: 定義寫入位置與是否寫入
- 解碼器: 產生被選中暫存器的 enable
- 時脈邊緣: 被選中的暫存器儲存資料
驗證不只檢查選定輸出的值,也要確認其他輸出全為 0。d=0 的四組與 d=1 的四組,共八組。這項功能檢查不保證位址切換期間沒有毛刺。
自己試試看
位址 s1s0=01 時,分別求 d=1 與 d=0 的 y3y2y1y0。要求四個暫存器的 enable 必須恰有一個開啟,這項檢查何時會失敗?
查看解說
分別是 0010 與 0000。d 或 write_en 為 0 時,沒有任何輸出開啟才是正常行為。「恰好一個」只適用於 d=1。