[sv-ac] Blocking actions in an attached task call

From: Jonathan Bromley <jonathan.bromley_at_.....>
Date: Fri Nov 24 2006 - 14:10:33 PST
To sv-ac:

I have a difficulty concerning time-consuming (blocking)
actions in task calls attached to a sequence.  The LRM
clearly states that subroutines (task calls) attached
to a sequence should execute in the Reactive region,
but doesn't clearly describe what should happen if such
a task call blocks for non-zero time.

I am fairly sure I've seen some discussion of this on the
sv-ac list, but I can't find it.  If anyone can give me 
a pointer to where I can locate any information I would 
be most grateful.

Here's the problem.  Consider:

  task UserTask;
    repeat(3) @(posedge clk);
  endtask : UserTask
  assert property (@(posedge clk) (a, UserTask) ##1 b);

Is it legal to include the blocking delay in UserTask?
And if so, does UserTask execute as a separate thread,
as if it had been spawned using fork...join_none?  If it
is not a separate thread, what activity is blocked by it?

Please forgive me if I'm completely misunderstanding 
the situation, and thanks in advance for your help.
-- 
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24 1AW, UK
Tel: +44 (0)1425 471223                   Email: jonathan.bromley@doulos.com
Fax: +44 (0)1425 471573                           Web: http://www.doulos.com

The contents of this message may contain personal views which 
are not the views of Doulos Ltd., unless specifically stated.
Received on Fri Nov 24 14:10:38 2006

This archive was generated by hypermail 2.1.8 : Fri Nov 24 2006 - 14:11:14 PST