728x90
AXI4와 AXI4-Stream은 AMBA (Advanced Microcontroller Bus Architecture) 프로토콜의 일부지만, 사용 목적과 데이터 전송 방식이 다르다.
==========𝔼𝔼𝟚𝟚==========
1. 비교표
| 구분 | AXI4 (Memory-Mapped) | AXI4-Stream |
|---|---|---|
| 사용 목적 | 메모리 주소 기반 데이터 전송 | 연속적인 데이터 스트림 전송 |
| 주소 신호 | 존재 (주소를 통해 데이터 읽기/쓰기) | 없음 (주소 지정 없이 데이터 흐름) |
| 데이터 흐름 | Request-Response 방식 (CPU, DMA 등) | 단방향 스트리밍 (비디오, 네트워크 등) |
| 핸드셰이크 신호 | ARVALID, AWVALID, WVALID, RVALID, BVALID | TVALID, TREADY |
| Ready 신호 | 읽기/쓰기 별도 (ARREADY, AWREADY, WREADY, RREADY, BREADY) | 단일 Ready 신호 (TREADY) |
| 데이터 구조 | Burst 기반 (메모리 전송 최적화) | 패킷 기반 (연속적인 데이터 처리) |
| 응용 분야 | CPU, DDR 컨트롤러, 메모리 맵 기반 통신 | 오디오, 비디오, 네트워크 패킷 전송 |
-> 결국 Stream은 이름 그대로 비디오 이미지의 연속적인 전송이 목적이다.
==========𝔼𝔼𝟚𝟚==========
2. AXI4 (Memory-Mapped)
2.1 AXI4의 특징
- 메모리 주소를 기반으로 데이터 전송
- 읽기(READ)와 쓰기(WRITE)가 분리되어 독립적으로 동작
- CPU, DMA, 메모리 컨트롤러와 같은 메모리 기반 시스템에서 사용
_
2.2 AXI4 동작
- Master가 Slave에게 읽기 또는 쓰기 요청을 보냄 (주소 포함)
- Slave는 요청을 받아서 해당 주소에서 데이터를 읽거나 씀
- 데이터가 전송되면, Response 신호를 통해 Master에게 완료를 알림
_
2.3 AXI4의 주요 신호
- 주소 신호: ARADDR (읽기 주소), AWADDR (쓰기 주소)
- 데이터 신호: RDATA (읽은 데이터), WDATA (쓰기 데이터)
- Valid 신호: ARVALID, AWVALID, WVALID, RVALID, BVALID
- Ready 신호: ARREADY, AWREADY, WREADY, RREADY, BREADY
_
예시) AXI4에서 메모리 읽기 요청 과정
- Master가
ARVALID=1과 함께ARADDR=0x1000을 보냄 - Slave가 요청을 받아서
ARREADY=1로 응답 - Slave가
RVALID=1과 함께RDATA=0x55를 보냄 - Master가
RREADY=1로 응답하여 데이터 수신 완료
==========𝔼𝔼𝟚𝟚==========
3. AXI4-Stream
3.1 AXI4-Stream의 특징
- 주소가 없음 → 메모리 주소를 지정하지 않고 연속적인 데이터 스트림을 전송
- 단순한 TVALID / TREADY 프로토콜 사용
- 비디오, 오디오, 네트워크 패킷 등 연속적인 데이터 처리에 최적화
_
3.2 AXI4-Stream 동작
- Master가 데이터를 준비하면 TVALID를 1로 설정
- Slave가 데이터를 받을 준비가 되면 TREADY를 1로 설정
- TVALID와 TREADY가 동시에 1이 되면 데이터가 전송됨
_
3.3 AXI4-Stream의 주요 신호
- TVALID → Master가 "데이터가 준비됨"을 알림
- TREADY → Slave가 "데이터를 받을 준비됨"을 알림
- TDATA → 전송되는 실제 데이터
- TKEEP → 유효한 바이트 표시
- TLAST → 마지막 데이터 패킷을 표시 (스트림 종료 시 사용)
_
예시) AXI4-Stream 데이터 전송 과정
- Master가
TVALID=1과 함께TDATA=0x55를 보냄 - Slave가 데이터를 받을 준비가 되면
TREADY=1로 설정 TVALID=1과TREADY=1이 동시에 1이 되면 데이터 전송 완료
==========𝔼𝔼𝟚𝟚==========
4. 사용 목적
| 사용 사례 | AXI4 (Memory-Mapped) | AXI4-Stream |
|---|---|---|
| CPU ↔ RAM | ✅ 사용 | ❌ 사용 안 함 |
| DMA ↔ DDR | ✅ 사용 | ❌ 사용 안 함 |
| 비디오 데이터 | ❌ 사용 안 함 | ✅ 사용 |
| 오디오 스트림 | ❌ 사용 안 함 | ✅ 사용 |
| 네트워크 패킷 | ❌ 사용 안 함 | ✅ 사용 |
_
# 정리
- AXI4 : CPU와 메모리 간의 데이터 전송(주소 기반)
- AXI4-Stream : 연속적인 데이터 스트림(주소 없이 빠르게)
728x90
반응형
'Study > FPGA' 카테고리의 다른 글
| 12. Registered Output vs. Combinational Logic Output 비교 정리 (0) | 2025.03.22 |
|---|---|
| 11. DMA Controller | FPGA 컨트롤러의 역할 및 설정 (0) | 2025.03.15 |
| 09. AXI4-Lite 개념 (+standard와의 차이점) (0) | 2025.03.11 |
| 08. Handshake 개념 (0) | 2025.03.08 |
| [FPGA] 07 - 파이프라인 Pipeline 개념과 예제 (0) | 2025.03.08 |