[ibis-macro] Minutes from the 05 April ibis-atm meeting

  • From: Curtis Clark <curtis.clark@xxxxxxxxx>
  • To: ibis-macro@xxxxxxxxxxxxx
  • Date: Thu, 7 Apr 2016 19:32:38 -0400

Minutes from the 05 April ibis-atm meeting are attached.

The following document, which was discussed during the meeting, has been
posted to the work archive.

*DATE* AUTHOR <http://ibis.org/macromodel_wip/archive-author.html>
ORGANIZATION <http://ibis.org/macromodel_wip/archive-org.html> TITLE
<http://ibis.org/macromodel_wip/archive-title.html> FORMATS
05-APR-2016 Mike LaBonte SiSoft IBIS Model Connection Figures draft 1 (zip
<http://ibis.org/macromodel_wip/archive/20160405/mikelabonte/IBIS_Model_Connection_Figures_draft_1.zip>
)(pptx
<http://ibis.org/macromodel_wip/archive/20160405/mikelabonte/IBIS%20Model%20Connection%20Figures%20draft%201/IBIS_Model_Connection_Figures.pptx>
)
IBIS Macromodel Task Group

Meeting date: 05 April 2016

Members (asterisk for those attending):
ANSYS:                      * Dan Dvorscak
                            * Curtis Clark
Broadcom (Avago):             Xingdong Dai
                              Bob Miller
Cadence Design Systems:     * Ambrish Varma
                              Brad Brim
                              Kumar Keshavan
                              Ken Willis
Cisco:                        Seungyong (Brian) Baek
eASIC:                      * David Banas
                              Marc Kowalski
Ericsson:                     Anders Ekholm
GlobalFoundries:            * Steve Parker
Intel:                      * Michael Mirmak
Keysight Technologies:      * Fangyi Rao
                            * Radek Biernacki
                            * Ming Yan
Maxim Integrated Products:    Hassan Rafat
Mentor Graphics:              John Angulo
                            * Arpad Muranyi
Micron Technology:          * Randy Wolff
                              Justin Butterfield
QLogic Corp.:                 James Zhou
                              Andy Joy
SiSoft:                       Walter Katz
                              Todd Westerhoff
                            * Mike LaBonte
Synopsys:                     Rita Horner
Teraspeed Consulting Group:   Scott McMorrow
Teraspeed Labs:             * Bob Ross
TI:                           Alfred Chong


The meeting was led by Arpad Muranyi.

--------------------------------------------------------------------------------
Opens:

- None.

-------------
Review of ARs:

- None.

--------------------------
Call for patent disclosure:

- None.

-------------------------
Review of Meeting Minutes:

- Arpad: Does anyone have any comments or corrections? [none]
- Michael M.: Motion to approve the minutes.
- Radek: Second.
- Arpad: Anyone opposed? [none]

-------------
New Discussion:

New Redriver Flow:
- Discussion: Fangyi said he had nothing new to present.  Arpad noted that there
  had been some discussion about getting a group together off line to discuss
  the proposal and work on drafting a BIRD, but that he had not seen anything
  recently.  Fangyi noted that after the last discussion Walter had said he
  wanted to review it and make sure he understood the flow.  Fangyi said he
  would email Walter to check on status.  Arpad said he would do the same with
  Vladimir.

BIRD 147.1 and Co-optimization:
- Discussion: Ambrish noted that he has a new version nearly ready.  He is
  waiting for feedback from a partner.  He said he would ping them for feedback
  and keep Arpad up to date with respect to the status.

GND, reference, and C_comp:
- Arpad: Does anyone have any updates or discussion starters on this one?
- Michael M.: Are the C_comp improvements waiting on the referencing
              discussions?
- Arpad: I'm not sure, but it was recently mentioned that C_comp is one of the
         most important topics we face for accurate results with power integrity
         simulations.
- Randy: Walter had a recent email on the ATM reflector on that topic.
  - It talked about C_comp referencing as something we need to discuss and
    whether we want the spec to say how that is done or if EDA tools can do what
    they want to.
- Arpad: I was a bit confused about this discussion in last week's meeting.
  - I recall that this whole C_comp issue came up as part of the ground cleanup
    effort in the editorial task group, which is itself closely related to the
    s-parameter referencing issues being discussed in the interconnect group.
  - I thought the editorial task group was waiting on a resolution of the
    question about the C_comp reference connection.
  - Then, near the end of last week's meeting, Walter stated that there's
    nothing to do as far as changing the spec.
  - If anyone has a better understanding of where this stands, especially with
    respect to Michael M.'s comments, let us know.
