
Aegis는 실리콘부터 완전한 오픈 소스 FPGA입니다.
오픈 소스 FPGA 노력은 큰 진전을 이루었습니다. Project IceStorm과 Apicula는 독점 비트스트림 포맷을 리버스 엔지니어링하고, OpenFPGA와 FABulous는 아키텍처 설명에서 오픈 FPGA 패브릭을 생성하며, Cologne Chip의 GateMate는 완전한 오픈 소스 툴체인을 갖춘 상용 FPGA를 출시합니다. 이러한 프로젝트들이 각각 퍼즐의 일부를 해결하는 반면, Aegis는 풀스택, 종단 간 오픈 소스 FPGA입니다: 패브릭 생성, 합성, 배치 및 배선, 비트스트림 패킹, 시뮬레이션, 그리고 테이프아웃이 모두 하나의 프로젝트에 있으며, 처음부터 오픈 소스를 위해 설계되었습니다. HDL에서 GDS까지, 독점 벽 뒤에 숨겨진 것은 없습니다.
이 프로젝트는 LUT4, BRAM, DSP, SerDes 및 클럭 관리 타일을 갖춘 매개변수화된 FPGA 디바이스를 생성하며, 사용자 설계를 합성하고, 오픈 PDK 및 wafer.space와 같은 셔틀 서비스를 통해 패브릭 자체를 파운드리로 테이프아웃하는 데 필요한 모든 것을 제공합니다.
wafer.space를 통해 GF180MCU를 대상으로 하는 소형 Aegis 디바이스
| 리소스 | 개수 |
|---|---|
| Fabric | 23 x 23 타일 (총 529개) |
| LUT4 (CLB) | 437 |
| BRAM (128x8) | 46 타일 |
| DSP18 (18x18 MAC) | 46 타일 |
| I/O 타일 | 92 (25개 양방향 본딩) |
| SerDes | 0 |
| 클럭 타일 | 1 (출력 4개) |
| 라우팅 트랙 | 에지당 1개 |
nix build .#luna-1 # IP 생성 (SV, JSON, chipdb, techmap)
nix build .#luna-1-tapeout # 팹 제출을 위한 전체 RTL-to-GDS
Sky130을 대상으로 하는 더 큰 Aegis 디바이스.
nix build .#terra-1 # IP 생성 (SV, JSON, chipdb, techmap)
nix build .#terra-1-tapeout # 팹 제출을 위한 전체 RTL-to-GDS
각 디바이스는 tools 출력을 통해 완전한 FPGA 툴체인을 제공합니다:
# Verilog 설계를 Aegis 셀로 합성
yosys -c synth.tcl # $tools/share/yosys/aegis/*_cells.v + *_techmap.v 사용
# 패브릭에 배치 및 배선
nextpnr-aegis-terra_1 --json design_mapped.json --write design_pnr.json
# 비트스트림으로 패킹
terra_1-pack --pnr design_pnr.json --output design.bin
# 비트스트림을 로드하여 시뮬레이션
terra_1-sim --bitstream design.bin --cycles 1000 --vcd waves.vcd
테이프아웃 파이프라인은 FPGA 패브릭 자체를 PDK 표준 셀로 합성합니다:
nix build .#terra-1-tapeout
ls result/
# terra_1_synth.v - 게이트 수준 넷리스트 (Yosys)
# terra_1_final.def - 배치 및 배선된 레이아웃 (OpenROAD)
# terra_1.gds - 팹 제출용 GDS2
# terra_1_layout.png - 레이아웃 렌더링
# timing.rpt - 타이밍 분석
# power.rpt - 전력 보고서
GF180MCU (wafer.space) 및 Sky130 PDK를 지원합니다.
Flake가 활성화된 Nix가 필요합니다.
# 기본 패키지 빌드 (aegis-ip-tools)
nix build
# Terra 1 IP 빌드
nix build .#terra-1
# blinky 예제를 확인으로 실행
nix build .#checks.$(nix eval --raw nixpkgs#system).terra-1-blinky
# 개발 셸 진입
nix develop
프리빌드된 멀티 아키텍처 이미지는 GitHub Container Registry에서 사용할 수 있습니다:
docker pull ghcr.io/midstall/aegis-terra_1:latest
# 설계 디렉토리를 마운트하여 실행
docker run -v $(pwd):/workspace -it ghcr.io/midstall/aegis-terra_1:latest
이미지는 git SHA 및 릴리스 버전으로 태그가 지정됩니다 (예: :v1.0.0).
Nix로 로컬 빌드:
nix build .#terra-1-docker
docker load < result
GitHub Releases에서 .deb 패키지를 다운로드하세요 (amd64 및 arm64):
sudo dpkg -i aegis-terra-1_*.deb
이 명령은 aegis-pack, aegis-sim, nextpnr-generic, 디바이스별 래퍼 (terra_1-sim, terra_1-pack, nextpnr-aegis-terra_1) 및 /usr/share/aegis/ 아래의 지원 파일을 설치합니다.
Nix로 로컬 빌드:
nix build .#terra-1-deb
FPGA 패브릭은 ROHD (Dart HDL 프레임워크)에 의해 생성되며 합성 가능한 SystemVerilog를 출력합니다. 아키텍처는 Xilinx 스타일의 규칙을 따릅니다:
구성은 직렬 시프트 레지스터 체인을 통해 로드됩니다: 클럭 타일 -> IO 타일 -> SerDes 타일 -> 패브릭 타일 (행 우선).
OpenFPGA - 유타 대학교의 오픈 소스 FPGA IP 생성기. XML 아키텍처 설명이 주어지면 합성 가능한 Verilog로 완전한 FPGA 패브릭과 비트스트림 툴링 및 자체 테스트 인프라를 생성합니다. DARPA의 POSH 프로그램을 통해 실리콘으로 입증되었습니다.
FABulous - 맨체스터 대학교의 오픈 소스 임베디드 FPGA(eFPGA) 프레임워크. CSV 기반 구성에서 맞춤형 FPGA 패브릭을 생성하고 Yosys 및 nextpnr과 통합됩니다. TSMC 180nm에서 28nm CMOS 노드까지 12회 이상의 테이프아웃으로 실리콘 입증되었습니다.
Cologne Chip GateMate - GlobalFoundries 28nm 공정의 상용 FPGA로, Yosys, nextpnr 및 openFPGALoader를 기반으로 완전한 오픈 소스 라이선스 없는 툴체인을 제공합니다. 실리콘 자체는 독점이지만, 종단 간 오픈 소스 EDA 도구를 채택한 몇 안 되는 상용 FPGA 중 하나로 주목할 만합니다.
| 리소스 | 개수 |
|---|
| LUT4 | ~2880 |
| BRAM (128x8) | 128 타일 |
| DSP18 (18x18 MAC) | 64 타일 |
| I/O 패드 | 224 |
| SerDes | 4 |
| 클럭 타일 | 2 (출력 8개) |
| 라우팅 트랙 | 에지당 4개 |