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のケースを追加しますdefaultケースを追加します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 を追加してください