# RVvM - Ruby Vivado Manager RVvM is a Ruby based meta tool to manage, compile, elaborate and simulate SystemVerilog and UVM based projects using Xilinx Vivado xvlog, xelab, xrun and xsc tools. ## Installation Install the gem and add to the application's Gemfile by executing: ```bash bundle add rvvm ``` If bundler is not being used to manage dependencies, install the gem by executing: ```bash gem install rvvm ``` ## Usage ### Project management Create a new RVvM project using `-n` or `--new`. eg.: ``` rvvm -n best_rtl_project ``` Whitespaces in project name and or generated templates are not allowed. To manage an RVvM project use the `rvvm` script from inside an RVvM project root or its config directory. #### Project structure ``` RvvM_project ├── design # SV design sources │   ├── itf │   ├── pkg │   └── src ├── rvvm # RVvM project config and output directory │   ├── rvvm_project_compile_list.f │   ├── dpi_compile_list.f │   ├── logs # comp, dpi, elab, sim log dir │   │   ├── comp │   │   ├── dpi │   │   ├── elab │   │   └── sim │   ├── rvvmconf.json # RVvM project config file │   └── wfcfg.tcl └── verif # SV verification sources ├── env │   ├── agents │   └── top ├── tb │   └── src # default UVM testbench top module │   └── rvvm_project_tb_top.sv └── test ├── seq └── src ``` To get full `rvvm` usage docs use `-h` or `--help` option. ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. 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 the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://gitlab.com/such-hdl-much-wow/rvvm. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/such-hdl-much-wow/rvvm/-/blob/master/CODE_OF_CONDUCT.md?ref_type=heads). ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). ## Code of Conduct Everyone interacting in the RVvM project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/such-hdl-much-wow/rvvm/-/blob/master/CODE_OF_CONDUCT.md?ref_type=heads).