Recap - ALU Design
Часть раздела Основы путешествия по Verilog на Coddy. Урок 57 из 90.
Задание
ALU (арифметико-логическое устройство) — это цифровая схема, которая принимает два inputs, выполняет над ними операцию и выдаёт один output. Она выполняет арифметические и логические операции над двумя inputs на основе сигнала select. Сигнал select выбирает одну операцию для выполнения.
Как это работает
| select | Операция | Output |
|---|---|---|
2'b00 | Сложение | a + b |
2'b01 | Вычитание | a - b |
2'b10 | Побитовая операция AND | a & b |
2'b11 | Побитовая операция OR | a | b |
Создайте простую ALU с помощью оператора case.
Что нужно сделать:
- Create модуль с именем
alu - Add inputs:
a(4-битный),b(4-битный),select(2-битный) - Add output:
result(4-битный, тип reg) - Add блок
always @(*) - Внутри добавьте оператор
case (select) - Add четыре варианта для
2'b00,2'b01,2'b10,2'b11 - Add вариант
default, чтобы установитьresult = 0 - Завершите с помощью
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Все уроки раздела Основы
1Введение
Что такое VerilogАппаратное обеспечение и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicПотренируйтесь самостоятельно: Онлайн-компилятор Verilog