Minutes of 7/25/2000 IBIS-X teleconference Attending: Stephen Nolan, Mike LaBonte, Bob Ross, Arpad Muranyi, Al Davis, John Angulo We began by looking at the "circuit" file sent by John Angulo. - This quickly lead to a discussion of specific vs. general element. Arpad would be more comfortable with very general elements that can have just about any electrical behavior as an expression. For example, a charge storage element with a current expression that accepts voltage, frequency, temperature and others as input variables. Al pointed out that implementation of anything that today's simulators do not handle could take a long time. - The format presented was a summary table form for showing a number of elements. Mike suggested a more detailed page (or two) that would look more like a Unix man page. Mike sent the detail page for the Spectre resistor model to the group as an example. Toward the end of the meeting, however, Al suggested we cover concepts first, and details later. There was agreement on this, so for the time being, efforts to capture in writing anything more than the consensus list might be regarded as "background" tasks. We reviewed the [Define Model] language examples sent by Al. These are intended to demonstrate how each of today's IBIS constructs can be modeled using the macro language. We only covered the first one in detail. - The "||" operator conflicts with comment char. The word "OR" was suggested as a replacement, but Al believes "||" is more readable, and suggested changing the default comment character. An unanswered question was "what do programs like MathCAD and Matlab use?". After some debate, I think we leaned toward using English words for logic operators, but we did not declare a consensus. - Arpad asked if Rsercur should be a dependent current source, since it uses an "I=" expression. Al said "no", because simulators implement sources and resistors differently (left vs. right matrix). After some debate on the difficulties imposed on model developers to understand this non-intuitive nuance, Al decided that either element would be OK for this purpose. - The ".vcg" element is a Voltage Controlled Conductance. Stephen Nolan pointed out that the "dot" name does not conform to the convention that "dot" statements are not circuit elements. But the alphabet does not have enough letters to represent every element type with one initial letter, so the "dot" syntax is used as an escape to introduce longer type names. - ISSUE: Al will consider renaming ".vcg", especially since we reached consensus on NOT restricting ourselves to SPICE single letter type codes for elements. - The word "Mosfet" after ".vcg" is an instance name. At this point Stephen Nolan started the discussion that lead to a consensus on part of the statement format. - ISSUE: Can connections be named instead of positional (Arpad)? - ISSUE: Where is whitespace required? - ISSUE: Should assignment expression values be quoted? - ISSUE: How do we format statements that are longer than the line limit? - Mike questioned the "Vo=Vds" declaration, which means something like "Use the circuit node voltage Vo as the value for Vds in table lookups". Maybe the expression should be "Vds=Vo", since Vo is the given value and Vds is the symbolic variable? There are other examples of this "reversal" in the macro examples. - ISSUE: Al will consider changing this format. - We reached consensus on use of the ".correlate" statement, details TBD. - ISSUE: Do ".correlate" parameter name patterns work like file globbing? Like regular expressions? We did not discuss the Stephen Nolan IBIS/HTML proposal, but agreed to cover it in the next teleconference before moving on to further discussion of the macro language. Thanks, Mike CONSENSUS LIST: 7/11/2000: - The specification will define a [File Name] field similar to current IBIS. Unlike current IBIS it will be optional, however. - The following Spice-compatible elements are accepted into the macro language: Resistor (R) (v = f(i,t), i = f(v,t), r = constant or f(t)) Capacitor (C) (q = f(v,t), c = f(v,t), c = constant or f(t)) Inductor (L) (flux = f(i,t), L = f(i,t), L = constant or f(t)) VCVS (E) (Vout = f(Vin,t)) VCCS (G) (Iout = f(Vin,t)) Isource (I) (I = constant or f(t)) Vsource (V) (V = constant or f(t)) Diode (D) (basic diode, subset of Spice parameters) Subckt (X) (used for submodel, driver schedule) 7/25/2000: - The circuit element statement format will have: - An element type code as the first word. The instance name is not a part of this word. - An optional instance name as the second word. - A list of connection names in parentheses. The parentheses are required, especially to allow parsers to detect the absence of an instance name. Other features of the element statement are TBD. - We will have the ".correlate" control statement to identify the names of the operating conditions to which multiple data values for parameters correspond. Format details are TBD.