Simantic, 하드웨어 없이 펌웨어 검증하는 Rust 시뮬레이터 공개

Hacker News그저께

펌웨어 개발에서 가장 느린 구간은 코드를 쓰는 일이 아니라 그 코드가 실제 칩에서 돌아가는지 확인하는 일이다. YC F26 배치로 참여한 Simantic은 이 구간을 하드웨어 없이 처리하겠다는 목표로 시뮬레이션 레이어를 공개했다. 창업자 Ahnaf와 Seungmin은 Neuralink와 Tesla에서 펌웨어 엔지니어로 일했고, Cybertruck과 Roadster가 프로토타입 단계이던 시절의 개발을 경험했다.

핵심 제품은 세 갈래다. 터미널을 벗어나지 않고 API 호출 한 번으로 프로그램을 올려 실행할 수 있는 가상 개발보드, 시뮬레이션을 검증 엔진 삼아 펌웨어 코드 리뷰를 수행하는 AI 봇, 그리고 커밋이 발생할 때마다 마이크로컨트롤러의 시뮬레이션 모델 상에서 펌웨어를 검증하는 CI/CD 파이프라인이다. 리뷰 봇은 GitHub 저장소에 바로 붙여 쓸 수 있고, 클라우드 시뮬레이터는 현재 사용 가능하다. 개발자 플랜 라이선스에는 로컬에서 제한 없이 돌릴 수 있는 네이티브 바이너리도 포함된다.

지원 범위는 STM32F0·F4·H7 계열 일부 모델과 ESP32-S3/C3, RP2040이다. 창업자들은 매주 새 모델을 추가하고 기존 모델의 정확도를 끌어올리는 작업을 병행한다고 설명했다. 사용처는 베어메탈과 RTOS 기반 개발로, 비행 컨트롤러나 전기차, 로봇, 위성 같은 분야가 포함된다. 위성을 준비하던 초기 단계 스타트업은 아직 손에 넣지 못한 하드웨어용 펌웨어를 검증하는 데 이 시뮬레이터를 활용했다. 해당 위성의 개발용 모듈 가격은 10만 달러를 넘었지만, 비용과 시간을 100분의 1 수준으로 줄였다는 것이 이들의 주장이다.

출발점은 오픈소스 에뮬레이터였다. Renode를 감싸는 형태로 MVP를 만들었지만 곧 한계에 부딪혔다. Renode 자체의 개발 속도에 병목이 걸렸고, Github에 기여해 고친 문제가 합쳐지기를 기다릴 여유가 없었다. Dotnet 기반 구현의 성능도 기대에 못 미쳤고, 쓰지도 않을 기능이 두터운 구조를 걷어내기도 어려웠다. 무엇보다 타이밍 정확도가 중요한 시스템을 만드는 사용자들이 시뮬레이션 결과를 신뢰하지 못했다.

그래서 시뮬레이션 엔진을 Rust로 처음부터 다시 썼다. 설계 축은 확장성이 아니라 정확도다. 오픈소스 프레임워크가 다양한 모델을 넓게 지원하는 데 무게를 두는 것과 달리, 소수의 모델을 깊게 파는 쪽을 택했다. 이를 뒷받침하려고 24시간 상시 가동되는 하드웨어 검증 리그도 직접 운영한다. 개발보드를 Saleae 로직 분석기와 SWD 버스에 연결하고 리눅스 PC로 제어하면서, 실제 칩과 시뮬레이션 사이의 차이를 계속 찾아내는 구조다.

실무 관점에서 눈에 띄는 변화는 검증 루프의 길이다. AI 에이전트가 펌웨어를 몇 초 만에 작성해도, 예전에는 보드에 이미지를 굽고 십여 년 된 도구를 손으로 돌려야 했다. 시뮬레이션이 그 자리를 대신하면 에이전트가 스스로 테스트를 돌리고 결과를 근거로 판단할 수 있다. 펌웨어 쪽에서도 코드 생성이 아니라 검증 대기열이 병목이 되던 구조를 겨냥한 셈이다.

다만 시장은 파편화되어 있고, 임베디드 툴 체인에는 오래된 강자가 버티고 있다. 창업자들은 벤더마다 다른 미세한 동작 차이가 실제 현장에서 매일 새로 발견된다고 말한다. 데이터시트나 에라타 문서에도 없는 컨트롤러 동작이 있다는 것이다. 실리콘 검증 벤치마크는 아직 공개되지 않았고, 앞으로 몇 달 안에 공개하겠다는 계획만 제시됐다. 지원 모델 목록을 문서에서 찾기 어렵다는 지적도 런치 스레드에서 나왔다.