Menu
Coddy logo textTech

Projekt multipleksera 4 do 1

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 65 z 90.

challenge icon

Wyzwanie

Multiplekser 4-do-1

Multiplekser 4-do-1 ma cztery wejścia danych (in0, in1, in2, in3), dwa bity wyboru (sel[1:0]) i jedno wyjście (out). Dwa bity wyboru określają, które wejście zostanie przekazane na wyjście:

  • Gdy sel = 2'b00, wyjściem jest in0
  • Gdy sel = 2'b01, wyjściem jest in1
  • Gdy sel = 2'b10, wyjściem jest in2
  • Gdy sel = 2'b11, wyjściem jest in3

Zbudujesz ten multiplekser na dwa sposoby: najpierw za pomocą instrukcji if-else, a następnie, w kolejnej lekcji, za pomocą instrukcji case. Obie metody działają, ale case jest często czytelniejsza, gdy masz wiele możliwości do wyboru.

Multiplekser 4-do-1 wybiera jedno z czterech wejść i przekazuje je na wyjście na podstawie 2-bitowego sygnału wyboru.

Tablica prawdy

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

Gdy sel ma wartość 00, wyjście przyjmuje wartość in0. Gdy sel ma wartość 01, wyjście przyjmuje wartość in1. Gdy sel ma wartość 10, wyjście przyjmuje wartość in2. Gdy sel ma wartość 11, wyjście przyjmuje wartość in3.

Co należy zrobić:

  1. Utwórz moduł o nazwie mux4to1
  2. Dodaj wejście in0 (1 bit)
  3. Dodaj wejście in1 (1 bit)
  4. Dodaj wejście in2 (1 bit)
  5. Dodaj wejście in3 (1 bit)
  6. Dodaj wejście sel (2 bity)
  7. Dodaj wyjście out (1 bit, typ reg)
  8. Dodaj blok always @(*)
  9. Wewnątrz dodaj instrukcję if-else sprawdzającą sel:
    • Jeśli sel == 2'b00, ustaw out = in0
    • W przeciwnym razie, jeśli sel == 2'b01, ustaw out = in1
    • W przeciwnym razie, jeśli sel == 2'b10, ustaw out = in2
    • W przeciwnym razie ustaw out = in3
  10. Zamknij moduł za pomocą endmodule

Spróbuj swoich sił

// Krok 1: Utwórz moduł o nazwie mux4to1


  // Krok 2: Dodaj wejście in0
  
  // Krok 3: Dodaj wejście in1
  
  // Krok 4: Dodaj wejście in2
  
  // Krok 5: Dodaj wejście in3
  
  // Krok 6: Dodaj wejście sel (2 bity)
  
  // Krok 7: Dodaj wyjście out (typu reg)
  

  // Krok 8: Dodaj blok always @(*)
  

    // Krok 9: Dodaj instrukcję if-else
    // jeśli sel == 2'b00, out = in0
    // w przeciwnym razie, jeśli sel == 2'b01, out = in1
    // w przeciwnym razie, jeśli sel == 2'b10, out = in2
    // w przeciwnym razie out = in3
    

// Krok 10: Endmodule

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online