Re: Clarification question on port direction

From: Jonathan David <jb_david_at_.....>
Date: Fri May 05 2006 - 16:16:48 PDT
Let me know if we plan to make any changes, I have a
few ideas. 

--- Kevin Cameron <dkc@grfx.com> wrote:

> Jonathan David wrote:
> > I agree, but unless there is a convention that
> > undeclared direction should be considered inout, I
> > would think that (even if advisory for
> conservative
> > disciplines) it would confuse many tools if NOT
> > declared, 
> > and after all doesn't the port direction
> > declaration help to decide which connect rule to
> use?
> I vaguely remember that - it was a really bad idea.
> The connection rules should only use the types of
> drivers
> and contributions that connect to the net, port
> types
> and directions shouldn't be used. I don't think the
> guilty
> parties participate in this committee anymore so
> maybe
> we can fix that now :-) 
> 
> Kev.
> 
> > I don't recall there being a default described
> > anywhere, and without that I see significant
> issues,
> > except in the domain of device modeling where the
> > inout assumption would work well.  
> >
> > Jonathan
> >
> > --- Kevin Cameron <dkc@grfx.com> wrote:
> >
> >   
> >> It's best to view port direction as advisory, in
> a
> >> mixed signal 
> >> situation where you just add a capacitance onto a
> >> logic "input" port 
> >> you've  added a contribution that makes it an
> output
> >> (if you view ports 
> >> with drivers or contributions in the module being
> >> outputs).
> >>
> >> The original port direction stuff in Verilog-A
> was
> >> added to keep someone 
> >> with a digital background happy, and Cadence's
> >> Verilog-A implementation 
> >> mostly ignored port direction whereas Mentor's
> >> (later) implementation 
> >> was somewhat strict resulting in designs at Nat
> Semi
> >> not being portable.
> >>
> >> Probably best to say port direction only applies
> to
> >> drivers/receivers 
> >> and not to contributions.
> >>
> >> Kev.
> >>
> >> Jonathan David wrote:
> >>
> >>     
> >>> I would think that they would have to be 
> REQUIRED
> >>>       
> >> for
> >>     
> >>> Logic or Mixed signal situations.. for a
> Verilog-A
> >>> subset used as a compact device model it could
> be
> >>>       
> >> just
> >>     
> >>> assumed that all the connections are inout.. 
> >>> but in any mixed signal situation, I wouldn't
> want
> >>>       
> >> any
> >>     
> >>> mistake about what direction the signal is.. 
> >>> (unless we are going to have tools that can
> figure
> >>>       
> >> out
> >>     
> >>> the direction based on what is connected to the
> >>>       
> >> net..
> >>     
> >>> only appropriate for structural models?
> >>>
> >>> Of course I now try to declare the direction in
> the
> >>> module port list.. 
> >>> module test( output y_p, y_n, inout vdd, gnd,
> input
> >>>       
> >> a,
> >>     
> >>> b, c, d)
> >>>
> >>> We can't make it OPTIONAL unless 1364-2005
> does...
> >>>
> >>> Jonathan.
> >>>
> >>>
> >>> --- "Muranyi, Arpad" <arpad.muranyi@intel.com>
> >>>       
> >> wrote:
> >>     
> >>>  
> >>>
> >>>       
> >>>> Hello everyone,
> >>>>
> >>>> Sorry for another clarification question, but
> >>>>         
> >> there
> >>     
> >>>> may be
> >>>> an ambiguity in the LRM regarding the port
> >>>> directions.  I
> >>>> am trying to figure out whether these are
> required
> >>>> or not,
> >>>> because one tool we tried goes on happily
> without
> >>>> them but
> >>>> another will issue error messages.
> >>>>
> >>>> The 1st paragraph of section 7.1 in LRM v2.2
> says:
> >>>>
> >>>> "A module definition is enclosed between the
> >>>> keywords module and endmodule, as shown
> >>>> in Syntax 7-1. The identifier following the
> >>>>         
> >> keyword
> >>     
> >>>> module is the name of the module
> >>>> being defined. The optional list of ports
> specify
> >>>>         
> >> an
> >>     
> >>>> ordered list of the module's ports. The
> >>>> order used can be significant when
> instantiating
> >>>>         
> >> the
> >>     
> >>>> module (see Section 7.1.2). The
> >>>> identifiers in this list shall be declared in
> >>>>         
> >> input,
> >>     
> >>>> output, or inout declaration statements
> >>>> within the module definition. The module items
> >>>> define what constitutes a module and
> >>>> include many different types of declarations
> and
> >>>> definitions. A module definition can
> >>>> have at most one analog block."
> >>>>
> >>>> Does "shall be" mean required?  On the other
> hand,
> >>>> figure
> >>>> 7.2 lists them as optional ("|" at the
> beginning
> >>>>         
> >> of
> >>     
> >>>> the line):
> >>>>
> >>>> "module_item_declaration ::=
> >>>> {attribute_instance} parameter_declaration
> >>>> | {attribute_instance}
> local_parameter_declaration
> >>>> | {attribute_instance}
> >>>>         
> >> string_parameter_declaration
> >>     
> >>>> | {attribute_instance}
> >>>> local_string_parameter_declaration
> >>>> | aliasparam_declaration
> >>>> | {attribute_instance}
> digital_input_declaration
> >>>> | {attribute_instance}
> digital_output_declaration
> >>>> | {attribute_instance}
> >>>>         
> >> digital_inout_declaration..."
> >>     
> >>>> Later, in section 7.4.2.2 the words "shall be"
> >>>> appear again:
> 
=== message truncated ===
Received on Fri May 5 16:17:01 2006

This archive was generated by hypermail 2.1.8 : Fri May 05 2006 - 16:17:18 PDT