학부 프로젝트에서 AXI 버스 인터페이스 IP 설계 — 스펙 기반 상태 기계와 outstanding 트랜잭션 관리 경험
복잡한 IP를 설계한 경험은 학부 SoC 설계 프로젝트에서 AXI 버스 인터페이스 IP를 구현했을 때입니다. 단순 기능 블록과 달리 IP 설계에서는 인터페이스 스펙 준수와 내부 상태 관리를 동시에 고려하는 것이 기본입니다. AXI의 다중 채널 구조와 핸드셰이크 프로토콜을 정확히 구현하면서, 채널 간 순서 보장이 안 되는 경우 데이터 순서가 뒤바뀌는 버그를 경험했습니다.
outstanding 트랜잭션 관리를 위한 FIFO 구조를 추가하면서 설계 복잡도가 높아졌고, 상태 기계의 전이 조건이 처음 설계보다 두 배 이상 늘었습니다. 설계 초반에 인터페이스 스펙을 충분히 읽고 시작하지 않으면 나중에 근본 구조를 바꿔야 하는 상황이 생깁니다.
이 프로젝트에서 IP 설계는 스펙 이해부터 시작한다는 것을 배웠습니다.