/rggen

Code generation tool for control/status registers in a SoC design

Primary LanguageRubyMIT LicenseMIT

Gem Version Build Status Dependency Status Code Climate Test Coverage Join the chat at https://gitter.im/taichi-ishitani/rggen

RgGen

RgGen is a code generator tool for SoC/IP/FPGA/RTL engineers. It will automatically generate source code for control/status registers, e.g. RTL, UVM RAL model, C header file, from its register map document. Also RgGen is customizable so you can build your specific generate tool.

Ruby

RgGen is written in the Ruby programing language and supports version 2.0 or later. If you don't have above version of Ruby, you need to install the Ruby at first. To install the Ruby, see this page.

Installation

To install RgGen and required libraries, use the following command:

$ gem install rggen

RgGen will be installed under your system root.

If you want to install them on other location, you need to specify the install directory and set the GEM_PATH environment variable like below:

$ gem install --install-dir YOUR_INSTALL_DIRECTORY rggen
$ export GEM_PATH=YOUR_INSTALL_DIRECTORY

Usage

See this page

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contact

If you have any questions, problems, ideas or somethings, you can post them on the following ways:

  1. Issue tracker
  2. Chat room
  3. Mail

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/taichi-ishitani/rggen. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Copyright

Copyright © 2015-2018 Taichi Ishitani. See LICENSE.txt for further details.