{"id":21365,"library":"fusesoc","title":"FuseSoC","description":"FuseSoC is a package manager and build abstraction tool for HDL (Hardware Description Language) code. Current version is 2.4.5, with a regular release cadence of several minor versions per year. It supports managing reusable HDL cores, generating simulation and synthesis build systems, and integrates with EDA tools.","status":"active","version":"2.4.5","language":"python","source_language":"en","source_url":"https://github.com/olofk/fusesoc","tags":["hdl","package-manager","build-tool","eda"],"install":[{"cmd":"pip install fusesoc","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for interfacing with EDA tools.","package":"edalize","optional":false},{"reason":"Required for parsing core files.","package":"pyyaml","optional":false}],"imports":[{"note":"FuseSoC is primarily a CLI tool. Importing the top-level package directly does not expose the CLI function.","wrong":"import fusesoc","symbol":"main","correct":"from fusesoc.main import main"}],"quickstart":{"code":"from fusesoc.main import main\nimport sys\nsys.argv = ['fusesoc', '--help']\nmain()","lang":"python","description":"Run FuseSoC's help from Python. For CLI usage, invoke `fusesoc` directly."},"warnings":[{"fix":"Use `pip install fusesoc` or build from source with `pip install .` (pyproject.toml).","message":"FuseSoC 2.4 migrated from setup.py to pyproject.toml. Projects relying on direct setup.py installation may break.","severity":"breaking","affected_versions":">=2.4"},{"fix":"Convert .core files to CAPI2 format as documented in the official migration guide.","message":"The old CAPI1 core format is deprecated. Only CAPI2 (.core) files are actively supported.","severity":"deprecated","affected_versions":">=2.1"},{"fix":"Explicitly specify the target with `--target` flag, e.g., `fusesoc run --target=sim`.","message":"Running `fusesoc run` without specifying a target may fail if the core defines multiple targets. The first target is used by default, which may not be intended.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run `pip install fusesoc` in the correct environment.","cause":"FuseSoC is not installed or not in the current Python environment.","error":"ModuleNotFoundError: No module named 'fusesoc'"},{"fix":"Upgrade to FuseSoC 2.3 or later, or use the legacy --work option.","cause":"Using --work-root flag with FuseSoC versions before 2.3.","error":"fusesoc: error: unrecognized arguments: --work-root"},{"fix":"Use Python 3.6 to 3.12.","cause":"The Python version is too old (<3.6) or too new (>=4.0).","error":"ERROR: Could not find a version that satisfies the requirement fusesoc (from versions: none)"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}