add experimental LiteDRAM package

This commit is contained in:
Sebastien Bourdeauducq 2019-06-13 09:36:12 +08:00
parent 4c7ca4a8d1
commit 4af5e6fb9e
2 changed files with 39 additions and 0 deletions

38
cores/litedram.nix Normal file
View File

@ -0,0 +1,38 @@
{ stdenv, fetchFromGitHub, python3Packages, litex }:
python3Packages.buildPythonPackage {
name = "litedram";
src = fetchFromGitHub {
owner = "enjoy-digital";
repo = "litedram";
rev = "7fbe0b712ceda5bcc526a55a5c9c071eb21eb90e";
sha256 = "0qfz0qkxkqjxn523chh2g3375wfwmljcahxqr27098pk618v0n8s";
};
patchPhase =
''
rm examples/litedram_gen.py
rm test/test_examples.py
# FIXME: this spews out a lot of irrelevant "pattern doesn't match anything" warnings
for file in `find test litedram -name "*.py"`; do
substituteInPlace "$file" \
--replace "from litex.gen.sim import *" "" \
--replace "from migen.genlib.roundrobin import *" "from litex.roundrobin import *" \
--replace migen nmigen.compat
done
'';
# some tests fail at the moment, fix and re-enable later
doCheck = false;
propagatedBuildInputs = [ litex ];
meta = with stdenv.lib; {
description = "LiteDRAM memory controller (via nMigen compatibility mode)";
homepage = "http://enjoy-digital.fr";
license = licenses.bsd2;
maintainers = [ maintainers.sb0 ];
};
}

View File

@ -15,6 +15,7 @@ rec {
scalaToRun = "vexriscv.demo.GenSmallAndProductive";
};
litex = pkgs.callPackage ./cores/litex.nix { inherit nmigen; };
litedram = pkgs.callPackage ./cores/litedram.nix { inherit litex; };
heavycomps = pkgs.callPackage ./heavycomps.nix { inherit nmigen; };