Logo
stimc — a Lightweight Verilog-VPI Wrapper for Stimuli Generation

stimc

                               ,'-,
                             ,' ', '.
                           ,' ;.  '.,'
  ,----------------------,' ,' ,'';'
  | ,---,   ,---,   ,--,' ,' ,' ,'
  | |   |   |   |   |,' ,' ,' ,'
  | |   |   |   |   /'.' ,' ,'     _   _
  |-'   '---'   '--/   :' ,'   ___| |_(_)_ __ ___   ___
  |    ,----,  ,-,/%_..-'' |  / __| __| | '_ ` _ \ / __|
  |___/      \/  (         |  \__ \ |_| | | | | | | (__
  |   \      /\   )        |  |___/\__|_|_| |_| |_|\___|
  |    '----'  '--'        |
  |   ,-------,            |
  |   |       |            |
  |   |       |            |
  |---'       '------------|
  `------------------------'

stimc is a lightweight Verilog-VPI wrapper to simplify simulation control via C/C++ code similar to SystemC. In contrast to SystemC you can only use stimc together with a Verilog simulator and it is not meant as a standalone hardware description or modelling language. The main purpose is to control and observe ports of an empty Verilog shell-module via C/C++ code to provide abstract models for external components or emulate functionality of an external software-based access to a hardware component.

stimc was originally created to allow testing of ICGlue generated regfile C/C++ code with generated Verilog register files via Icarus Verilog.

Licensing

stimc itself is licensed under the GNU LGPLv3. Starting with version 1.3 this is compatible with the license of the default coroutine library, libco. But depending on the used coroutine library the derived work might fall under the coroutine library's license. pcl is licensed under GNU GPL, so if pcl is explicitly selected, the combination is also licensed as GPL, whereas when using libco or boost the combination will be licensed under GNU LGPL.

Acknowledgement

Similar to its origin, ICGlue, a lot of the work was done at the Chair of Highly-Parallel VLSI Systems and Neuro-Microelectronics (HPSN) at TU Dresden (see HPSN). It is inspired by SystemC.