Skip to content

Commit 6ed3684

Browse files
feat: use librelane
1 parent fae06fa commit 6ed3684

29 files changed

Lines changed: 2105 additions & 417 deletions

README.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@ foundry via open PDKs and shuttle services like
2323
### Aegis Luna 1
2424

2525
A compact Aegis device targeting GF180MCU via [wafer.space](https://wafer.space)
26-
(1x1 Full slot, 3.93 x 5.12mm die).
2726

28-
| Resource | Count |
29-
|-------------------|---------------|
30-
| LUT4 | ~760 |
31-
| BRAM (128x8) | 40 tiles |
32-
| DSP18 (18x18 MAC) | 40 tiles |
33-
| I/O pads | 118 |
34-
| SerDes | 1 |
35-
| Clock tiles | 1 (4 outputs) |
36-
| Routing tracks | 1 per edge |
27+
| Resource | Count |
28+
|-------------------|---------------------------|
29+
| Fabric | 23 x 23 tiles (529 total) |
30+
| LUT4 (CLB) | 437 |
31+
| BRAM (128x8) | 46 tiles |
32+
| DSP18 (18x18 MAC) | 46 tiles |
33+
| I/O tiles | 92 (25 bonded bidir) |
34+
| SerDes | 0 |
35+
| Clock tiles | 1 (4 outputs) |
36+
| Routing tracks | 1 per edge |
3737

3838
```bash
3939
nix build .#luna-1 # Generate IP (SV, JSON, chipdb, techmap)
@@ -84,12 +84,12 @@ The tapeout pipeline synthesizes the FPGA fabric itself to PDK standard cells:
8484
```bash
8585
nix build .#terra-1-tapeout
8686
ls result/
87-
# terra_1_synth.v gate-level netlist (Yosys)
88-
# terra_1_final.def placed & routed layout (OpenROAD)
89-
# terra_1.gds GDS2 for fab submission
90-
# terra_1_layout.png layout render
91-
# timing.rpt timing analysis
92-
# power.rpt power report
87+
# terra_1_synth.v - gate-level netlist (Yosys)
88+
# terra_1_final.def - placed & routed layout (OpenROAD)
89+
# terra_1.gds - GDS2 for fab submission
90+
# terra_1_layout.png - layout render
91+
# timing.rpt - timing analysis
92+
# power.rpt - power report
9393
```
9494

9595
Supports GF180MCU (wafer.space) and Sky130 PDKs.
@@ -175,20 +175,20 @@ clock tiles -> IO tiles -> SerDes tiles -> fabric tiles (row-major).
175175

176176
## Related Projects
177177

178-
- **[OpenFPGA](https://github.com/lnis-uofu/OpenFPGA)** An open-source FPGA
178+
- **[OpenFPGA](https://github.com/lnis-uofu/OpenFPGA)** - An open-source FPGA
179179
IP generator from the University of Utah. Given an XML architecture
180180
description, it generates synthesizable Verilog for a complete FPGA fabric
181181
along with bitstream tooling and self-testing infrastructure. Silicon-proven
182182
through DARPA's POSH program.
183183

184-
- **[FABulous](https://github.com/FPGA-Research-Manchester/FABulous)** An
184+
- **[FABulous](https://github.com/FPGA-Research-Manchester/FABulous)** - An
185185
open-source embedded FPGA (eFPGA) framework from the University of Manchester.
186186
Generates custom FPGA fabric from CSV-based configuration and integrates Yosys
187187
and nextpnr. Silicon-proven with 12+ tapeouts across nodes from TSMC 180nm
188188
down to 28nm CMOS.
189189

190190
- **[Cologne Chip GateMate](https://colognechip.com/programmable-logic/gatemate/)**
191-
A commercial FPGA on GlobalFoundries 28nm with a fully open-source,
191+
- A commercial FPGA on GlobalFoundries 28nm with a fully open-source,
192192
license-free toolchain built on Yosys, nextpnr, and openFPGALoader. The
193193
silicon itself is proprietary, but it is notable as one of the few commercial
194194
FPGAs to embrace open-source EDA tools end-to-end.

devices.nix

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,25 @@
2323
luna-1 = {
2424
ip = aegis-ip-tools.mkIp {
2525
deviceName = "luna_1";
26-
width = 19;
27-
height = 40;
26+
width = 23;
27+
height = 23;
2828
tracks = 1;
29-
serdesCount = 1;
30-
bramColumnInterval = 9;
31-
dspColumnInterval = 10;
29+
serdesCount = 0;
30+
bramColumnInterval = 7;
31+
dspColumnInterval = 8;
3232
clockTileCount = 1;
3333
};
3434
tapeout = {
3535
pdk = gf180mcu-pdk;
3636
clockPeriodNs = 20;
37+
dieWidthUm = 3930;
38+
dieHeightUm = 5120;
3739
fabSlot = "1x1";
38-
tilePlacementDensities = {
39-
Tile = 0.6;
40-
ClockTile = 0.6;
40+
tileDieSizes = {
41+
Tile = {
42+
w = 100;
43+
h = 150;
44+
};
4145
};
4246
};
4347
};

flake.lock

Lines changed: 122 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)