Re: port_discipline

From: Marq Kole <marq.kole_at_.....>
Date: Tue Sep 04 2007 - 05:28:40 PDT
Geoffrey,

The syntax as shown in the example is not in line with 1364-2005, so either
we would have to change the syntax to:

module_instance ::= { attribute_instance } name_of_module_instance ( [
list_of_port_connections ] )

Another approach would be to have the port discipline of the first port
automatically apply to any successive ports, if those ports following it do
not have a port_discipline attribute specified. So:

resistor #(.r(1k)) r1 ((* port_discipline="electrical" *) node1, node2);
resistor #(.r(1k)) r2 ((* port_discipline="rotational" *) node1, node2);

This would be in line with IEEE 1364-2005 syntax as well as allow declaring
the disciplines of all ports in one go.

Specifically, one could define it as:

"The default discipline of a port is the discipline as provided through the
port_discipline attribute, or the port discipline of the preceeding port
connection, or in case no preceeding port connection is present, the
default discipline."

This way one could also in case of mixed discipline primitives use a
minimal set of attribute instances:

mextram504 q1 ((* port_discipline="electrical" *) node1, node2, node3,
node4,
               (* port_discipline="thermal" *) nodet);

Would this be acceptable?

Cheers,
Marq




                                                                       
                                                                       
                                                                       
                                                                        To
                                       Marq Kole <marq.kole@nxp.com>   
                                                                        cc
     "Geoffrey.Coram"                  verilog-ams                     
     <geoffrey.coram@anal              <verilog-ams@server.eda-stds.org>
     og.com>                                                       Subject
                                       Re: port_discipline             
     Sent by:                                               Classification
     owner-verilog-ams@se                                              
     rver.eda.org                                                      
                                                                       
     04-09-2007 13:32                                                  
                                                                       
                                                                       
                                                                       




Marq -
Since, as you noted, the "integer" is wrong anyway, I'm not too concerned
with making the example erroneous.  (I don't think the ";" belongs,
either.)

However, it would be nice to be able to declare *all* of the ports
rotational in one go, rather than having to do each one individually.

-Geoffrey


Marq Kole wrote:
> All,
>
> In the LRM 2.2 Annex E.3.3.1 the discipline of analog primitives can be
> resolved by means of the port_discipline arttibute. An example of this
> port discipline attribute is given. It is:
>
> resistor #(.r(1k)) (* integer port_discipline="electrical" ; *) r1
> (node1, node2); // not needed as default
> resistor #(.r(1k)) (* integer port_discipline="rotational" ; *) r2
> (node1, node2);
>
> The integer type in these attribute instances is wrong anyway, so this
> has to be changed.
>
> Additionally, according to the syntax in Annex A of IEEE 1364-2005 as
> well as the syntax proposal for LRM 2.3, this is not the correct place
> for an attribute instance. Instead, the attribute instance should be in
> front of each of the port connections. This would change the example to:
>
> resistor #(.r(1k)) r1
> ((* port_discipline="electrical" ; *) node1, (*
> port_discipline="electrical" ; *) node2); // not needed as default
> resistor #(.r(1k)) r2
> ((* port_discipline="rotational" ; *) node1, (*
> port_discipline="rotational" ; *) node2);
>
> This makes sense as the port_discipline should be related to the port,
> not to the module instance. This allows also for multi discipline ports.
> As an example, the self-heating version of the Mextram BJT model has 4
> electrical ports and one thermal port. With the LRM 2.2 it would not be
> possible to correctly set the port disciplines for this built-in model,
> while the 1364-2005 compliant syntax would allow this.
>
> Should we update the syntax to allow attribute instances in the location
> suggested by LRM 2.2, or should we change the example in E.3.3.1 to
> reflect the syntax of 1364-2005? I'm in favor of the latter, but I don't
> know if there are backwards compatibility issues by explicitly making
> the example E.3.3.1 erroneous.
>
> Cheers,
> Marq
>
> --
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
> believed to be clean.
>

--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.





graycol.gif pic20239.gif ecblank.gif
Received on Tue Sep 4 05:34:45 2007

This archive was generated by hypermail 2.1.8 : Tue Sep 04 2007 - 05:35:02 PDT