Skip to main content
QUICK REVIEW

[논문 리뷰] LiteX: an open-source SoC builder and library based on Migen Python DSL

Florent Kermarrec, Sébastien Bourdeauducq|arXiv (Cornell University)|2020. 05. 05.
Embedded Systems Design Techniques참고 문헌 11인용 수 9
한 줄 요약

LiteX는 Migen의 파이썬 기반 내부 도메인 특화 언어(DSL)를 사용하여 FPGA 설계를 간소화하는 오픈소스, BSD 라이선스 기반 SoC 빌더 및 IP 라이브러리입니다. RISC-V 및 LM32 코어의 네이티브 지원을 통해 하드웨어-소프트웨어 공동 설계를 가능하게 하며, Lattice ECP5 FPGA에서 Trellis, Yosys, Nextpnr를 사용해 종단 간 오픈소스 도구 체인 통합을 구현합니다. 이로 인해 비상업적 도구를 사용하지 않고도 약 14분 내로 합성 작업을 완료합니다.

ABSTRACT

LiteX is a GitHub-hosted SoC builder / IP library and utilities that can be used to create SoCs and full FPGA designs. Besides being open-source and BSD licensed, its originality lies in the fact that its IP components are entirely described using Migen Python internal DSL, which simplifies its design in depth. LiteX already supports various softcores CPUs and essential peripherals, with no dependencies on proprietary IP blocks or generators. This paper provides an overview of LiteX: two real SoC designs on FPGA are presented. They both leverage the LiteX approach in terms of design entry, libraries and integration capabilities. The first one is based on RISC-V core, while the second is based on a LM32 core. In the second use case, we further demonstrate the use of a fully open-source toolchain coupled with LiteX.

연구 동기 및 목표

  • 파이썬 기반 하드웨어 기술 기술을 기반으로 한 완전한 오픈소스, 재사용 가능하고 조합 가능한 SoC 설계 워크플로우를 제공하기 위해.
  • FPGA 시스템온칩 개발에서 전문 소유 IP나 EDA 도구에 대한 의존도를 제거하기 위해.
  • FPGA 기반 SoC 합성 및 비트스트림 생성을 위한 종단 간 오픈소스 도구 체인 지원을 입증하기 위해.
  • 고수준이고 조합 가능한 DSL을 통해 소프트코어 CPU, 메모리 컨트롤러, 주변기기 간의 원활한 통합을 가능하게 하기 위해.
  • 재사용 가능한 추상화된 IP 구성 요소와 자동화된 저수준 세부 사항(예: CDC, 버스 폭 변환)을 통해 FPGA 개발에서 플랫폼 기반 설계를 촉진하기 위해.

제안 방법

  • Migen의 파이썬 기반 내부 도메인 특화 언어(DSL)를 활용해 고수준 추상화 수준에서 RTL 컴포넌트와 시스템 인터커넥트를 기술합니다.
  • 모듈러한 SoC 빌더 프레임워크를 사용해 RISC-V 및 LM32 프로세서, DDR3/SDRAM 컨트롤러, HDMI 출력, 주변기기 등의 IP 코어를 인스턴스화하고 연결합니다.
  • 클록 도메인 크로싱(CDC), 버스 폭 변환, 메모리 컨트롤러 설정과 같은 저수준 설계 복잡성을 자동으로 처리합니다.
  • Vivado나 오픈소스 워크플로우와 같은 후속 합성 및 배치-라우팅 도구에서 사용 가능한 표준 Verilog RTL 및 XDC 제약 파일을 생성합니다.
  • Trellis, Yosys, Nextpnr와 같은 오픈소스 EDA 도구체인과 통합하여 상용 도구 없이도 비트스트림 생성을 가능하게 합니다.
  • 컴ponent들이 파이썬 클래스와 메서드 체이닝을 통해 조합되는 계층적이고 객체 지향적인 설계 패턴을 사용하여, 읽기 쉽고 유지보수 가능한 SoC 정의를 가능하게 합니다.

실험 결과

연구 질문

  • RQ1파이썬 기반 내부 DSL이 복잡하고 재사용 가능한 FPGA 기반 SoC 설계의 생성을 상당히 단순화할 수 있는가?
  • RQ2Trellis, Yosys, Nextpnr와 같은 오픈소스 EDA 도구체인이 Vivado와 같은 상용 도구를 얼마나 잘 대체할 수 있는가?
  • RQ3고수준 DSL에서 저수준 FPGA 설계 과제(예: CDC, 클록 도메인 관리, 메모리 인터페이스 적응)의 자동 처리가 얼마나 효과적인가?
  • RQ4RISC-V 및 LM32 코어를 지원하는 완전한 오픈소스, BSD 라이선스 기반 SoC 프레임워크인 LiteX가 상용 솔루션과 동등한 생산 수준의 신뢰성과 성능을 달성할 수 있는가?
  • RQ5수작업으로 작성된 Verilog/VHDL에 비해 RTL 생성을 위한 고수준 파이썬 DSL 사용 시 성능 오버헤드는 어느 정도인가?

주요 결과

  • LiteX는 전용 IP나 EDA 소프트웨어에 의존하지 않고도 오픈소스 도구와 파이썬 기반 DSL만으로도 복잡한 기능을 갖춘 FPGA SoC 설계를 생성할 수 있습니다.
  • LM32 프로세서, SDRAM 컨트롤러 및 주변기기 기반의 전체 SoC가 오픈소스 도구체인(Trellis, Yosys, Nextpnr)을 사용해 약 14분 내로 성공적으로 합성되었습니다.
  • 프레임워크는 제공된 핀아웃 및 타이밍 파ameters를 기반으로 클록 도메인 크로싱(CDC), 버스 폭 변환, DDRPHY 설정과 같은 복잡한 작업을 자동으로 처리합니다.
  • LiteX와 오픈소스 EDA 스택의 통합은 전체 FPGA 설계 워크플로우가 완전히 재현 가능하고 투명하며 커뮤니티 유지보수 가능하다는 것을 입증합니다.
  • LiteX는 RISC-V 및 LM32와 같은 여러 소프트코어 CPU와 핵심 주변기기를 지원하여 ROM 또는 SDRAM에서의 전체 시스템 부팅 및 실행을 가능하게 하였으며, LM32 기반 설계에서 이를 입증하였습니다.
  • Migen의 DSL 사용은 RTL 개발 복잡성을 감소시키고 코드 유지보수성을 향상시켜 다양한 FPGA 플랫폼 간 빠른 프로토타이핑과 재사용을 가능하게 합니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.