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

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