# Milkymist Labs

Milkymist Labs
Products Technology Community
Current

- Milkymist SoC
- Flickernoise

In development

- Migen
- Milkymist-ng

Milkymist SoC

The Milkymist SoC is at the core of our devices, implemented (so far) in a FPGA.

The Milkymist system-on-chip uses the LatticeMico32 (LM32) core as a general purpose processor. It is a RISC 32-bit big endian CPU without a memory management unit (MMU). It is supported by the GCC compiler and can run RTEMS and uClinux. There is also an experimental back-end for LLVM targeting this microprocessor.

The LM32 microprocessor is assisted by a texture mapping unit and a programmable floating point VLIW coprocessor which are used by the Flickernoise video synthesis software. It is also surrounded by various peripheral cores to support every I/O device of the Milkymist One. The system-on-chip interconnect uses three bridged buses and mixes the Wishbone protocol with two custom protocols used for configuration registers and high performance DMA with the SDRAM.

The architecture of the Milkymist system-on-chip is largely documented in the project founder's Master thesis report. Most components of the system-on-chip, except the LatticeMico32 core, were custom developed and placed under the GNU GPL license.

The QEMU emulator can be used to run and debug Milkymist SoC binaries on another computer.

The SoC source distribution includes software libraries, the BIOS and the demonstration firmware, as well as test benches, LaTeX source for the documentation, build scripts, etc. The repository is hosted by GitHub and is available here.

Milkymist SoC will be phased out in favor of the more powerful Milkymist-ng.