[ibis-macro] Re: Response to BIRD-190

  • From: Walter Katz <wkatz@xxxxxxxxxx>
  • To: ibis-macro@xxxxxxxxxxxxx, arpad_muranyi@xxxxxxxxxx
  • Date: Mon, 19 Jun 2017 20:00:46 -0400 (EDT)

Why would an initial function return tap coeficients based on the input ir?




Get Outlook for Android







On Mon, Jun 19, 2017 at 5:12 PM -0600, "Muranyi, Arpad" 
<Arpad_Muranyi@xxxxxxxxxx> wrote:




















Walter,


 


Maybe I wasn’t clear with what I was trying to say, but when I raised the


question “So what was the original intent?”, I was referring to the intent


of the ORIGINAL IBIS-AMI specification (v5.0) for the Init function.  In those


days there was no mention of optimization and/or repeater flows.  The


text I quoted from pg. 175 of the v6.1 spec:


 





 


appears exactly the same way in the v5.1 spec on pg. 159:


 





 


(I couldn’t find anything along these lines in the v5.0 spec).


 


What I wanted to point out was that this text was written before repeaters and 
optimization


were mentioned in the spec and this text seems to indicate that the primary 
purpose of the


Init function was to do what its name implies, initialize the AMI DLLs.  The 
ability to put signal


processing into the Init function seemed to be a bonus (for statistical 
simulations).


 


With that in the back of my mind, I was trying to make the point that whether 
the statistical


(Init) flow is correct or wrong for the purpose of redriver simulations with 
optimization


depends on what the original intent was for the Init functions, i.e. was the 
original intent to


use the Init function for optimization or not.  If the answer is yes, the 
redriver reference flow


is wrong, but if the answer is no (which I what I sense from the quoted text 
above), then the


redriver reference flow is good the way it is.


 


Optimization arrived on the horizon before redrivers.  As early as in the v5.1 
specification, we


added Abrish’s favorite text (on pg. 162 of the v5.1 PDF file), apparently for 
that reason:


 





which seems to indicate that at the time v5.1 was written, we didn’t intend to 
provide full


support or a robust solution for optimizations in the Init flow/function.  
Otherwise we would


have figured out how to change the flow right then and there.  After all, v5.1 
was the version


when we made another correction on the flow and got rid of the Use_Init_Output 
parameter.


We could have fixed the optimization problem too in the same sitting.  Why did 
we not do it?


We probably couldn’t see into the future to know how important that might 
become one day.


But this is exactly the proof that it must not have been the original intended 
purpose for the


Init function at that time.


 


So once again, if that was not the intended purpose of the Init function, than 
the redriver


flow that followed in a later version is correct according to what the intent 
was at the time.


It is a different question now that we are trying to shoehorn a new purpose 
into the Init


function that the redriver flow seems wrong to us with that new purpose.


 


I am not opposed at fixing that, but it doesn’t seem that BIRD166 provides a 
universal solution


for the problem without making some other model combinations worse.  And this 
is what


we need to resolve.  We need to find a solution that does not break something 
else…


 


 


Regarding “why is the input to the Tx2 the IR of the downstream channel”, I 
tend to agree


with Ambrish, the input any Tx Init function, regardless of which channel it 
belongs to, is the


channel’s IR that it belongs to, so that its EQ can modify it.  The main reason 
for this is not that


it should be able to optimize itself to the channel, however, that is certainly 
an added benefit…


 


Thanks,


 


Arpad


=========================================================================


 


 




From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx]
On Behalf Of Walter Katz

Sent: Monday, June 19, 2017 4:38 PM

To: Muranyi, Arpad <Arpad_Muranyi@xxxxxxxxxx>; ibis-macro@xxxxxxxxxxxxx

Subject: [ibis-macro] Re: Response to BIRD-190




 


Arpad,


 


The original intent was to allow users to:

Define repeater records in an IBIS file so that an Rx could be paired with a Tx 
to form a repeater
Define two kinds of repeaters, a Retimer and a RedriverDefine the sequence of 
Init flows and GetWave flows for both Redrivers and RetimersSelf-Optimization 
was always considered
for both the Tx2 and Rx2. If not, why is the input to the Tx2 the IR of the 
downstream channel? The answer was so the Tx2 could optimize itself. For 
Retimers, the input to the Rx2 was just the output of the Tx2. For the 
Redriver, it was an oversite to
 not include the output of Rx1 in either the input to the Tx2 or the input to 
