[ibis-macro] Re: Questions on API proposal

Thanks for the response.  This has not been a problem for [External
Model], but [External Model] was explicitly limited to the same nodal
arrangement as [Model] (with the exception of differential buffers).
[External Model] is essentially a one-to-one substitution for the analog
content of the [Model] calling it and, as such, being able to
"mix-and-match" [External Model] content within different [Model]s makes
little practical sense.
[Algorithmic Model] is an algorithmic complement to the analog content
of a [Model] and therefore is somewhat separate.  I can imagine, without
stretching at all, using a single, generic compiled code set under
[Algorithmic Model] for several different [Model]s.
I generally agree with your proposal and, if we understand each other
correctly, the following syntax changes should be made to the proposal:
1) [Algorithmic Model], as a definition, moves to the same level in the
IBIS tree hierarchy as [Model]
2) Like a [Submodel], a call to an [Algorithmic Model] would be made
with a slightly different keyword or subparameter within [Model] ([Add
Algorithmic Model]?)
Both of these should be fairly easily implemented with no changes at all
to the core functionality.  We would still need to clarify whether an
algorithmic model call within a [Model] instantiates a new algorithmic
model entity, or calls an existing one shared among several [Model]s.
I am not sure I understand the usage of [Algorithmic Model] in a
separate library .ibs file, but we can certainly discuss it.
- MM


From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Tuesday, June 12, 2007 5:25 AM
To: Mirmak, Michael; ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: Questions on API proposal

This is an interesting point. In the current scheme multiple pins can
point to a single [Model], and the [Algorithmic Model] section only
applies to that [Model].
If we need to support your idea, then we would need to do something like
the following:
[Model] rx_one
algorithmic_model rx_generic
[Model] rx_two
algorithmic_model rx_generic
[Model] rx_three
algorithmic_model rx_special
[algorithmic model] rx_generic
[end algorithmic model]
[algorithmic model] rx_special
[end algorithmic model]
And we can extend your idea by allowing the algorithmic model to be
inside a "library" IBIS file e.g.:
algorithmic_model my_algol.ibs rx_special
We do not do this for [External Model]. Has this been a problem using
External Models?

        -----Original Message-----
        From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx]On Behalf Of Mirmak, Michael
        Sent: Tuesday, June 12, 2007 3:10 AM
        To: ibis-macro@xxxxxxxxxxxxx
        Subject: [ibis-macro] Questions on API proposal

        Looking at the API proposal text, I have two implementation

        1) Is [Algorithmic Model] below the level of [Model] in the
keyword hierarchy?  In other words, can an [Algorithmic Model] only be
used with the particular [Model] that contains its definition?

        I can imagine circumstances where I might want a single
[Algorithmic Model] definition to be used independently with several
different analog [Model]s (e.g., where the same engine design is used
separately to process data but for two different interfaces).  Under the
current definition, I would have to re-define the [Algorithmic Model]
several times, even if identical, for individual [Model]s, even if they
are associated under [Model Selector] with a single pin.

        2) On a related note, does [Algorithmic Model] not accept a text
string argument as an identifier?  Again this implies that defining an
[Algorithmic Model] is explicit under [Model] but instantiating it is
implicit through the [Pin] list.  

        This effectively means that each [Algorithmic Model] is only
associated with a single [Model] and therefore a single [Pin].  I can
imagine -- and might be interested in creating -- cases where a block of
algorithmic code processes the results of data involving multiple analog
buffers associated with multiple pins.  In this syntax, I have no way of
defining this association, at least not through [Pin], [Model] or any
argument to [Algorithmic Model].  The [Circuit Call] keyword does allow
me, by contrast, to associate a single block of code with multiple pins.

        Am I missing something? 

        - MM 

Other related posts: