Menu
Coddy logo textTech

Sized Numbers

Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 14번째.

Verilog에서 특정 크기의 숫자를 선언하는 방법이 있습니다. 이를 크기가 지정된 숫자라고 합니다. 이는 숫자가 몇 비트인지에 대한 혼동을 방지하고 하드웨어가 예상한 대로 정확히 동작하도록 보장하므로 유용합니다.

크기가 지정된 숫자는 다음 형식을 따릅니다: [bits]'[format][value]

  • <strong>bits</strong>: 비트 수(예: 8)
  • <strong>'</strong>: 크기와 형식을 구분하는 아포스트로피(필수)
  • <strong>format</strong>: 숫자의 진법: 2진수는 b, 10진수는 d, 16진수는 h, 8진수는 o
  • <strong>value</strong>: 실제 숫자(예: 1010)

예:

  • 4'b1010: 4비트, binary 1010 (decimal 10)
  • 8'd255: 8비트, decimal 255 (binary 11111111)
  • 16'hFF: 16비트, hex FF (binary 0000000011111111)
  • 3'b1: 3비트, binary 001 (왼쪽 비트는 0으로 채워집니다)

코드 예제:

reg [7:0] data;

data = 8'b10101010;   // 8 bits, binary 10101010
data = 8'd170;        // 8비트, 십진수 170
data = 8'hAA;         // 8 bits, hex AA

세 예제 모두 data에 동일한 값을 할당합니다.

크기가 중요한 이유

크기가 없으면:

reg [7:0] data;
data = 1;        // 이게 무슨 뜻인가요? 1비트? 8비트?

Verilog는 기본적으로 작은 수를 32비트로 가정하므로 문제가 발생할 수 있습니다.

크기 지정:

reg [7:0] data;
data = 8'b00000001;   // Clear: 8-bit value 1

제로 패딩

더 큰 벡터에 더 작은 값을 할당하면 Verilog는 왼쪽 비트를 0으로 채웁니다.

reg [7:0] data;
data = 4'b1010;    // Becomes 8'b00001010
challenge icon

챌린지

크기가 올바르게 지정된 숫자를 작성하여 코드를 완성하세요.

What을 수행할 작업:

  1. a를 decimal 170에 해당하는 8비트 binary 숫자(binary 10101010)로 설정하세요
  2. b를 decimal 12에 해당하는 4비트 binary 숫자(binary 1100)로 설정하세요
  3. c를 decimal 255에 해당하는 16비트 hex 숫자(hex FF)로 설정하세요

직접 해보기

module sized_challenge;
  reg [7:0] a;
  reg [3:0] b;
  reg [15:0] c;
  
  initial begin
    a = ______;   // 170의 8비트 이진수 (10101010)
    b = ______;   // 12의 4비트 이진수 (1100)
    c = ______;   // 255의 16비트 16진수 (FF)
    
    $display("a = %b", a);
    $display("b = %b", b);
    $display("c = %h", c);
    $finish;
  end
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러