BOSIO × BoAYo 개발 문서 전체 소스 ↗
핵심 시스템 · 출력 코어 RTL

투영과 HDMI 출력

FPGA가 실제로 수행하는 면 선택, 자세 계수, 캐시와 영상을 설명합니다.

출력 코어 RTL은 현재 자세에서 화면 픽셀의 방향을 계산합니다. 그 방향이 가리키는 정이십면체의 면·타일·삼각 셀을 찾아 색을 읽고 HDMI 영상으로 내보냅니다.

픽셀의 색이 결정되는 경로

출력 픽셀Q24 자세 투영20면 중 한 면7·7·7·8 타일M×M 셀 색RGB24 영상

앱 창의 이미지는 ARM 소프트웨어가 정이십면체 프레임버퍼에 합성합니다. 출력 코어는 그 프레임버퍼에서 현재 화면에 필요한 셀 색을 읽습니다. 따라서 앱 내용은 소프트웨어가 만들고, 현재 자세에서 어느 삼각 셀을 화면에 보여줄지는 RTL이 결정합니다. 시스템 구조에 전체 흐름이 있습니다.

자세 입력과 Q24 계수

센서 허브가 보내는 96비트 AXI4-Stream에는 yaw·pitch·roll이 각각 부호 있는 32비트 mrad 값으로 담깁니다. 센서 데이터는 Q24 투영 계수 자체가 아닙니다. FPGA가 센서 값으로 계수를 계산해 다음 영상 프레임 경계에서 적용합니다. 수동으로 자세를 설정할 때는 PYNQ 드라이버가 각도에서 Q24 계수를 만듭니다.

packet[31:0]  = yaw_mrad
packet[63:32] = pitch_mrad
packet[95:64] = roll_mrad

센서 자세를 사용하는 모드의 기본 시야각은 가로 60°, 세로 45°입니다. 1280×720 출력 설정과 비트스트림의 상세 내용은 출력 코어 원본 코드에서 확인하세요.

장면 저장과 부분 갱신

20면의 타일 위치 정보와 셀 색은 RGB332 색상표를 사용합니다. 창 내용의 일부가 바뀌면 Bosio 창 관리자가 관련 셀을 다시 합성해 BPT1 형식으로 보냅니다. 출력 코어는 해당 타일과 셀만 갱신할 수 있습니다. 창 가장자리처럼 아래 창의 색을 함께 계산해야 하는 변경은 전체 장면을 다시 전송합니다.

출력과 설정

코어는 RGB24 AXI4-Stream 영상을 내보내고, HDMI 출력 타이밍은 연결된 비디오 출력 경로가 맡습니다. 출력 단계의 안티에일리어싱(AA)은 AXI-Lite 0x1c에서 켜고 임계값·강도를 설정합니다. 자세 방향은 0x20의 yaw·pitch·roll 비트로 각각 반전할 수 있습니다. 기본 AA 임계값은 24, 강도는 32입니다.

원본 코드와 드라이버

bosio_OutputCore에는 RTL, 시뮬레이션·빌드 자료, PYNQ 드라이버와 레지스터 문서가 있습니다. 통합 비트스트림과 센서 허브 연결은 bosio_SphericalWMFullStack에서 확인하세요.

BOSIO × BoAYo · 문서 저장소 · 구현 원본은 각 소스 저장소에서 확인하세요.