산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> verilog

Verilog 데이터 타입 완벽 해설: 비트, 와이어, 레지스터, 4값 논리

Verilog 데이터 타입의 주 목적은 하드웨어 저장 요소(플립플롭의 비트)와 전송 요소(게이트 간 연결 와이어)를 모델링하는 것입니다.

4값 논리 시스템 (Value Set)

거의 모든 데이터 타입이 다음 4가지 값만 가집니다 (real, event 제외).

값의미
0로직 0, 거짓, 그라운드(0V)
1로직 1, 참, 전원 전압(Vdd, 0.8V~3V+)
x / X알 수 없음 (0 또는 1일 수 있음). 불 대수의 'Don't Care'와 다름
z / Z고임피던스 (Hi-Z), 미연결 상태

시뮬레이터 파형에서 X는 보통 빨강, Z는 주황으로 표시됩니다.

넷(Nets) vs 변수(Variables)

하드웨어 구조가 다르고 값 할당/유지 방식이 다릅니다.

넷 (Nets) - 연결용

하드웨어 엔티티(게이트 등) 사이를 연결하며 자체적으로 값을 저장하지 않음. 드라이버(게이트 출력 또는 연속 할당)가 값을 구동함.

변수 (Variables) - 저장용

데이터 저장 요소를 추상화하며 값을 유지함. 플립플롭이 대표적 예.

기타 데이터 타입

타입폭용도예시
integer32비트범용 정수 변수, 카운터 등integer count;
time64비트 unsigned시뮬레이션 시간 저장time end_time;
realtime64비트 실수부동소수점 시간 저장realtime rtime;
real부동소수점실수 연산 (합성 불가, 시뮬용)real float = 12.344;

문자열 저장

reg에 저장하며 폭은 문자 수 × 8비트 이상이어야 함. 부족하면 좌측 잘림, 남으면 좌측 0 패딩.

reg [8*11:1] str1 = "Hello World";  // 정확히 11바이트 → "Hello World"
reg [8*5:1]  str2 = "Hello World";  // 5바이트만 → "World" (좌측 잘림)
reg [8*20:1] str3 = "Hello World";  // 20바이트 → "         Hello World" (좌측 0 패딩)

시뮬레이션 예제

module testbench;
    integer int_a;
    real    real_b;
    time    time_c;
    initial begin
        int_a  = 32'hcafe_1234;
        real_b = 0.1234567;
        #20;
        time_c = $time;
        $display("int_a = 0x%0h", int_a);   // 0xcafe1234
        $display("real_b = %0.5f", real_b); // 0.12346
        $display("time_c = %0t", time_c);   // 20
    end
endmodule

verilog

  1. C# 변수와 기본 데이터 타입 완벽 가이드
  2. C++ 데이터 타입 이해하기: 기초, 수정자, 모범 사례
  3. C 데이터 타입 완벽 해설: int, float, char 등 완전 가이드
  4. 파이썬 데이터 타입 마스터하기: 실전 가이드
  5. Java 기본 데이터 타입: 8가지 타입 완벽 가이드와 예제
  6. 데이터 센터 5대 모델 설명: 설계, 활용 사례, 사례
  7. 2021년 핵심 클라우드 컴퓨팅 모델 8가지
  8. 흔한 데이터 유출 유형 8가지 – 실제 사례 및 영향
  9. 버릴로그(Verilog) 입문: 디지털 회로 설계를 위한 하드웨어 기술 언어
  10. Verilog 결합(Concatenation) & 복제(Replication) 연산자 실전 가이드