From 9b43cf3a008b3a467f080d61365f037ad81807d0 Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Tue, 17 Mar 2020 05:26:27 -0500 Subject: [PATCH] yosys: 2020.02.25 -> 2020.03.16 - Bump `abc-verifier` (2020.03.05) - Install `yosys-abc` symlink for tool compatbility - Various `yosys` expression cleanups Signed-off-by: Austin Seipp --- .../science/logic/abc/default.nix | 39 ++++++++---------- pkgs/development/compilers/yosys/default.nix | 41 ++++++++++--------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix index 8551a3ee4ca3..a33cc92c7ce7 100644 --- a/pkgs/applications/science/logic/abc/default.nix +++ b/pkgs/applications/science/logic/abc/default.nix @@ -1,35 +1,32 @@ -{ fetchFromGitHub, stdenv, readline, cmake }: +{ stdenv, fetchFromGitHub +, readline, cmake +}: -let - rev = "71f2b40320127561175ad60f6f2428f3438e5243"; -in stdenv.mkDerivation { - pname = "abc-verifier"; - version = "2020-01-11"; +stdenv.mkDerivation rec { + pname = "abc-verifier"; + version = "2020.03.05"; src = fetchFromGitHub { - inherit rev; - owner = "berkeley-abc"; - repo = "abc"; - sha256 = "15sn146ajxql7l1h8rsag5lhn4spwvgjhwzqawfr78snzadw8by3"; + owner = "berkeley-abc"; + repo = "abc"; + rev = "ed90ce20df9c7c4d6e1db5d3f786f9b52e06bab1"; + sha256 = "01sw67pkrb6wzflkxbkxzwsnli3nvp0yxwp3j1ngb3c0j86ri437"; }; - passthru.rev = rev; - nativeBuildInputs = [ cmake ]; buildInputs = [ readline ]; enableParallelBuilding = true; + installPhase = "mkdir -p $out/bin && mv abc $out/bin"; - installPhase = '' - mkdir -p $out/bin - mv abc $out/bin - ''; + # needed by yosys + passthru.rev = src.rev; - meta = { + meta = with stdenv.lib; { description = "A tool for squential logic synthesis and formal verification"; - homepage = https://people.eecs.berkeley.edu/~alanmi/abc; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; + homepage = "https://people.eecs.berkeley.edu/~alanmi/abc"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ thoughtpolice ]; }; } diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix index de90a0c0695a..5e26e37b4438 100644 --- a/pkgs/development/compilers/yosys/default.nix +++ b/pkgs/development/compilers/yosys/default.nix @@ -14,14 +14,14 @@ }: stdenv.mkDerivation rec { - pname = "yosys"; - version = "2020.02.25"; + pname = "yosys"; + version = "2020.03.16"; src = fetchFromGitHub { owner = "YosysHQ"; repo = "yosys"; - rev = "6edca05793197a846bbfb0329e836c87fa5aabb6"; - sha256 = "1cwps3nsld80bh2b66l8fx3fa2zsx174mw72kqxyihpfdm0m0z1s"; + rev = "ed4fa19ba2812c286562baf26bbbcb49afad83bc"; + sha256 = "1sza5ng0q8dy6p4hks9b2db129xjcid9n6l8aglf2cj5ks82k5nv"; }; enableParallelBuilding = true; @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { # we have to do this ourselves for some reason... (cd misc && ${protobuf}/bin/protoc --cpp_out ../backends/protobuf/ ./yosys.proto) - if ! grep -q "ABCREV = ${shortAbcRev}" Makefile;then + if ! grep -q "ABCREV = ${shortAbcRev}" Makefile; then echo "yosys isn't compatible with the provided abc (${shortAbcRev}), failing." exit 1 fi @@ -60,20 +60,21 @@ stdenv.mkDerivation rec { doCheck = true; checkInputs = [ verilog ]; - meta = { - description = "Framework for RTL synthesis tools"; - longDescription = '' - Yosys is a framework for RTL synthesis tools. It currently has - extensive Verilog-2005 support and provides a basic set of - synthesis algorithms for various application domains. - Yosys can be adapted to perform any synthesis job by combining - the existing passes (algorithms) using synthesis scripts and - adding additional passes as needed by extending the yosys C++ - code base. - ''; - homepage = http://www.clifford.at/yosys/; - license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ shell thoughtpolice emily ]; - platforms = stdenv.lib.platforms.all; + # Internally, yosys knows to use the specified hardcoded ABCEXTERNAL binary. + # But other tools (like mcy or symbiyosys) can't know how yosys was built, so + # they just assume that 'yosys-abc' is available -- but it's not installed + # when using ABCEXTERNAL + # + # add a symlink to fake things so that both variants work the same way. + postInstall = '' + ln -sfv ${abc-verifier}/bin/abc $out/bin/yosys-abc + ''; + + meta = with stdenv.lib; { + description = "Open RTL synthesis framework and tools"; + homepage = "http://www.clifford.at/yosys/"; + license = licenses.isc; + platforms = platforms.all; + maintainers = with maintainers; [ shell thoughtpolice emily ]; }; }