Build your hardware, easily!
Go to file
Sebastien Bourdeauducq 8ba3118a83 framebuffer: register output of FIFO 2012-07-01 18:13:49 +02:00
build Initial import 2011-12-13 17:33:12 +01:00
common VGA framebuffer connections 2012-06-17 13:41:26 +02:00
milkymist framebuffer: register output of FIFO 2012-07-01 18:13:49 +02:00
software software/libbase: qsort 2012-06-04 19:45:13 +02:00
tb bios: automatically enable hardware memory controller and test memory 2012-05-15 19:29:26 +02:00
tools tools/mkmmimg: remove LZMA option 2012-05-21 22:01:57 +02:00
verilog framebuffer: FIFO 2012-07-01 15:22:57 +02:00
.gitignore Update gitignore 2012-05-17 01:42:08 +02:00
Makefile Prepare for new DDR PHY 2012-02-19 18:43:42 +01:00
README m1nor, FJMEM and UrJTAG clarifications 2012-06-03 22:20:50 +02:00
build.py Add Ethernet MAC 2012-05-20 00:30:03 +02:00
cmacros.py Get CSR base addresses from include file 2012-05-16 10:36:46 +02:00
constraints.py VGA framebuffer connections 2012-06-17 13:41:26 +02:00
load.jtag Add build Makefile and JTAG load script 2012-02-17 18:09:48 +01:00
soc.xst Add build Makefile and JTAG load script 2012-02-17 18:09:48 +01:00
top.py framebuffer: frame initiator 2012-06-17 17:22:02 +02:00

README

[> Milkymist-NG system-on-chip
------------------------------

This is the next-generation Milkymist(tm) system-on-chip design,
introducing two key innovations:
 * Built on the powerful Migen VLSI logic design system.
 * Increased system memory performance thanks to a new architecture
   (ASMI) containing a transaction-reordering and superscalar controller.

The Milkymist-NG SoC supports the Milkymist One board. Obtain yours from:
  http://milkymist.org

Note that the -NG version is still experimental work in progress. For the
production version of Milkymist SoC, visit:
  https://github.com/milkymist/milkymist

[> Instructions (software)
--------------------------
1. Compile and install binutils. Take the latest version from GNU.
  ./configure --target=lm32-elf
  make
  make install
  
2. Compile and install LLVM and Clang.
  git clone git://github.com/milkymist/llvm-lm32.git
  cd llvm-lm32/tools
  git clone git://github.com/milkymist/clang-lm32.git clang
  cd ..
  mkdir build
  cmake ..
  make
  make install

3. Build compiler-rt.
  git clone git://github.com/milkymist/compiler-rt-lm32.git
  cd compiler-rt-lm32
  make lm32

4. Set the CRTDIR environment variable to where libcompiler_rt.a is.
  export CRTDIR=/path_to/compiler-rt-lm32/lm32/lm32

5. Build and flash the BIOS (part of this source distribution).
  cd software/bios
  make
  make flash

The second command requires m1nor, FJMEM and UrJTAG.
These tools can be found respectively at:
  http://projects.qi-hardware.com/index.php/p/wernermisc/
  https://github.com/milkymist/fjmem-m1
  http://urjtag.org
  
[> Instructions (gateware)
--------------------------
First, download and install Migen from:
  https://github.com/milkymist/migen

Once this is done, build the bitstream with:
  make
This will generate the build/soc.bit programming file.
Use:
  make load
to load it with UrJTAG.

The SoC expects a bootloader to be located in flash at 0x860000, just
like the legacy SoC did. However, there is no binary compatibility and a
new BIOS needs to be built and flashed for the -NG SoC.

Enjoy!

[> Misc
-------
Code repository:
  https://github.com/milkymist/milkymist-ng

Send questions, comments and patches to devel [AT] lists.milkymist.org
We are also on IRC: #milkymist on the Freenode network.

Milkymist-NG is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, version 3 of the License. This program is
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

The authors grant the additional permissions that the code can be used in
conjunction with the LatticeMico32 CPU core from Lattice.

Unless otherwise noted, Milkymist-NG's source code is copyright (C)
2011-2012 Sebastien Bourdeauducq. Other authors retain ownership of their
contributions. If a submission can reasonably be considered independently
copyrightable, it's yours and I encourage you to claim it with
appropriate copyright notices. This submission then falls under the
"otherwise noted" category. All submissions must use a license compatible
with the GPL and the additional permissions above.