Re: proposal to resolve AMS - SystemVerilog logic conflict

From: Kevin Cameron <kevin_at_.....>
Date: Thu Aug 18 2005 - 09:28:15 PDT
Martin O'Leary wrote:

>  
>> This is a different committee and we're considering proposals for the 
> same problem (most
>> of the folks doing AMS have not been involved in SystemVerilog 
> development), so I'm
>> reiterating my proposal - feel free to reiterate yours.
> Kevin,
> the goal is the merge AMS and SV so we need to take System Verilog 
> precedences into account and IMHO as much as possible comply with them 
> - otherwise we are only adding more conflicts and issues that will 
> impact meeting our goal.
>  
> Thanks,
> --Martin

As I said before the proposal is a general solution to the type/keyword 
clash problem that is 100% backward compatible with SV code, and 
facilitates reuse of any code with type-name clashes in design flows 
using old methodologies.

If anyone at Cadence has a technical objection to the propsal (i.e. some 
reason that it won't work) that might be a useful discussion. Claiming 
precedence is specious, I proposed other things at the SV committees 
that were initially rejected and then reappeared later.

Generally I throw out proposals as a starting point, if people have 
technical problems with them I will attempt to fix the problems and 
improve the proposals. Whether or not the final proposal is adopted 
should be a democratic decision by the committee.

Kev.

>  
>
>     ------------------------------------------------------------------------
>     *From:* Kevin Cameron [mailto:kevin@sonicsinc.com]
>     *Sent:* Wednesday, August 17, 2005 11:46 PM
>     *To:* Steven Sharp
>     *Cc:* Martin O'Leary; verilog-ams@eda.org
>     *Subject:* Re: proposal to resolve AMS - SystemVerilog logic conflict
>
>     Steven Sharp wrote:
>
>>>From: Kevin Cameron <kevin@sonicsinc.com>
>>>    
>>>
>>>>As Martin has already noted, the built-in types in SV are keywords rather
>>>>than predefined typedefs.  This means that an "untypedef" would not help
>>>>in avoiding name conflicts with them.  There was resistance within the SV
>>>>committees to the suggestion of using a less common name for the built-in
>>>>types, with typedefs to get backward compatibility with code using the
>>>>older names.  So I wouldn't count on getting that changed.
>>>>      
>>>>
>>>The proposal was to rename the built-in types to something wordy e.g. *__sv_logic*,
>>>(which can be a keyword), and then have an initial typedef of that to *logic* (not a keyword)
>>>which can be "forgotten" if necessary with an untypedef. As far as I can tell this should not
>>>change the behavior of SV at all with respect to existing code.
>>>    
>>>
>>
>>Which is substantially the same as what I wrote, except with the
>>addition of untypedef instead of just not including the standard
>>typedef if you didn't want logic pre-defined.
>>
>>A number of variations on this theme were brought up in the Accellera
>>and IEEE committees.  I know you suggested some, as did I.  But they
>>were all rejected, so there is no reason to expect that to change.
>>
>>  
>>
>     This is a different committee and we're considering proposals for
>     the same problem (most
>     of the folks doing AMS have not been involved in SystemVerilog
>     development), so I'm
>     reiterating my proposal - feel free to reiterate yours.
>
>>>As I said before the mechanism I proposed is a general purpose way of limiting the
>>>scope of various types. There is plenty of opportunity for users to create data-types that
>>>will clash with other designers' types, disciplines or natures etc. which are likely to
>>>make the source descriptions ambiguous (and unparsable).
>>>    
>>>
>>
>>Your mechanism is not general, since it doesn't deal with types that
>>are defined with reserved words rather than typedefs.  In particular,
>>it doesn't deal with the type in the subject: logic.
>>
>     I'll repeat: If you rename the keyword *logic* to (say)
>     *__sv_logic* and then typedef *__sv_logic* to *logic,* then
>     _*logic* does not  need to be a keyword_. You can do the same for
>     all the predefined types, and if you can think of a name for the
>     predefined types that can't be a user defined type or an AMS
>     keyword all the better (e.g. *$sv$logic*).
>
>>  You can argue
>>that your mechanism would be more general in a different language where
>>these types were defined with typedefs.  However, we are talking about
>>SystemVerilog, where they weren't.  Nor is there any guarantee that
>>this will change.
>>
>>  
>>
>     If you know any reason why my proposal isn't 100% backward
>     compatible I'll be glad to hear it.
>
>>Meanwhile, the mechanisms of `begin_keywords and file-based compilation
>>unit scopes are already part of the P1800 standard.
>>
>>  
>>
>     Draft standard.
>
>     Kev.
>
>>Steven Sharp
>>sharp@cadence.com
>>
>>
>>  
>>
>
Received on Thu Aug 18 09:28:22 2005

This archive was generated by hypermail 2.1.8 : Thu Aug 18 2005 - 09:28:35 PDT