Menu
CoddyTech

二进制表示

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 13 课,共 90 课。

在 Verilog 中,我们使用只能识别 0 和 1 的数字电路。这些用二进制表示。

二进制只使用两个数字:0 和 1。每个二进制数字称为一个位。

十进制二进制位数
001 位
111 位
2102 位
3112 位
41003 位
51013 位

在 Verilog 中书写二进制数

要在 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 这个值有多少位。

如何将十进制转换为二进制

反复将十进制数除以 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;     // 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)
challenge icon

挑战

填写缺失的二进制值,完成代码。

要做什么:

  1. 写出十进制数 5 的二进制表示(4 位)
  2. 写出十进制数 14 的二进制表示(4 位)

亲手试试

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自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Verilog 在线编译器

检查进制转换: 进制转换器