Inspect values¶
Use value for snapshots at known times and change for event-aligned tables over a time range.
What was the value at a specific time?¶
Sample related signals together:
$ wavepeek value --waves dump.fst \
--scope tb.dut.cpu \
--at 120ns \
--signals state,pc,instr_valid
@120ns state=4'h3 pc=32'h00001040 instr_valid=1'h1
Several points can be requested in one command:
wavepeek value --waves dump.fst \
--scope tb.dut.cpu \
--at 100ns,110ns --at 120ns \
--signals state --signals pc
Use a static projection when only part of a flat vector matters:
wavepeek value --waves dump.fst --scope tb.dut.cpu \
--at 120ns --signals 'status[7:4],status[0:0]'
What changed in this time range?¶
Start with a short window and a focused signal list:
$ wavepeek change --waves dump.fst \
--scope tb.dut.cpu \
--from 100ns --to 160ns \
--on '*' --sample-mode native \
--signals req --signals ack,state --max 20
@110ns req=1'h1 ack=1'h0 state=4'h2
@130ns req=1'h1 ack=1'h1 state=4'h3
@150ns req=1'h0 ack=1'h0 state=4'h0
This uses dump-native timestamps and answers "what changed in the file?" If the result is noisy, narrow the window, replace * with a specific signal or edge, or reduce the signal list.
What did the design see on each clock edge?¶
Use the owning clock as the trigger. Pre-edge sampling is the default for edge-only triggers:
wavepeek change --waves dump.fst \
--scope tb.dut.cpu \
--from 100ns --to 200ns \
--on 'posedge clk iff reset_n' \
--signals state,req,ack \
--row-mode sparse --max 20
--row-mode sparse suppresses rows where none of the requested values changed between selected clock edges. Remove it when every selected cycle matters.
What is the clock period?¶
Inspect a few native clock transitions:
$ wavepeek change --waves dump.fst \
--scope tb.dut.cpu \
--to 100ns --on '*' --sample-mode native \
--signals clk --max 6
@10ns clk=1'h1
@15ns clk=1'h0
@20ns clk=1'h1
The example has a 10 ns period: consecutive rising edges are at 10 ns and 20 ns.
When following a change, property, or extract result with value, query the row's sample_time if you want the same sampled values. See Clocks and sampling for the difference between time and sample_time.