Build your hardware, easily!
Go to file
Sebastien Bourdeauducq c38de34a21 bios: DDR initialization skeleton 2012-02-17 18:47:04 +01:00
build Initial import 2011-12-13 17:33:12 +01:00
milkymist Map DDR PHY controls in CSR 2012-02-17 17:34:59 +01:00
software bios: DDR initialization skeleton 2012-02-17 18:47:04 +01:00
tb/norflash Convert -> convert 2012-01-05 19:27:45 +01:00
tools tools: use install and /usr/local (as suggested by David Kuehling) 2012-02-08 15:09:07 +01:00
verilog s6ddrphy: use single-ended DQS 2012-02-17 10:53:58 +01:00
.gitignore s6ddrphy: prepare quilt 2012-02-14 15:52:39 +01:00
Makefile Add build Makefile and JTAG load script 2012-02-17 18:09:48 +01:00
README README 2012-02-14 15:43:09 +01:00
build.py Add build Makefile and JTAG load script 2012-02-17 18:09:48 +01:00
constraints.py Connect DDR PHY 2012-02-17 11:04:44 +01: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 Map DDR PHY controls in CSR 2012-02-17 17:34:59 +01: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
---------------
First, download and install Migen from:
  https://github.com/milkymist/migen

Then, you will need to fetch the "Spartan-6 FPGA DDR/DDR2 SDRAM PHY core"
(PHY only solution, we do not need the NWL memory controller) from:
  http://www.xilinx.com/products/intellectual-property/1-1MFEDB.htm
Downloading it is free of charge, but it cannot be redistributed in
source form due to copyright restrictions.

Place the Verilog source code of the PHY (contents of
phy_rtl/spartan6_soft_phy) into the verilog/s6ddrphy folder.
Then run (from verilog/s6ddrphy):
  quilt push -a
in order to apply patches that make the PHY more compliant with the DFI
specification in general, and in particular with the capability to send
multiple SDRAM commands in one system clock cycle, which our new SDRAM
controller is capable of doing.
The patches are against version 1.04 of the PHY.

Once this is done, build the bitstream with:
  python3 build.py
This will generate the build/soc.bit programming file.

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.

You can find the source code of a compatible BIOS in the software/bios
directory. It compiles with Clang and LLVM by default, and you can find
the modified version with support for LM32 at:
  https://github.com/milkymist/llvm-lm32
  https://github.com/milkymist/clang-lm32

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 and the
Spartan-6 FPGA DDR/DDR2 SDRAM PHY core from Xilinx and Northwest Logic.

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.