Menu
Coddy logo textTech

Повторение: проектирование ALU

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

challenge icon

Задание

ALU (Arithmetic Logic Unit — арифметико-логическое устройство) — это цифровая схема, которая принимает два входа, выполняет над ними операцию и выдает один выход. Оно выполняет арифметические и логические операции над двумя входами на основе управляющего сигнала select. Сигнал select выбирает одну операцию для выполнения.

Как это работает

selectОперацияВыход
2'b00Сложениеa + b
2'b01Вычитаниеa - b
2'b10Поразрядное И (Bitwise AND)a & b
2'b11Поразрядное ИЛИ (Bitwise OR)a | b

Создайте простое ALU с помощью оператора case.

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

  1. Создайте модуль с именем alu
  2. Добавьте входы: a (4-битный), b (4-битный), select (2-битный)
  3. Добавьте выход: result (4-битный, тип reg)
  4. Добавьте блок always @(*)
  5. Внутри добавьте оператор case (select)
  6. Добавьте четыре варианта выбора для 2'b00, 2'b01, 2'b10, 2'b11
  7. Добавьте вариант default, чтобы установить result = 0
  8. Завершите с помощью endcase и endmodule

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

// TODO: Создать модуль alu 

  // TODO: Добавить входы (a, b, select)
  
  // TODO: Добавить выход (result)

  // TODO: Добавить блок always @(*)
  
  // TODO: Добавить case (select)
  
  // TODO: Добавить case 2'b00: result = a + b;
  
  // TODO: Добавить case 2'b01: result = a - b;
  
  // TODO: Добавить case 2'b10: result = a & b;
  
  // TODO: Добавить case 2'b11: result = a | b;
  
  // TODO: Добавить default: result = 0;
  
  // TODO: Добавить endcase

// TODO: Добавить endmodule

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