[sv-bc] RE: [sv-ec] [sv-ac] 1549 and inside operator

From: Korchemny, Dmitry <dmitry.korchemny_at_.....>
Date: Wed Oct 10 2007 - 09:57:30 PDT
I agree, there are many issues here. I think that at the very least
there should be a note in the LRM that this construct is illegal in the
untyped context, but I would like to find some satisfactory solution (if
it exists).

Thanks,
Dmitry

-----Original Message-----
From: Gordon Vreugdenhil [mailto:gordonv@model.com] 
Sent: Wednesday, October 10, 2007 6:51 PM
To: Korchemny, Dmitry
Cc: sv-ac@server.eda.org; sv-bc@server.eda.org; sv-ec@server.eda.org
Subject: Re: [sv-ec] [sv-ac] 1549 and inside operator

Korchemny, Dmitry wrote:
> Maybe the problem is in the vague definition of 'inside' operator?
> Essentially it requires an argument list as its second argument, but
SV
> does not have such a construct.

That isn't the only issue.

For an aggregate (a '{}) one needs a type context in order to
determine the type of the elements.  Since the type cannot
be inferred here, we cannot determine the sizing, sign, etc.
of even integral terms.  If you attempt to make this all
self-determined, you will not in general end up with a
homogenous type and will cause problems elsewhere in the
language.

Gord.



> 
> Thanks,
> Dmitry
> 
> -----Original Message-----
> From: Gordon Vreugdenhil [mailto:gordonv@model.com] 
> Sent: Wednesday, October 10, 2007 6:33 PM
> To: Korchemny, Dmitry
> Cc: sv-ac@server.eda.org; sv-bc@server.eda.org; sv-ec@server.eda.org
> Subject: Re: [sv-ec] [sv-ac] 1549 and inside operator
> 
> 
> 
> Since "x" and "y" are untyped, I don't know what to do with
> the `{1, 3, 5} form.  There is no type that I can appeal to
> in order to determine what to produce.
> 
> So I don't think that what you have is valid at all.
> 
> I guess that you could have:
>     typedef int arr[$];
> 
>    ...   s(a, arr'('{1,3, 5}))
> 
> but I don't think you can use the '{} form with an
> untyped formal and have the type be inferred.
> 
> Gord.
> 
> 
> Korchemny, Dmitry wrote:
>> Hi all,
>>
>>  
>>
>> I have the following use case that is directly (or indirectly)
related
> 
>> to 1549 resolution. Consider the following sequence:
>>
>>  
>>
>> sequence s(x, y);
>>
>> ##1 x inside {y};
>>
>> endsequence
>>
>>  
>>
>> What is the right way to pass a set to this sequence instantiation in
> a 
>> concurrent assertion? Should it be
>>
>>  
>>
>> assert property(@clk  s(a, '{1,3, 5});
>>
>>  
>>
>> ?
>>
>>  
>>
>> Or should other (which) syntax be used?
>>
>>  
>>
>> It looks like the LRM does not define it precisely.
>>
>>  
>>
>> Thanks,
>>
>> Dmitry
>>
>> ---------------------------------------------------------------------
>> Intel Israel (74) Limited
>>
>> This e-mail and any attachments may contain confidential material for
>> the sole use of the intended recipient(s). Any review or distribution
>> by others is strictly prohibited. If you are not the intended
>> recipient, please contact the sender and delete all copies.
>>
>>
>> -- 
>> This message has been scanned for viruses and
>> dangerous content by *MailScanner* <http://www.mailscanner.info/>,
and
> is
>> believed to be clean.
> 

-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Oct 10 10:03:53 2007

This archive was generated by hypermail 2.1.8 : Wed Oct 10 2007 - 10:06:14 PDT