iverilog/Documentation
William P. Moore 96cf1674a4 vpi: implement extended VCD ($dumpports) writer
Implement the IEEE 1364-2005 Clause 18 extended VCD task family
($dumpports / $dumpportsall / $dumpportsoff / $dumpportson /
$dumpportsflush / $dumpportslimit), which were previously registered as
"not implemented" stubs.

The new vpi/sys_evcd.c reaches each port's value-bearing net through the
port's vpiLowConn relationship and reads per-bit drive strength with
vpiStrengthVal, emitting $var port declarations and p-records (per-bit
state character plus strength0/strength1 components). Scalar and vector
ports are supported; the initial checkpoint is deferred to the read-only
synch so it records settled values. The encoding is byte-compatible with
the GHDL --evcd writer so one waveform reader works across Verilog and
VHDL.

To resolve a port to its net, the VPI is completed: vpiLowConn and
vpiHighConn are now implemented on vpiPortInfo. tgt-vvp emits the port's
low (formal) and high (actual) net symbols in the .port_info directive,
the vvp assembler parses them (compile_port_info), and vpiPortInfo
resolves each to the __vpiSignal sharing that net. New vpi_user.h
constants vpiHighConn (135) and vpiLowConn (136) use iverilog's private
numbering to avoid colliding with vpiArgument/vpiBit.

Tests: ivtest evcd_basic (scalar in/out/inout), evcd_bus (vector ports)
and evcd_onoff ($dumpportsoff/on/all), each gold-diffed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:40:36 -06:00
..
developer Update documentation to clarify that 'version.exe' is no longer used 2026-04-30 09:11:21 +02:00
releases Add V13 release notes 2026-02-27 21:17:43 -08:00
targets Add V13 release notes 2026-02-27 21:17:43 -08:00
usage vpi: implement extended VCD ($dumpports) writer 2026-06-19 15:40:36 -06:00
.gitignore Action to deploy documentation to gh-pages 2022-04-15 20:49:13 -07:00
Makefile Action to deploy documentation to gh-pages 2022-04-15 20:49:13 -07:00
conf.py docs: add edit this page to sidebar 2026-05-13 22:12:30 +08:00
favicon.ico Add favicon 2023-06-09 14:07:28 +02:00
index.rst Add V13 release notes 2026-02-27 21:17:43 -08:00
make.bat Start Icarus Verilog Documentation using Sphinx 2022-04-10 19:24:08 -07:00
requirements.txt docs: switch docs to shibuya theme and install via venv 2026-05-11 20:48:58 +08:00