Skip to content

pulp-platform/bender

Repository files navigation

Bender

A dependency management tool for hardware design projects.

Bender manages HDL package dependencies across Git repositories and local paths, resolves compatible versions, records the exact result in Bender.lock, and collects ordered source sets for downstream tools. It is designed to fit existing hardware flows rather than impose a registry, directory layout, or simulator choice.

Build Status Crates.io License

Why Bender

  • Reproducible dependency resolution: Resolve IP dependencies from Git tags, revisions, or local paths and record the exact state in Bender.lock.
  • HDL-aware source collection: Keep source ordering, include directories, defines, and target-specific file groups in one place.
  • Tool-agnostic workflow: Generate inputs for QuestaSim, VCS, Vivado, Verilator, and other flows without forcing a particular setup.
  • Practical local development: Work on dependencies locally and modify them conveniently as part of your development flow.

Quick Start

Install Bender:

curl --proto '=https' --tlsv1.2 https://pulp-platform.github.io/bender/init -sSf | sh

Create a package:

mkdir my_ip
cd my_ip
bender init

Add a dependency to Bender.yml:

dependencies:
  common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: "1.21.0" }

Resolve dependencies and generate a compile script:

bender update
bender script vsim > compile.tcl
vsim -do compile.tcl

How It Works

Bender packages are built around three files:

  • Bender.yml: Declares package metadata, dependencies, sources, targets, and workflow configuration.
  • Bender.lock: Records the exact resolved dependency revisions for reproducible builds.
  • Bender.local: Stores local overrides, for example when developing a dependency in-place.

In a typical workflow, you edit Bender.yml, run bender update to resolve dependencies, use bender checkout to download the revisions pinned in Bender.lock, and generate tool inputs with bender script.

Documentation

The full documentation lives at pulp-platform.github.io/bender/.

License

Bender is licensed under either of:

at your option.


PULP Platform

Bender is maintained by the PULP Platform at ETH Zurich and the University of Bologna.

About

A dependency management tool for hardware projects.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

 
 
 

Contributors