Menu
CoddyTech

Desain Mux 4-ke-1

Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 65 dari 90.

challenge icon

Tantangan

Multiplexer 4-ke-1

Multiplexer 4-ke-1 memiliki empat input data (in0, in1, in2, in3), dua bit pemilih (sel[1:0]), dan satu output (out). Dua bit pemilih menentukan input mana yang diteruskan ke output:

  • Saat sel = 2'b00, output adalah in0
  • Saat sel = 2'b01, output adalah in1
  • Saat sel = 2'b10, output adalah in2
  • Saat sel = 2'b11, output adalah in3

Kamu akan membuat multiplexer ini dengan dua cara: pertama menggunakan pernyataan if-else, lalu pada pelajaran berikutnya menggunakan pernyataan case. Kedua cara ini berfungsi, tetapi case sering kali lebih rapi saat kamu memiliki banyak pilihan.

Multiplexer 4-ke-1 memilih satu dari empat input dan meneruskannya ke output berdasarkan sinyal pemilih 2-bit.

Tabel Kebenaran

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

Saat sel bernilai 00, output mengikuti in0. Saat sel bernilai 01, output mengikuti in1. Saat sel bernilai 10, output mengikuti in2. Saat sel bernilai 11, output mengikuti in3.

Yang harus kamu lakukan:

  1. Buat module bernama mux4to1
  2. Tambahkan input in0 (1 bit)
  3. Tambahkan input in1 (1 bit)
  4. Tambahkan input in2 (1 bit)
  5. Tambahkan input in3 (1 bit)
  6. Tambahkan input sel (2 bit)
  7. Tambahkan output out (1 bit, bertipe reg)
  8. Tambahkan blok always @(*)
  9. Di dalamnya, tambahkan pernyataan if-else yang memeriksa sel:
    • Jika sel == 2'b00, tetapkan out = in0
    • Jika tidak, jika sel == 2'b01, tetapkan out = in1
    • Jika tidak, jika sel == 2'b10, tetapkan out = in2
    • Jika tidak, tetapkan out = in3
  10. Akhiri dengan endmodule

Coba sendiri

// Langkah 1: Buat module bernama mux4to1


  // Langkah 2: Tambahkan input in0
  
  // Langkah 3: Tambahkan input in1
  
  // Langkah 4: Tambahkan input in2
  
  // Langkah 5: Tambahkan input in3
  
  // Langkah 6: Tambahkan input sel (2 bit)
  
  // Langkah 7: Tambahkan output out (tipe reg)
  

  // Langkah 8: Tambahkan blok always @(*)
  

    // Langkah 9: Tambahkan pernyataan if-else
    // jika sel == 2'b00, out = in0
    // jika tidak, jika sel == 2'b01, out = in1
    // jika tidak, jika sel == 2'b10, out = in2
    // jika tidak, out = in3
    

// Langkah 10: Endmodule

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online