Commit 12cc34ce authored by OllieB's avatar OllieB
Browse files

yosys: Add yosys-symbiflow-plugins

parent 20409633
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8874,6 +8874,12 @@
    githubId = 72201;
    name = "Ole Jørgen Brønner";
  };
  ollieB = {
    email = "1237862+oliverbunting@users.noreply.github.com";
    github = "oliverbunting";
    githubId = 1237862;
    name = "Ollie Bunting";
  };
  olynch = {
    email = "owen@olynch.me";
    github = "olynch";
+43 −1
Original line number Diff line number Diff line
@@ -6,13 +6,19 @@
, fetchFromGitHub
, flex
, libffi
, makeWrapper
, pkg-config
, protobuf
, python3
, readline
, symlinkJoin
, tcl
, verilog
, zlib
, yosys
, yosys-bluespec
, yosys-ghdl
, yosys-symbiflow
}:

# NOTE: as of late 2020, yosys has switched to an automation robot that
@@ -32,7 +38,39 @@
# yosys version number helps users report better bugs upstream, and is
# ultimately less confusing than using dates.

stdenv.mkDerivation rec {
let

  # Provides a wrapper for creating a yosys with the specifed plugins preloaded
  #
  # Example:
  #
  #     my_yosys = yosys.withPlugins (with yosys.allPlugins; [
  #        fasm
  #        bluespec
  #     ]);
  withPlugins = plugins:
    let
      paths = lib.closePropagation plugins;
      module_flags = with builtins; concatStringsSep " "
        (map (n: "--add-flags -m --add-flags ${n.plugin}") plugins);
    in lib.appendToName "with-plugins" ( symlinkJoin {
      inherit (yosys) name;
      paths = paths ++ [ yosys ] ;
      buildInputs = [ makeWrapper ];
      postBuild = ''
        wrapProgram $out/bin/yosys \
          --set NIX_YOSYS_PLUGIN_DIRS $out/share/yosys/plugins \
          ${module_flags}
      '';
    });

  allPlugins = {
    bluespec = yosys-bluespec;
    ghdl     = yosys-ghdl;
  } // (yosys-symbiflow);


in stdenv.mkDerivation rec {
  pname   = "yosys";
  version = "0.12+54";

@@ -99,6 +137,10 @@ stdenv.mkDerivation rec {

  setupHook = ./setup-hook.sh;

  passthru = {
    inherit withPlugins allPlugins;
  };

  meta = with lib; {
    description = "Open RTL synthesis framework and tools";
    homepage    = "http://www.clifford.at/yosys/";
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
stdenv.mkDerivation {
  pname = "yosys-bluespec";
  version = "2021.09.08";
  plugin = "bluespec";

  src = fetchFromGitHub {
    owner  = "thoughtpolice";
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
stdenv.mkDerivation {
  pname = "yosys-ghdl";
  version = "2021.01.25";
  plugin = "ghdl";

  src = fetchFromGitHub {
    owner  = "ghdl";
+15 −0
Original line number Diff line number Diff line
diff --git a/yql-qlf-plugin/Makefile b/ql-qlf-plugin/Makefile
index 2819055c9fe..0e391581012 100644
--- a/ql-qlf-plugin/Makefile
+++ b/ql-qlf-plugin/Makefile
@@ -55,10 +55,6 @@ VERILOG_MODULES = $(COMMON)/cells_sim.v         \
                   $(PP3_DIR)/mult_sim.v        \
                   $(PP3_DIR)/qlal3_sim.v       \

-retrieve-pmgen:=$(shell mkdir -p pmgen && wget -nc -O pmgen/pmgen.py https://raw.githubusercontent.com/SymbiFlow/yosys/master%2Bwip/passes/pmgen/pmgen.py)
-
-pre-build:=$(shell python3 pmgen/pmgen.py -o pmgen/ql-dsp-pm.h -p ql_dsp ql_dsp.pmg)
-
 install_modules: $(VERILOG_MODULES)
 	$(foreach f,$^,install -D $(f) $(DATA_DIR)/quicklogic/$(f);)
Loading