Hi Walter, Could you please help clarify these issues with your proposal: 1) You mention in the description for 'Backchannel_Message' 'The contents of this message is agreed upon in the 802.3KR protocol.' Can you elaborate how and who agrees to this content - with a) published protocols - and b) with 'private' protocols that the designers of Tx and Rx have agreed upon. 2) It is not clear if this method supports multiple protocols in the Tx and Rx AMI Models - can you please elaborate on that? 3) With the 'Backchannel_Protocol' parameter in the 802.3KR_Tx file below - are you now abandoning your 'Protocol agnostic' Tx AMI model concept? I also have a question about the .ami files that you discussed in the ATM last couple of weeks: 4) In PCIe3_Rx.ami, you have a Reserved Parameter 'Tx_Tap_Coefficient_Ranges', Usage In, where you mention that the EDA tool sets this after reading the 'Tx_Tap_Coefficient_Ranges'. This is not a dynamic parameter (being reserved - and set by the tool once). How does a Tx help the Rx in reducing the range dynamically, thereby 'honing' in on a coefficient value over the backchannel process. 5) Could you explain how 'Tx_Tap_Increment_Parameter' and 'Rx_Tap_Increment_Parameter' work in the 802.3KR_Tx.ami and 802.3KR_Rx.ami respectively? 6) In 802.3KR_Rx.ami in the Model_Specific parameters, you have a parameter 'This_Tap_Increment' which says 'EDA tool sets Tx_Tap_Increment_Parameter to/from these values'. Could you please explain how the EDA tool gets access to the Model_Specific parameters and know what to do with them? Thanks, Ambrish. From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz Sent: Tuesday, April 29, 2014 11:03 PM To: IBIS-ATM Subject: [ibis-macro] I think I can now do a better job of explaining the BIRD 147 way of communicating ... All, I think I can now do a better job of explaining the BIRD 147 way of communicating between the Tx and Rx. One does not need a .bci file for this as suggested in the following example Tx. One does need a parameter that advertises the Backchannel_Protocol "802.KR" and a placeholder to contain messages between the Tx and Rx AMI_Init and AMI_GetWave functions. (802.3KR_Tx (Description "802.3KR transmitter model") || Revision 1.0 -- 4/15/2014 (Reserved_Parameters (AMI_Version (Usage Info) (Type String) (Value "7.0") (Description "AMI Version 7.0.")) (Ignore_Bits (Usage Info) (Type Integer) (Value 3) (Description "Ignore three bits to fill up tapped delay line.")) (Max_Init_Aggressors (Usage Info) (Type Integer) (Value 25) (Description "Number of aggressors is actually unlimited.")) (Init_Returns_Impulse (Usage Info) (Type Boolean) (Value True) (Description "Impulse response is returned.")) (GetWave_Exists (Usage Info) (Type Boolean) (Value True) (Description "GetWave is well and truly provided in the module.")) | New Reserved Parameters (Backchannel_Protocol (Value "802.KR")(Type String)(Usage In) (Description "This model supports the 802.3KR protocol")) (Backchannel_Message (Value "NA")(Type String)(Usage InOut) (Description "The contents of this message is agreed upon in the 802.3KR protocol. The Tx AMI_Init call may out put this message which gets passed Into the Rx AMI_Init input. The output of Rx AMI_Init input may output a message in as agreed upon in the 802.3KR protocol. This message can be input to the Tx AMI_Init function or calls to Tx AMI_GetWave, and so forth.")) ) | End Reserved_Parameters (Model Specific | ... ) | End Model_Specific ) Similarly, the Rx model might look like the following. This is equivalent to having a .bci file as in BIRD 147, both the Tx and Rx point to the same protocol name (not a file as in BIRD 147), and the training information is all in the Backchannel_Message, and this message is defined in the (Backchannel_Protocol "802.KR") specification. I am not trying to do BIRD 147 in a different way just to be different, I think that this example does a better job of explaining how BIRD 147 works. The key in BIRD 147 is that both Tx and Rx models need to agree on the contents of the Backchannel_Message, and this message can truly be a black box. Ultimately, the choice is do we proceed with the statement that all Tx's are essentially the same and they have Tap indexes and/or Tap coefficients and therefore can be protocol agnostic, requiring that the EDA tool translate what the Rx wants the Tx to do into terms the Tx understands, or does the DLL have to agree to the contents of a Message that gets passed back and forth between the DLL's. (802.3KR_Rx (Description "PCIe3 receiver model") || Revision 1.0 -- 3/15/2014 (Reserved_Parameters (AMI_Version (Usage Info) (String Integer) (Value "7.0") (Description "AMI Version 7.0.")) (Ignore_Bits (Usage Info) (Type Integer) (Value 10000) (Description "DFE may take a 10,000 bits to settle.")) (Max_Init_Aggressors (Usage Info) (Type Integer) (Value 25) (Description "Number of aggressors is actually unlimited.")) (Init_Returns_Impulse (Usage Info) (Type Boolean) (Value False) (Description "Impulse response is not returned, statistical simulation is not supported.")) (GetWave_Exists (Usage Info) (Type Boolean) (Value True) (Description "GetWave is well and truly provided in the module.")) (Rx_Receiver_Sensitivity (Usage Info)(Value 0.20) (Type Float) (Description "The receiver sensitivity.")) | New Reserved Parameters (Backchannel_Protocol (Value "802.KR")(Type String)(Usage In) (Description "This model supports the 802.3KR protocol")) (Backchannel_Message (Value "NA")(Type String)(Usage InOut) (Description "The contents of this message is agreed upon in the 802.3KR protocol. The Tx AMI_Init call may out put this message which gets passed Into the Rx AMI_Init input. The output of Rx AMI_Init input may output a message in as agreed upon in the 802.3KR protocol. This message can be input to the Tx AMI_Init function or calls to Tx AMI_GetWave, and so forth.")) (Training (Usage InOut) (Type Boolean) (List True False) (Description "As In, True tells Rx GetWave to continue training as Out, False Rx GetWave tells EDA tool to stop training")) (Max_Training_Bits (Usage Info) (Type Integer) (Value 100000) (Description "Stop training after 100,000 bits.")) (Pre_Amble (Description "Bit pattern to start training.") (Pattern_Type (Usage Info)(Value "b") (Type String) (Description "Pattern is string of 0's and 1's.")) (Bit_Pattern (Usage Info)(Value "0000000001111111111") (Type String) (Description "Pre-amble pattern"))) (Training_Pattern (Description "Training pattern.") (Pattern_Type (Usage Info)(Value "LSFR") (Type String) (Description "Pattern is LSFT.")) (LSFR_Seed (Usage Info)(Value "10110011101") (Type String) (Description "LSFR Seed"))) (LSFR_Taps (Usage Info)(Description "LSFR Taps")(Type Integer) (Table (Labels "First tap" "Second tap" "Thirs tap") (1 9 11)))) (Post_Amble (Description "Bit pattern to end training.") (Pattern_Type (Usage Info)(Value "b") (Type String) (Description "Pattern is string of 0's and 1's.")) (Bit_Pattern (Usage Info)(Value "000000000000000000000") (Type String) (Description "Post-amble pattern"))) ) | End Reserved_Parameters (Model_Specific | ... ) | End Model_Specific ) Walter Katz wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx> Phone 303.449-2308 Mobile 303.335-6156