Something went wrong. Try again.
logic pro compatible fpga based logic analyzer
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172{ description = "picologic - Open-source Saleae Logic 8 emulator for ECP5 FPGA";
inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; };
outputs = { nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system};
# LUNA is not in nixpkgs yet — build from source luna = pkgs.python3Packages.buildPythonPackage { pname = "luna"; version = "0.1.0"; src = pkgs.fetchFromGitHub { owner = "greatscottgadgets"; repo = "luna"; rev = "main"; hash = pkgs.lib.fakeHash; # Will be filled on first build }; pyproject = true; build-system = [ pkgs.python3Packages.setuptools ]; dependencies = with pkgs.python3Packages; [ amaranth amaranth-lib pyvcd pyserial ]; doCheck = false; };
pythonEnv = pkgs.python3.withPackages (ps: with ps; [ amaranth amaranth-lib pyvcd pyserial pytest luna ]);
in { devShells.default = pkgs.mkShell { packages = with pkgs; [ # FPGA toolchain yosys nextpnr trellis openFPGALoader
# Python + gateware deps pythonEnv
# Utilities just git ];
shellHook = '' echo "picologic dev environment" echo " yosys: $(yosys --version 2>/dev/null || echo 'not found')" echo " nextpnr: $(nextpnr-ecp5 --version 2>/dev/null || echo 'not found')" echo " ecppack: $(which ecppack 2>/dev/null || echo 'not found')" echo " amaranth: $(python3 -c 'import amaranth; print(amaranth.__version__)' 2>/dev/null || echo 'not found')" ''; }; } );}