All Projects → IBM → hdl-tools

IBM / hdl-tools

Licence: Apache-2.0 license
Facilitates building open source tools for working with hardware description languages (HDLs)

Programming Languages

perl
6916 projects
tcl
693 projects
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to hdl-tools

virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (-32.14%)
Mutual labels:  rtl, verilog, hdl, verilator
svut
SVUT is a simple framework to create Verilog/SystemVerilog unit tests. Just focus on your tests!
Stars: ✭ 48 (-14.29%)
Mutual labels:  verilog, gtkwave, verilator
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (-33.93%)
Mutual labels:  rtl, verilog, hdl
vboard
Virtual development board for HDL design
Stars: ✭ 32 (-42.86%)
Mutual labels:  verilog, hdl, verilator
sv-tests
Test suite designed to check compliance with the SystemVerilog standard.
Stars: ✭ 148 (+164.29%)
Mutual labels:  rtl, verilog, hdl
tree-core-cpu
A series of RISC-V soft core processor written from scratch. Now, we're using all open-source toolchain( chisel, mill, verilator, NEMU, AM and difftest framework, etc) to design and verify.
Stars: ✭ 22 (-60.71%)
Mutual labels:  rtl, verilator
Rggen
Code generation tool for configuration and status registers
Stars: ✭ 54 (-3.57%)
Mutual labels:  rtl, verilog
cnn open
A hardware implementation of CNN, written by Verilog and synthesized on FPGA
Stars: ✭ 157 (+180.36%)
Mutual labels:  rtl, verilog
vga-clock
Show the time on a VGA monitor. Submitted for the Google MPW1 ASIC shuttle.
Stars: ✭ 48 (-14.29%)
Mutual labels:  rtl, verilog
Scr1
SCR1 is a high-quality open-source RISC-V MCU core in Verilog
Stars: ✭ 393 (+601.79%)
Mutual labels:  rtl, verilog
Sv Tests
Test suite designed to check compliance with the SystemVerilog standard.
Stars: ✭ 108 (+92.86%)
Mutual labels:  rtl, verilog
OpenROAD-flow-scripts
OpenROAD's scripts implementing an RTL-to-GDS Flow. Documentation at https://openroad-flow-scripts.readthedocs.io/en/latest/
Stars: ✭ 124 (+121.43%)
Mutual labels:  rtl, verilog
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+1796.43%)
Mutual labels:  rtl, verilog
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (+37.5%)
Mutual labels:  rtl, verilog
Spinalhdl
Scala based HDL
Stars: ✭ 696 (+1142.86%)
Mutual labels:  rtl, verilog
Chisel3
Chisel 3: A Modern Hardware Design Language
Stars: ✭ 2,290 (+3989.29%)
Mutual labels:  rtl, verilog
dbgbus
A collection of debugging busses developed and presented at zipcpu.com
Stars: ✭ 24 (-57.14%)
Mutual labels:  verilog, verilator
Fpga readings
Recipe for FPGA cooking
Stars: ✭ 164 (+192.86%)
Mutual labels:  rtl, verilog
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-55.36%)
Mutual labels:  verilog, hdl
PyChip-py-hcl
A Hardware Construct Language
Stars: ✭ 36 (-35.71%)
Mutual labels:  rtl, verilog

HDL Tools Build Status

Environment for working with HDLs. This builds a number of tools from source and relies on some scripts to facilitate HDL work.

Programs

All the programs are fetched (as a git submodule, via svn, or as a direct download) and built. You can do this with the included Makefile targets for individual tools:

  • verilator -- Build Verilator
  • gtkwave -- Build GTKWave

Additional targets include:

  • build-all -- Build all the tools
  • usage -- list all available build targets
  • clean-installed -- remove the installed tools in ./opt/ (this will not respect PREFIX so that you don't nuke your /opt directory)
  • clean-downloaded -- remove all downloaded program sources
  • mrproper -- remove downloaded program contents

Tools will, by default, be installed in ./opt/. However, you can pass a PREFIX option to the Makefile if for whatever reason you want to install these somewhere else (not advised).

Verilator

Verilog to C++ compiler. This is not required to be built for working with Rocket Chip (it will build its own version of Verilator).

GTKWave

Open source (GPL2) waveform viewer with TCL integration.

Verilog::Perl

Perl tools for working with Verilog netlists.

Scripts

addWavesRecursive.tcl

TCL script that, when passed to GTKWave, will generate a saved waveform view (a .gtkw file) that has all the signals in a given VCD file grouped by module. An example invocation would be:

gtkwave -S addWavesRecursive.tcl dump.vcd > dump.gtkw

You can then start GTKWave using this saved view with:

gtkwave dump.vcd dump.gtkw

After 904555632a5131686c20921593ba7010efece916, this is O(n log n) in the number of signals. Previously, this was O(n^2).

vcd-prune

Perl script to prune a VCD file to only include specific modules (and all their submodules). An example invocation would be:

./vcd-prune dump.vcd -m MyModule -o dump-short.vcd

This will only dump signals contained in MyModule or its submodules. For testing a small part of a huge design (e.g., a RoCC unit attached to Rocket Chip), this can cut down dramatically on the size of the VCD file and the processing time of addWavesRecursive.tcl and startup time of a waveform viewer.

  • Verilator -- Verilog to C++ compiler
  • GTKWave -- Lightweight waveform viewer
  • scripts/
    • addWavesRecursive.tcl -- TCL script for GTKWave that populates the waveform viewer with signals nested into the module hierarchy

gtkwave-helper

Bash script that takes care of the boilerplate operations necessary to launch GTKWavewith addWavesRecursive.

Complexities

This comes up as these tools are intended to be used on large amounts of data

Tool Complexity What is N? Critical Region
addWavesRecursive.tcl n log n number of signals tree merge
vcd-prune n number of lines regex
gtkwave-helper
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].