- Michael M. (MM): There are two interlocking issues:
  - We need a circuit-block to substitute for the simple C_comp.
    - What is the de-embedding mechanism for the K(t) derivation?
    - How is it connected or referenced?
- Arpad: The circuit block is mostly for putting series elements between the
         buffer terminal and the pad.  Series decoupling caps, for example.
  - The other aspect is the referencing, specifically the ground.
- MM: From the editorial discussion there's a trend to either take the following
      approach or not:
  - Take the Device Under Test view of IBIS that Walter was proposing, and go
    with a single node that serves as the reference node for all the C_comp,
    Vinl, Vinh, [Pullup Reference], etc. and all the other traditional IBIS
    keywords.
  - Mike L. (ML) has produced some nice drawings showing the connection
    assumptions.
  - Open questions are whether it's called universal reference node, or it's
    unnamed, or whether it can be tied to another reference, etc.
- Arpad: Your (MM's) recent email added a new twist regarding confusion with the
         [*** Reference] keywords.
  - Has that discussion reached a conclusion?
- Radek: Those conversations are happening in different mailing lists.
  - Some are in editorial, interconnect, etc.
  - Unfortunately, not everyone on this call may have seen all the discussions.
  - The referencing MM mentioned is that when we do the measurements (DUT) we
    specify [Pullup Reference], [Pulldown Reference], etc.
  - ML produced some nice pictures that show voltage sources connected to a
    common node that is also the reference for the I/O signal.
  - That is the extension of the DUT measurements described in the spec, and it
    is valid for non-power-aware IBIS simulations in which the reference
    terminals are all kept constant.
    - One bit of controversy in this case is that some say the reference node is
      node 0 in this case.  But, it may or it may not be.  What's important is
      that there is one local reference node that is present in the model.
  - When you have power-aware simulations and you allow the rail voltages to
    fluctuate, then it is really important to know where a single C_comp is
    connected.  I have mentioned many times that it should be connected to the
    common reference for the model, which should be considered the local ground.
    - That needs to be specified by the model maker.
    - We need to give the model maker the capability to do that using [Pin
      Mapping] or some other method.
    - Otherwise we will keep going in circles and say local ground is the pd_ref
      or local ground is the gc_ref, and people disagree and we get nowhere.
- Arpad: I would like to specifically address one of MM's email's questions
         regarding [*** Reference] keywords.
  - Are those keywords defining a node or terminal where a connection is made,
    or are they defining voltages that must be referenced to something.
  - My understanding was that we meant voltages and not nodes, and that the
    assumption, which is not spelled out in the spec, was that the reference
    was somewhere on the board or VRM or test fixture.
- MM: If you look very carefully in the spec at the [Pullup Reference] and 
      [Pulldown Reference] language: [sharing that section of the spec]
  - [Pullup Reference] explicitly says it is defining a "rail."
  - [Pulldown Reference] is more confused.  It mentions 0V with no indication
    of what the reference is.
- Radek: For the nodes or rails it's probably better not to use those
        [*** Reference] keywords.
  - We should use pu_ref, pd_ref, etc., and we already have those terms.
  - Bob put together a document showing all the various terms we use.
  - What MM is referring to should probably be cleaned up.
- Bob: The [Pulldown Reference] section "rail" language is wrong.
- MM: I disagree.
  - I think the "rail" statement is correct.
  - It defines a "rail" as a reference for the [Pullup] I-V data.
  - Change "reference voltage" to "reference" in that sentence and it works.
  - Then we can add a sentence saying, "The value given here is a value
    for the voltage on that rail with respect to (need to define what)."
- Radek: The language is inconsistent.
  - If you say it's a rail, then you don't also say voltage.
  - You have a voltage at the rail.
- Arpad: I could see it both ways.
  - You have a rail with a voltage connected to it.  It needn't be exclusive.
- MM: I agree that we don't want to use "define" in relationship to the rail.
  - If we wanted to redo this, we would say:
    - This provides the voltage value associated with a source connected between
      the pu_ref node and some "reference node" we need to define.
- Arpad: I would suggest using the verbiage "applying a voltage" between the
         rail(s) defined by these keywords and some reference node, instead of
         "connecting" a voltage to them.
- Arpad: [Sharing slide 2 "Bare Die" from ML's IBIS Model Connection Figures]
  - I agree with this drawing.  All the voltage sources associated with the
    *_ref terminals are connected to one common GND.
- Bob: That GND is the "ground."
  - We have to define a ground as part of the [Model], whether a node exists for
    it or not.
  - That is the reference, i.e. the other side of a voltage declaration, for
    many keywords.
- Radek: That's what I've been saying all along.
  - We need to have that node.  We need to have that reference in the [Model].
- MM: Bob, you meant an accessible node, right?
- Bob: No.  It can be an implicit node.
- MM: Okay, as long as there's a node.
  - I really want to get away from any concept of a voltage as some number
    hanging in space.  There has to be a reference.
  - So, we have a reference node here even if we can't access it directly.
- Radek: This GND is fine.  It does not have to be the earth ground symbol.
  - Somewhere in your entire circuit you may have a global ground somewhere.
  - This GND node may be offset or floating with respect to that global ground.
- MM: I agree, but I strongly advise we not use "GND" as it causes confusion.
  - We should call it "reference" or something else and allow the EDA tool to
    connect to it.
  - Or, we should use some other symbol so as not to imply that the node is
    necessarily accessible like the I/O pad.
- Radek: It must be accessible.  Even I/O is only defined with respect to some
         reference node, and it must be accessible.  It must be in the picture.
- Arpad: Walter has a good point when talking about DUT vs. DIA.
  - As a DUT the GND node could be the test fixture reference.
  - But we need to spell out where the package model is located on this drawing
    in an actual simulation.  Is it between the sources and the I/V curve boxes,
    or on the other side of the sources?
- Radek: The legacy model was an extension of the signal node through the
         package to the signal Pin.  You had R_pkg, L_pkg, C_pkg.  C_pkg was
         connected to the node shown as GND here (or could be called ref).
  - It's been like that forever.  We may want to clean up the terminology.
- MM: If we say that there is a reference node there, do we provide a way to
      specify it in the model or do we leave it up to the EDA vendor to figure
      out how that node should be connected?
  - Can the model maker say, "I want that node to be a Pin, or pu_ref, or..."?
  - There may be some call to define things like a reference that is only inside
    the package.
- Radek: We need to give the tools to the model makers so they can specify it.
- Bob: I disagree.
  - That GND might be the ground plane reference, and it's the reference for all
    supplies that are defined internally.
  - Your pc_ref, gc_ref, etc. could be hooked up to external supplies instead
    the [* Reference] values.
- Radek: Okay, then why do you disagree?
  - This GND does not have to be absolute ground.
  - What's important is that [GND Clamp Reference] as a value gives the voltage
    between the gc_ref terminal and this GND, this reference.
- Bob: I agree, but GND can't vary.
- Arpad: In this picture I would put a box around the 4 I/V boxes to represent
         the Die.  Then another box could show the package.  I could not see a
         die having ideal sources in real life.  That could be made clear.
         (Note: ML agreed, and the presentation that is posted to the work
          archive does contain a box around the [Model] elements).
- ML: [Sharing his "IBIS Model Connection Figures" presentation.]
  - Slide 2, "Bare Die": what we have been reviewing.
  - Slide 3, ECL and PECL.
    - Only difference is that the pullup and pulldown tables are both connected
      to the [Pullup Reference].
  - Slide 4, includes Package.
    - Supply sources and test fixture common reference node shown outside of the
      package.
    - Where is C_comp connected?
- Arpad: I don't want to deal with C_comp now.
  - As the [* References] go, I would agree with this picture.
  - I would simply put a box around the I/V curves to clearly indicate the die
    boundaries. (see Note above, ML agreed and added the box)
  - In light of MM's question, can we agree to this drawing and figure out how
    to best describe it?
- Bob: We can agree on the partitioning.
  - There's a model section.
  - There's a package section.
  - There is the possibility of internally provided rails, or external rails fed
    to the [Model] via the package.
  - The K(t) table is based on fixed absolute voltage references.  They are
    fixed internal references defined within the model.  They are fixed
    "numbers" defined with respect to node 0.  We have a lot of data with 
respect
    to node 0.
  - We have to agree there is some local reference from which all of the single
    valued voltage data keywords are defined, except for the tables that are
    defined relative to some reference keyword.
- Arpad: I think Vinl, Vinh would be examples of these single value parameters.
  - Originally we only had [Voltage Range], not the [* Reference] keywords.
  - We assumed the VSS Pins are connected directly to the ground node.
  - The [Voltage Range] "source" was between the ground pins and the VCC pins.
  - Because those ground nodes were at 0V with respect to node 0, it went
    without saying that Vinh, and Vinl were also referenced to node0.
  - When we introduced the [* References] and added the capability of providing
    some non-zero values for the [Pulldown Reference] and [GND Clamp Reference]
    (VSS Pins), we didn't think it through and we forgot about what would
    happen to Vinh, and Vinl and the other single valued numbers.
  - We have to find a good way to correct the spec and say those single valued
    voltages are referenced to something.
  - I would say it should be the internal pd_ref or gc_ref terminals.
- Bob: I think the spec is okay the way it is, and those values get changed and
       they're referenced to the absolute ground.
  - Your algorithm doesn't work for some cases.
  - In a PECL spec, Vinh and Vinl track the pu_ref, not the pd_ref.
  - The way models are issued now for PECL, we change the numbers around if the
    rails change.
- Arpad: We can put verbiage in the spec with a special case for PECL.
  - Using node 0 does not make sense.
  - As Walter stated in an email the other day, it's still a 5V device whether
    it has + or - 2.5V rails or 1000V and 1005V rails.
- Bob: A model at 1000 and 1005V would have Vinl at 1001.5 and Vinh at 1003.5.
- Arpad: A model maker wouldn't know if you're going to run it at 1000V and
         1005V.
- Bob: You shouldn't operate that model well outside the range of the fixed
       voltages given in the [Model].
- Arpad: I'm not providing a pathological case.
  - Just like you take ECL and lift it up to the positive supply to make PECL, I
    could take CMOS and push it into negative and run it between -5 and 0.
- Bob: Models being created by model makers today are just created with absolute
       voltages and you assume the models will be operated in that voltage
       range.
- Radek: But those voltages "values" are with respect to something.
  - We could make them relative to something other than node 0.
- Radek: [Commenting on slide 4]
    - When you are a DUT there is no package in the picture.
    - When you are simulating, we have a decision to make.
      - It will make a difference whether we say pu_ref, gc_ref, etc.
      - If we give the model maker the opportunity to be precise it will
        be far better, unless we are willing to just say "it will always
        be connected to pd_ref, or always gc_ref, ..."
- Arpad: Where do we stand now in making a decision about how the spec.
         should be corrected?
  - I don't see a problem with saying all the single valued entries should be
    referenced to the bottom rail (or top rail for ECL, PECL)?
  - Is there an issue with doing that, or are we all in agreement?
  - How should we proceed with the editorial work?
- Radek: I agree.
  - We can revisit what we say for PECL/ECL for Vinl and Vinh, because I believe
    it's not quite correct.  But that is definitely part of that work.
- Radek: [Referring back to slide 4]
  - When the device is being simulated, we don't have those fixed supplies.
  - Voltage rail may vary, and it may vary around those values.
  - The package is present.
  - We still need to say what the reference node for the signal pin is, and it
    is not stated here.
- Arpad: In the simulation the rails might be non-ideal.
- Radek: Yes, then the supplies shown can't be called [Pulldown Reference], 
         etc. because those are fixed values.
- Bob: Yes, [Voltage Range] and [* Reference] are the ideal values.
  - We don't have those values outside the package.
  - We have VSS1, etc. that can modulate.
  - The [Model] itself is based on the ideal values, but it can now take into
    account variations in the rail ([Composite Current], etc.).
- Arpad: Most of the data in IBIS is basically measurement conditions.
  - Voltage, temperature, process variations, etc.
  - When you simulate those conditions might change.
- Bob: I do still contend that there is some reference for the internal model
       voltages.
  - We are changing IBIS if we don't recognize that even the threshold values
    are with respect to a fixed local reference.
  - We cannot declare that something tracks one or something tracks another.
  - CMOS thresholds may be 30% and 70% of the difference of pc_ref and gc_ref.
  - For some other technology like TTL it might follow the pd_ref.
- MM: No one is disagreeing with the need for a reference.
- Arpad: We are over time, so we will have to continue.
  - Thank you all for joining.
  
AR: Fangyi to email Walter to check on the status of his review of the Redriver
    Flow proposal.
AR: Arpad to email Vladimir for the same purpose.
AR: Ambrish to check for a collaborator's feedback on his nearly ready new
    version of the Backchannel proposal.
-------------
Next meeting: 12 April 2016 12:00pm PT
-------------

IBIS Interconnect SPICE Wish List:

1) Simulator directives

Other related posts:

  • » [ibis-macro] Minutes from the 05 April ibis-atm meeting - Curtis Clark