TL;DR

  • CERN이 순수 VHDL-2008 RTL 구성요소 100개 이상과 자체 검사 테스트벤치 및 가능한 경우 형식 검증을 제공하는 colibri를 전 세계 FPGA 커뮤니티에 공개함.
  • CERN 개발자 그룹이 프로젝트 간 게이트웨어 이식성을 높이기 위해 약 4년 전 개발을 시작함.
  • colibri의 세 가지 원칙은 오픈 소스, 벤더 독립성, 검증임.
  • FIFO·RAM 같은 메모리부터 고급 데이터 조작까지 폭넓은 기능을 다루며, 라이브러리를 적극적으로 유지보수하고 새 구성요소를 정기적으로 추가함.
  • LHCb 실험 데이터 수집팀의 업그레이드에 처음 도입된 뒤 CERN 외부를 포함한 10개 이상의 프로젝트에서 사용 중이며, CERN이 전 세계 FPGA 프로젝트에서 사용하고 기여할 수 있도록 공개함.

개발 배경

  • CERN의 개발자 그룹은 약 4년 전 프로젝트 간 게이트웨어(gateware) 이식성을 개선하는 방안을 조사하기 시작함.
  • 당시 CERN의 게이트웨어 설계자들은 대부분 자체 제작 도구를 사용했으며, 이로 인해 불필요한 유지보수 부담이 늘고 설계와 디버깅 과정이 느려짐.
  • 여러 공급업체의 FPGA를 사용하는 상황도 복잡성을 더했으며, 이는 CERN에서 다양한 프로젝트를 개발하는 데 주로 기인함.
  • 최근 FPGA 게이트웨어 개발 분야에서 다수의 오픈 소스 도구가 등장하자 CERN EP 부서는 이를 조직 전반의 FPGA 설계를 통합하고 표준화할 기회로 판단함.
  • 이러한 배경에서 colibri 라이브러리가 개발됨.

세 가지 핵심 원칙

  • 오픈 소스: 펌웨어 개발 커뮤니티가 colibri를 사용하고 기여할 수 있도록 CERN Open Hardware Licence – Weakly Reciprocal 2.0을 선택함.
  • 벤더 독립성: 특정 환경에 종속되지 않고 서로 다른 플랫폼에서 설계를 동시에 평가할 수 있으며, 하드웨어와 소프트웨어 도구를 혼합해 사용하는 경우에도 적용됨.
  • 검증: 자체 검사 테스트벤치와 형식 검증(formal verification)을 모두 구현함. 형식 검증은 FPGA 분야에서 비교적 새로운 방식이며, 신뢰할 수 있는 견고한 라이브러리를 제공하는 것이 검증의 목표임.

라이브러리 구성과 검증

  • colibri는 순수 VHDL-2008로 작성된 RTL 구성요소 100개 이상을 제공함.
  • 구성요소에는 자체 검사 테스트벤치가 포함되며, 가능한 경우 형식 검증 하니스(formal verification harness)도 제공됨.
  • 지원하는 기능은 FIFO와 RAM 같은 기본 메모리부터 고급 데이터 조작까지 다양함.
  • 라이브러리를 적극적으로 유지보수하며 새 구성요소를 정기적으로 추가함.

도입 현황과 공개

  • colibri를 처음 도입한 곳은 향후 업그레이드를 준비하는 LHCb 실험 데이터 수집팀임.
  • 현재 CERN 외부 프로젝트까지 포함해 10개 이상의 프로젝트에서 colibri를 사용 중임.
  • colibri 개발은 CERN EP R&D 프로그램의 WP 9.3 – Gateware Portability Frameworks 지원을 받음.
  • 개발 4주년을 맞아 CERN이 colibri를 전 세계 FPGA 커뮤니티에 공개했으며, 각 프로젝트에서 사용하고 원하는 경우 기여할 수 있도록 함.