rggen/rggen-vhdl

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Gem Version](https://badge.fury.io/rb/rggen-vhdl.svg)](https://badge.fury.io/rb/rggen-vhdl)
[![CI](https://github.com/rggen/rggen-vhdl/actions/workflows/ci.yml/badge.svg)](https://github.com/rggen/rggen-vhdl/actions/workflows/ci.yml)
[![Maintainability](https://api.codeclimate.com/v1/badges/d30b2c06ae3d7c0f254a/maintainability)](https://codeclimate.com/github/rggen/rggen-vhdl/maintainability)
[![codecov](https://codecov.io/gh/rggen/rggen-vhdl/branch/master/graph/badge.svg?token=cyo9R4xCje)](https://codecov.io/gh/rggen/rggen-vhdl)
[![Gitter](https://badges.gitter.im/rggen/rggen.svg)](https://gitter.im/rggen/rggen?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

# RgGen::VHDL

RgGen::VHDL is a RgGen plugin to generate RTL written in VHDL.

## Installation

To install RgGen::VHDL, use the following command:

```
$ gem install rggen-vhdl
```

## Usage

You need to tell RgGen to load RgGen::VHDL plugin. There are two ways.

### Using `--plugin` runtime option

```
$ rggen --plugin rggen-vhdl your_register_map.yml
```

### Using `RGGEN_PLUGINS` environment variable

```
$ export RGGEN_PLUGINS=${RGGEN_PLUGINS}:rggen-vhdl
$ rggen your_register_map.yml
```

## Using Generated RTL

Generated RTL modules are constructed by using common VHDL modules.
You need to get them from the GitHub repository and set an envirnment variable to show their location.

* GitHub repository
    * https://github.com/rggen/rggen-vhdl-rtl.git
* Environment variable
    * RGGEN_VHDL_RTL_ROOT

```
$ git clone https://github.com/rggen/rggen-vhdl-rtl.git
$ export RGGEN_VHDL_RTL_ROOT=`pwd`/rggen-vhdl-rtl
```

Then, you can use generated RTL modules with your design. This is an example command.

```
$ simulator \
    -f ${RGGEN_VHDL_RTL_ROOT}/compile.f
    your_csr_0.vhd your_csr_1.vhd your_design.vhd
```

## Contact

Feedbacks, bus reports, questions and etc. are welcome! You can post them bu using following ways:

* [GitHub Issue Tracker](https://github.com/rggen/rggen/issues)
* [GitHub Discussions](https://github.com/rggen/rggen/discussions)
* [Chat Room](https://gitter.im/rggen/rggen)
* [Mailing List](https://groups.google.com/d/forum/rggen)
* [Mail](mailto:rggen@googlegroups.com)

## Copyright & License

Copyright © 2021-2024 Taichi Ishitani. RgGen::VHDL is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.

## Code of Conduct

Everyone interacting in the RgGen::VHDL project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/rggen/rggen-vhdl/blob/master/CODE_OF_CONDUCT.md).