이진수 표현
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 13번째.
Verilog에서, 우리는 0과 1만을 이해하는 디지털 회로를 다룹니다. 이것들은 이진수(binary)로 표현됩니다.
이진법은 0과 1, 두 개의 숫자만 사용합니다. 각 이진 숫자를 비트라고 부릅니다.
| 10진수 | 2진수 | 비트 |
|---|---|---|
| 0 | 0 | 1 비트 |
| 1 | 1 | 1 비트 |
| 2 | 10 | 2 비트 |
| 3 | 11 | 2 비트 |
| 4 | 100 | 3 비트 |
| 5 | 101 | 3 비트 |
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에게 해당 값이 몇 비트인지를 알려줍니다.
십진수를 이진수로 변환하는 방법
십진수를 2로 반복해서 나누고 나머지를 아래에서 위로 읽으세요.
예시: 9를 이진수로 변환하기
| 단계 | 나눗셈 | 몫 | 나머지 |
|---|---|---|---|
| 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; // 이진수 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)챌린지
누락된 이진수 값을 작성하여 코드를 완성하세요.
수행할 작업:
- 10진수 5에 대한 이진수를 작성하세요 (4비트)
- 10진수 14에 대한 이진수를 작성하세요 (4비트)
치트 시트
이진수(Binary)는 0과 1만을 사용합니다. 각 숫자는 하나의 비트(bit)입니다.
Verilog에서 이진수는 'b 접두사를 사용하여 작성합니다. 접두사 앞의 숫자는 비트 너비를 지정합니다:
4'b1010 // 4-bit binary = decimal 10
8'b11110000 // 8-bit binary = decimal 240표시 형식: %b (이진수), %d (십진수), %h (16진수).
십진수를 이진수로 변환: 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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.