Re: [sv-ac] formal types proposal

From: John Havlicek <john.havlicek_at_.....>
Date: Fri Jun 30 2006 - 05:43:05 PDT
Egad -- I deserve to get dinged on this, but I'll try to autocorrect anyway:

> In the case of implicit qualifier or "void" or "this", the qualifier 
> gives no information about these three things.

I should have said, "gives no information about the first and third
of these things" -- we have the pass by substitution mechanism for
the implicit/void/this arguments.

J.H.

> X-Authentication-Warning: server.eda-stds.org: majordom set sender to owner-sv-ac@eda-stds.org using -f
> Date: Fri, 30 Jun 2006 07:11:27 -0500
> Cc: Bassam.Tabbara@synopsys.com, sv-ac@verilog.org
> From: John Havlicek <john.havlicek@freescale.com>
> Reply-To: john.havlicek@freescale.com
> X-Virus-Status: Clean
> Sender: owner-sv-ac@eda-stds.org
> X-OriginalArrivalTime: 30 Jun 2006 12:15:09.0686 (UTC) FILETIME=[D4B03160:01C69C3E]
> 
> Hi Lisa:
> 
> On Adam's question regarding sequence instance as clocking event,
> I think the right thing to do is to try to make the formal argument
> qualifier (notice I am not saying "type" because I do not want to
> debate about theories of types) specify as far as possible the 
> following three things:
> 
> 1. The kinds of actual arguments that can be bound to the formal 
>    argument.
> 2. The mechanism for binding the actual argument to the formal
>    argument.
> 3. The ways in which the formal argument can be used within the 
>    declaration of the sequence or property.
> 
> In the case of implicit qualifier or "void" or "this", the qualifier 
> gives no information about these three things.
> 
> In other cases, I would like, as far as possible, for the formal
> argument qualifier to determine all three of these things.
> 
> Some actual arguments are compatible with more than one non-void 
> formal argument qualifier.  In such cases, I think the non-void formal 
> qualifiers determine different ways in which the formal argument can
> be used.  So I think it is better to keep the formal argument
> qualifiers separate and duplicate actual arguments as necessary.
> 
> E.g., 
> 
>    sequence foo(event e, f, sequence r, s);
>       @(e) r ##1 @(f) s;
>    endsequence
> 
> instantiated as
> 
>    foo(s1, posedge clk, s2, s1)  // s1, s2 sequence instances
> 
> rather than
> 
>    sequence bar(event e, f, sequence r);
>       @(e) r ##1 @(f) e;
>    endsequence
> 
> [for which I would expect a compilation error based on the use of e]
> instantiated as
> 
>    bar(s1, posedge clk, s2)  // s1, s2 sequence instances
> 
> Best regards,
> 
> John H.
> 
> 
Received on Fri Jun 30 05:43:13 2006

This archive was generated by hypermail 2.1.8 : Fri Jun 30 2006 - 05:43:19 PDT