Binary Representation
Часть раздела Основы путешествия по Verilog на Coddy. Урок 13 из 90.
В Verilog мы работаем с цифровыми схемами, которые понимают только 0 и 1. Они представлены в binary.
В системе binary используются только две цифры: 0 и 1. Каждая двоичная цифра называется bit.
| Decimal | Binary | Bits |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 2 | 10 | 2 bits |
| 3 | 11 | 2 bits |
| 4 | 100 | 3 bits |
| 5 | 101 | 3 bits |
Запись Binary в Verilog
Чтобы записать числа в Binary в Verilog, используйте префикс 'b:
4'b1010 // 4-bit binary 1010 (decimal 10)
8'b11110000 // 8-битный двоичный 11110000 (десятичный 240)
2'b01 // 2-bit binary 01 (decimal 1)Число перед 'b сообщает Verilog, сколько бит содержит значение.
Как преобразовать decimal в Binary
Многократно дели число decimal на 2 и читай остатки снизу вверх.
Пример: преобразование 9 в binary
| Шаг | Деление | Частное | Остаток |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Читайте остатки с последнего к первому: 1001
9 = 4'b1001
Пример кода
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binary 1010 = decimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleВывод:
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Задание
Завершите код, записав пропущенные двоичные значения.
Что нужно сделать:
- Write binary для decimal 5 (4 bits)
- Write binary для decimal 14 (4 bits)
Попробуйте сами
module binary_challenge;
reg [3:0] a, b;
initial begin
// Запишите двоичное представление десятичного числа 5 (4 бита)
a = 4'b______;
// Write binary for decimal 14 (4 bits)
b = 4'b______;
$display("5 = %b", a);
$display("14 = %b", b);
$finish;
end
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