https://github.com/m-kru/hbs
HBS (Hardware Build System) - the build system for hardware description projects.
https://github.com/m-kru/hbs
Last synced: 5 months ago
JSON representation
HBS (Hardware Build System) - the build system for hardware description projects.
- Host: GitHub
- URL: https://github.com/m-kru/hbs
- Owner: m-kru
- License: bsd-3-clause
- Created: 2023-12-10T11:07:38.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-02-10T19:48:24.000Z (5 months ago)
- Last Synced: 2026-02-10T21:51:33.195Z (5 months ago)
- Language: Tcl
- Size: 6.04 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hdl - hbs - A lean dependency management and build system for hardware description projects. (Other Design Automation tools)
- awesome-opensource-hardware - hbs
README
[](https://github.com/m-kru/hbs/actions?query=master)
#  HBS - Hardware Build System
HBS is a Tcl-based, minimal common abstraction build system for hardware design projects.
## Documentation
Please check the official [HBS user manual](https://github.com/m-kru/hbs/blob/master/user-manual/hbs-user-manual.pdf).
## Supported tools
- ghdl,
- gowin,
- modelsim - set tool to questa,
- nvc,
- questa,
- vivado-prj - Vivado project mode,
- xsim - Vivado simulator.
# Changelog
## [Unreleased]
### Added
- `dry-run` command for dry run and previewing commands.
- Questa simulator support.
- `HBS_DEBUG` environment variable for debugging prints.
- `HBS_DEVICE` environment variable for enforcing device.
- `HBS_EXIT_SEVERITY` environment variable for enforcing exit severity.
- `HBS_BUILD_DIR` environment variable for enforcing build directory.
- `HBS_TOOL` environment variable for enforcing tool.
- `HBS_STD` environment variable for enforcing HDL standard revision.
- `-onerror quit` argument for xsim.
- `hbs::ExitSeverity` variable for unifying exit condition in simulators.
### Changed
- Improved error messages.
- Improved regex for errors and warnings.
- `vivado-prj`: Part is set immediately as `hbs::SetDevice` is called.
- `vivado-prj`: Bitstream file name changed from current project name to `hbs::Top`.
This is required for `write_hw_platform -include_bit` command to work without any extra actions.
- Rename `TopCore` and `TopTarget` to `RunCore` and `RunTarget`.
- Rename `targetDir` to `RunTargetBuildDir` and make it public.
### Fixed
- Generics handling for xsim.
- `test` command returns an error if any test fails.