Skip to content

NeuralForge

NeuralForge is a Gemini-powered workflow that turns machine learning models into silicon.

Core trick

Gemini writes Verilog with INT8 weights hardcoded, then Yosys synthesis and Icarus simulation are checked against a bit-exact reference of the trained network.

Tags

Description

NeuralForge is a Gemini-powered workflow that turns machine learning models into silicon. You describe a neural network in plain English, and NeuralForge converts it into synthesizable Verilog, embedding the trained weights directly into hardware logic. The system then runs a real RTL-to-GDS pipeline, synthesising with Yosys, verifying functionality through simulation, and implementing the design on the SkyWater 130nm PDK using open-source backend tools. AI agents monitor tool outputs, fix design errors, and iterate until the hardware is physically valid. The model isn’t deployed on hardware. It becomes the hardware.
jishnuvenugopal/neuralforge★ 10 forksPythonMITCreated Mar 7, 2026 · last push Oct 18, 2026

README excerpt

# NeuralForge

NeuralForge is an AI chip architect demo that turns natural-language ML model requests into ASIC-oriented hardware artifacts.

It uses a Gemini agent loop to:
- analyze a model request
- emit a hardware bill of materials
- generate Verilog RTL with hardcoded INT8 weights
- run Yosys synthesis against SkyWater 130nm
- check the design against a bit-exact reference of the trained network in Icarus Verilog
- optionally launch LibreLane hardening after a successful simulation

## Stack

- Backend: FastAPI + Gemini function calling
- Frontend: React + Vite
- EDA: Yosys, Icarus Verilog, netlistsvg, SkyWater 130nm liberty
- Optional physical flow: Nix + LibreLane

## Project Layout

```text
neuralforge/
├── backend/
│   ├── main.py          agent loop and WebSocket API
│   ├── eda_tools.py     Yosys / Icarus / LibreLane wrappers
│   ├── golden.py        bit-exact integer reference of the trained networks
│   ├── verifier.py      source scan, generated testbench, verdict, hash ledger
│   └── model_trainer.py trains and quantizes the demo models
├── frontend/
├── pdk/
├── tests/
├── setup.sh
└── start.sh
```

## Quick Start

```bash
git clone https://github.com/jishnuvenugopal/neuralforge.git
cd neuralforge
export GEMINI_API_KEY="your-key"
export GEMINI_MODEL="gemini-3.1-flash-lite"
bash start.sh
```

Frontend: `http://localhost:5173`  
Backend health: `http://localhost:8000/health`

To enable physical hardening after passing simulation:

```bash
export LIBRELANE_AUTO_H

Team