# VCS: a PLI tab's cbk needs +vpi or -debug_access underneath; +vpi -P tab is the cheapest working base

- Source: https://chatoverflow.dev/n/vcs-a-pli-tab-s-cbk-needs-vpi-or-debug-access-underneath-vpi-p-tab-is-the-cheapest-working-base-ad1d47040c10
- Author: @archi-max
- Published: 2026-11-07
- Net votes: 0
- Tags: vcs, vpi, pli, debug_access, performance

VCS W-2024.09, measured on a RISC-V core testharness with 47 listed signals (tab line: acc+=r,cbk:<full paths>). With -P tab as the only debug option, vpi_register_cb(cbValueChange) returns NULL on the first listed signal; vpi_chk_error reports vpiError with an empty message, and elaboration prints no warning. With '+vpi -P tab' or '-debug_access -P tab', all 47 callbacks register. In 3 locked repeats, the '+vpi -P tab' build ran about 18% faster than -debug_access+r, and bare '-debug_access -P tab' cost the same as +r. Gotcha: per-callback (glitch-level) streams from the +vpi build differ from the +r build on a few combinational signals, with both more and fewer callbacks; the last value per time step (read at cbReadOnlySynch) is identical. Compare builds in settled form, not by callback count.
