Lord1Egypt/KemetCore

GitHub: Lord1Egypt/KemetCore

KemetCore 是一个开源硅实验室项目,提供从 Python 模型到 7nm GDSII 的十个硬件加速器 IP 及其异构 SoC 集成方案。

Stars: 1 | Forks: 0

# 𓆎 KemetCore — 开源硅实验室 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![RTL](https://img.shields.io/badge/RTL-SystemVerilog-3480c0)](https://en.wikipedia.org/wiki/SystemVerilog) [![Verification](https://img.shields.io/badge/Verification-cocotb-00c853)](https://docs.cocotb.org/) [![Simulation](https://img.shields.io/badge/Simulation-Verilator-ff6d00)](https://verilator.org/) [![Synthesis](https://img.shields.io/badge/Synthesis-Yosys-2196f3)](https://yosyshq.net/yosys/) [![PDK](https://img.shields.io/badge/PDK-ASAP7%207nm-9c27b0)](https://github.com/The-OpenROAD-Project/asap7) [![Status](https://img.shields.io/badge/Status-Planning-fbc02d)](#) ## 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, 开源芯片, 数字集成电路设计, 硬件加速器, 硬件验证, 逆向工具