Menu
Coddy logo textTech

Двоичное представление

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

В Verilog мы работаем с цифровыми схемами, которые понимают только 0 и 1. Они представляются в двоичном виде.

В двоичной системе используются только две цифры: 0 и 1. Каждая двоичная цифра называется битом.

ДесятичнаяДвоичнаяБиты
001 бит
111 бит
2102 бита
3112 бита
41003 бита
51013 бита

Запись двоичных чисел в Verilog

Для записи двоичных чисел в Verilog используйте префикс 'b:

4'b1010    // 4-битное двоичное число 1010 (десятичное 10)
8'b11110000 // 8-битное двоичное число 11110000 (десятичное 240)
2'b01      // 2-битное двоичное число 01 (десятичное 1)

Число перед 'b сообщает Verilog, сколько бит содержит значение.

Как перевести десятичное число в двоичное

Последовательно делите десятичное число на 2 и записывайте остатки снизу вверх.

Пример: Перевод 9 в двоичную систему

ШагДелениеЧастноеОстаток
19 ÷ 241
24 ÷ 220
32 ÷ 210
41 ÷ 201

Читайте остатки от последнего к первому: 1001

9 = 4'b1001

Пример в коде

module binary_example;
  reg [3:0] a;
  
  initial begin
    a = 4'b1010;     // Двоичное 1010 = десятичное 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)
challenge icon

Задание

Завершите код, вписав недостающие двоичные значения.

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

  1. Запишите двоичное число для десятичного 5 (4 бита)
  2. Запишите двоичное число для десятичного 14 (4 бита)

Шпаргалка

Двоичная система использует только 0 и 1. Каждая цифра — это бит.

В Verilog двоичные числа записываются с префиксом 'b — число перед ним указывает разрядность (количество бит):

4'b1010    // 4-битное двоичное число = десятичное 10
8'b11110000 // 8-битное двоичное число = десятичное 240

Форматы отображения: %b (двоичный), %d (десятичный), %h (шестнадцатеричный).

Из десятичной в двоичную: последовательно делите на 2, записывая остатки снизу вверх.

// 9 ÷ 2 → 4 r1 → 2 r0 → 1 r0 → 0 r1  ⟹  1001
// 9 = 4'b1001

Попробуйте сами

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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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