AXI4 burst의 beat당 전송 크기는 2^AxSIZE byte이고, burst의 beat 수는 AxLEN + 1이다. 실제 transaction을 설정할 때는 data bus 폭과 burst가 4KB address boundary를 넘지 않는지도 확인한다.
AxSIZE와 AxLEN
AxSIZE: 한 beat에서 전송하는 byte 수의 log2 값AxLEN: burst의 beat 수에서 1을 뺀 값
예를 들어 data bus가 128bit이고 한 beat 전체를 사용하는 4-beat transfer라면 한 beat는 16byte이므로 AxSIZE = 4, AxLEN = 3이다. 총 데이터 양은 16 × 4 = 64byte다.
AxSIZE는 연결된 interface가 지원하는 최대 beat 크기를 넘지 않아야 한다. 좁은 access나 unaligned access에서는 byte lane과 address alignment, WSTRB 의미를 함께 검토한다.
AXI4 burst 제한
- AXI4
INCRburst는 최대 256 beats다. - 한 burst가 4KB address boundary를 넘어가면 안 된다.
FIXED와WRAP에는 별도의 허용 길이와 정렬 조건이 있으므로 AxLEN만 보고 유효하다고 판단하지 않는다.- address와 data 채널은 독립 handshake를 가지므로 AW와 W를 같은 cycle에 반드시 받아야 한다고 가정하지 않는다.
주소가 boundary 근처라면 다음 4KB boundary까지 남은 공간과 beat당 byte 수를 기준으로 burst를 나눈다. unaligned address나 wrapping burst는 protocol specification의 해당 규칙을 적용한다.
빠른 계산 예
| Beat당 byte | AxSIZE | Beat 수 | AxLEN | 총 byte |
|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 1 |
| 4 | 2 | 4 | 3 | 16 |
| 16 | 4 | 4 | 3 | 64 |
총 byte는 2^AxSIZE × (AxLEN + 1)이다. 이 값은 전체 payload 크기 계산이며, address alignment나 byte strobe를 포함한 유효 byte 수와 항상 같지는 않다.
검증 순서
- interface data width를 byte 단위로 확인한다.
- beat당 전송 byte와 burst beat 수를 요구사항에서 정한다.
AxSIZE와AxLEN을 계산한다.- burst type, address alignment, 4KB boundary를 확인한다.
- simulation 또는 protocol checker에서 channel handshake와 response를 검사한다.
공식 자료
원문 기록
한 줄 요약
AxSIZE는 beat당 byte 수를, AxLEN + 1은 beat 수를 나타내며 bus width와 burst boundary 제약을 같이 만족해야 한다.