Lord1Egypt/KemetCore
GitHub: Lord1Egypt/KemetCore
KemetCore 是一个开源硅实验室项目,提供从 Python 模型到 7nm GDSII 的十个硬件加速器 IP 及其异构 SoC 集成方案。
Stars: 1 | Forks: 0
# 𓆎 KemetCore — 开源硅实验室
[](LICENSE)
[](https://en.wikipedia.org/wiki/SystemVerilog)
[](https://docs.cocotb.org/)
[](https://verilator.org/)
[](https://yosyshq.net/yosys/)
[](https://github.com/The-OpenROAD-Project/asap7)
[](#)
## KemetCore 理念
| 原则 | 含义 |
|-----------|---------------|
| **Bit-Exact 优先** | 每个 RTL 模块必须在位级别与 Python 黄金参考模型完全匹配。没有容错,没有近似。 |
| **RTL 之前先做 pymodel** | 周期级 Python 模型就是规范。SystemVerilog 只是实现细节。 |
| **不上硅就失败** | 每个项目都以在 ASAP7 7nm 上生成实际的 GDSII 为目标。综合和 P&R 不是可选项。 |
| **诚实的工程** | 公开失败日志,记录变通方案,绝无掩盖的 timing violations。没有纸面秘密。 |
| **100% 测试覆盖率** | 定向边界用例 + 随机模糊测试 + 在可行的情况下进行穷举测试。每个测试都是 CI 的关卡。 |
| **默认可组合** | 每个模块都实现相同的 [KAI](docs/00_RaCore_SoC.md) 接口,因此任何加速器都可以零胶水逻辑地接入 RaCore SoC —— 一个驱动程序,一个测试平台骨架,一套一致性测试套件。 |
## 顶点之作 — RaCore
下面的十个构建模块各自都是一个经过验证、已经流片的加速器。**[RaCore](docs/00_RaCore_SoC.md)** 是让它们成为一台*计算机*的项目:一个异构 AI SoC,通过共享互连、通用加速器接口和后量子信任根,集成了所有十一个核心(下面的十个 + 已完成的 PtahCore)。
| # | 项目 | 领域 | 神明 | 预计复杂度 |
|---|---------|--------|-------|:---:|
| 00 | [**RaCore**](docs/00_RaCore_SoC.md) | **SoC — 全芯片级核心集成** | Ra(至高创世神) | ★★★★★ |
RaCore 添加了任何单一模块都不具备的三个特性:
- **KAI (Kemet Accelerator Interface)** — 每个核心都实现的一个寄存器 + DMA 契约,使得各个模块可以零胶水逻辑并使用一个共享的驱动/测试平台接入 SoC。
- **真正的互连 + 存储层次结构** — NoC,分组的便签式存储器(scratchpad),描述符 DMA:真正的吞吐量保障。
- **后量子安全飞地** — AnubisCore + NeithCore 组合实现安全启动 + 远程证明。
分为两个务实的层级构建:**RaCore-Lite**(约 3.5 mm²,可在 16 GB 内存的笔记本上生成 GDSII)和 **RaCore-Full**(约 16 mm²,真正的流片目标)。
## 十大构建模块
| # | 项目 | 领域 | 神明 | 预计复杂度 |
|---|---------|--------|-------|:---:|
| 01 | [**SethCore**](docs/01_SethCore_RV32IM_CPU.md) | CPU — RV32IM 流水线核心 | Seth(混沌/力量之神) | ★★★★☆ |
| 02 | [**PtahConv**](docs/02_PtahConv_Convolution.md) | ML — 直接卷积加速器 | Ptah(工匠之神) | ★★★☆☆ |
| 03 | [**ImentetCore**](docs/03_ImentetCore_Attention.md) | ML — Transformer attention 单元 | Imentet(欢迎女神) | ★★★☆☆ |
| 04 | [**GebCore**](docs/04_GebCore_SparseMatmul.md) | ML — 2:4 结构化稀疏矩阵乘法 | Geb(大地之神) | ★★★☆☆ |
| 05 | [**BastCore**](docs/05_BastCore_BF16Tensor.md) | ML — BF16 tensor core | Bastet(保护女神) | ★★☆☆☆ |
| 06 | [**AnubisCore**](docs/06_AnubisCore_HashEngine.md) | Crypto — SHA-256/SHA-3 哈希引擎 | Anubis(防腐之神) | ★★☆☆☆ |
| 07 | [**NeithCore**](docs/07_NeithCore_MLKEM.md) | Crypto — ML-KEM (Kyber) 格密码 KEM | Neith(战争/智慧女神) | ★★★★☆ |
| 08 | [**SobekCore**](docs/08_SobekCore_RayTrace.md) | Graphics — 光线-三角形相交器 | Sobek(尼罗河之神) | ★★★☆☆ |
| 09 | [**HapiCore**](docs/09_HapiCore_FPU.md) | Arithmetic — IEEE-754 FPU 生成器 | Hapi(尼罗河泛滥之神) | ★★☆☆☆ |
| 10 | [**AtumCore**](docs/10_AtumCore_RVV.md) | CPU — RISC-V Vector Extension v1.0 | Atum(创世神) | ★★★★★ |
## 项目对比矩阵
| 指标 | SethCore | PtahConv | ImentetCore | GebCore | BastCore | AnubisCore | NeithCore | SobekCore | HapiCore | AtumCore |
|--------|:--------:|:--------:|:-----------:|:-------:|:--------:|:----------:|:---------:|:---------:|:--------:|:--------:|
| **RTL 模块** | ~25 | ~12 | ~10 | ~8 | ~10 | ~6 | ~15 | ~8 | ~8 | ~20+ |
| **测试(估计)** | ~80 | ~40 | ~35 | ~30 | ~35 | ~25 | ~50 | ~35 | ~60 | ~100+ |
| **Fmax 目标** | 500 MHz | 250 MHz | 250 MHz | 250 MHz | 250 MHz | 1 GHz | 200 MHz | 500 MHz | 500 MHz | 500 MHz |
| **门数** | ~50K | ~6M | ~3M | ~4M | ~4M | ~15K | ~100K | ~30K | ~30K | ~100K+ |
| **GDSII 面积** | ~0.1 mm² | ~3 mm² | ~1.5 mm² | ~2 mm² | ~2 mm² | ~0.05 mm² | ~0.3 mm² | ~0.08 mm² | ~0.1 mm² | ~0.5 mm² |
| **依赖于 PtahCore** | 否 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 是 |
| **相比现有技术的创新度** | ★★★ | ★★★★ | ★★★ | ★★★★ | ★★ | ★★ | ★★★ | ★★★ | ★★ | ★★★ |
## 这一切如何融为一体
```
┌──────────── RaCore SoC (capstone) ───────────┐
│ │
CPU complex ──▶ │ SethCore (RV32IM) + AtumCore (RVV vector) │
│ │ │
│ ┌───────▼────────┐ │
shared fabric ─▶ │ │ KAI NoC + DMA │ │
│ └───────┬────────┘ │
│ ┌──────────────┼───────────────┐ │
ML cluster ──▶ │ PtahCore Bast PtahConv Geb Imentet │ Sobek │
│ (FP8) (BF16)(conv)(sparse)(attn) │ (gfx) │
│ │ │
security ──▶ │ AnubisCore + NeithCore = PQ root of trust │
shared math ─▶ │ HapiCore (FPU library, used everywhere) │
└──────────────────────────────────────────────┘
```
每个模块都使用 **KAI**,因此同一个主机驱动程序和同一个 cocotb 测试平台骨架就可以驱动所有模块。集成成本随*模块数量*的增加而增加,而不是随*门数*的增加——RaCore 将每个加速器一次性硬化为宏单元(macro),然后只布线顶层结构。详见 [docs/00_RaCore_SoC.md](docs/00_RaCore_SoC.md)。
## 验证方法
KemetCore 中的每个项目都遵循相同的 4 层验证体系:
```
Layer 4: SILICON — GDSII signoff (DRC clean, timing closed)
↑
Layer 3: RTL TESTS — cocotb + Verilator (52–100+ tests per project)
↑
Layer 2: PYMODE L — Cycle-level Python model (bit-exact vs golden)
↑
Layer 1: GOLDEN — Pure numpy golden reference (the mathematical truth)
```
**所有项目使用的工具:**
- **黄金模型:** Python 3.11+, numpy, scipy(视需要)
- **pymodel:** 纯 Python 结合 dataclasses 实现,无硬件依赖
- **RTL:** SystemVerilog (IEEE 1800-2017)
- **仿真:** Verilator 5 结合 cocotb 1.9+
- **综合:** Yosys
- **P&R:** OpenROAD-flow-scripts (ORFS) 基于 ASAP7 7nm PDK
- **CI:** GitHub Actions
## 目前的进展
PtahCore —— 即 FP8 tensor 加速器 —— 已经完成,并作为其他项目的蓝图:
- ✅ 跨越 golden/, pymodel/, rtl/, synth/, flow/, docs/ 目录的 112 个文件
- ✅ 89 个测试(52 个 RTL + 37 个 Python),全部通过
- ✅ 通过 Yosys 综合,0 锁存器
- ✅ 基于 ASAP7 的 5 个 GDSII 宏单元:mac_cell, mac_tile, mac_row, mac_row_abut, mac_grid
- ✅ 32×32 阵列:2.27 mm²,250 MHz,DRC 无错,setup 时间余量 +1156 ps
KemetCore 中的所有项目都将继承这套方法和工具链。
## 新手上路
```
# 前提条件
python 3.11+ # Golden models + pymodels
verilator 5 # RTL simulation
cocotb 1.9+ # Testbench framework
yosys # Synthesis
openroad # Place & route (via ORFS Docker)
# Clone 和探索
git clone https://github.com/Lord1Egypt/KemetCore.git
cd KemetCore
# 运行每个项目的 Phase 0/1 golden+pymodel 测试(纯 Python,<0.5 GB RAM)
pip install numpy pytest
pytest projects/ -q # 54 tests across all 11 cores
python tools/test_all.py # same, with a per-run summary
# 跟踪 / 恢复工作
cat PROGRESS.md # master roadmap + mapping + RAM budget + resume guide
python tools/gen_tracking.py # regenerate all tracking docs from tools/manifest.py
```
## 状态:阶段 0/1 已上线,阶段 2+(RTL→GDSII)已规划
全部 11 个核心中的每一个都拥有一个**位级精确的黄金参考模型**,以及一个完全用纯 Python 实现的**周期/通道/轮次 pymodel**,并且通过了测试 —— 内存占用极小,今天就能运行。
内存消耗巨大的 RTL→GDSII 阶段已完成规划但尚未启动。有关完整的矩阵、每个项目的 `STEPS.md` / `CHECKPOINTS.md` / `TESTS.md`,以及各阶段的内存预算,请参阅 **[PROGRESS.md](PROGRESS.md)**。
## 项目生命周期
每个项目都会经历 6 个阶段:
```
Phase 0: Spec & Golden — Architecture document, golden reference in numpy
Phase 1: pymodel — Cycle-level behavioral model, pymodel tests
Phase 2: RTL — SystemVerilog implementation, cocotb tests
Phase 3: Synthesis — Yosys elaboration, gate count, latch checks
Phase 4: P&R — OpenROAD floorplan → GDSII
Phase 5: Signoff — Timing closure, DRC clean, CI pipeline
```
有关所有项目的当前状态,请参阅 [ROADMAP.md](ROADMAP.md)。
## 许可证
除非另有说明,KemetCore 中的所有项目均基于 [MIT 许可证](LICENSE) 发布。
## 关于作者
由 [Mohamed Mounir](https://github.com/Lord1Egypt) 构建。技术栈:Debian → SystemVerilog → Go → Python。坚信开源芯片、埃及神话命名体系,以及将一切测试直到彻底崩溃。
标签:AI芯片, RISC-V, SystemVerilog, 开源芯片, 数字集成电路设计, 硬件加速器, 硬件验证, 逆向工具