본문 바로가기

디지털회로 2모저모

Data Type and Operators

Verilog 논리값

출처: https://velog.io/@quesiman/%EB%B2%A0%EB%A6%B4%EB%A1%9C%EA%B7%B81

 

0: 논리 0(거짓), 0V

1: 논리 1(참), 1V

z: high impedance 상태

x: 알 수 없는 값

Data Type(자료형)

Default 자료형은 1 bit wire이다.

 

✅ Net 자료형

: 소자 간의 물리적인 연결을 추상화

hardware적 특성(순서가 상관없음)을 갖는다.

default 초기값은 z이다.

 

ex) wire, tri, wand, wor..

 

※ wired net: 여러 신호가 연결될 수 있는 Net 타입

- wand(wired AND)

- wor(wired OR)

 

✅ Variable 자료형

: 절차형 할당문( Behavioral medeling)에서 값의 임시 저장

변수 역할을 하며, software적 특성(순서가 중요)을 갖는다.

reg, time, integer의 default 초기값은 x이다.

 

ex) reg, time, integer, real, realtime..

 

✅ 벡터

: [MSB : LSB]를 갖는 다중 비트의 net 또는 reg 자료형

default는 unsigned로, signed를 선언할 수 있다.

 

✅ 배열

: 여러 개의 벡터 또는 단일 비트의 그룹

 

- 배열 선언:

reg [7:0] memory [0:15]; // 단순 1차원 배열(8비트 memory가 16열(개) 있음)

reg memory [7:0] [0:15]; // 2차원 배열(1비트 memory가 8행 16열 있음)

 

- 배열 초기화:

memory [2][3] = 1'b1; // 2번째 행, 3번째 열에 1 저장

 

✅ parameter

: 변하지 않는 상수를 정의

#, defparam 문을 사용하여 값을 변경할 수 있다.

 

Operators(연산자)

출처: https://jjikky-code.tistory.com/entry/Verilog-%EC%97%B0%EC%82%B0%EC%9E%90

 

결합 연산자: 여러 개의 비트 또는 신호를 하나의 벡터로 결합

ex) {A, B, C} // A, B, C를 하나의 벡터로 결합

 

반복 연산자: 특정 패턴을 반복하여 비트열 생성

ex) {N {A}} // A를 N번 반복

 

비트 연산자: 2항 연산자(a ^ b)

축약 연산자: 1항 연산자(^ a)

조건 연산자: 3항 연산자(a? b : c)

 

※ 특징

- 피연산자 비트 수가 같지 않으면, 비트가 작은 피연산자의 MSB에 0을 채워 비트 수를 맞춘 후 계산

- 논리 시프트 연산자(<<, >>): 우측 피연산자 값만큼 좌측(우측) 피연산자를 왼쪽(오른쪽)으로 시프트 후, 비어있는 비트에 0을 채움

- 산술 시프트 연산자(<<<): 우측 피연산자 값만큼 좌측 피연산자 값을 왼쪽으로 시프트 후, 비어있는 비트에 0을 채움

- 산술 시프트 연산자(>>>): 우측 피연산자 값만큼 좌측 피연산자 값을 오른쪽으로 시프트 후, 비어있는 비트에 좌측 피연산자의 MSB를 채움

'디지털회로 2모저모' 카테고리의 다른 글

Verilog module & 어휘 규칙  (0) 2025.02.13
Verilog HDL 개요  (0) 2025.02.12