ICGlue is a C/Tcl based library and tool for scripted generation of hardware description. The focus here is on simplifying to create module hierarchy, connectivity and configuration via register-files. Created output contains modules in a hardware description language (currently only systemverilog/verilog) and register-file documentation.
Current features are:
- Read in a user-defined Tcl construction script to describe hierarchy, connectivity and config registers.
- Run some sanity checks.
- Write out code/documentation defined by customizable Tcl-based templates.
Planned features: see todo-list.
For an overview see icglue. For library documentation build the doxygen documentation by running
make docs
and browse it in firefox by running
make showdocs
- glib2
- tcl8.6
- nagelfar (for Tcl syntax checks)
- doxygen (for source code documentation)
- gcc
- make
- pkg-config (with configs for glib2 and Tcl - otherwise you need to patch
lib/Makefile
)
- iverilog
- libpcl (portable coroutine library)
Run
make
to build core library and Tcl package. Run
make everything
to build doxygen-Documentation (needs doxygen) and nagelfar syntaxfiles as well (needs nagelfar installed).
Run e.g.
DESTDIR=/opt/icglue make install
to install to /opt/icglue.
See developers.
If not stated otherwise: GNU GPLv3 (see license).
Note: The license applies especially to the tool itself and its default templates, but, similar to a compiler or any other kind of data processing tool, the license does not affect the input handed to the tool or the output generated by it.
After the initial phase, most of the work for ICGlue was done at the Chair of Highly-Parallel VLSI Systems and Neuro-Microelectronics (HPSN) at TU Dresden (see HPSN). It is inspired by its predecessor icsng developed by Jens-Uwe Schlüssler.