Двоичное представление
Часть раздела Основы путешествия по Verilog на Coddy — урок 13 из 90.
В Verilog мы работаем с цифровыми схемами, которые понимают только 0 и 1. Они представляются в binary.
Binary использует только две цифры: 0 и 1. Каждая binary цифра называется 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 |
Write 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)Задание
Заполните код, записав пропущенные двоичные значения.
Что нужно сделать:
- Напишите двоичный код для десятичного числа 5 (4 bits)
- Напишите двоичный код для десятичного числа 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Введение
Что такое VerilogHardware против SoftwareУровни абстракции проектированияВаш первый модульКомментарии4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияОператоры сравненияПовторение: простая математикаПобитовые операторы7Оператор Assign и логические вентили
Непрерывное присваиваниеAssign с операторамиВстроенные примитивы вентилейВентили AND, OR, NOTВентили XOR, XNORИтоги: Схемы на логических вентилях10Принятие решений
Оператор ifКонструкция if - elseПовторение: простой компараторОператор caseОператоры casex и casezПовторение: проектирование ALU5Операторы. Часть 2
Логические операторыОператоры редукцииОператоры сдвигаОператор конкатенацииУсловный операторПовторение — Испытание по операторам3Системы счисления
Двоичное представлениеЧисла с заданным размеромЧисла без заданного размераОтрицательные числаСпециальные значения X и ZИтоги — форматы чисел6Модули
Структура модуляВходные и выходные портыПорты InoutИнстанцирование модуляПодключение портов по имениПодключение портов по порядкуИтоги: создание модуля9Процедурные блоки
Блок alwaysБлок initialСписок чувствительностиБлокирующее присваиваниеНеблокирующее присваиваниеИтоги: always против initial