Datacenter.Dev Supercompiler is a compile to silicon pipeline for spatial dataflow architectures. It places computation onto a routing fabric and produces a machine checkable argument that the placement preserves the semantics of the reference.
Specifications to Compute Fabric
Source
LOGOS, the executable specification
Proof obligation dischargedsemantics preserved
Interpreter
Reference semantics, software
Proof obligation dischargedsemantics preserved
Register VM
Sequential execution model
Proof obligation dischargedsemantics preserved
Dataflow tiles
Spatial placement, physical fabric
The tip lands on the chip.
ProvenZero counterexamples
Every lowering discharges its proof obligation in our proof kernel, and the 8x8 run of the int8 matmul primitive matches an independent reference oracle, checksum 510,720. The kernel behind that proof finishes families Z3 and Kissat do not.
The toolchain addresses one problem that appears twice. Lowering a model onto a fabric and lowering RTL onto a mask set are both compilation, and both already use formal methods where a tool exists for the step. Logic equivalence checking proves a netlist implements the RTL it came from, over every input. What neither end has is a tool that proves the lowered form agrees with the description it came from, and that step is closed by testing.
A conventional core fetches, decodes, and sequences. The compiler places computation onto routing tiles instead, so the datapath settles rather than stepping through instructions. The consequence is that correctness becomes a property of the placement, which is something a compiler can be made to prove.
A program is written once and lowered many times. English meets one parser, the parser produces an imperative tree and a logical tree, and below the assert bridge the program continues as a single register bytecode. Every instruction target hangs off that one description of the program, which is what makes a new target something the toolchain gains rather than something the compiler gets rebuilt around.
Each target earns its place the same way. The virtual machine runs the program as the reference, the backend runs the same program, and the two are compared byte for byte. Where an operation has no lowering, the backend refuses to emit rather than emitting something close, and the list of refusals only shrinks, so coverage cannot regress quietly.
The frontend is the part that stays singular. LOGOS is the one surface language, and a Lean 4 frontend is specified and measured against a 248 case conformance corpus.
From the tree
Rust source, the reference path, handed to cargo rather than lowered through the bytecode.
From the bytecode
C, RISC-V, WebAssembly, CUDA and the Tenstorrent target all lower from the one register bytecode.
From the spatial IR
Stages, bounded buffers and typed handshakes placed on a described mesh, for a fabric or for Verilog.
Every lane runs the same program, and the table below says where each target stands.
| Target | Where it stands |
|---|---|
| RustRust source, handed to cargo | The reference path, lowered from the tree rather than from the bytecode. |
| CC source with a self contained runtime | A scoped subset that doubles as the oracle the GPU and Tensix paths are checked against. |
| RISC-VRV64GC assembly, assembled by riscv gcc | 115 operations lower with an empty gap list, and the programs run under qemu. |
| WebAssemblyA finished wasm binary from our own encoder | No rustc and no wasm-bindgen anywhere in the path. |
| CUDACUDA source and a host launcher | The most developed target after Rust, with tensor core lowering measured on A100 and H100. |
| TenstorrentA TT-Metalium host and kernel bundle | Builds today; host and kernel bundle emitted, validated in simulation. |
| Reconfigurable fabricPlacement onto a described mesh | Places onto a described mesh, validated in simulation. |
| VerilogSynthesizable modules | Checked against the running virtual machine under iverilog and by our own certified SAT, on one Sky130 signoff clean layout. |
Two of those targets never fetch an instruction at all. A separate spatial dataflow IR carries the program as stages, bounded buffers and typed handshakes placed on a described mesh, and lowers from there onto a fabric or into synthesizable Verilog. A choreography certificate travels with that lowering, because a datapath that settles has to be argued for differently than a sequence of instructions.
RISC-V lowers 115 operations with an empty gap list. The Verilog path is checked bit for bit against the running virtual machine under iverilog and by our own certified SAT. Tenstorrent emits a TT-Metalium host and kernel bundle, and the fabric target places onto a described mesh, both validated in simulation.
Executed on a physical substrate: a Nexys A7-100T, Artix-7, flashed over JTAG. Manufacturing signoff comes back with zero DRC, LVS, antenna and routing violations under Sky130 signoff parameters, and 15,725+ regression tests re-run the obligation inside existing build pipelines.
The pipeline starts at English, which is where a hardware specification starts. The parser produces first order logic rather than a guess at intent, and the lowering that follows is the same one the rest of the toolchain runs on.
Two examples, both real output from the LOGOS compiler:
Specification, in LOGOS
SystemVerilog assertion
Bounded response
assert property (@(posedge clk) low_spi_cs_ |-> ##[0:1] valid_spi_miso_);Specification, in LOGOS
SystemVerilog assertion
Conjunction in the antecedent
assert property (@(posedge clk) (low_dco_enable_ && high_cpu_en_) |-> Assert_dco_wkup_);How is any of that actually established?