63 Candidates rejected
of 93 proposed CPUs never made it past the ladder.
Chips, boards and physical parts, checked by verifiers the model cannot argue with.
module ss_insn_dot4 (
input wire [31:0] rs1,
input wire [31:0] rs2,
output wire [31:0] rd
);
wire signed [7:0] a0 = rs1[ 7: 0];
wire signed [7:0] a1 = rs1[15: 8];
wire signed [7:0] a2 = rs1[23:16];
wire signed [7:0] a3 = rs1[31:24];
wire signed [7:0] b0 = rs2[ 7: 0];
wire signed [7:0] b1 = rs2[15: 8];
Board check
fault_gpio12_vs_gpio14
4 of 5 pass. Firmware and netlist disagree on a pin.
Matter · heat spreader
72.56 °C, baseline 72.82 °C
Confident is not correct. These are the real numbers from our runs.
of 93 proposed CPUs never made it past the ladder.
candidates broke a compile, test or proof stage.
before one passed all five rungs. The first ones did not.
best margin over the baseline. Small wins, said plainly.
Agents propose. Verifiers decide. Same question, two answers.
Evidence · fault_gpio12_vs_gpio14
Netlist-level check against author-curated part facts. It does not claim the board works on a bench.
Both answers were recorded on 2026-10-23 from Nemotron through Nebius Token Factory. The chat answer used no tools and costs $0.0011.
This is a board Hardwright placed, routed and checked with KiCad. Pick a part.
Loading the routed board…
U1 · R3
Runs the firmware and talks to the sensor over I²C. A pull-up resistor holds its enable pin high so it runs. Its GPIO12 is a boot-strapping pin: its level at reset picks the boot mode, which is why a button wired there is a classic mistake the checks catch.
Part names marked placeholder in the parts list are stand-ins for real parts. Open the Board workbench to make one for your own design.
Real sessions, replayed. Press Play.
The events are the saved stream from the live agent. Only the playback speed is set for reading.
The same board question, answered by a chatbot and by the agent with its tools.
The board fails rung B4 because the wake button is wired to GPIO14 while firmware expects GPIO12, a boot‑strapping pin. This mismatch means the board is not OK to send to fab as‑is. Evidence: board:fault_gpio12_vs_gpio14#B4.
No — this board is not safe to send to fabrication as-is.
You have a pin assignment mismatch between your firmware and hardware:
- ✅ Firmware expects: Wake button connected to GPIO12
- ❌ Hardware actually wired: Wake button connected to GPIO14
This is a critical functional error. The wake-up functionality will not work, because:
- The ESP32’s deep-sleep wake-from-pin feature requires the correct GPIO to be configured for external wakeup.
- If you configure esp_sleep_enable_ext0_wakeup(GPIO_NUM_12, ...) or similar in firmware, but the physical button is tied to GPIO14 → pressing the button does nothing during sleep.
- Conversely, if you accidentally leave GPIO12 floating or misconfigured, you risk unintended behavior (e.g., spurious wakeups, floating input noise).
### Why This Matters:
The ESP32’s RTC GPIO pins (which support wake from deep sleep) include both GPIO12 and GPIO14 — so *technically*, either could work *if* the firmware matched the hardware.
But since they don’t match, your wake button is effectively broken.
### Options to Fix Before Fab:
#### ✅ Option 1: Change Firmware to Match Hardware (Recommended if easy)
If modifying firmware is trivial (and you control the source):
``cpp
// Change this:
// esp_sleep_enable_ext0_wakeup(GPIO_NUM_12, 1);
// To this:
esp_sleep_enable_ext0_wakeup(GPIO_NUM_14, 1);
`
Then recompile and flash.
→ **Board is fab-ready.** No hardware change needed.
#### ✅ Option 2: **Change Hardware to Match Firmware (Recommended if firmware is locked)**
If firmware cannot be changed (e.g., OTA-locked, third-party binary, or team policy):
- **Rewire the wake button net** from GPIO14 → GPIO12 on the PCB.
- Ensure GPIO12 is not used elsewhere conflictingly (check your netlist for other uses of GPIO12).
- Add a pull-up/pull-down resistor if needed (typically 10kΩ to 3.3V for active-low button, unless internal pullup is enabled in firmware).
- Verify GPIO12 is not strapped during boot (see below).
#### ⚠️ Critical: Check GPIO12 Boot Strapping!
On ESP32, **GPIO12 has a boot strapping function**:
- It determines whether the flash voltage is 1.8V or 3.3V **at power-on reset**.
- If GPIO12 is held **low** during boot → ESP32 expects 1.8V flash.
- If held **high** or floating → expects 3.3V flash.
✅ **Your board uses a 3.3V LDO** → so you **must** ensure GPIO12 is **not pulled low** during boot.
If you move the wake button to GPIO12:
- Use a **normally open (NO) momentary pushbutton** to GPIO12 → when pressed, it pulls GPIO12 low.
- **Problem**: If the button is pressed *during power-on*, it could accidentally trigger 1.8V flash mode → boot failure.
- **Solution**:
- Add a **10kΩ pull-up resistor** from GPIO12 to 3.3V (so it defaults high at boot).
- The button then pulls it low only when pressed → safe for boot, and still wakes from deep sleep (since ESP32 can wake on low level even with pullup — just configure wakeup on LOW`).
> 💡 Best practice: Use GPIO12 for wake button only if you add a 10kΩ pull-up to 3.3V and use a normally open button. Avoid using GPIO12 for anything else that might drive it low at boot.
### Final Recommendation:
| Scenario | Action |
|---------|--------|
| You can modify firmware | ✅ Change firmware to use GPIO14 → Send to fab |
| Firmware is fixed / cannot change | ✅ Rewire hardware: move button to GPIO12 + add 10kΩ pull-up → Send to fab |
| You do nothing | ❌ Do NOT send to fab — wake button will not work |
### Bonus: Double-Check Your Netlist
Before sending to fab, run a DRC (Design Rule Check) and specifically verify:
- GPIO12: connected only to wake button + 10kΩ pull-up to 3.3V (no other drivers!)
- GPIO14: connected only to wake button (if you kept original) or now free (if moved)
- No shorts, no floating pins (except intentional NCs)
- LDO output stable, USB-C charging circuit intact
### Conclusion:
Do not send to fab until the mismatch is resolved.
Fix either firmware or hardware — but not both mismatched.
Once aligned, and with proper boot-strapping consideration for GPIO12, your board will be safe and functional.
If you tell me whether you can change the firmware, I’ll give you the exact code snippet or schematic edit to make. Otherwise, assume you must rewire to GPIO12 with a pull-up.
Drag the divider or use the arrow keys. Recorded session, nemotron-3-super-120b-a12b, 2026-10-23. The chatbot answer is unverified and costs $0.0011.
What is real
Games run on the real engines.
Board and Matter checks are free.
Runs on demo credits.
Run it yourself with the CLI.
siliconsmith verify-entry dot4-tinymaixHonest limits: Silicon search runs are replays of real runs, Board checks are netlist-level, and Matter gains are small.
Cheap checks first, strict ones last. Unknown never counts as pass.
Silicon runs L1 to L6, Board B1 to B5, Matter M1 to M5. A skipped rung is shown as skipped.
The agent invents an instruction for your hot loop and builds the CPU.
Best recorded: 3.86× wall-clock in run r_w1_final, dot4.
A solver proves the RTL equals its spec for every input.
A Yosys SAT miter checks every input of a stored instruction against an independent spec.
Pins, voltages, buses and strapping pins checked against part facts.
8 of 8 catalogued faults are detected, plus 3 structural ones. Netlist level only: no layout, no EMC.
A spreader is simulated, then confirmed by a second solver.
Agent beat the equal-material baseline in 3 of 3 runs. Solver validation: PASS.
Ultra, Super and Nano each get the job they fit.
The recorded runs made 406 model calls across 3 Nemotron tiers on Nebius Token Factory.
Every candidate is built and tested in its own workspace.
93 candidates were each built apart, so one bad draft cannot touch another.
Rule, source and what is not claimed, one click away.
A personal library of verified instructions backs this: 3 entries, each with a reproduce command.
Verilog, a KiCad netlist, a pin header, an STL, a pull request.
Exports are written only for a passing design.
Tap a stage. The numbers are from the recorded runs.
Ladder. 63 were rejected, 30 survived. Board and Matter have their own ladders.
Interactive
Five short games with the real thing behind them. Guess first, then watch the deterministic verifiers decide.
Active mode · Silicon
Say what you want: a faster loop, a board that boots, a plate that runs cooler.
Nemotron agents draft designs. Many of them are wrong, and that is expected.
Deterministic checkers judge every draft, cheap checks first.
Each pass or fail carries the rule, the source and what is not claimed.
Keep what survived: RTL, netlist, pin header, STL, a pull request.
Every layer has one job: keep the model honest.
Layer 01
Workbenches, canvas and agent in one window.
Layer 02
Ultra architects, Super builds, Nano triages.
Layer 03
Plain deterministic code decides what is true.
Layer 04
Untrusted builds never share a workspace.
Agents that design hardware, and prove it.