Hi,
I’m trying to use QCX (-qcx flag in qsim) to accelerate functional coverage closure on a UVM testbench running on Questa One Sim 2025.3.
My setup:
- UVM 1.1d testbench with a Coverage collector class (uvm_subscriber) containing a functional covergroup connected to the Monitor via analysis port
- Dut written in VHDL and compiled in DUT library
- Tetbench top is called Top_TB, compiled in TB library
- License available: QoneSim, msimhdlsim, msimhdlmix, svverification, msimcoverage
- Note: -qcx in qopt fails with ICVS_LIMITED_FEATURES_KEY error, so I can only use -qcx in qsim
Current flow:
- vlog (TB files, no -cover flag yet)
- qopt -work TB -L DUT TB.Top_TB -o TB_opt (TB fully optimized)
- qsim TB.TB_opt -coverage -qcx …
Problem:
No QCX messages appear in the transcript after elaboration.
The covergroups ARE visible in the UCDB after simulation, but QCX shows no activity — no mapping messages, no acceleration.
Questions:
- Does QCX work with a fully optimized UVM testbench (TB_opt),
or does it require the TB to be unoptimized to inspect
dynamic class objects? - Should I optimize only the DUT and run qsim on TB.Top_TB
directly? - Is -cover sbcfu required on vlog for QCX to map covergroups,
or is -coverage on qsim sufficient? - Are there any known limitations with QCX and uvm_subscriber
based coverage collectors?
Any guidance would be greatly appreciated.
Thank you