From: Brad Pierce (Brad.Pierce@synopsys.com)
Date: Tue Nov 26 2002 - 18:40:00 PST
Precedence: bulk
The following reply was made to PR errata/54; it has been noted by GNATS.
From: "Brad Pierce" <Brad.Pierce@synopsys.com>
To: <etf-bugs@boyd.com>
Cc:
Subject: Re: errata/54: 5.6.6 Port connections - inaccurate description
Date: Tue, 26 Nov 2002 18:39:14 -0800
In the note at the end of section 12.3.8, the LRM says --
"A port that is declared as input (output) but used as
an output (input) or inout may be coerced to inout.
If not coerced to inout, a warning has to be issued."
And after issuing the warning, then what? Unless it's intended
that the message be a fatal error, something more must still
happen. What is the correct behavior if the port is not coerced
to inout?
Moreover, contrary to the note, directions are not really declared
on ports, but instead are declared on the port identifiers within
port expressions. If the port expression is a concatenation, but
the port identifiers within it are declared with mixed directions,
such as half input and half output, what is the direction of the
port?
module m (.p({a,b})) ;
input a;
output b;
not(b,a);
endmodule
To me, it seems like either p is being declared here as an inout
(no coercion involved) or this is an error.
Yet I don't see any place in the standard that speaks to this.
And the function acc_fetch_direction() would return "accMixedIo"
for port p. According to Table 139, there are four kinds of
port direction --
Input only
Output only
Bidirectional (input and output)
A concatenation of input ports and output ports
But I don't see this fourth kind of port direction mentioned
anywhere else in the LRM.
-- Brad
This archive was generated by hypermail 2.1.4
: Tue Nov 26 2002 - 18:40:49 PST
and
sponsored by Boyd Technology, Inc.