Forum: GHDL Zero-time Simulation

Posted by Peter LaDow (Guest)
on 2009-02-12 02:17
(Received via mailing list)
I have some testbench code that communicates (via signals) in
zero-time.  For example, assume I have modules tbA and tbB.  tbA sends
data to tbB by doing:

process
begin
  tbA_data <= std_logic_vector(to_unsigned(16#a5a5#, 16));
  tbA_rdy   <= '1';
  wait until tbB_acpt = '1';
  tbA_rdy   <= '0';
  wait until tbB_acpt = '0';

  assert false report "Transfer complete" severity note;
end process;

And in tbB, it accepts the data doing:

process
begin
  wait until tbA_rdy = '1';
  tbB_data <= tbA_data;
  tbB_acpt <= '1';
  wait until tbA_rdy = '0';
  tbB_acpt <= '0';
  wait until tbA_rdy = '0';

  wait;
end process;

The idea is that I can exchange information between testbench blocks
in zero-time (i.e. not advancing the simulation) for things like
control and logging.  I've paraphrased it above, but things aren't
working.  I'd like to visualize the problem.  Gtkwave won't display
anything because it seems to ignore the deltas.  And using ghwdump, I
get the signal alias (apparently) rather than the name, and vectors
are split into individual aliases.

So, is there any way to visualize these delta events so I can debug my 
problems?

Thanks,
Pete
--
--
"To love for the sake of being loved is human;  to love for the sake
of loving is Angelic."  -- Alphonse de Lamartine
Posted by Tristan Gingold (Guest)
on 2009-02-12 06:14
(Received via mailing list)
On Wed, Feb 11, 2009 at 05:15:59PM -0800, Peter LaDow wrote:
> I have some testbench code that communicates (via signals) in
> zero-time.  For example, assume I have modules tbA and tbB.  tbA sends
> data to tbB by doing:

[...]

> The idea is that I can exchange information between testbench blocks
> in zero-time (i.e. not advancing the simulation) for things like
> control and logging.  I've paraphrased it above, but things aren't
> working.  I'd like to visualize the problem.  Gtkwave won't display
> anything because it seems to ignore the deltas.  And using ghwdump, I
> get the signal alias (apparently) rather than the name, and vectors
> are split into individual aliases.
> 
> So, is there any way to visualize these delta events so I can debug my problems?

Delta events are not stored into vcd or ghw files. I once thought about 
dumping
them to .ghw but then gtkwave must be enhanced to display them.

The only way to display deltas is to use --trace-signals option.

Tristan.
Posted by Peter LaDow (Guest)
on 2009-02-13 18:02
(Received via mailing list)
On Wed, Feb 11, 2009 at 9:13 PM, Tristan Gingold <tgingold@free.fr> 
wrote:
>> working.  I'd like to visualize the problem.  Gtkwave won't display
>> anything because it seems to ignore the deltas.  And using ghwdump, I
>> get the signal alias (apparently) rather than the name, and vectors
>> are split into individual aliases.
>>
>> So, is there any way to visualize these delta events so I can debug my problems?
>
> Delta events are not stored into vcd or ghw files. I once thought about dumping
> them to .ghw but then gtkwave must be enhanced to display them.
>
> The only way to display deltas is to use --trace-signals option.

Thanks for the tip.  The --trace-signals gave me enough information to
debug things.

Pete
--
--
"To love for the sake of being loved is human;  to love for the sake
of loving is Angelic."  -- Alphonse de Lamartine
This topic is locked and can not be replied to.