Subject: Re: [sv-ac] final final proposal 19
From: John Havlicek (john.havlicek@motorola.com)
Date: Tue Jan 13 2004 - 08:48:27 PST
Hi Adam and All:
I am sorry not to be more familiar with the reference scheduling algorithm
and the language used to talk about it.
For this example
> a ##1 (b, do_this_func(a), lv = and_this_func(c))
>
> function void do_this_func;
> input a;
>
> begin
> $display("The input here is %h.", a);
> end
> endfunction
>
> function int and_this_func;
> input c;
> and_this_func = c + 1;
> endfunction
I think the following should happen in processing the Observe region
in the cycle that b is evaluated:
1. evaluate b; if true go on, else end.
2. execute do_this_func. Evaluate the value parameter a to the $display;
schedule the $display whenever it is appropriate; end do_this_func and
go on.
3. execute and_this_func;
4. assign lv from the value returned by and_this_func.
I think the void function cannot contain anything that blocks; whether
the the $display is scheduled or executes during the evaluation of
do_this_func doesn't matter to me, but the arguments to the $display
must be consistent with the evaluation of the sequence.
I think it is a good idea to say that the list is ordered and
each item in the list is processed in the order it appears.
Best regards,
John H.
>
>
> Hi Surrendra;
>
> YOu suggested:
>
> -----------
> "A call to a void function that is attached to a sequence causes the void
> function to be executed immediately as a part of evaluating the sequence"
>
> Also, would it better to explicitly state that the list is ordered, and each
> item in the list is processed in the order it appears in the list?
> ------------
>
> I don't believe this is correct. Consider a sequence
>
> a ##1 (b, do_this_func(a), lv = and_this_func(c))
>
> function void do_this_func;
> input a;
>
> begin
> $display("The input here is %h.", a);
> end
> endfunction
>
> function int and_this_func;
> input c;
> and_this_func = c + 1;
> endfunction
>
>
> Does the function do_this_func block because the $display statement is within it?
> Does that block the function and_this_func from executing?
>
>
> Adam Krolnik
> Verification Mgr.
> LSI Logic Corp.
> Plano TX. 75074
> Co-author "Assertion Based Design"
>
This archive was generated by hypermail 2b28 : Tue Jan 13 2004 - 08:52:25 PST