diff --git a/apps/website/src/pages/AboutAuthor.tsx b/apps/website/src/pages/AboutAuthor.tsx index 92b07bfd44..9cc1a64ac6 100644 --- a/apps/website/src/pages/AboutAuthor.tsx +++ b/apps/website/src/pages/AboutAuthor.tsx @@ -159,7 +159,7 @@ const DEFAULT_BIO = [ const DEFAULT_ACHIEVEMENTS = [ 'On-FPGA neural training — verified primitives that train themselves on-chip: 100% held-out accuracy, with the whole spec → silicon path bit-exact.', - 'GF16 4×4 matmul — 323 MHz, 41.2 GOPS, 0 DSP48, 0 latches on a Xilinx Artix-7, with clean timing sign-off.', + 'GF16 4×4 matmul — maps into Xilinx Artix-7 fabric with 0 DSP48 and 0 latches: 32,252 LUTs, or 21,223 with the hard multipliers allowed.', 'Silicon confirmed — TinyTapeout SKY130 ASIC: GDS, gate-level test, and precheck all passing.', 'Per-node bit-exact verification — every RTL node checked against an independent Python golden model (iverilog + KAT vectors), catching spec/RTL divergence before synthesis.', 'tri-net — a full ternary network stack (133 .t27 specs): GF16 PHY, a BPSK modem over AD9361, mesh routing, and AEAD crypto — proven device-to-device over the air.', diff --git a/apps/website/src/pages/Course.tsx b/apps/website/src/pages/Course.tsx index 816086f524..52c12b11d0 100644 --- a/apps/website/src/pages/Course.tsx +++ b/apps/website/src/pages/Course.tsx @@ -16,7 +16,7 @@ const MODULES = [ { n: '02', title: 'Exactly as much Verilog as you need', body: 'Synchronous design, registers versus latches, and why an accidental latch is the classic bug that only shows up on silicon. Your first module and testbench.' }, { n: '03', title: 'Arithmetic — the foundation of ML in hardware', body: 'Why floating point is expensive, what quantisation really costs, and where ternary and low-precision formats come from. GF-T and the BitNet wave, explained from the inside.' }, { n: '04', title: 'Bit-exact verification (the heart of the course)', body: 'An independent reference model in Python, KAT vectors per stage, cross-checked through iverilog. Why a testbench written from the same assumptions as the design will happily agree with the bug.' }, - { n: '05', title: 'A matrix multiplier that closes timing', body: 'MAC to array to pipeline. Reading timing reports and fighting for frequency, using a real case: 323 MHz, 41.2 GOPS, zero DSP blocks.' }, + { n: '05', title: 'A matrix multiplier that closes timing', body: 'MAC to array to pipeline. Reading the router’s timing report and fighting for frequency on a real case — including why a hard multiplier in the path can leave you with no frequency report at all.' }, { n: '06', title: 'Neural network inference on the FPGA', body: 'Layers, activations, dataflow and on-chip memory — running on the board, not in a simulator.' }, { n: '07', title: 'Training on-chip (the capstone)', body: 'Backward pass and SGD in RTL. The network learns XOR on the FPGA itself — 4/4, bit-exact against the reference. Almost nobody has built this by hand.' }, { n: '08', title: 'Onward to silicon', body: 'The Tiny Tapeout path: preparing a design, what changes between FPGA and ASIC, and where the open-silicon ecosystem stands after the move to IHP.' }, @@ -64,7 +64,7 @@ const RU = { { n: '02', title: 'Verilog ровно столько, сколько нужно', body: 'Синхронный дизайн, регистры против защёлок и почему случайная защёлка — классический баг, который вылезает только на кремнии. Первый модуль и тестбенч.' }, { n: '03', title: 'Арифметика — фундамент ML в железе', body: 'Почему float дорог, чего на самом деле стоит квантизация и откуда берутся тернарные и низкоразрядные форматы. GF-T и волна BitNet — изнутри.' }, { n: '04', title: 'Побитовая верификация (сердце курса)', body: 'Независимая эталонная модель на Python, KAT-векторы по ступеням, сверка через iverilog. Почему тестбенч, написанный из тех же предпосылок, что и дизайн, радостно соглашается с багом.' }, - { n: '05', title: 'Матричный умножитель, который закрывает тайминг', body: 'MAC → массив → конвейер. Чтение отчётов и борьба за частоту на реальном примере: 323 МГц, 41.2 GOPS, ноль DSP-блоков.' }, + { n: '05', title: 'Матричный умножитель, который закрывает тайминг', body: 'MAC → массив → конвейер. Чтение отчёта разводчика о тайминге и борьба за частоту на реальном примере — включая то, почему аппаратный умножитель в тракте может оставить вас вообще без отчёта о частоте.' }, { n: '06', title: 'Инференс нейросети на FPGA', body: 'Слои, активации, потоки данных и память на кристалле — работающие на плате, а не в симуляторе.' }, { n: '07', title: 'Обучение на кристалле (капстоун)', body: 'Обратный проход и SGD в RTL. Сеть учит XOR прямо на FPGA — 4 из 4, побитово против эталона. Руками это почти никто не делал.' }, { n: '08', title: 'Дальше — на кремний', body: 'Путь Tiny Tapeout: подготовка дизайна, что меняется между FPGA и ASIC, и где сейчас открытая кремниевая экосистема после перехода на IHP.' }, diff --git a/apps/website/src/pages/HardwareVerification.tsx b/apps/website/src/pages/HardwareVerification.tsx index f8ba1aba87..29c862b4c9 100644 --- a/apps/website/src/pages/HardwareVerification.tsx +++ b/apps/website/src/pages/HardwareVerification.tsx @@ -89,7 +89,7 @@ const TIERS = [ ] const PROOF = [ - ['323 MHz · 41.2 GOPS', 'GF16 4×4 matmul on Xilinx Artix-7 — 0 DSP48, 0 latches.'], + ['32,252 LUT · 0 DSP48', 'A GF16 4×4 matmul that maps into Artix-7 fabric with no hard multipliers at all — 21,223 LUTs if the 64 DSP blocks are allowed. Combinational, 0 latches.'], ['100% held-out', 'A neural network that trains itself on the FPGA — bit-exact from spec to silicon.'], ['SKY130 silicon', 'Taped out through Tiny Tapeout: GDS, gate-level test and precheck passed.'], ['83 formats', 'Published bit-exact conformance vectors for FP8, BF16, MXFP4 and microscaling.'], @@ -144,7 +144,7 @@ const RU = { proofTitle: 'Почему числам можно верить', proofLede: 'Этот пайплайн я построил для собственной работы — тернарный формат чисел прошёл путь от статьи на arXiv до работающего кремния, с побитовой проверкой на каждом шаге.', proof: [ - ['323 МГц · 41.2 GOPS', 'GF16 4×4 matmul на Artix-7 — 0 DSP48, 0 защёлок.'], + ['32 252 LUT · 0 DSP48', 'Матричный умножитель GF16 4×4 умещается в логику Artix-7 вообще без аппаратных умножителей — 21 223 LUT, если разрешить 64 DSP-блока. Комбинационный, 0 защёлок.'], ['100% held-out', 'Нейросеть, обучающаяся прямо на FPGA — путь спека→кремний побитово точен.'], ['Кремний SKY130', 'ASIC через TinyTapeout: GDS ✅ · gate-level тест ✅ · precheck ✅.'], ['83 формата', 'Опубликованные побитовые векторы соответствия для FP8, BF16, MXFP4 и microscaling.'],