Skip to main content

Utility for simply creating and modifying VHDL bus slave modules

Project description

Build Status

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 VHLD 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 seperate from the rest of the designers logic. All referring to the registers are done via a record which 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-types:

Requirements

bust is thoroughly tested with python 3.6.8 but should work with the following versions:

  • python 3.4
  • python 3.5
  • python 3.6
  • python 3.7
  • python 3.8

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 contain the output files generated based on the JSON-files.

Simulation

Simulations script 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.

IPBus

IPBus require the bus package file from the IPBus firmware repo and the custom IPBus BFM repo made by me. Both can be cloned from their own repos.

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 on Github. Clone the repo and checkout 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 at the Releases page.

Contributing

If you have ideas on how to improve the project, please review CONTRIBUTING.md for details. Note that we also have a Code of Conduct.

License

This project is licensed under the MIT license - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bust-0.9.4.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bust-0.9.4-py3-none-any.whl (41.3 kB view details)

Uploaded Python 3

File details

Details for the file bust-0.9.4.tar.gz.

File metadata

  • Download URL: bust-0.9.4.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for bust-0.9.4.tar.gz
Algorithm Hash digest
SHA256 9521fcec01160dfb44c2ea867b895493c9e5cc318267cb033504a403104c12d7
MD5 f684592500c505861951e2f52c425ec0
BLAKE2b-256 cc9b78b0835bf70a3cd9e5dbfc08252247b997229832c384a36f6fc3ece06c83

See more details on using hashes here.

File details

Details for the file bust-0.9.4-py3-none-any.whl.

File metadata

  • Download URL: bust-0.9.4-py3-none-any.whl
  • Upload date:
  • Size: 41.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for bust-0.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c80cbe28d747635e2fc51866518f3b9353815229987c0fe5f5cb34b0fc334ed0
MD5 cc2eca6c2d5064d18ad159a6c33b584d
BLAKE2b-256 ac8b76df9f7bee1ce6a16ae58b4f7717d7b168ad11a8222c707159c7c52e3342

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page