Release notes
Releases of documentation and code are using the same version numbers.
Note
The version numbering system (tries and) follows the semantic versioning principles; given a version number
MAJOR.MINOR.PATCH, increment the:
MAJORversion when you make incompatible API changes
MINORversion when you add functionality in a backward compatible manner
PATCHversion when you make backward compatible bug fixes
1.7.0 - 2026-08-28
Re-branded the project from simply “Verisocks” to “Verisocks SCP”, with “SCP” standing for “Simulation control protocol”
TCP protocol
New: Added optional simulation timeout for the run(until_change) command.
New: Added new supported behavior for the run(until_change) command; it can now also set the simulation to run until the variable changes to any value.
New: Added the
"type": "timeout"return message type.New: Added
"verisocks_version"field in the return message for the get(sim_info) command.
Python client
New: Added shortcut function
Verisocks.run_for()New: Added shortcut function
Verisocks.run_until()New: Added shortcut function
Verisocks.run_until_change()New: Added shortcut function
Verisocks.set_value()New: Added shortcut function
Verisocks.get_value()New: Supported change to the run(until_change) command.
1.6.0 - 2026-07-26
TCP protocol
New: All returned message now include
"sim_time"and"sim_time_unit"fields. This provides a timestamp on the simulation timescale.New: Added command get(variables) which returns all publicly available variables (only for the Verilator integration version)
New: Added command get(clocks) which returns all registered clocks (only for the Verilator integration version)
Python client
Bug fix: capture output for elaboration command in
setup_sim_run()function
Verilator integration
Modified: The clock registration function
vsl::VslInteg::register_clock()also directly registers the corresponding variable so that it can be publicly accessed by protocol commands.Bug fix: Corrected serious bug within the clock evaluation algorithm which could end up in an infinite loop when using multiple clocks.
New features or changes for CLI wizard configuration script:
New:
verilog_inc_dirsconfiguration parameter in YAML fileNew:
verilog_arg_filesconfiguration parameter in YAML fileNew:
namevariable parameter in YAML fileNew:
build_dirconfiguration parameter in YAML file or as CLI option.New:
--makefile-topCLI optionNew:
--log-levelCLI optionNew:
enableoptional clock variable parameter in YAML configuration fileNew: optional
exec_version,exec_docandbug_addressconfiguration parameter in YAML fileNew:
user_sim_infoconfiguration parameter in YAML fileModified: In the configuration file, the choices for the variables type is limited to either
intorreal. Detailed type is inferred by the script from the value ofwidth. It is also now optional, the default beingint.Modified: For the clock variables definition, the fields
duty_cycleis now optional and defaults to0.5.New:
sub_filesoptional entry in YAML file
1.5.0 - 2026-02-07
Added
use_timingoption to CLI wizard script configuration fileVerilator integration extension: added support for clock signals
New C++ Verilator integration API method
vsl::VslInteg::register_clock()Extended configuration file for the CLI wizard script to support clock variables
Extended TCP protocol set command with (optional) sel field in order to support clock enabling/disabling and configuration
New Python client method
Verisocks.enable_clock()New Python client method
Verisocks.disable_clock()New Python client method
Verisocks.configure_clock()
1.4.0 - 2025-08-22
Updated generated Makefile generated by CLI wizard script to include the configuration YAML file as dependency for the generated files (including the Makefile itself)
Added
--*-onlyoptions to CLI wizard script to generate only part of the target filesAdded
log_leveloption to CLI wizard script configuration fileFixed
variablesas being possibly left out from the CLI wizard script configuration fileVerilator extension tested with versions 5.036 and 5.038
[Issue #11] Added optional UUID field to TCP protocol messages header for improved traceability. The reference Python client has also been updated to add the use_uuid option.
1.3.0 - 2025-04-19
Added an API to support integrating Verisocks with Verilator, including full documentation
Included a CLI wizard script to Python package in order to facilitate the creation of top-level
C++code to use Verisocks with Verilated codeModified the command get(sim_info) to return
time_unitandtime_precisioninformation
1.2.0 - 2024-03-16
Modified
Verisocksconstructor andVerisocks.connect()method to include arguments for multiple, delayed connection trials. Examples and test have been simplified accordingly.Added correct management of system call interrupts while waiting on client connection in the server code (see https://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html for details).
Added section Alternative simulators.
Added method
verisocks.utils.setup_sim_run()to simplify foreseen support for alternative simulators.
1.1.0 - 2024-02-07
Added
verisocks.utilsPython utilitary functions, including documentation.Added
Verisocks.info()method as a shortcut to implement the TCP protocolinfocommand.Corrected SPI master example for standalone execution.
Added a minimalistic Hello world example, working both for standalone execution or with pytest.
1.0.0 - 2024-01-04
First released, working version