All Projects → rggen → Rggen

rggen / Rggen

Licence: mit
Code generation tool for configuration and status registers

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Rggen

Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (+133.33%)
Mutual labels:  verilog, fpga, eda, asic
Logic
CMake, SystemVerilog and SystemC utilities for creating, building and testing RTL projects for FPGAs and ASICs.
Stars: ✭ 149 (+175.93%)
Mutual labels:  verilog, fpga, asic, rtl
Cores
Various HDL (Verilog) IP Cores
Stars: ✭ 271 (+401.85%)
Mutual labels:  verilog, fpga, asic, rtl
VGChips
Video Game custom chips reverse-engineered from silicon
Stars: ✭ 86 (+59.26%)
Mutual labels:  asic, fpga, verilog
Spinalhdl
Scala based HDL
Stars: ✭ 696 (+1188.89%)
Mutual labels:  verilog, fpga, rtl
hwt
VHDL/Verilog/SystemC code generator, simulator API written in python/c++
Stars: ✭ 145 (+168.52%)
Mutual labels:  fpga, rtl, verilog
Hard-JPEG-LS
FPGA-based JPEG-LS image compressor.
Stars: ✭ 52 (-3.7%)
Mutual labels:  fpga, rtl, verilog
Clash Compiler
Haskell to VHDL/Verilog/SystemVerilog compiler
Stars: ✭ 958 (+1674.07%)
Mutual labels:  verilog, fpga, asic
blarney
Haskell library for hardware description
Stars: ✭ 81 (+50%)
Mutual labels:  fpga, rtl, verilog
Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (+400%)
Mutual labels:  verilog, fpga, eda
Riscv
RISC-V CPU Core (RV32IM)
Stars: ✭ 272 (+403.7%)
Mutual labels:  verilog, fpga, asic
PeakRDL-uvm
Generate UVM register model from compiled SystemRDL input
Stars: ✭ 25 (-53.7%)
Mutual labels:  asic, fpga, eda
OpenLane
OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, Fault and custom methodology scripts for design exploration and optimization.
Stars: ✭ 548 (+914.81%)
Mutual labels:  asic, rtl, verilog
FPGA-USB-Device
FPGA-based USB-device controller to implement USB-CDC, USB-HID, etc.
Stars: ✭ 29 (-46.3%)
Mutual labels:  fpga, rtl, verilog
PeakRDL-ipxact
Import and export IP-XACT XML register models
Stars: ✭ 21 (-61.11%)
Mutual labels:  asic, fpga, eda
Fake-SDcard
Imitate SDcard using FPGAs.
Stars: ✭ 26 (-51.85%)
Mutual labels:  fpga, rtl, verilog
Openroad
OpenROAD's unified application implementing an RTL-to-GDS Flow
Stars: ✭ 270 (+400%)
Mutual labels:  verilog, eda, rtl
Openlane
OpenLANE is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, Fault and custom methodology scripts for design exploration and optimization.
Stars: ✭ 293 (+442.59%)
Mutual labels:  verilog, asic, rtl
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (-31.48%)
Mutual labels:  fpga, rtl, verilog
SpinalCrypto
SpinalHDL - Cryptography libraries
Stars: ✭ 36 (-33.33%)
Mutual labels:  fpga, rtl, verilog

Gem Version CI Maintainability codecov Quality Gate Status Gitter

ko-fi

RgGen

RgGen is a code generation tool for ASIC/IP/FPGA/RTL engineers. It will automatically generate soruce code related to configuration and status registers (CSR), e.g. SytemVerilog RTL, UVM register model (UVM RAL), Wiki documents, from human readable register map specifications.

RgGen has following features:

  • Generate source files related to CSR from register map specifications
    • SystemVerilog RTL
    • Verilog RTL
    • UVM register model (UVM RAL)
    • Register map documents written in Markdown
  • Register map specifications can be written in human readable format
    • Ruby with APIs to describe register map information
    • YAML
    • JSON
    • TOML
    • Spreadsheet (XLSX, XLS, OSD, CSV)
    • SiFive DUH
  • Costomize RgGen for you environment
    • E.g. add special bit field types

Installation

Ruby

RgGen is written in the Ruby programing language and its required version is 2.5 or later. You need to install any of these versions of Ruby before installing RgGen tool. To install Ruby, see this page.

Installatin Command

RgGen depends on following sub components and other Ruby libraries.

To install RgGen and the dependencies, use the command below:

$ gem install rggen

RgGen and dependencies will be installed on your system root.

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

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

You would get the following error message duaring installation if you have the old RgGen (version < 0.9).

ERROR:  Error installing rggen:
        "rggen" from rggen-core conflicts with installed executable from rggen

To resolve the above error, there are three solutions. See this page

Usage

See Wiki documents.

Plugin

RgGen has plugin feature to allow your cusomization. See this Wiki document for futher detals.

Supported Tools

Following EDA tools can accept the generated source files.

  • Simulation tools
    • Synopsys VCS
    • Cadence Xcelium
    • Xilinx Vivado Simulator
      • Confirmed RTL only
      • Not sure if UVM register models are accepted
    • Verilator
      • Need -Wno-fatal switch
  • Synthesis tools
    • Synopsys Design Compiler
    • Intel Quartus
    • Xilinx Vivado

Example

You can get example configuration file and register map specification listed below:

By using these example files, you can try to use RgGen. Hit command below:

$ rggen -c config.yml -o out block_0.yml block_1.yml
  • -c: Specify path to your configuration file
  • -o: Specify path to the directory where generated files will be written to

Then, generated files listed below will be written to out directory.

Contributing

See Contributing Guide.

Contact

Feedbacks, bug reports, questions and etc. are wellcome! You can post them by using following ways:

See Also

Copyright & License

Copyright © 2019-2021 Taichi Ishitani. RgGen is licensed under the MIT License, see LICENSE for futher detils.

Code of Conduct

Everyone interacting in the RgGen project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].