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

  • From: Curtis Clark <curtis.clark@xxxxxxxxx>
  • To: IBIS-ATM <ibis-macro@xxxxxxxxxxxxx>
  • Date: Tue, 18 Apr 2017 08:48:07 -0400

Minutes from the 11 April ibis-atm meeting are attached.
IBIS Macromodel Task Group

Meeting date: 11 April 2017

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
eASIC:                        David Banas
                              Marc Kowalski
Ericsson:                     Anders Ekholm
GlobalFoundries:              Steve Parker
IBM                           Luis Armenta
                              Trevor Timpane
Intel:                      * Michael Mirmak
Keysight Technologies:      * Fangyi Rao
                            * Radek Biernacki
                              Ming Yan
Maxim Integrated Products:    Hassan Rafat
Mentor, A Siemens Business:   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
                              Kevin Li
Teraspeed Consulting Group:   Scott McMorrow
Teraspeed Labs:             * Bob Ross
TI:                           Alfred Chong


The meeting was led by Arpad Muranyi.

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

- None.

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

- Mike LaBonte to post Walter's BIRD 166.1 proposal and presentation.
  - Done.

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

- None.

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

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

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

New Redriver Flow BIRD:
- Discussion: Arpad asked for clarification on a point Ambrish had made at the
  previous meeting.  Ambrish said his point had been that Walter's BIRD 166.1
  fixes today's flow, while changes proposed by Fangyi affect the IR matrix
  passed to Init(), but would not change the flow.  Arpad again said that he
  wanted to ensure that if we accepted the BIRD166.1 proposal it would be an
  incremental step, and we could add Fangyi's proposed changes later to get
  time domain working without having to backtrack on any BIRD 166.1 changes.
  
  Walter noted that in his proposal and Fangyi's the final IR input to the Rx2
  Init() was the same, but Fangyi's proposal included some additional outputs
  from the Rx Init() functions.  He also said that our time domain flow was
  already working because the output of Rx1's GetWave() is passed to Tx2's, and
  the output of Tx2's is convolved with the IR of channel 2 and passed to Rx2's
  GetWave().  Therefore, everything is accounted for at Rx2's GetWave().
  
  Fangyi said the issue is with Init() processing, even for a bit-by-bit
  GetWave() flow.  Arpad asked if our flow was okay for a pure GetWave() only
  flow.  Fangyi said no, even for GetWave() flow the AMI model for the Rx may
  optimize its tap settings in Init().  He said Init() has two effects, one
  might be to change the IR if it supports Init only flow, but the other could
  be to initialize internal settings, optimize, choose tap weights, etc.  An
  Rx might have DFE, for example, and not return an IR from its Init() but
  still use the IR input to Init() to decide on its taps.
  
  Walter described a scenario in which none of the AMI_Init() functions returned
  an IR.  In this scenario, the input to the Rx2 Init() would only contain the
  the upstream channels and none of the upstream equalization effects.  In this
  scenario, if the Rx were doing its optimization of the DFE taps in Init(),
  then even the time domain flow is broken.  He noted that this had always been
  broken, and that workarounds had been presented in a DesignCon paper.  He
  noted that even a regular flow (no repeater) was subject to this flaw.
  Fangyi asked how this could occur in a regular flow.  Walter said that if the
  Tx were GetWave() only, and if the Rx optimized its tap weights in Init() and
  not in GetWave(), then the same problem existed.  Fangyi said that would be a
  Tx model problem, not a flow problem.
  
  Ambrish objected to Fangyi's characterization of the GetWave() only Tx as a
  "model problem," and said the spec allows a Tx model to be GetWave() only.
  Bob Miller noted that he had produced Rx models that behaved as Fangyi and
  Walter had described.  These models do not return an IR from Init() (i.e.
  "GetWave() only"), but their Init() functions expect IRs that represent
  everything in front of them, and they generate the tap weights accordingly.
  The GetWave() flow then uses the tap weights set during Init().  This led to
  a discussion about dual-mode models vs. Init Only vs. GetWave Only.  Arpad
  asked if we needed to tighten up the spec to ensure that simulations would
  produce the right results when models from different vendors were mixed.
  Walter and Fangyi felt that ideally the models should be dual mode.  Ambrish
  acknowledged that there were certain limitations if a model did not provide
  some approximation of its behavior in a modified IR returned by Init(), but
  he objected to any sort of mandate for dual mode models.  He said that dual
  models caused confusion for some users when Init() flow and GetWave() flow
  provided different results.  He did not think the solution was to mandate
  that a model handled equalization in the Init() and GetWave() (dual mode).
  He noted that the spec currently warns against issues that can occur when
  mixing models of various types.  Walter agreed with Ambrish that the spec
  shouldn't mandate dual mode models.
  
  Returning to Arpad's original question, Walter said that he felt his proposal
  would not interfere with Fangyi's.  He said there could still be problem
  scenarios, but these were pre-existing.  Arpad noted a comment from Vladimir
  that we should be very clear that BIRD 166.1 is only talking about statistical
  flow.  Walter said he thought this was already implied, but he was open to any
  suggestions for modified wording.
  
  Fangyi said he was not sure BIRD 166.1 was compatible with his proposal.  He
  noted that it still did not provide the IR from Rx1 to Rx2 so it still did not
  handle crosstalk, and it was unclear how it would extend to cascaded
  redrivers.  Walter noted that he had suggested one additional change to
  Fangyi's proposal, passing the Tx Init() two IRs, one which was the output
  of the redriver Rx Init(), and one which was the downstream channel. Walter
  said if this were done it would resolve the crosstalk issues entirely.  Fangyi
  said this led to the question about how it would extend to cascaded redrivers.
  In a two-repeater system, what would be the input to Tx2?  Walter said Tx2
  would get the output of Rx2 Init(), which contained everything upstream, and
  also the IR of the downstream channel.  Walter said the IR representing the
  downstream channel would only be for the next channel, not all subsequent
  channels, because all we needed was the information to get to the next Rx.
  He noted that the very first Tx in the chain would only get the one IR
  representing the immediate downstream channel.  Fangyi asked why, even in
  a single repeater case, the initial Tx stopped at the first Rx?  Why wouldn't
  the initial Tx want to optimize the entire channel?  Walter said this got into
  back channel and optimizing everything together.  Fangyi said in theory any
  Tx and Rx could communicate (via backchannel) to optimize, but in reality all
  of the redrivers ran on fixed set-ups and did not optimize.  Walter said in
  that case it was academic and the BIRD 166.1 flow worked.  He said one might
  in theory have a complicated system in which the primary Tx wants to optimize
  based on what's happening at the terminal Rx, but silicon doesn't do that.
  
  Fangyi said perhaps that's actually where backchannel should happen, between
  the terminal Tx (initial Tx) and the terminal Rx.  Walter noted that in some
  cases (DDR5) the Tx on the controller is optimizing the Rx, not the Rx
  optimizing the Tx as we often think of it in backchannel discussions.  Fangyi
  said this raised another fundamental issue with AMI, we always call Tx Init()
  first.  Walter noted that we may need another BIRD to add iterative AMI_Init()
  sequences or some other method to allow every Tx and Rx to communicate.  He
  noted that BIRD 147.6 had been dramatically simplified and only contained
  iterative backchannel calls during GetWave().
  
- Arpad: I'd like to encourage everyone to look over the proposal again to see
         if we can come to a decision on this BIRD draft.
- Mike L.: Motion to adjourn.
- Curtis: Second. 
- Arpad: Thank you all for joining.

-------------
Next meeting: 18 April 2017 12:00pm PT
-------------

IBIS Interconnect SPICE Wish List:

1) Simulator directives

Other related posts:

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