埃吉斯 – 开源 FPGA 硅
Aegis – open-source FPGA silicon

原始链接: https://github.com/MidstallSoftware/aegis

## Aegis:一个完全开源的FPGA Aegis是一个开创性的项目,旨在创建一个完全开源的FPGA——从硅设计到工具链。与依赖逆向工程或封闭硅的现有开源FPGA项目不同,Aegis从开放的结构设计开始,并利用开放的PDK和wafer.space等服务进行制造。 该项目生成参数化的FPGA器件,具有LUT4、BRAM、DSP、SerDes和时钟管理模块。一个完整的工具链,使用Yosys和nextpnr-aegis等工具构建,允许用户为这些FPGA合成、布局、布线和仿真设计。 目前目标是GF180MCU,第一个器件(“Terra 1”)拥有约2880个LUT4、128个BRAM模块和64个DSP模块。整个过程,包括向晶圆厂的胶带输出,都通过Nix自动化,生成一个准备好用于制造的GDS2文件。Aegis利用ROHD,一个Dart HDL框架,生成可综合的SystemVerilog,模仿Xilinx风格的架构。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Aegis – 开源 FPGA 硅 (github.com/midstallsoftware) 6 分,由 rosscomputerguy 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

Aegis is a fully open-source FPGA, from the silicon up.

Existing open-source FPGA efforts either reverse-engineer proprietary architectures (Project IceStorm, Apicula) or build tooling around closed silicon (Yosys, nextpnr). The silicon itself has always been proprietary. Aegis starts at the other end: the fabric design is open, the toolchain is open, and the path to real silicon goes through open PDKs and shuttle services like wafer.space.

The project generates parameterized FPGA devices with LUT4, BRAM, DSP, SerDes, and clock management tiles, along with everything needed to synthesize user designs onto them and tape out the fabric itself to a foundry.

The first Aegis device, targeting GF180MCU via wafer.space.

Resource Count
LUT4 ~2880
BRAM (128x8) 128 tiles
DSP18 (18x18 MAC) 64 tiles
I/O pads 224
SerDes 4
Clock tiles 2 (8 outputs)
Routing tracks 4 per edge
nix build .#terra-1          # Generate IP (SV, JSON, chipdb, techmap)
nix build .#terra-1-tapeout  # Full RTL-to-GDS for fab submission

Each device gets a complete FPGA toolchain via the tools output:

# 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

The tapeout pipeline synthesizes the FPGA fabric itself to PDK standard cells:

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

Supports GF180MCU (wafer.space) and Sky130 PDKs.

Requires Nix with flakes enabled.

# 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

The FPGA fabric is generated by ROHD (a Dart HDL framework) and outputs synthesizable SystemVerilog. The architecture follows Xilinx-style conventions:

  • CLB: LUT4 + D flip-flop + MUXCY carry chain (18-bit config)
  • Tile: CLB + 4-directional routing muxes (46-bit config)
  • BRAM: Dual-port 128x8 block RAM (8-bit config)
  • DSP: 18x18 multiply-accumulate with optional pipeline (16-bit config)
  • IO: Bidirectional pad with input/output registers (8-bit config)
  • SerDes: Protocol-agnostic serializer/deserializer (32-bit config)
  • Clock: 4-output clock divider with phase control (49-bit config)

Configuration is loaded via a serial shift register chain: clock tiles -> IO tiles -> SerDes tiles -> fabric tiles (row-major).

联系我们 contact @ memedata.com