Subject: Re: [sv-cc] FW: [sv-bc] External Functions and Tasks proposal
From: Francoise Martinolle (fm@cadence.com)
Date: Mon Mar 17 2003 - 07:18:46 PST
Michael,
I sent out an email about 3 weeks ago on that subject on all 3 committees 
in trying to
get a subgroup to focus on the extern/export. There has not been any response.
Francoise
        '
At 08:21 PM 3/14/2003 +0100, Michael Rohleder wrote:
>I can live with replacing any of the two keywords (extern,export) in our 
>proposal with adequate other keywords, as long as we keep our actual 
>semantics and are in line with other semantics defined by SV. When there 
>are conflicts and we have better keywords, then we should use them. If 
>there are no better ones, there is no reason to change. I am unsure we 
>currently have better ones ...
>
>On the other side, we have come up with a proposal. When we are constantly 
>changing our proposal because there are changes in other committees, we 
>are in a real deadlock situation. It will become a moving target ... Why 
>don't we just sync'up about this particular issue and come up with a 
>common proposal?
>
>-Michael
>
>"Warmke, Doug" wrote:
>>  Joao, others,Please see the forwarded proposal from Peter Flake that 
>> appeared on SV-BC.He is saying that the "external" keyword truly should 
>> have prototype semantics.This is not in matching with our requirements 
>> for external functions, which westated should be semantically equivalent 
>> to a true function declaration.(i.e. they stand in for a C function 
>> which would normally be declared in SVat that particular declarative 
>> scope)I think our usage of the term "extern" is too much in conflict 
>> with theprototype-oriented usage required by the other committees.As a 
>> result, I reluctantly think we should go back to usingthe keyword 
>> "import" instead of "extern" for describing external functions.And 
>> probably we should use the term "imported function" whenever wecurrently 
>> use the term "exported function".Given the deadline situation, please 
>> send comments soon(!)Thanks and regards,Doug
>>-----Original Message-----
>>From: Peter Flake 
>>[<mailto:Peter.Flake@synopsys.com>mailto:Peter.Flake@synopsys.com]
>>Sent: Friday, March 14, 2003 7:27 AM
>>To: sv-bc@server.eda.org
>>Cc: Arturo Salz
>>Subject: [sv-bc] External Functions and Tasks proposal
>>
>>ADD to draft 3 new section 10.6
>>
>>5.8 External tasks and functions
>>
>>Some tools require each module to be analyzed separately.  If the module 
>>uses tasks or functions declared in $root, the names and argument types 
>>need to be visible to the analysis to allow checking.  However it is 
>>important that each analysis does not create its own copy of the task or 
>>function.
>>
>>SystemVerilog allows the existence elsewhere of a task or function name 
>>and prototype to be declared using the extern keyword.  For example
>>         extern function int func1(int I);
>>
>>If this external declaration is in $root,  the same name can be declared 
>>with the same prototype more than once.
>>
>>A declarations of a task or function prototype requires a matching 
>>declaration (with the same arguments) somewhere else , otherwise there is 
>>an elaboration error.  For example:
>>         function int func1(int I);
>>              return I;
>>         endfunction
>>
>>If the prototype is in the $root scope, the task or function must be 
>>declared in the $root scope.
>>
>>If the prototype is in an interface, the task or function must be 
>>declared in one of the modules connected to an instance of that interface.
>>
>>If the prototype is a class, the task or function must be declared as an 
>>out-of-body method (see section 11.20).
>>
>>
>
>--
>
>NOTE: The content of this message may contain personal views
>       which are not neccessarily the views of Motorola, unless 
> specifically stated.
>
>          ___________________________________________________
>         |                                                   |
>       _ | Michael Rohleder            Tel: +49-89-92103-259 | _
>      / )| Software Technologist       Fax: +49-89-92103-680 |( \
>     / / | Motorola, Semiconductor Products, System Design   | \ \
>   _( (_ |  _   Schatzbogen 7, D-81829 Munich, Germany    _  | _) )_
>  (((\ \>|_/ >                                           < \_|</ /)))
>  (\\\\ \_/ 
> / 
> <mailto:Michael.Rohleder@motorola.com>mailto:Michael.Rohleder@motorola.com 
> \ \_/ ////)
>   \       /_______________________________________________\       /
>    \    _/                                                 \_    /
>    /   /                                                     \   \
>
>The information contained in this email has been classified as:
>Motorola General Business Information (x)
>Motorola Internal Use Only            ( )
>Motorola Confidential Proprietary     ( )
>
>
>*** This note may contain Motorola Confidential Proprietary or
>     Motorola Internal Use Only Information and is intended to be
>     reviewed by only the individual or organization named above.
>     If you are not the intended recipient or an authorized representative
>     of the intended recipient, you are hereby notified that any review,
>     dissemination or copying of this email and its attachments, if any,
>     or the information contained herein is prohibited. If you have received
>     this email in error, please immediately notify the sender by
>     return email and delete this email from your system.
>     Thank you! ***
>
This archive was generated by hypermail 2b28 : Mon Mar 17 2003 - 07:19:37 PST