Menu
Coddy logo textTech

2進数表現

CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 13/90。

Verilogでは、01のみを理解するデジタル回路を扱います。これらは2進数で表現されます。

2進数は、01の2つの数字のみを使用します。各2進数字はビットと呼ばれます。

10進数2進数ビット
001 ビット
111 ビット
2102 ビット
3112 ビット
41003 ビット
51013 ビット

Verilogでの2進数の記述

Verilogで2進数を記述するには、接頭辞 'b を使用します:

4'b1010    // 4ビットの2進数 1010 (10進数の 10)
8'b11110000 // 8ビットの2進数 11110000 (10進数の 240)
2'b01      // 2ビットの2進数 01 (10進数の 1)

'b の前の数字は、その値が何ビットであるかをVerilogに伝えます。

10進数を2進数に変換する方法

10進数を2で繰り返し割り、余りを下から上へ順に読みます。

例:9を2進数に変換する

ステップ除算余り
19 ÷ 241
24 ÷ 220
32 ÷ 210
41 ÷ 201

余りを最後から最初へ順に読みます:1001

9 = 4'b1001

コード例

module binary_example;
  reg [3:0] a;
  
  initial begin
    a = 4'b1010;     // 2進数 1010 = 10進数 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. 10進数の 5 をバイナリ(4ビット)で記述してください
  2. 10進数の 14 をバイナリ(4ビット)で記述してください

チートシート

2進数は01のみを使用します。各桁はビットです。

Verilogで2進数を記述するには、'b接頭辞を使用します。その前の数字はビット幅を指定します:

4'b1010    // 4ビットの2進数 = 10進数の10
8'b11110000 // 8ビットの2進数 = 10進数の240

表示形式:%b(2進数)、%d(10進数)、%h(16進数)。

10進数から2進数へ: 2で繰り返し割り、余りを下から上に読みます。

// 9 ÷ 2 → 4 余り1 → 2 余り0 → 1 余り0 → 0 余り1  ⟹  1001
// 9 = 4'b1001

自分で試してみよう

module binary_challenge;
  reg [3:0] a, b;
  
  initial begin
    // 10進数の 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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン