AXI4 Full UVM 기본상식

Seungyun Lee·2026년 7월 30일

AXI4_UVM_FULL

목록 보기
1/16

AXI4 UVM 검증 환경 시리즈의 0편.
아이템 · 인터페이스 · 드라이버 · 모니터를 읽기 전 알아야 할 개념 정리.


1. 기본 상식

데이터 단위 계층

bit   → 0 또는 1 (최소 단위)
  ↓ ×8
byte  → 8 bit
  ↓ ×(버스 폭)
beat  → 한 번의 핸드셰이크로 전송되는 데이터 (버스 폭만큼)
  ↓ ×(len+1)
burst → 여러 beat의 묶음 (주소 요청 1번)

beat는 음악의 "박자"에서 온 말. bit과 전혀 다른 개념.
beat ≠ clock cycle — wait state가 있으면 클록은 흘러도 beat는 진행 안 됨.
beat = VALID & READY 핸드셰이크가 성립한 횟수.

AXI의 두 가지 "로그 인코딩" 함정

필드의미주의
AWLEN / ARLEN실제 beat 수 - 1len=0 → 1 beat
AWSIZE / ARSIZElog2(beat당 byte 수)size=2 → 4 byte

VALID/READY 핸드셰이크 골든 룰

룰 1: VALID는 READY를 기다리지 않고 올려도 됨   (기다리면 Deadlock)
룰 2: VALID 한번 올리면 READY 올 때까지 못 내림
룰 3: READY는 언제든 자유롭게 변경 가능
룰 4: 전송 = VALID & READY = 1 인 rising edge
룰 5: 같은 채널 내 VALID → READY 의존성 금지

Clocking Block — 핵심 개념

"신호를 언제 읽고 언제 쓸지, 클록 기준으로 자동 맞춰주는 규칙 묶음"

input  #1step  → 클록 엣지 "직전"의 안정된 값 샘플 (race-free 읽기)
output #1      → 클록 엣지 "후" 1 time unit에 드라이브 (race-free 쓰기)

읽기는 엣지 이전, 쓰기는 엣지 이후 → 절대 안 겹침 → Race Condition 방지

Outstanding Transaction

"응답을 기다리지 않고 다음 요청을 계속 보내는 것"

인터페이스/드라이버/모니터가 전부 "채널 병렬" 구조인 이유가 바로 이것.
여러 버스트가 버스 위에 동시에 존재할 수 있어야 하므로,
각 채널을 독립 스레드로 처리해야 한다.

profile
Design Verification engineer

0개의 댓글