2019-06-06 17:25:11 +08:00
|
|
|
{ pkgs, hx }:
|
2019-04-26 18:21:47 +08:00
|
|
|
|
|
|
|
let
|
|
|
|
symbiflowInput = pkgs.runCommand "helloworld-symbiflow-input" {
|
2019-06-06 17:25:11 +08:00
|
|
|
buildInputs = [ (pkgs.python3.withPackages(ps: [hx.drvs.nmigen hx.drvs.heavycomps])) hx.drvs.yosys ];
|
2019-04-26 18:21:47 +08:00
|
|
|
}
|
|
|
|
''
|
|
|
|
mkdir $out
|
|
|
|
|
|
|
|
python ${./helloworld_ecp5.py} > $out/top.il
|
|
|
|
|
|
|
|
cat > $out/top.lpf << EOF
|
2019-04-27 14:39:34 +08:00
|
|
|
LOCATE COMP "clk100" SITE "P3";
|
|
|
|
IOBUF PORT "clk100" IO_TYPE=LVDS;
|
2019-04-30 13:36:09 +08:00
|
|
|
LOCATE COMP "serial_tx" SITE "A11";
|
2019-04-27 14:39:34 +08:00
|
|
|
IOBUF PORT "serial_tx" IO_TYPE=LVCMOS33;
|
2019-04-26 18:21:47 +08:00
|
|
|
EOF
|
|
|
|
|
2019-05-06 22:44:58 +08:00
|
|
|
echo -n "--um-45k --speed 8 --package CABGA381" > $out/device
|
2019-04-26 18:21:47 +08:00
|
|
|
'';
|
|
|
|
in
|
2019-06-06 17:25:11 +08:00
|
|
|
hx.lib.symbiflow.buildBitstream {
|
2019-04-26 18:21:47 +08:00
|
|
|
name = "helloworld-bitstream";
|
|
|
|
src = symbiflowInput;
|
|
|
|
}
|