{ pkgs }: rec { drvs = rec { yosys = pkgs.callPackage ./eda/yosys.nix {}; symbiyosys = pkgs.symbiyosys.override { inherit yosys; }; nmigen = pkgs.callPackage ./eda/nmigen.nix { inherit yosys; }; nmigen-boards = pkgs.callPackage ./eda/nmigen-boards.nix { inherit nmigen; }; scala-spinalhdl = pkgs.callPackage ./eda/scala-spinalhdl.nix {}; jtagtap = pkgs.callPackage ./cores/jtagtap.nix { inherit nmigen; }; minerva = pkgs.callPackage ./cores/minerva.nix { inherit nmigen; inherit jtagtap; }; vexriscv-small = pkgs.callPackage ./cores/vexriscv.nix { inherit scala-spinalhdl; name = "vexriscv-small"; scalaToRun = "vexriscv.demo.GenSmallAndProductive"; }; heavycomps = pkgs.callPackage ./heavycomps.nix { inherit nmigen; }; binutils-riscv32 = pkgs.callPackage ./compilers/binutils.nix { platform = "riscv32"; }; gcc-riscv32 = pkgs.callPackage ./compilers/gcc.nix { platform = "riscv32"; platform-binutils = binutils-riscv32; }; binutils-riscv64 = pkgs.callPackage ./compilers/binutils.nix { platform = "riscv64"; }; gcc-riscv64 = pkgs.callPackage ./compilers/gcc.nix { platform = "riscv64"; platform-binutils = binutils-riscv64; }; rust-riscv32i-crates = pkgs.callPackage ./compilers/rust-riscv32i-crates.nix { }; fw-helloworld = pkgs.callPackage ./firmware { inherit rust-riscv32i-crates binutils-riscv32; }; }; lib = { symbiflow = import ./eda/symbiflow.nix { inherit pkgs; inherit (drvs) yosys; }; vivado = import ./eda/vivado.nix { inherit pkgs; }; }; }