Menu
Coddy logo textTech

Recap - ALU Design

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

challenge icon

Задание

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

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

selectОперацияOutput
2'b00Сложениеa + b
2'b01Вычитаниеa - b
2'b10Побитовая операция ANDa & b
2'b11Побитовая операция ORa | b

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

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

  1. Create модуль с именем alu
  2. Add inputs: a (4-битный), b (4-битный), select (2-битный)
  3. Add output: result (4-битный, тип reg)
  4. Add блок always @(*)
  5. Внутри добавьте оператор case (select)
  6. Add четыре варианта для 2'b00, 2'b01, 2'b10, 2'b11
  7. Add вариант 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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog