[ibis-macro] Minutes from the 10 May ibis-atm meeting

  • From: Curtis Clark <curtis.clark@xxxxxxxxx>
  • To: ibis-macro@xxxxxxxxxxxxx
  • Date: Mon, 16 May 2016 19:00:58 -0400

Minutes from the 10 May 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
10-MAY-2016 Fangyi Rao Keysight Technologies AMI Simulation Flow Round 3 v4
(zip
<http://ibis.org/macromodel_wip/archive/20160510/fangyirao/AMI_Simulation_Flow_Round_3_v4.zip>
)(pptx
<http://ibis.org/macromodel_wip/archive/20160510/fangyirao/AMI%20Simulation%20Flow%20Round%203%20v4/AMI_flow_round3_v4.pptx>
)
IBIS Macromodel Task Group

Meeting date: 10 May 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:

- Ambrish to check for a collaborator's feedback on his nearly ready new
  version of the Backchannel proposal.
  - In progress.

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

- None.

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

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

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

[Pin Reference] BIRD Draft:
- Discussion:  Bob suggested that we defer discussion until Walter is available.
  Bob noted that Walter had sent out a draft for private review.  Bob said that
  he was working on some suggestions and some added examples.  Radek asked if he
  was on the recipients list of the private review email.  Bob said he thought
  so, but would forward it to Radek.  Arpad asked if anyone else had any
  comments or questions on the topic.  There were none.

- New Redriver Flow:
- Fangyi: [sharing his updated "AMI Simulation Flow Round 3" version 4]
  - I've updated the presentation with Walter's suggestions.
  - [Slide 3 - Summary]
    - Walter's first suggestion is reflected in the top row.
    - RxInit() returns the IR of the non-DFE portion (gain and linear EQ).
    - Previously RxInit() returned the convolution of the non-DFE portion with
      the "Rx in partial".  (CTLE and non-DFE used as synonyms below).
    - Walter suggested the RxInit() should only output the CTLE portion.
    - Tool can do the convolution.
    - CTLE can also be used by the tool as it wants (cross talk for example).
    - Input to RxInit() is still the same.
  - [Slide 5 - Normal Time Domain Flow: if Tx has GetWave]
    - Inputs are the same.
    - Model returns CTLE IR.
    - Model returns DFE IR.
    - Model must internally perform the convolution of CTLE impulse and the
      input AC so it can align the DFE cursor with that combined impulse.
    - Time Domain Simulation:
      - If Rx has GetWave()
        - TxGetWave() output is convolved with AC and passed into RxGetWave().
      - If Rx is Init-only
        - EDA tool takes the output of TxGetWave() and convolves it with the
          AC and with the Rx non-DFE, and on top of that it adds in the
          convolution of the digital Tx input and the Rx DFE.
      - Only difference is that AC * Rx non-DFE used to be returned directly by
        RxInit().  Now the tool has to do the convolution.
- Radek: What are the advantages of returning the non-DFE separately, instead
         of the non-DFE convolved with the AC?
- Fangyi: Walter mentioned that their tool has use of the CTLE filter, but he
          didn't articulate the detail.
  - One reason I can think of is that if the model doesn't support cross-talk,
    then the tool can take this CTLE portion and apply it to the cross-talk
    impulse matrix itself.
- Curtis: Originally, Walter had also suggested that we might not have to pass
          in the cross-talk impulse matrix at all, right?
- Fangyi: Yes, that's true.  He subsequently clarified that and decided that he
          also wanted to keep the cross-talk matrices as well.
  - Need to emphasize that because the model internally performs this
    convolution (AC * Rx non-DFE) and uses it to align the DFE cursor, and the
    tool will also perform this convolution, they must do it consistently.  We
    must have raw convolution only, without adding any arbitrary delay.
  - At times I can imagine a tool or model might remove or add some delay before
    the main cursor for efficiency reasons.  But that would destroy the
    alignment between the tool's convolution and the DFE taps from the model.
  - [Slide 6 - Normal Time Domain Flow: if Tx is Init-only]
    - Same returns from RxInit() (same as slide 5).
    - Time Domain Simulation:
      - If Rx has GetWave()
        - EDA tool just convolves the Tx digital input with the TxInit() output
          and passes it to RxGetWave().  Same as the current flow.
      - If Rx is Init-Only
        - EDA tool convolves the Tx digital input with the blue box output that
          contains everything.  Same as current flow.
        - Note that the total output (blue box) is the partial input convolved
          with the Rx CTLE, plus the Rx DFE.  This is what current AMI models
          are doing.
  - [Slide 7 - Normal Statistical Flow]
    - Same returns from RxInit() (same as slides 5 and 6).
    - But the tool will just use the Total output (blue box) to represent the
      entire system (same as current flow).
  - [Slide 8 - Redriver Time Domain Flow: If Tx2 has GetWave]
    - Time Domain Simulation:
      - If Rx2 has GetWave()
        - EDA tool convolves the Tx2GetWave() output with AC2 and passes it to
          Rx2GetWave().
      - If Rx2 is Init-only:
        - EDA tool takes the output of Tx2GetWave() and convolves it with the
          AC2 and with the Rx2 CTLE, and on top of that it adds in the
          convolution of the digital Tx1 input and the Rx2 DFE.
        - This convolution of AC2 and Rx2 CTLE by the tool is the change that
          was made to incorporate Walter's suggestion.
  - [Slide 9 - Redriver Time Domain Flow: Init-only Tx2]
    - Time Domain Simulation:
      - If Rx2 has GetWave()
        - EDA tool convolves the Rx1 output with the Tx2Init() output and passes
          it to the Rx2GetWave().
      - If Rx2 is Init-only
        - EDA tool convolves the Rx1 output with the Tx2Init() output and with
          the Rx2 CTLE, and on top of that it adds in the convolution of the
          digital Tx1 input and the Rx2 DFE.
  - [Slide 10 - Redriver Statistical Flow]
    - For the victim channel, the Rx total output (blue box) will be used.
    - For crosstalk, the convolution of the Tx2Init() output and the Rx2 CTLE
      output will be used for the aggressors that come in from Rx1.
  - [Slide 11 - Summary]
    - Updated the definition of the item in the first row (Rx in partial).
      - The output returned by RxInit() in this location is now just the CTLE of
        the Rx (gain and linear eq).  Before it was the convolution of the CTLE
        with the Rx in partial.
    - Update to row 3.
      - Note that the Rx DFE cursors are aligned to the convolution of the Rx in
        partial and the Rx CTLE.
