Naviq: 신속한 프로토타이핑, 검증 및 설계 공간 탐색을 위한 오픈소스 System-on-Chip 시뮬레이터
요약
Naviq는 FPGA SoC를 위한 오픈소스 사이클 레벨 소프트웨어 시뮬레이터입니다. 이 도구는 정확하지만 느린 벤더 시뮬레이션과 부정확한 일반 모델의 간극을 메웁니다. AXI4 기반 NoC 모델과 C++ 구현을 통해 전체 시스템 환경에서 커스텀 하드웨어를 빠르고 정확하게 평가할 수 있습니다.
핵심 포인트
- Naviq는 FPGA SoC를 위한 오픈소스 사이클 레벨 시뮬레이터입니다.
- AXI4 기반 NoC 모델이 핵심이며, 트랜잭션 순서 및 백프레셔 등을 포착합니다.
- C++와 Verilator를 활용하여 하드웨어 인프라와 가속기를 통합합니다.
- Vivado RTL 대비 높은 정확도를 유지하며 81배에서 182배까지 시뮬레이션을 가속화했습니다.
현대의 FPGA SoC는 더 이상 프로그램 가능한 패브릭(programmable fabric) 위에 놓인 가속기들의 단순한 집합체가 아닙니다. 이들은 프로그래밍 가능한 로직과 하드닝된 프로세서, NoC(Network-on-Chip), 그리고 엔드투엔드 성능을 좌우하는 구성 요소들을 결합합니다. 개별 부품을 평가하는 것만으로는 충분하지 않으며, 시스템 성능은 SoC 구성 요소 간의 상호작용에 달려 있습니다. 그러나 현재의 FPGA SoC 시뮬레이터는 이러한 방식의 평가를 위한 지원이 제한적입니다. 벤더(Vendor)가 제공하는 시뮬레이션은 이러한 상호작용을 포착하지만, 반복적인 설계 공간 탐색에는 지나치게 느립니다. 동시에, 일반적인 소프트웨어 모델들은 실제 동작을 결정하는 하드웨어 구성 요소들을 과도하게 추상화하여 정확도가 떨어지는 시뮬레이션을 초래합니다. 빠르고 사용하기 쉬우면서도 실제 SoC를 정확하게 모델링할 수 있는 시뮬레이터는 시스템 디버깅과 설계 공간 탐색에 매우 중요합니다.
저희는 FPGA SoC를 위한 오픈소스, 사이클 레벨(cycle-level) 소프트웨어 시뮬레이터인 Naviq를 소개합니다. 이 시뮬레이터는 AMD Versal급 아키텍처에 맞춰 조정되었습니다. Naviq는 정확하지만 느린 벤더 시뮬레이션과 빠른 소프트웨어 모델링의 간극을 메웁니다. 이는 현대 상용 FPGA SoC의 핵심 동작들을 포착하면서도, 디버깅 및 설계 공간 탐색에 충분히 빠릅니다. Naviq는 C++로 하드닝된 SoC 인프라를 모델링하고 Verilator를 통해 가속기들을 통합하여, 설계자들이 전체 시스템 환경에서 커스텀 하드웨어를 평가할 수 있도록 합니다. Naviq의 중심에는 트랜잭션 순서 지정(transaction ordering), 패킷화(packetization), 라우팅(routing), 백프레셔(backpressure), 메모리 상호작용을 포착하는 AXI4-compliant NoC 모델이 있습니다. 또한, Naviq는 디버깅 및 설계 공간 탐색을 위해 CPU 및 메모리 통합, 프로토콜 검사(protocol checking), 체크포인팅(checkpointing), 트레이싱(tracing), 성능 분석 도구를 제공합니다.
실험 결과에 따르면, Naviq는 Vivado의 RTL NoC 모델의 대역폭과 지연 시간을 매우 근접하게 재현하는 동시에 평가된 시뮬레이션을 81배에서 182배까지 가속화했습니다. 저희는 Naviq의 기능을 입증하는 다섯 가지 사례 연구를 제시합니다. Naviq는 현대 FPGA SoC 설계에 대한 실질적인 전체 시스템 평가를 가능하게 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기