![Workflow status](https://github.com/olagrottvik/bust/actions/workflows/python_tests.yml/badge.svg)
# bust bus tool
Utility for simply creating and modifying VHDL bus slave modules.
## Concept
The main goal of the project is to able to automatically create and modify VHDL bus slave modules based on a simple definition format.
By employing VHDL records the handling of the registers can be completely hidden in a module separate from the rest of the design.
All referring to the registers are done via a record that specifies if the register is read-only or read-write, and also includes the name.
All bus-specific signals are also wrapped in records. This increases the readability of the design as a whole.
## Bus support
bust currently supports these bus standards:
- [AXI4-lite](https://en.wikipedia.org/wiki/Advanced_eXtensible_Interface#AXI4-Lite)
- [IPBus](https://ipbus.web.cern.ch/ipbus/)
## Requirements
bust is developed in an environment with python 3.9.18 but should work with the following versions:
- python 3.9
- python 3.10
- python 3.11
bust does NOT support python 2.7 and neither should you!
## Getting Started
Install the latest relase by using pip:
`pip install bust`
### Usage
`bust.py FILE [-o DIR]`
`bust.py --version`
`bust.py -h | --help`
## Examples
The examples folder contains JSON files for the bus types supported.
The files are human-readable to the point that you can create your own from this template alone.
The folder also contains the output files generated based on the JSON files.
### Simulation
Simulation scripts are made solely for Modelsim/Questasim. For any other simulators, you need to compile everything yourselves.
All testbenches require UVVM - which can be cloned from their [Github page](https://github.com/UVVM/UVVM).
### IPBus
IPBus requires the bus package file from the [IPBus firmware repo](https://github.com/ipbus/ipbus-firmware) and the custom [IPBus BFM repo](https://github.com/olagrottvik/vip_ipbus).
See the example files for how you point to the specific folders.
## Latest Development Version (Bleeding Edge)
The latest development version can be found in the [dev branch](https://github.com/olagrottvik/bust/tree/dev) on Github. Clone the repo and check out the branch.
`git clone https://github.com/olagrottvik/bust.git`
`cd bust`
`git checkout dev`
`pip install -r requirements.txt`
`python -m bust`
## Release Notes
Release notes can be found on the [Releases page](https://github.com/olagrottvik/bust/releases).
## Contributing
If you have ideas on how to improve the project, please review [CONTRIBUTING.md](CONTRIBUTING.md) for details. Note that we also have a [Code of Conduct](CODE_OF_CONDUCT.md).
## License
This project is licensed under the MIT license - see [LICENSE](LICENSE) for details.
Raw data
{
"_id": null,
"home_page": "http://github.com/olagrottvik/bust",
"name": "bust",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9.0",
"maintainer_email": null,
"keywords": "vhdl, bus, axi, ipbus, slave, generator",
"author": "Ola Groettvik",
"author_email": "olagrottvik@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8e/bd/3309817a2b2992540bd77b3617dcd45612738f740c9bfa6fdb87da7dc81d/bust-0.13.2.tar.gz",
"platform": null,
"description": "![Workflow status](https://github.com/olagrottvik/bust/actions/workflows/python_tests.yml/badge.svg)\n\n# bust bus tool\n\nUtility for simply creating and modifying VHDL bus slave modules.\n\n## Concept\n\nThe main goal of the project is to able to automatically create and modify VHDL bus slave modules based on a simple definition format.\nBy employing VHDL records the handling of the registers can be completely hidden in a module separate from the rest of the design.\nAll referring to the registers are done via a record that specifies if the register is read-only or read-write, and also includes the name.\nAll bus-specific signals are also wrapped in records. This increases the readability of the design as a whole.\n\n## Bus support\n\nbust currently supports these bus standards:\n\n- [AXI4-lite](https://en.wikipedia.org/wiki/Advanced_eXtensible_Interface#AXI4-Lite)\n- [IPBus](https://ipbus.web.cern.ch/ipbus/)\n\n## Requirements\n\nbust is developed in an environment with python 3.9.18 but should work with the following versions:\n\n- python 3.9\n- python 3.10\n- python 3.11\n\nbust does NOT support python 2.7 and neither should you!\n\n## Getting Started\n\nInstall the latest relase by using pip:\n\n`pip install bust`\n\n### Usage\n\n`bust.py FILE [-o DIR]`\n\n`bust.py --version`\n\n`bust.py -h | --help`\n\n## Examples\n\nThe examples folder contains JSON files for the bus types supported.\nThe files are human-readable to the point that you can create your own from this template alone.\nThe folder also contains the output files generated based on the JSON files.\n\n### Simulation\nSimulation scripts are made solely for Modelsim/Questasim. For any other simulators, you need to compile everything yourselves.\nAll testbenches require UVVM - which can be cloned from their [Github page](https://github.com/UVVM/UVVM).\n\n### IPBus\nIPBus requires the bus package file from the [IPBus firmware repo](https://github.com/ipbus/ipbus-firmware) and the custom [IPBus BFM repo](https://github.com/olagrottvik/vip_ipbus).\n\nSee the example files for how you point to the specific folders.\n\n## Latest Development Version (Bleeding Edge)\n\nThe latest development version can be found in the [dev branch](https://github.com/olagrottvik/bust/tree/dev) on Github. Clone the repo and check out the branch.\n\n`git clone https://github.com/olagrottvik/bust.git`\n\n`cd bust`\n\n`git checkout dev`\n\n`pip install -r requirements.txt`\n\n`python -m bust`\n\n\n\n## Release Notes\n\nRelease notes can be found on the [Releases page](https://github.com/olagrottvik/bust/releases).\n\n\n## Contributing\n\nIf you have ideas on how to improve the project, please review [CONTRIBUTING.md](CONTRIBUTING.md) for details. Note that we also have a [Code of Conduct](CODE_OF_CONDUCT.md).\n\n\n## License\n\nThis project is licensed under the MIT license - see [LICENSE](LICENSE) for details.",
"bugtrack_url": null,
"license": "MIT",
"summary": "Utility for simply creating and modifying VHDL bus slave modules",
"version": "0.13.2",
"project_urls": {
"Homepage": "http://github.com/olagrottvik/bust"
},
"split_keywords": [
"vhdl",
" bus",
" axi",
" ipbus",
" slave",
" generator"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8ebd3309817a2b2992540bd77b3617dcd45612738f740c9bfa6fdb87da7dc81d",
"md5": "caf9c3c50522d483c30602f7d58074b3",
"sha256": "39835f2ec161ea040b5ae9d40f737ea782787bf94dbfe5800edc0f2109820e3e"
},
"downloads": -1,
"filename": "bust-0.13.2.tar.gz",
"has_sig": false,
"md5_digest": "caf9c3c50522d483c30602f7d58074b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 39584,
"upload_time": "2024-09-27T11:42:33",
"upload_time_iso_8601": "2024-09-27T11:42:33.922156Z",
"url": "https://files.pythonhosted.org/packages/8e/bd/3309817a2b2992540bd77b3617dcd45612738f740c9bfa6fdb87da7dc81d/bust-0.13.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-27 11:42:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "olagrottvik",
"github_project": "bust",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "bump2version",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "bumpversion",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "curses-menu",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "Deprecated",
"specs": [
[
"==",
"1.2.14"
]
]
},
{
"name": "docopt",
"specs": [
[
"==",
"0.6.2"
]
]
},
{
"name": "prettytable",
"specs": [
[
"==",
"3.10.0"
]
]
},
{
"name": "pylatexenc",
"specs": [
[
"==",
"2.1"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.13"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "twine",
"specs": []
}
],
"lcname": "bust"
}