Case文の使用
CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 66/90。
チャレンジ
if-else の代わりに case 文を使用して4対1マルチプレクサを構築します。
真理値表
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
手順:
mux4to1_caseという名前のモジュールを作成します- 入力
in0、in1、in2、in3(各1ビット) を追加します - 入力
sel(2ビット) を追加します - 出力
out(1ビット、reg型) を追加します always @(*)ブロックを追加します- 内部に
case (sel)文を追加します 2'b00、2'b01、2'b10、2'b11の case を追加しますdefaultcase を追加しますendcaseとendmoduleで閉じます
自分で試してみよう
// TODO: mux4to1_case という名前のモジュールを作成
// TODO: 入力を追加: in0, in1, in2, in3 (各1ビット)
// TODO: 入力 sel を追加 (2ビット)
// TODO: 出力 out を追加 (reg 型)
// TODO: always @(*) ブロックを追加
// TODO: case (sel) を追加
// TODO: case 2'b00: out = in0; を追加
// TODO: case 2'b01: out = in1; を追加
// TODO: case 2'b10: out = in2; を追加
// TODO: case 2'b11: out = in3; を追加
// TODO: default: out = in0; を追加
// TODO: endcase を追加
// TODO: endmodule を追加