- Mike: Could you explain again the reason the DFE portion is separated off?
- Fangyi: The DFE is extremely non-linear.  The filter representation of DFE can
          only work with a square wave.  It doesn't work with a continuous
          arbitrary wave.
- Discussion: Mike wondered if we couldn't focus on something like the "non-
  linear" portion or something not as specific to a certain technique as "DFE"
  and "non-DFE" with an eye toward future solutions.  Arpad asked if perhaps
  calling the blocks linear and non-linear would work, but Fangyi noted that the
  actual combinations of terms, like adding in the DFE convolved with the square
  wave Tx Input, were specific to DFE and not just a general "non-linear" block.
  Mike noted that he was just suggesting that we keep an eye toward using
  terminology as general as possible.
- Fangyi: [Slide 12 - New Reserved Parameters]
  - Based on the last discussion, we decided we could use one parameter as per
    Walter's suggestion.
    - New single parameter indicating newly proposed flow.
      - Optional, Boolean, In, Default = False, Format = List {False, True}.
      - Its presence in the .ami file indicates the model supports BOTH the
        proposed and current (6.1) flows.
      - A model that supports the proposed flow must also support the 6.1 flow.
      - If the parameter is not specified in the .ami file, the tool executes
        the 6.1 flow without passing this parameter in to AMI_Init().
      - If it is specified in the .ami file, and the EDA tool wants to execute
        the new flow, then it sets the value to true and passes it in to
        AMI_Init().
      - If it is specified in the .ami file, and the EDA tool wants to execute
        the 6.1 flow, then it would not set its value in the string passed to
        AMI_Init().
- Discussion: Radek commented that the second and third bullet points were
  restating the same thing, both lines stated that a model that supported the
  proposed flow must also support the 6.1 flow.  Fangyi said the third point
  emphasizes that a model must support both flows if it supports the proposed
  flow, it cannot support only the newly proposed flow.  Arpad asked if the
  intention was to allow a model that advertised itself as "6.2" to only
  support the 6.1 flow.  Fangyi said yes, there is no intention to rely on the
  version parameter and force any model greater than 6.1 to support the new
  flow.  Arpad asked if there would be a problem in a redriver channel if one Rx
  supported the new flow and the other only the 6.1 flow.  Fangyi said he had
  considered that possibility and believed that such a mixed environment would
  work properly.  Fangyi expressed some reservations about the last bullet
  point, which said the tool should not set the value if it wants to use the 6.1
  flow.  Radek said a tool that recognizes the parameter should be able to set
  it to false (as opposed to not setting it at all).  Curtis pointed out that
  the bullet point implied the model should treat "false" as the default in case
  a tool that didn't understand the parameter didn't pass it at all.  Fangyi
  agreed that this was the case he was considering with that bullet point.
  Some people expressed concerns about what EDA tools using old parsers would do
  with these new parameters, but this was viewed as something that affects any
  new parameters not these in particular.  Mike reiterated his thought from an
  earlier meeting that using a single parameter for what could be considered two
  way communication between the model and the tool was not ideal.  Mike
  suggested that an Info parameter could be used by the model to advertise its
  support for the proposed flow, and a different In parameter could be used by
  the tool to select the flow it wanted to use.  Fangyi agreed that he felt that
  Walter's single parameter suggestion amounted to hacking the parameter.
  Fangyi noted that he had originally proposed two parameters (see v3 of the
  document, posted April 19, 2016).  The group reviewed Fangyi's earlier two
  parameter proposal.  Fangyi said he would prepare a version that reverted to
  the two parameter approach, and asked for suggestions for improved names for
  the two parameters.  Name suggestions based on "Rx Supports" for the Info
  parameter and "Simulator chooses" for the In parameter were made.
- Mike: Motion to adjourn.
- Curtis: Second.
- Arpad: Thank you all for joining.

-------------
Next meeting: 17 May 2016 12:00pm PT
-------------

IBIS Interconnect SPICE Wish List:

1) Simulator directives

Other related posts: