RE: [Fwd: Re: [sv-ec] programs discussion and resulting questions] - Dave Rich Summary

From: Steven Sharp <sharp_at_.....>
Date: Tue Dec 05 2006 - 14:13:41 PST
>From: "Clifford E. Cummings" <cliffc@sunburst-design.com>

>If there is a free-running clock oscillator in the top-module, will 
>all-programs-executing-$exit kill the free running clock oscillator?

It doesn't specifically kill the oscillator.  But it will cause the
execution of a $finish, which will terminate the simulation despite
the existence of the oscillator.  So the effective answer is yes.


>If a program thread terminates without a $exit (initial block just 
>runs out of statements) is it an implied $exit that can trigger the 
>implicit $finish?

If the last initial block in the program finishes, then it is an
implied $exit.  But if there are still other initial blocks running,
then it is not.  Also, this only applies to initial blocks, not to
other threads created in the program.

And if all the other programs have exited, then this will trigger
the implicit $finish.


>Is this why we have $exit, to get the implicit $finish if one puts 
>all test code into programs, without the need to count clocks from 
>the top module or without the need to synchronize through an event 
>call to the top module to trigger the $finish?

I think so.


>The last time I checked, I did not find a working implementation of 
>$exit, but I may not have tried in a while.

I think we have it working.


>Do you know where in the LRM this is discussed?

Section 16.7.1 describes this, though there are only 5 sentences
devoted to it.  It is pretty easy to miss.


Steven Sharp
sharp@cadence.com
Received on Tue Dec 5 14:13:47 2006

This archive was generated by hypermail 2.1.8 : Tue Dec 05 2006 - 14:14:16 PST