
Aegis est un FPGA entièrement open-source, depuis le silicium jusqu'au sommet de la pile.
Les efforts open-source pour les FPGA ont fait d'énormes progrès : des projets comme Project IceStorm et Apicula rétro-ingénierient des formats de bitstream propriétaires, OpenFPGA et FABulous génèrent des fabrics FPGA ouverts à partir de descriptions d'architecture, et le GateMate de Cologne Chip commercialise un FPGA avec une chaîne d'outils entièrement open-source. Alors que ces projets abordent chacun une partie du puzzle, Aegis est un FPGA open-source complet, de bout en bout : génération du fabric, synthèse, placement-routage, empaquetage de bitstream, simulation et tapeout — tout vit dans un seul projet, conçu dès le départ pour l'open source. Du HDL au GDS, rien n'est derrière un mur propriétaire.
Le projet génère des dispositifs FPGA paramétrables avec des tuiles LUT4, BRAM, DSP, SerDes et de gestion d'horloge, ainsi que tout le nécessaire pour synthétiser des designs utilisateur sur ceux-ci et taper le fabric lui-même vers une fonderie via des PDK ouverts et des services de shuttle comme wafer.space.
Un dispositif Aegis compact ciblant GF180MCU via wafer.space
| Ressource | Nombre |
|---|---|
| Fabric | 23 x 23 tuiles (529 au total) |
| LUT4 (CLB) | 437 |
| BRAM (128x8) | 46 tuiles |
| DSP18 (18x18 MAC) | 46 tuiles |
| Tuiles E/S | 92 (25 bidir câblés) |
| SerDes | 0 |
| Tuiles d'horloge | 1 (4 sorties) |
| Pistes de routage | 1 par bord |
nix build .#luna-1 # Generate IP (SV, JSON, chipdb, techmap)
nix build .#luna-1-tapeout # Full RTL-to-GDS for fab submission
Un dispositif Aegis plus grand ciblant Sky130.
nix build .#terra-1 # Generate IP (SV, JSON, chipdb, techmap)
nix build .#terra-1-tapeout # Full RTL-to-GDS for fab submission
Chaque dispositif reçoit une chaîne d'outils FPGA complète via la sortie tools :
# Synthesize a Verilog design to Aegis cells
yosys -c synth.tcl # using $tools/share/yosys/aegis/*_cells.v + *_techmap.v
# Place and route on the fabric
nextpnr-aegis-terra_1 --json design_mapped.json --write design_pnr.json
# Pack into a bitstream
terra_1-pack --pnr design_pnr.json --output design.bin
# Simulate with the bitstream loaded
terra_1-sim --bitstream design.bin --cycles 1000 --vcd waves.vcd
Le pipeline de tapeout synthétise le fabric FPGA lui-même en cellules standard du PDK :
nix build .#terra-1-tapeout
ls result/
# terra_1_synth.v - gate-level netlist (Yosys)
# terra_1_final.def - placed & routed layout (OpenROAD)
# terra_1.gds - GDS2 for fab submission
# terra_1_layout.png - layout render
# timing.rpt - timing analysis
# power.rpt - power report
Prend en charge les PDK GF180MCU (wafer.space) et Sky130.
Nécessite Nix avec flakes activé.
# Build the default package (aegis-ip-tools)
nix build
# Build Terra 1 IP
nix build .#terra-1
# Run the blinky example as a check
nix build .#checks.$(nix eval --raw nixpkgs#system).terra-1-blinky
# Enter development shell
nix develop
Des images multi-architecture pré-construites sont disponibles depuis le GitHub Container Registry :
docker pull ghcr.io/midstall/aegis-terra_1:latest
# Run with your design directory mounted
docker run -v $(pwd):/workspace -it ghcr.io/midstall/aegis-terra_1:latest
Les images sont taguées par SHA git et version de release (ex. :v1.0.0).
Pour construire localement avec Nix :
nix build .#terra-1-docker
docker load < result
Téléchargez les paquets .deb depuis GitHub Releases (amd64 et arm64) :
sudo dpkg -i aegis-terra-1_*.deb
Cela installe aegis-pack, aegis-sim, nextpnr-generic, des wrappers spécifiques aux dispositifs (terra_1-sim, terra_1-pack, nextpnr-aegis-terra_1), et des fichiers de support sous /usr/share/aegis/.
Pour construire localement avec Nix :
nix build .#terra-1-deb
Le fabric FPGA est généré par ROHD (un framework HDL en Dart) et produit du SystemVerilog synthétisable.
L'architecture suit les conventions de style Xilinx :
La configuration est chargée via une chaîne de registres à décalage série : tuiles d'horloge -> tuiles E/S -> tuiles SerDes -> tuiles fabric (ordre ligne-majeure).
OpenFPGA - Un générateur de IP FPGA open-source de l'Université de l'Utah. Étant donné une description d'architecture XML, il génère du Verilog synthétisable pour un fabric FPGA complet ainsi que des outils de bitstream et une infrastructure d'auto-test. Prouvé sur silicium via le programme POSH de la DARPA.
FABulous - Un framework eFPGA open-source de l'Université de Manchester. Génère un fabric FPGA personnalisé à partir d'une configuration CSV et intègre Yosys et nextpnr. Prouvé sur silicium avec plus de 12 tapeouts sur des nœuds allant du TSMC 180 nm au CMOS 28 nm.
Cologne Chip GateMate - Un FPGA commercial sur GlobalFoundries 28 nm avec une chaîne d'outils entièrement open-source et sans licence, construite sur Yosys, nextpnr et openFPGALoader. Le silicium lui-même est propriétaire, mais il est notable comme l'un des rares FPGA commerciaux à adopter des outils EDA open-source de bout en bout.
| Ressource | Nombre |
|---|
| LUT4 | ~2880 |
| BRAM (128x8) | 128 tuiles |
| DSP18 (18x18 MAC) | 64 tuiles |
| Broches E/S | 224 |
| SerDes | 4 |
| Tuiles d'horloge | 2 (8 sorties) |
| Pistes de routage | 4 par bord |