Menu
Coddy logo textTech

Проектирование мультиплексора 4 в 1

Часть раздела Основы путешествия по Verilog на Coddy — урок 65 из 90.

challenge icon

Задание

Мультиплексор 4-в-1

Мультиплексор 4-в-1 имеет четыре информационных входа (in0, in1, in2, in3), два бита выбора (sel[1:0]) и один выход (out). Два бита выбора определяют, какой вход проходит на выход:

  • Когда sel = 2'b00, выход равен in0
  • Когда sel = 2'b01, выход равен in1
  • Когда sel = 2'b10, выход равен in2
  • Когда sel = 2'b11, выход равен in3

Вы создадите этот мультиплексор двумя способами: сначала с помощью операторов if-else, а затем в следующем уроке с помощью оператора case. Оба метода работают, но case часто выглядит чище, когда есть много вариантов выбора.

Мультиплексор 4-в-1 выбирает один из четырех входов и передает его на выход на основе 2-битного сигнала выбора.

Таблица истинности

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

Когда sel равен 00, выход соответствует in0. Когда sel равен 01, выход соответствует in1. Когда sel равен 10, выход соответствует in2. Когда sel равен 11, выход соответствует in3.

Что нужно сделать:

  1. Создайте модуль с именем mux4to1
  2. Добавьте вход in0 (1 бит)
  3. Добавьте вход in1 (1 бит)
  4. Добавьте вход in2 (1 бит)
  5. Добавьте вход in3 (1 бит)
  6. Добавьте вход sel (2 бита)
  7. Добавьте выход out (1 бит, тип reg)
  8. Добавьте блок always @(*)
  9. Внутри добавьте оператор if-else, проверяющий sel:
    • Если sel == 2'b00, установите out = in0
    • Иначе, если sel == 2'b01, установите out = in1
    • Иначе, если sel == 2'b10, установите out = in2
    • Иначе, установите out = in3
  10. Закройте модуль с помощью endmodule

Попробуйте сами

// Шаг 1: Создайте модуль с именем mux4to1


  // Шаг 2: Добавьте вход in0
  
  // Шаг 3: Добавьте вход in1
  
  // Шаг 4: Добавьте вход in2
  
  // Шаг 5: Добавьте вход in3
  
  // Шаг 6: Добавьте вход sel (2 бита)
  
  // Шаг 7: Добавьте выход out (тип reg)
  

  // Шаг 8: Добавьте блок always @(*)
  

    // Шаг 9: Добавьте оператор if-else
    // если sel == 2'b00, out = in0
    // иначе если sel == 2'b01, out = in1
    // иначе если sel == 2'b10, out = in2
    // иначе, out = in3
    

// Шаг 10: Endmodule

Все уроки раздела Основы