-
Notifications
You must be signed in to change notification settings - Fork 8
Home
The Shunt is Open Source Client/Server TCP/IP socket based communication library for SystemVerilog and SystemC simulations.
-
It aims to enable quick and easy development of communication between stand-alone SystemVerilog/SystemC simulations and/or external applications
-
It provides a common SystemVerilog/C API and supports mostly all System Verilog data types and data structures.
The Shunt is available under a "MIT" License. It can be used without restriction in an open-source or commercial application.
- Shunt Introduction (TCP/IP Socket Based Communication for SystemVerilog Simulation SNUG, Boston 2018 ): https://www.researchgate.net/publication/325206338_TCPIP_Socket_Based_Communication_for_SystemVerilog_Simulation
- Shunt Application (Enhanced Dynamic Hybrid Simulation Framework for Hardware-Software Verification DVCon U.S. 2023): https://www.researchgate.net/publication/359009820_Enhanced_Dynamic_Hybrid_Simulation_Framework_for_Hardware-Software_Verification
- API specification -- https://raw.githack.com/xver/Shunt/master/doc/index.html
Starting from the version 2.2.0, "IC VERIMETER" is pleased to announce the availability of commercial support. Whether you need assistance with the Shunt integration into your project or customization, please contact us at icshunt.help@gmail.com
Please, report bugs to Issues.
Download Shunt from https://github.com/xver/Shunt
Setup following variables:
- “SHUNT_HOME” to the SHUNT home directory.
- “SHUNT_SVDPI” to the location of svdpi.h file
- cd to “$SHUNT_HOME/utils/makedir/“
- run “make clean;make all” Compile result will be placed under ${SHUNT_HOME}/bin with dpi:“libutils.so” and without dpi:”libCutils.so”
NOTE: use the USER_OPT to add compiler options. (Example all debug options: make USER_OPT='-g3 -DSHUNT_CLIENT_SERVER_C_DEBUG -DSHUNT_TLM_DEBUG -DSHUNT_DPI_C_DEBUG')
- cd to $SHUNT_HOME/examples/makedir
- run ./run_examples or ./run_examples_debug
- cd to example makedir root directory. (Example: $SHUNT_HOME/examples/c/primitives/makedir)
- To compile the library and launch test run “make all”
The Shunt includes a complete Makefile structure for the C portion of the library, but ONLY Makefile target place holders for SV domain.
- Edit “Makefile” initiator/target “compile_sv” under initiator/target local makedir(Example: $SHUNT_HOME/examples/sv/sv2c/initiator/makedir)
- Edit “run” file placeholder. Setup run command for appropriate source. cd to example makedir root directory, run “make all” and ./run (Example: $SHUNT_HOME/examples/sv/sv2c/makedir)
SystemC to SystemC b_transport over TCP/IP :
- cd to $SHUNT_HOME/examples/sc/LT_simple_cs/makedir
- run "make all"
SystemC to SV b_transport over TCP/IP :
- cd to $SHUNT_HOME/examples/sc/LT_simple_sv/makedir
- run "make all"