세 IP가 맡는 위치부터 구분합니다
System Memory Module v2.6.0은 FPGA 내부 EBR·LRAM·분산 RAM을 AHB-Lite 또는 AXI4로 노출합니다. AXI Register Slice v1.2.0은 하나의 AXI manager와 하나의 subordinate 사이에 파이프라인을 넣어 긴 조합 경로를 끊습니다. AXI4 MPMC v1.0.0은 2~4개 외부 manager의 요청을 하나의 memory-controller 쪽 subordinate에 모으며 중재·폭 변환·CDC를 담당합니다. 이 세 기능은 이름에 AXI가 있어도 대체 관계가 아닙니다.
온칩 System Memory의 충돌과 ECC 경계
두 포트의 동시 접근 조건과 AXI 쓰기 채널의 중재는 구분해야 합니다. 가이드는 주소가 다르거나 두 포트가 모두 읽는 경우에만 동시 접근이 가능하다고 설명합니다. 그렇다고 AXI 쓰기 두 개가 주소만 다르면 동시에 처리된다는 뜻은 아닙니다. AXI 구성은 메모리의 한 포트를 쓰기에, 다른 포트를 읽기에 사용하며, S0·S1 쓰기 채널은 WREADY로 중재합니다. 유휴 상태에서 요청이 겹치면 S0가 우선하지만 이미 진행 중인 S1 전송을 선점하지는 않습니다. 읽으려는 주소에 쓰기가 진행 중이면 RVALID를 늦춥니다. AXI4 인터페이스는 ECC를 지원하지 않으며, ECC를 쓰는 AHB-Lite 구성도 메모리 종류와 포트 수에 제약이 있습니다. 이 규칙을 외부 DDR 컨트롤러에 그대로 적용해서는 안 됩니다.
Register Slice는 지연과 처리율을 교환합니다
Full-Weight 모드는 연속 전송을 허용하면서 순방향 지연 한 사이클을 더합니다. Light-Weight 모드는 레지스터가 적지만 전송마다 빈 사이클이 생겨 최대 duty가 50%입니다. Input Registered 모드는 연속 전송을 유지하되 manager→subordinate는 한 사이클, 역방향은 두 사이클입니다. AXI 채널별 설정을 따져야 하며, 이 IP가 여러 manager 사이의 중재나 클록 도메인 교차를 대신 수행한다고 볼 근거는 없습니다.
MPMC는 중재·폭 확대·CDC를 함께 묶습니다
AXI4 MPMC의 SI는 manager마다 따로 있고 MI는 하나입니다. 읽기·쓰기 중재는 MI 쪽에서 이루어지며 round-robin을 사용합니다. SI와 MI는 각각 독립 클록/리셋을 쓸 수 있고 비동기 FIFO가 CDC를 처리합니다. 데이터 폭은 작은 SI 쪽에서 MI 쪽으로 확대하는 방향만 지원합니다. 한 리셋이 assert되면 다른 리셋도 assert해야 하므로, 독립 리셋 입력이라는 사실을 부분 리셋 허용으로 해석하면 안 됩니다.
버전과 검증 범위를 명시합니다
MPMC 가이드는 2023년 IP v1.0.0이며 공식 제품 문서 목록에 남아 있는 버전을 대상으로 합니다. 2026년 System Memory v2.6.0이나 2025년 Register Slice v1.2.0의 제약을 MPMC의 새 버전으로 가정하지 않습니다. 이 글은 공식 문서의 기능 경계를 이론화한 것으로, 특정 FPGA 합성 결과·타이밍 수렴·DDR 보드 성능을 측정하지 않았습니다.