Menu
Coddy logo textTech

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

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

challenge icon

Задание

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

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

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

Создайте простое АЛУ, используя оператор 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

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