Walter, 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 Mike, 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? Walter -----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 questions: 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