• Stars
    star
    145
  • Rank 254,144 (Top 6 %)
  • Language Verilog
  • License
    Other
  • Created about 15 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SoC design for Milkymist One - LM32, DDR SDRAM, 2D TMU, PFPU
[> Milkymist(tm) System-on-Chip
-------------------------------

This is the complete core source code and documentation for the opensource
system-on-chip used in the Milkymist(tm) One video synthesizer.

For more information see http://m-labs.hk


[> Directory Structure
 /cores/         Cores library, with Verilog sources, test benches and documentation.
 /boards/        Top-level design files, constraint files and glue logic.
 /software/      Basic software for the SoC: libraries + BIOS.
 /softusb-input/ AVR firmware to implement input device support on the softusb core.
 /doc/           System documentation.
 /tools/         Small tools for developers.


[> Building tools
You will need:
 - GNU Make,
 - Bourne Again Shell (bash),
 - Xilinx ISE for synthesizing the FPGA bitstream (WebPack is enough),
 - LatticeMico32 toolchain for building the SoC software,
 - AVR toolchain for building the USB firmware,
 - xxd,
 - native Clang/LLVM toolchain,
 - libGD.


[> Development
For Verilog simulations, the scripts (usually Makefiles) shipped with the test benches
take care of running the simulator.

Depending on the IP core, one or more of these free simulators are supported:
 - Icarus Verilog (http://www.icarus.com/eda/verilog/)
 - GPL Cver (http://www.pragmatic-c.com/gpl-cver/)
 - Verilator (http://www.veripool.org/wiki/verilator)

For firmware development, a serial console program compatible with automatic firmware
loading over the serial line (SFL boot) is provided in the /tools/ directory.


[> Credits
Most of the work is (C) Copyright 2007-2012 Sebastien Bourdeauducq.
For this work:
 - The gateware design is licensed under GNU GPLv3.
   See the LICENSE.GPL file for more information.
 - The software (software/*) is licensed under GNU GPLv3, except the SDRAM
   initialization runtime (libHPDMC) which is under GNU LGPLv3.
   See LICENSE.GPL and LICENSE.LGPL.
 - The documentation is licensed under FDL.
   See LICENSE.FDL.

Milkymist is a trademark of Sebastien Bourdeauducq.

The SoC design uses:
 - the Mico32 soft-processor by Lattice Semiconductor. See the LICENSE.LATTICE file.
 - a modified version of wb_conbus by Johny Chi and Rudolf Usselmann. See LICENSE.LGPL.

The directory organization and build scripts were inspired by soc-lm32 by the German
hackerspace Das Labor. Some of the UART and timer code also comes from there.

The software and software library include the SoftFloat IEC/IEEE Floating-point
Arithmetic Package, Release 2, written by John R. Hauser.
See source files headers for license.

Special thanks to the people who did significant things which made this project possible:
 - Wolfgang Spraul and Adam Wang for the manufacturing,
 - Werner Almesberger for USB, MIDI and many other improvements, 
 - Michael Walle for QEMU, UrJTAG and OCD,
 - Joachim Steiger for the case design,
 - Yanjun Luo for the JTAG daughterboard design,
 - Yann Sionneau for his work on RTEMS,
 - Lattice Semiconductor for the Mico32 processor,
 - Shawn Tan for the AEMB processor (used earlier),
 - Stephen Williams for Icarus Verilog,
 - Pragmatic C Software for GPL Cver,
 - Wilson Snyder for Verilator,
 - Henry from Xilinx,
 - Das Labor for providing neat build scripts for SoCs (soc-lm32).

More Repositories

1

migen

A Python toolbox for building complex digital hardware
Python
1,092
star
2

nmigen

A refreshed Python toolbox for building complex digital hardware. See https://gitlab.com/nmigen/nmigen
Python
630
star
3

artiq

A leading-edge control system for quantum information experiments
Python
426
star
4

misoc

The original high performance and small footprint system-on-chip based on Migenâ„¢
C
290
star
5

lm32

LatticeMico32 soft processor
Verilog
96
star
6

pythonparser

Python
71
star
7

rust-atomic_ring_buffer

Atomic ring buffer is a fixed-size multi-producer multi-consumer queue that works on bare-metal systems.
Rust
49
star
8

tdc-core

A 26ps RMS time-to-digital converter (TDC) core for Spartan-6 FPGAs
Verilog
46
star
9

VexRiscv-verilog

Using VexRiscv without installing Scala
Verilog
32
star
10

dslite2svd

Converter of register descriptions from the TI DSLite format to CMSIS SVD format
Rust
32
star
11

jesd204b

JESD204B core for Migen/MiSoC
Python
31
star
12

flickernoise

Video synthesis software for the Milkymist One
C
30
star
13

nmigen-boards

Board and connector definition files for nMigen
Python
27
star
14

uclibc-lm32

uClibc with LM32 architecture support
C
19
star
15

nmigen-soc

System on Chip toolkit for nMigen
Python
17
star
16

ionpak

A modern, low-cost universal controller for hot-cathode ionization vacuum gauges. (WIP)
Rust
16
star
17

liboscparse

Liblo (OSC library) without GNU/Autocrap and network dependent non-portable code
C
13
star
18

microscope

Finding the bacteria in rotting FPGA designs.
Python
13
star
19

mtk

The Milkymist GUI toolkit (Genode FX based), because X11 sucks!
C
13
star
20

nmigen-stdio

Industry standard I/O for nMigen
Python
11
star
21

sipyco

Simple Python Communications
Python
9
star
22

openwrt-milkymist

OpenWRT with Milkymist support
C
9
star
23

ek-tm4c1294xl-demo

An example of programming the TI EK-TM4C1294XL development board in Rust
Rust
9
star
24

rtems-yaffs2

YAFFS2 with RTEMS support (new API)
C
7
star
25

llvm-lm32

LLVM with LatticeMico32 support patch (JPBonn tree)
C++
7
star
26

scripts

Various script files and Makefiles to build Milkymist One software
Shell
7
star
27

mixxeo-soc

System-on-chip design and software for the Mixxeo
C
7
star
28

fjmem-m1

FJMEM core for flashing Mixxeo and Milkymist One
Verilog
6
star
29

clang-lm32

Clang with LatticeMico32 support
C++
6
star
30

board-m1

Milkymist One PCB design files
Prolog
6
star
31

lwip

lwip mirror
C
5
star
32

adc2tcp

Rust
4
star
33

cairoplot3

Python 3 port of Cairoplot
Python
4
star
34

nu-servo

Novogorny Urukul Servo
Python
4
star
35

artiq-comtools

Lightweight ARTIQ communication tools
Python
4
star
36

bugs

Old Milkymist repos. Only kept for historical purposes :)
4
star
37

autotest-m1

Automated testing program for the Milkymist One
C
4
star
38

misp

Milkymist Software Platform (experimental)
C
4
star
39

extras-m1

JTAG adapter, leaflet, case CAD files, ...
Prolog
4
star
40

elf2flt-lm32

elf2flt with LM32 architecture support
Shell
4
star
41

datasheets-m1

Datasheets for the parts of the "Milkymist One" board
3
star
42

compiler-rt-lm32

LLVM compiler-rt with LM32 support
C
3
star
43

flickernoise-handbook

Handbook for the Flickernoise VJ application
3
star
44

clang-demos

Sample programs to demonstrate Clang/LLVM on LM32
Assembly
3
star
45

buildbot-config

Internal Buildbot configuration for M-Labs projects. Superseded by https://git.m-labs.hk/m-labs/nix-scripts
Python
3
star
46

drtio_transceiver_test

Transceiver test and demonstration for ARTIQ DRTIO
Python
3
star
47

phaser

Jupyter Notebook
2
star
48

mixxeo-mech

Mixxeo mechanical design
IDL
2
star
49

bscan_spi_kc705

Gateware to allow JTAG serial flash programming on KC705 with xc3sprog
VHDL
2
star
50

artiq-hardware

ARTIQ hardware project
TeX
2
star
51

migen-extradoc

More Migen documentation and tutorials
TeX
2
star
52

novatech409b

ARTIQ controller for the Novatech 409B DDS
Python
1
star
53

aq_ni6733

ARTIQ NDSP for NI 6733 DAC systems (untested/experimental)
Python
1
star
54

conda-recipes

Recipes for conda packages required by M-Labs software
Batchfile
1
star
55

thorlabs_tcube

ARTIQ controller for Thorlabs Tcube devices
Python
1
star
56

cossin

cos(z), sin(z) generator in migen using block ROM and linear interpolation
Jupyter Notebook
1
star
57

ethernet-yakshaving

Python
1
star
58

sayma_test

Test designs for Sayma boards (ddr3, drtio, amc-rtm link, jesd204b)
Python
1
star