콘텐츠로 이동

AMBA Protocols

🔄
AMBA Protocols

ARM AMBA — APB, AHB, AXI, AXI-Stream

🎯 학습 목표

코스를 마치면 다음을 할 수 있습니다:

  • Distinguish (분석) APB / AHB / AXI / AXI-Stream의 핵심 차이를 핸드셰이크·신호·용도 기준으로 구분
  • Diagram (분석) AXI 5채널 구조와 VALID/READY 핸드셰이크 타이밍을 화이트보드로 그리며 설명
  • Apply (적용) Burst (FIXED/INCR/WRAP), Outstanding, ID 기반 OoO 트래픽을 시나리오로 작성
  • Implement (생성) AXI-Stream의 TUSER/TKEEP/TLAST를 활용한 패킷 전송 검증 환경 설계
  • Evaluate (평가) SoC 통합 시 어느 인터페이스에 어느 프로토콜을 쓸지 trade-off 기반 결정

📋 사전 지식

다음을 알고 있으면 본문이 매끄럽게 읽힙니다:

  • 디지털 회로 기본: 클럭 도메인, 동기 회로, FIFO
  • Handshake 개념: ready/valid 류 흐름 제어
  • SystemVerilog 인터페이스 기본 (검증 적용 시)

UVM 검증 환경에서의 프로토콜 적용은 UVM 코스 참고.

🗺️ 개념 맵

개념 의존성 — 순서대로 학습 권장
각 노드 = 모듈 (클릭하여 이동) · 화살표(→) = 선수 지식 흐름

📚 학습 모듈

순차 학습 권장 (APBAHB→AXI는 점진적 복잡도 증가):

📊 모듈 흐름

M01
APB & AHB
M02
AXI
M03
AXI-Stream
M04
Quick Ref

언제 어느 프로토콜? APB = 레지스터 접근, AHB = 레거시 중간 성능, AXI = 고성능 메모리/IP 인터커넥트, AXI-Stream = 패킷/프레임 데이터 패스.

📖 관련 자료

💡 학습 팁

효율적 학습

  • APB는 빠르게: 가장 단순. SETUP→ACCESS 2단계 핸드셰이크만 이해하면 됨
  • AXI는 깊게: 5채널 분리 + outstanding이 핵심. VALID/READY 데드락 패턴 반드시 숙지
  • AXI-Stream은 모델 차이로: 주소 없는 데이터 패스 — memory-mapped와 다른 사고방식

흔한 버그

  • VALID 데드락: Source가 READY 기다리며 VALID 안 올림 (절대 금지)
  • WSTRB 누락: AXI write에서 strobe 무시 → DUT가 잘못된 바이트 덮어씀
  • AxLEN 오프셋: AXI4 burst length는 N-1 인코딩 (16-beat = AxLEN=15)

🔗 관련 토픽