Show HN: Atopile – 코드로 회로 기판 설계하기
요약
atopile은 전자 회로 설계를 코드로 기술할 수 있게 해주는 오픈 소스 언어 및 툴체인입니다. 기존의 수동적인 하드웨어 설계 방식에서 벗어나, 소프트웨어 개발처럼 모듈화, 재사용, 컴파일이 가능한 'ato' 언어를 통해 PCB 설계를 자동화하고 효율화하는 것을 목표로 합니다.
핵심 포인트
- 하드웨어 설계를 위한 'ato' 언어 및 컴파일러 툴체인 제공
- 회로를 모듈, 컴포넌트, 인터페이스 단위로 추상화하여 설계 가능
- 컴파일러가 넷리스트(Netlist) 생성 및 범용 부품 선택 지원
- 소프트웨어의 빌드, 테스트, 머지 워크플로우를 하드웨어 설계에 도입
- 현재 PCB 설계를 타겟으로 하며, 레이아웃 재사용 및 수학적 관계 추가 기능 개발 중
안녕하세요 HN 여러분! 저희는 atopile의 창립자들입니다. 저희는 코드로 전자 공학을 기술할 수 있는 도구를 만들고 있습니다. 여기 짧은 데모 영상이 있습니다:
오직 어셈블리 (Assembly) 코드만 사용하여 전체 소프트웨어 제품을 만드는 고통을 상상해 보셨나요? 하드웨어를 설계할 때 저희가 느꼈던 감정이 바로 그러했습니다. 현재 저희에게는 필요한 것을 기술하고, 기존 설계를 재사용하며, 그 기술 내용을 제품으로 컴파일 (Compile) 할 수 있는 좋은 방법이 없습니다.
저희는 이 문제를 해결하기 위해 atopile을 시작했습니다. atopile은 코드로 회로를 기술하기 위한 오픈 소스 (Open-source) 언어 및 툴체인 (Toolchain) 입니다. 컴파일러는 여기에서 확인하실 수 있습니다: https://github.com/atopile/atopile. 문서는 여기 있습니다: https://atopile.io/getting-started/ . ESP32 모듈을 설계하는 상세한 심층 분석은 이 영상을 참조하세요: https://youtu.be/eMWRwZOajdQ
저희는 이전 직장에서도 이것이 문제라는 것을 깨달았습니다. Narayan과 저(Tim)는 모든 전자 회로 기판을 수동으로 그리고 내보내야(Export) 했습니다. 이 상황은 소프트웨어 엔지니어인 저희 친구 Matt이 자신의 개발 워크플로우 (Workflow) 를 보여주기 전까지 지속되었습니다. 그의 모든 프로젝트는 GitHub를 통해 자동으로 빌드(Build), 테스트(Test), 머지(Merge) 되었습니다. 그래서 저희는 질문했습니다. '하드웨어를 위해서도 똑같은 것을 만들 수 있을까?'
저희는 전자 공학을 효과적으로 추상화 (Abstract) 하는 능력은 요구 사항을 기술하기 위한 언어를 사용하는 것에 달려 있다는 것을 관찰했고, 이에 따라 “ato” 언어를 고안했습니다. ato에서는 회로를 모듈 (Module), 컴포넌트 (Component), 인터페이스 (Interface)로 나눌 수 있습니다. 이러한 블록들을 서로 중첩하거나 연결할 수 있습니다. 다음은 RP2040 마이크로컨트롤러 (Microcontroller)를 사용한 예시입니다:
import RP2040Kit from "rp2040/RP2040Kit.ato"
import LEDIndicatorBlue from "generics/leds.ato"
import LDOReg3V3 from "regulators/regulators.ato"
...
그다음 단계에서 컴파일러는 회로가 어떻게 연결되는지 기술하는 넷리스트 (Netlist) 를 생성하고, 여러분을 위해 범용 부품 (Jelly-bean components) 을 선택해 줍니다 (https://atopile.io/blog/2024/01/31/cloud-components/). 저희의 다음 목표는 레이아웃 (Layout) 재사용, 값 사이의 수학적 관계 추가, 그리고 트레이트 (Trait, Rust의 트레이트와 유사)를 통한 회로 정의를 추가하는 것입니다.
현재 atopile는 저복잡도에서 중복잡도 사이의 모든 유형의 인쇄 회로 기판 (PCB) 설계를 목표로 하고 있습니다. 컴파일러가 처리할 수 있는 회로 복잡도는 실제 생산 환경 (production usage)에 적합해질 때까지 꾸준히 증가할 것입니다. 우리는 컴파일러가 PCB가 아닌 칩 설계 (chip design)를 위한 것이 아니냐는 질문을 자주 받지만, 그렇지 않습니다. 이 언어는 PCB 전용입니다. 적어도 지금은 말이죠..!
소프트웨어 커뮤니티가 이토록 풍요로운 이유 중 큰 부분은 오픈 소스 (open source)와 오픈 코어 (open core) 기술 덕분입니다. 소프트웨어 패키지를 서로 공유하고 도구들을 효율적으로 체이닝 (chaining)할 수 있는 능력은 소프트웨어 세상을 개발자들에게 멋진 곳으로 만들었습니다. 하드웨어 엔지니어로서, 우리 분야 또한 이러한 혜택을 누릴 수 있기를 바랍니다. 그것이 바로 우리가 atopile의 코어를 오픈 소스 (Apache 2.0)로 공개한 이유입니다. 우리는 GitLab과 유사하게 기업 대상 기능을 판매함으로써 수익을 창출할 계획입니다.
컴파일러에 대한 여러분의 의견을 듣고 싶습니다! 여러분의 전자 공학 이야기는 무엇인가요? 저희가 무엇을 만들어 주기를 바라시나요?
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기