13 / 63 · 概念
DEMUX とデコーダ:選択した経路へデータを送る
MUX・DEMUX・デコーダの方向と役割を比較し、ワンホット・ワンホットまたはゼロの条件を検証します。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
MUX は集め、DEMUX は分配します
MUXマルチプレクサ 選択信号に従い、複数の入力から一つを出力に接続する組合せ回路です。選択ビットと入力番号の対応を仕様で定めます。 詳しく見る は複数のデータ入力から一つを出力へ伝えます。DEMUXDEMUX 一つの入力データを、選択信号で指定した出力に送る回路です。選択されない出力の値も仕様で定めます。 は一つのデータ入力 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 というワンホットワンホット 複数ビットのうち、ちょうど一つだけが 1 の表現です。全ビット 0 も許す条件は one-hot-or-zero と区別します。 詳しく見る条件は誤りで、すべての動作を表すには、「最大一つが 1」の one-hot-or-zero 条件が適切です。
選択線と実際の書込みイベントを区別する
四つのレジスタレジスタ 複数ビットの状態を記憶する回路です。このコースの同期式レジスタは、クロックエッジで定められた入力を記憶します。 詳しく見るの一つに書くとき、write_en を d、アドレスを選択に使えます。ただしデコーダデコーダ 二進コードに対応する出力線を有効にする回路です。enable があれば、無効時にすべての出力を 0 にできます。 詳しく見る自身は値を記憶しません。実際のレジスタはクロックエッジで対応する write enable とデータを受け取り、記憶します。組合せの選択線が変わっても、保存値が直ちに変わるわけではありません。
- アドレス + write_en: どこへ書くか、書くかどうかを定義
- デコーダ: 選択した一つのレジスタの enable を生成
- クロックエッジ: 選択されたレジスタがデータを記憶
検証では選択出力の値だけでなく、他の出力がすべて 0 かも調べます。d=0 の四組と d=1 の四組を合わせて全 8 組です。この機能検査は、アドレス遷移中にグリッチがないことまで保証しません。
自分で考えてみましょう
選択アドレス s1s0=01 で、d=1 と d=0 の y3y2y1y0 を求めてください。四つのレジスタの enable が必ず一つだけ有効であるという検査は、いつ失敗しますか。
解説を見る
それぞれ 0010 と 0000 です。d または write_en が 0 なら、どの出力も有効にならないのが正常です。ちょうど一つという条件は d=1 のときだけ適用します。