FPGA · Integration and boot

FPGA 통합 오류는 관측 경로부터 나눠 봅니다

모듈의 통과 기록, 연결 계약, 리셋 뒤 상태, CPU가 실제로 읽은 값은 서로 다른 증거입니다.

수락 조건과 데이터 해석을 먼저 맞춥니다

2022년 ZipCPU SONAR 사례에는 리셋 극성, 길이 필드의 헤더 포함 여부, valid와 ready의 동시 수락 조건을 잘못 연결한 오류가 나옵니다. 모듈별 증명만으로 연결 계약까지 증명되지는 않습니다. 별도의 파형 끊김은 호스트가 0x18을 18개로 해석한 오류였습니다. RTL·링크·디코더의 관측을 분리해야 합니다.

AMD System ILA는 구현된 설계의 신호·인터페이스를 트리거하고 캡처하는 수단입니다. 캡처에 필요한 클록·프로브 연결이 유효해야 하며, 관측되지 않은 시간 구간의 정확성까지 입증하지는 않습니다. 기록에는 빌드 식별자, 신호 이름, 클록, 트리거 조건과 관측 구간을 함께 남깁니다.

처음 켤 때와 다시 리셋할 때를 구분합니다

2026년 ZipCPU eMMC 사례에서는 FPGA를 다시 구성하면 동작하지만 부분 리셋 뒤에는 실패했습니다. BOOT 응답을 기다리는 내부 상태가 초기화되지 않은 것이 원인이었습니다. 이는 해당 IP의 상태 잔류 사례이지 모든 eMMC에 적용할 복구 명령은 아닙니다. 저자는 당시 BOOT 기능 자체도 완성되지 않았다고 밝혔습니다.

리셋 검토표에는 영향을 받는 상태와 유지되는 상태를 각각 적습니다. 전원 인가·FPGA 재구성·블록 리셋·명령 취소를 같은 초기 상태로 가정하지 않습니다. 전송 도중과 유휴 상태에서 재진입 조건을 구분하고, 장치 규격을 확인하지 않은 명령·전압·타이밍 절차는 이 사례에서 유도하지 않습니다.

디버그 버스가 동작한다고 CPU가 부팅되는 것은 아닙니다

2022년 ZipCPU 부팅 글은 리셋 주소와 실제 명령어, 초기 코드의 복사·BSS 초기화, 복사 뒤 명령어 읽기를 단계별로 관찰합니다. 디버그 버스로 한 번 접근에 성공했다고 해서 CPU의 burst나 WRAP 읽기까지 검증된 것은 아닙니다. 같은 ELF·메모리 배치와 CPU가 받은 값을 연결해야 합니다.

초기 로그도 조사 중인 메모리에 의존할 수 있습니다. 원문의 출력 함수는 DMA 복사 전 SDRAM을 읽어 오래된 데이터를 캐시에 남겼습니다. 관측 코드의 메모리 의존성을 기록하고, 캐시 관리는 해당 CPU·메모리 속성·DMA 계약에 맞춰 검증합니다. 이 글은 특정 보드의 부팅 시험을 실행한 기록이 아닙니다.

같은 빌드에서 세 경계를 대조합니다
  1. 입력 계약

    극성·단위·수락 조건

  2. 내부 상태

    리셋 범위와 대기 상태

  3. 관측 결과

    CPU·프로브·호스트를 분리

출처와 연결

ELF의 적재 주소와 실행 주소