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> |
||
|---|---|---|
| .. | ||
| developer | ||
| releases | ||
| targets | ||
| usage | ||
| .gitignore | ||
| Makefile | ||
| conf.py | ||
| favicon.ico | ||
| index.rst | ||
| make.bat | ||
| requirements.txt | ||