BTF: Please review proposal for BE91

From: Anders Nordstrom (andersn@nortelnetworks.com)
Date: Tue Jul 06 1999 - 15:33:14 PDT


Content-Type: text/html; charset="us-ascii"
X-Sun-Content-Length: 429

<x-html>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#FF0000" alink="#000088">
Team,
<p>Please review the proposal for the new errata BE91 regarding regl_value
BNF.
<br>Please comment or vote by July 14 via email to the btf reflector.
<p>Regards,
<br>
<p> Anders
</body>
</html>

</x-html>
Content-Type: text/html; charset="us-ascii"; name="BE91.html"
Content-Disposition: inline;
 filename="BE91.html"
X-Sun-Content-Length: 4560

<x-html>
<HTML>
<HEAD>
<TITLE> BE91 </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
 
<BR>
<HR SIZE=5 NOSHADE>
 
<H2> BE91 - Assign/Deassign Force/Release on Integer </H2>

<TABLE BORDER COLS=2 WIDTH="75%" >
<TR><TD>
Section: </TD><TD> Annex A
</TD></TR><TR><TD>
Date Submitted: </TD><TD> 990625
</TD></TR><TR><TD>
Requestor: </TD><TD> Stu Sutherland
</TD></TR><TR><TD>
Status: </TD><TD> Proposal
</TD></TR><TR><TD>
Analyzed by: </TD><TD> Mike McNamara
</TD></TR>
</TABLE>

<H3> Details </H3>
<PRE>
Stuart Sutherland writes:
> BTF,
>
> The PLI task force still needs an URGENT answer on this...
>
> Thanks,
>
> Stu
>
> >
> >I sent the following message the BTF a week ago, but have not received any
> >response or even an acknowledgement. Could you please have someone look at
> >this and provide us at least some initial feedback?
>
> >I could not locate your earlier e-mail so this is the first I have seen on
> >this. Anders, did you get an e-mail from the PLI task force?
>
> >>The PLI task force is meeting as I type. We have found a possible errata
> >>in the BNF. The PLI standard currently matches the BNF, but all major
> >>Verilog simulators behave differently.
> >>
> >>The BNF says it is illegal to assign/deassign or force/release an integer,
> >>time or real data type.
> >>
> >>Is this correct?
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Stuart Sutherland Sutherland HDL Inc.
> stuart@sutherland.com 22805 SW 92nd Place
> phone: 503-692-0898 Tualatin, OR 97062
>
>
</PRE>
IMHO, The BNF is quite correct, and quite clearly DOES say that it is
legal to assign/deassign or force/release an integer, reg or time type
item, and also specifies the existing behavior of the major
simulators. If the PLI does not allow this, than the PLI is in error.

With that said, there is an error in the BNF in relation to reals.
While it is possible to declare a real_identifier, there is no way to
ever use a real_identifier, either as a reg_lvalue or as part of an
expression.

In truth, one can not use a reg_identifier, net_identifer,
port_identifier or paramter_identifier as part of an expression
either; one can only use identifer.

This is a general issue in the BNF, in that the italizied qualifier
<i>reg_</i>identifier is apparently ignored. Quite possibly this is a
well understood (by others) feature of the Backus Normal Form language
that is clearly defined in the BNF of the BNF?

So, the only correction of the BNF that I see as necessary is included
at the end of this email.
<PRE>
------------------------------------------------------------------------
Justification that reg, time, and integer are ok:

A.2 says that:

reg_declaration ::= reg [ range ] list_of_register_identifiers ;

time_declaration ::= time list_of_register_identifiers ;

integer_declaration ::= integer list_of_register_identifiers ;

list_of_register_identifiers ::= register_name { , register_name }

register_name ::= register_identifier

And further:

procedural_continuous_assignments ::= assign reg_assignment ;
                                   | deassign reg_assignment ;
                                   | force reg_assignment ;
                                   | force net_assignment ;
                                   | release reg_lvalue ;
                                   | release net_lvalue ;

reg_assignment ::= reg_lvalue = expression

<p>reg_lvalue ::= reg_identifier
              | reg_identifier [ expression ]
              | reg_identifier [ msb_constant_expression :
                                lsb_constant_expression ]
              | reg_concatenation
------------------------------------------------------------------------
</PRE>

<H3> Proposal </H3>

Change the BNF for reg_lvalue from:
<PRE>
-----------------------------------------------------------
reg_lvalue ::= reg_identifier
              | reg_identifier [ expression ]
              | reg_identifier [ msb_constant_expression :
                                lsb_constant_expression ]
              | reg_concatenation

-----------------------------------------------------------
</PRE>
to:
<PRE>
-----------------------------------------------------------
reg_lvalue ::= reg_identifier
              | reg_identifier [ expression ]
              | reg_identifier [ msb_constant_expression :
                                lsb_constant_expression ]
              | reg_concatenation
              | real_identifier
-----------------------------------------------------------
</PRE>

<HR SIZE=5 NOSHADE>
</BODY>
</HTML>

<p><p></x-html>
Content-Type: text/x-vcard; charset="us-ascii"; name="andersn.vcf"
Content-Description: Card for Nordstrom, Anders [SKY:1V29-I:EXCH]
Content-Disposition: attachment;
 filename="andersn.vcf"
X-Sun-Content-Length: 313

Attachment Converted: "C:\Documents and Settings\stefen\Application Data\Qualcomm\Eudora\andersn3.vcf"



This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:53:28 PDT and
sponsored by Boyd Technology, Inc.