I want to capture the transition values of certain nodes in a design (i.e. a digital multiplier built with standard cells) and I use probe -screen command to dump the nodal values in text format. Since I only need to capture these values in the ideal situation, I use -nospecify switch with the xrun command :
xrun -clean R16FA_2009.v R4BE_Test.v tb_stop16.v -v stdlib_verilog_models-sdf30.v -access +rwc -mess -timescale 1ns/1ps -nospecify -gui &
and the probe command goes like this : probe -screen tb_stop16.mul16.test.L1 -redirect probe1.txt -format "%T L1 Value: %b" //Here L1 is an array of wires
Although I expect a single transition at a given time instance, I see multiple transitions occurring in the dumped probe1.txt file. i.e.
Time: 300 PS : 48'bxx0xx0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0xx0xx11xTime: 300 PS : 48'b000000000000000000000000000000000000000000000110Time: 4 NS : 48'b001000000000000000000000000000000000000000000100Time: 4 NS : 48'b011000000010111111111001000000110011011001010101Time: 8 NS : 48'b010000000010111111111001000000110011011001010101Time: 8 NS : 48'b110100101100000110000111100001010010111001011100Time: 12 NS : 48'b010000110011100010001110011100010101010001010101Time: 16 NS : 48'b000010000010000000000000000010000000010010010100Time: 20 NS : 48'b000011000010000000000000000010000000010010010100Time: 20 NS : 48'b000001001001001001011011000010001010011010010100
From the waveform, it appears that only the second value (bold) of the time instance is correct. Since the simulation is without annotated delays, there are no intermediate transitions in the waveform. How could this be possible ?
Thanks in advance
Even in an untimed simulation you can get multiple value changes at any given time step, due to re-evaluation of always blocks or assign statements if the inputs change multiple times, e.g. fan-in from multiple always blocks.
There are various ways to deal with that, the simplest might be just to take only the last value printed for each time step! Alternatively, probe to SHM in default mode (without the "-event" option on the database command) and you'll only get the final value for each time step, then after the simulation exits, use simvisdbuitl at the linux prompt, to dump the SHM into your preferred format (text, CSV etc).