One scale for a block of weights
You will learn
Why AI formats share one scale across a block of weights, and how the scale byte of OCP MX is read.
A language model has millions of weights, and a full float for each is expensive to store and to move. The Microscaling (MX) formats of the Open Compute Project keep each weight in 4, 6 or 8 bits and give every block of 32 weights one shared scale. That scale is a single byte called E8M0: no sign and no mantissa, only an exponent, so code e means 2 to the power e minus 127, and code 255 means NaN. The player compiles e8m0.t27, the spec of that byte, in your browser and runs its tests. Where the browser cannot run a check, it skips it and says why.
Try it
Run the tests and count the skips; then open the Verilog and find the function that checks for code 255.

The OCP MX shared scale as a t27 spec, compiled by t27c as WebAssembly in your browser: one byte, 2^(e-127), code 255 is NaN. Seven backends, the spec's own tests and its Verilog.
All lessons
Module 1 · The chip
What an FPGA is, which chip we use, and how its pins meet the board.
Module 2 · Numbers in hardware
Bits, trits and number formats, and what arithmetic costs in logic.
Module 3 · Your t27 program
Write a spec, test it, and see why compiling is not the same as being right.
Module 4 · Inside t27c
How the compiler reads a spec and what it writes, including the native t27b.
Module 5 · From spec to hardware
The Verilog t27c writes, the cells it becomes, and what one LUT does.
Module 6 · Reading synthesis
What yosys reports about your design, and which warnings matter.
Module 7 · Place, route, timing
Where the cells land on the die, and whether the clock is met.
Module 8 · The bitstream
How a routed design becomes the bits the chip loads, with no Vivado.
Module 9 · On the board
Ask the chip who it is, load the bits, and check them.
Module 10 · Lab: our own research
A number format of our own, an honest scoreboard, and a model's tables multiplied on the board.
Module 11 · AI numbers: the MX block
How AI chips keep weights in a few bits: one shared scale per block, the scale byte itself, and what one outlier does to its neighbours.