학부 SoC 설계 수업 + 프로젝트 AXI master 구현
학부 SoC 설계 수업에서 AMBA 버스 프로토콜을 처음 배웠고, 세 가지 중 AXI4의 5채널 구조가 가장 복잡했습니다. 처음엔 VALID/READY 핸드쉐이크의 타이밍을 이해하는 데 가장 오래 걸렸습니다. 프로젝트에서 직접 AXI master 모듈을 구현하면서, AR/R 채널과 AW/W/B 채널의 독립적인 흐름이 읽기와 쓰기를 병렬로 처리하게 해주는 구조라는 걸 코딩하면서 이해했습니다. APB는 단순 레지스터 접근에 적합하고 AHB는 그 중간이라는 용도 차이도 그때 정리됐습니다.
프로토콜의 전체 구조를 그림으로 그릴 수 있게 됐을 때 구현이 훨씬 쉬워졌습니다. 이후 저는 새로운 버스 프로토콜을 배울 때 핸드쉐이크 메커니즘부터 먼저 파악하는 습관이 생겼습니다.