Menu
CoddyTech

크기가 지정된 수

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

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

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

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

예를 들면:

  • 4'b1010: 4비트, 2진수 1010 (10진수 10)
  • 8'd255: 8비트, 10진수 255 (2진수 11111111)
  • 16'hFF: 16비트, 16진수 FF (2진수 0000000011111111)
  • 3'b1: 3비트, 2진수 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

0으로 채우기

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

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

챌린지

올바른 비트 크기의 숫자를 작성하여 코드를 완성하세요.

할 일:

  1. a를 10진수 170(2진수 10101010)에 해당하는 8비트 2진수로 설정하세요
  2. b를 10진수 12(2진수 1100)에 해당하는 4비트 2진수로 설정하세요
  3. c를 10진수 255(16진수 FF)에 해당하는 16비트 16진수로 설정하세요

직접 해보기

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 컴파일러

변환 결과 확인하기: 진법 변환기