the Rx2.


 


No flow is valid unless it incorporates the ability of an Rx to optimize 
itself. AMI specifically supports this because the AMI_Init can return the 
values of AMI parameters such at tap coefficients. There are examples of this 
in the specification
 (e.g. mySampleAMI on page 210.


 


Walter


 



Walter Katz


wkatz@xxxxxxxxxx


Phone 303.449-2308



Mobile 303.335-6156




From: 
ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx]
On Behalf Of Muranyi, Arpad

Sent: Monday, June 19, 2017 5:13 PM

To: ibis-macro@xxxxxxxxxxxxx

Subject: [ibis-macro] Re: Response to BIRD-190




 


Walter,


 


In this case, whether the redriver reference flow is correct or wrong seems


to depend on what you want to do in the simulation.  What I am hearing in


this conversation is that the flow is only wrong if the Init function contains


optimization.  But if the original intent of the spec did not include such


optimizations, then the flow seems to be OK.


 


So what was the original intent?


 


Thanks,


 


Arpad


===========================================================


 




From: Walter Katz [mailto:wkatz@xxxxxxxxxx]


Sent: Monday, June 19, 2017 4:04 PM

To: Muranyi, Arpad <Arpad_Muranyi@xxxxxxxxxx>;
ibis-macro@xxxxxxxxxxxxx

Subject: RE: [ibis-macro] Re: Response to BIRD-190




 


Arpad,


 


Yes, there are reference flows, and the Redriver reference flow is wrong. It 
has an error in it. The error should be corrected because it gives the wrong 
result. I announced that this error existed as soon as I found it. The error is 
there
 whether Rx2 has a DFE or not. Even if the Rx2 was LTI in your definition of 
LTI (e.g. it has a CTLE that can be changed as a function of the IR of the 
upstream channel).


 


If the standard gives the wrong answer and if IBIS is unable to correct it, 
then all we can do is document that IBIS 6.1 flow is incorrect, and that SiSoft 
follows a flow that is correct.



 


Walter


 



Walter Katz


wkatz@xxxxxxxxxx


Phone 303.449-2308



Mobile 303.335-6156




From: 
ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx]
On Behalf Of Muranyi, Arpad

Sent: Monday, June 19, 2017 4:30 PM

To: ibis-macro@xxxxxxxxxxxxx

Subject: [ibis-macro] Re: Response to BIRD-190




 


Walter,


 


What happened to the promise of interoperability and portability?


Also, pg. 177 states the following:


 





 


So while the flows are not a requirement, the purpose of them is to


establish something that can be followed to arrive to the same results…


If all EDA vendors can do anything they want, and generate different


results because they feel it is the correct answer, we might as well


kiss the spec good bye…


 


Thanks,


 


Arpad


========================================================


 


 




From: Walter Katz [mailto:wkatz@xxxxxxxxxx]


Sent: Monday, June 19, 2017 3:21 PM

To: Bob Miller (APD) <bob.miller@xxxxxxxxxxxx>; Ambrish Varma 
<ambrishv@xxxxxxxxxxx>

Cc: Muranyi, Arpad <Arpad_Muranyi@xxxxxxxxxx>;
ibis-macro@xxxxxxxxxxxxx

Subject: RE: [ibis-macro] Re: Response to BIRD-190




 


All,


 


Ultimately, AMI is a specification of the format and syntax of a .ami file and 
what the inputs and outputs are of a DLL. It is important that the model makers 
write DLLs in accordance with the standards defines of their inputs and outputs.



 


It is not a requirement of an EDA tool follow the flows suggested in the 
standard. SiSoft and other companies believe the flow in IBIS 6.1 gives the 
wrong answer, as we stated three years ago. SiSoft uses a flow that gives the 
correct answer,
 and submitted BIRD 166 to document this.


 


If other EDA companies state that they are getting the correct answer because 
they religiously execute the flows documented in IBIS 6.1, so be it.


 


Bottom line is when a customer gets a different results from different EDA 
vendors we can point them to this discussion and they can decide who is right, 
since we cannot.


 


Walter


 


Walter Katz


wkatz@xxxxxxxxxx


Phone 303.449-2308


Mobile 303.335-6156



 









Other related posts: