Backchannel, Training and Co-Optimization BIRD Introduction and Flows Walter Katz Signal Integrity Software, Inc. IBIS-ATM May 13, 2014.

Slides:



Advertisements
Similar presentations
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 2: Data types and addressing modes dr.ir. A.C. Verschueren.
Advertisements

Linking A quick overview of how to configure PulseWorx UPB devices to control each other.
Tx_Init_Optimizes Walter Katz Signal Integrity Software, Inc. IBIS-ATM April 1, 2014.
5/22/ New AMI API to Resolve Dependent Model Parameter Fangyi Rao, Agilent Technologies.
CSE 1301 Lecture 6B More Repetition Figures from Lewis, “C# Software Solutions”, Addison Wesley Briana B. Morrison.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Introduction to working with Loops  2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course. Introduction to Computers and Programming.
Copyright © Cengage Learning. All rights reserved.
Guide To UNIX Using Linux Third Edition
Industrial Avionics Working Group 18/04/07 The Relationship Between the Design and Safety Domains in IAWG Modular Certification DGR Generation.
S R S S ystem R equirements S pecification Specifying the Specifications.
Guide to Using Message Maker Robert Snelick National Institute of Standards & Technology (NIST) December 2005
1 Doing Statistics for Business Doing Statistics for Business Data, Inference, and Decision Making Marilyn K. Pelosi Theresa M. Sandifer Chapter 11 Regression.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
Advanced Instructions Most PLCs now support more advanced functions such as Floating point math, Boolean operations, Shifting, Sequencing, Program control.
Typical Software Documents with an emphasis on writing proposals.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
ITEC224 Database Programming
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Chapter 8 Friends and Overloaded Operators. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Slide 2 Overview Friend Function (8.1) Overloading.
1 DIGITAL ELECTRONICS. 2 OVERVIEW –electronic circuits capable of carrying out logical (boolean) and arithmetic operations on information stored as binary.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
A New Method For Developing IBIS-AMI Models
An introduction to specification in VDM-SL At the end of this lecture you should be able to: write a formal specification of a system in VDM-SL; correlate.
Requirements Documentation CSCI 5801: Software Engineering.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Signal Integrity Software, Inc. IBIS Advanced Technology Modeling Group (IBIS-ATM) * Status Report Todd Westerhoff, SiSoft (Chief Troublemaker) DesignCon.
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
Jack DeWeese Computer Systems Research Lab. Purpose  Originally intended to create my own simulation with easily modified variables  Halfway through.
1 © 2006 Nokia pullola_ ppt / Extending Base Station Active Radio Link Set for Improved Uplink Scheduling Esa-Pekka Pullola Supervisor:
IBIS-ATM Oct. 2012, Slide 1 Mid-Channel Redriver AMI Model and Simulation Mahbubul Bari, Maxim Integrated Fangyi Rao, Agilent Technologies Inc.
(1) Unit Testing and Test Planning CS2110: SW Development Methods These slides design for use in lab. They supplement more complete slides used in lecture.
Systems Analysis and Design in a Changing World, Fourth Edition
Backchannel Issues Walter Katz Signal Integrity Software, Inc. IBIS-ATM April 8, 2014.
1 Strategies for Coping with Non-linear and Non-time Invariant Behavior for High Speed Serial Buffer Modeling Richard Mellitz Results from DesignCon2008.
FPGA Calculator Core Final Presentation Chen Zukerman Liran Moskovitch Advisor : Moshe Porian Duration: semesterial December 2012.
Floyd, Digital Fundamentals, 10 th ed Digital Fundamentals Tenth Edition Floyd © 2008 Pearson Education Chapter 1.
Doc.: IEEE /536r0 Submission September 2001 A. Soomro and S. Choi, Philips Research, USASlide 1 Proposal to Add Link Margin Field in IEEE h.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,
Introduction to Computers and Programming Lecture 7:
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the Project Generator function.
Time Domain Representations of Linear Time-Invariant Systems
TI Information – Selective Disclosure 1 TLK10xxx High Speed SerDes Overview Communications Interface High Performance Analog.
Introduction To DBMS.
SpaceFibre Physical Layer Testing
Types CSCE 314 Spring 2016.
The Development Process of Web Applications
RX 8-Bit Timer (TMR) 4/20/2011 Rev. 1.00
Lecture 07 More Repetition Richard Gesick.
Lecture 4B More Repetition Richard Gesick
Asynchronous Serial Communications
TLK10xxx High Speed SerDes Overview
Loops CIS 40 – Introduction to Programming in Python
Training Module Introduction to the TB9100/P25 CG/P25 TAG Customer Service Software (CSS) Describes Release 3.95 for Trunked TB9100 and P25 TAG Release.
SAS-3 Transmitter Training Review
SAS-3 Transmitter Training Review
Strawmodel ac Specification Framework
Chapter 1. Introduction to Control System
ECE 352 Digital System Fundamentals
Ground Recommendations Review of Recent Discussion
Init should return just equalization of buffer
AMI Simulation Flow Round 3
FEMAS Development - Progress
Multichannel Link Path Analysis
FEMAS Development - Progress
Presentation transcript:

Backchannel, Training and Co-Optimization BIRD Introduction and Flows Walter Katz Signal Integrity Software, Inc. IBIS-ATM May 13, 2014

Overview Purpose of this Presentation Backchannel Definitions Training Makes Assumptions About Tx Silicon Tx Silicon Never Optimizes Itself How Training Really Happens Tx.ami File Enhancements Rx.ami File Enhancements Training Flow 2

Purpose of this Presentation In order to operate optimally a SerDes channel must be configured with a Tx and Rx configuration consisting of Tx transmit taps and Rx CTLE and Rx DFE taps. The Rx silicon can automatically optimize its DFE taps and may sometime be able to optimize its CTLE. (Note the term DFE here is used generically to encompass any Rx equalization technique.) The optimal configuration can either be determined by EDA tools varying the Tx tap coefficients blindly, intelligently, or using the Rx AMI model to vary the Tx tap coefficients. The later is called Training or Backchannel. The former is called Co-Optimization. These IBIS AMI enhancements support Rx training, Rx controlled optimization and EDA tool controlled optimization. 3

Backchannel Definitions Reading and PCIe-3 training specification will make your head spin In PCIe-3 –A channel consist of a Tx/Rx –A Lane is a pair of Tx/Rx and Rx/Tx channels, one for transmission and one pair for reception. A by-N Link is composed of N Lanes. Training may be controlled by component software or can be done autonomously by a Lane or Link. An Rx on component A communicates to its Tx on component B using its lanes paired channel. 4

Training Makes Assumptions About Tx Silicon Tx is has FFE equalization One pre cursor tap required (more optional) One post cursor tap required (more optional) Standard specifies presets Rx recommends changes to pre and post tap Coefficients (Tx silicon never optimizes itself) Protocol must convert Coefficient to Index changes (and must know how) Protocol may initialize channel to preset or optimized tap coefficients from simulation 5

Three Representations of Tx Taps Hardware Registers –Hardware specific, often no simple relationship between hardware register contents and either Tap Indexes or Coefficients Tap Indexes –Integer range for each tap –Ranges typically go from 0 to 7, 15, 31 or 63 –Often different ranges for each tap Tap Coefficients –Floating point number for each tap –Sum of absolute values either 1 or Peak to Peak Voltage Training/Co-optimization deal with Indexes and Coefficients 6

Tx Silicon Never Optimizes Itself How could it? Ability of Tx AMI_Init was designed to optimize itself based on knowing impulse response of channel. Optimizing a Tx based on IR of channel was OK at 3Gpbs, but has been proven invalid >=6Gbps The feature of Tx Init optimizing Tx taps based on the channel impulse response has complicated AMI flows considerably and unecessarily. 7

How Training Really Happens 1.Controller sets Tx and Rx presets Based on Channel Loss, Simulation, … A.Tx Tap Indexes (or coefficients) B.Rx CTLE Index (some Rx optimize their own CTLE) 2.Controller sends PRBS pattern on Tx 3.After ~thousand(s?) of UI, Rx tells controller to change Tx taps A.PCIe – new pre and post tap coefficients B.KR – increment or decrement pre and post indexes C.Tap changes maintain peak to peak voltage 4.Controller converts Rx request to new Tx tap Indexes (or coefficients) and Rx CTLE Index 5.Controller updates Tx Taps and Rx CTLE 6.Go To 2. 8

Can We Use Existing Tx Models? It would be helpful if only the Rx DLL needs to be changed to support training/co-optimization Idea is to add Reserved Parameters to describe the Tx to the Rx, without changing how Tx DLL operates –E.G. Do not need reserved tap names, just need a reserved parameter that points to the existing tap parameter Advanced Tx can enable optimization during time domain simulations Rx Init can do time domain training without Tx having time domain training capability 9

Tx.ami Reserved Parameters Tx_Peak_to_Peak_Voltage_Parameter –(Type String) (Usage Info) –Model Specific Tx_Peak_to_Peak_Voltage Parameter Tx_Tap_Coefficient_Parameter –(Type String) (Usage Info)(Value “My_Tap_Coefficient”) –Model Specific Coefficient values Parameter Tx_Tap_Index_Parameter –(Type String) (Usage Info) –Model Specific Index values Parameter Tx_Tap_Increment_Parameter –(Type Tap)(Usage InOut) –Taps with Increment values Tap_Conversion –(Usage In) (Type Boolean) (List True False) –True converts Tx_Tap_Coefficients to Tx_Tap_Index –False converts Tx_Tap_Index to Tx_Tap_Coefficients

Tx.ami Reserved Parameters(cont) Tx_Tap_Coefficient_Ranges –(Type Integer Float Float) (Usage Info) –Table with coefficient ranges for each tap Tx_Tap_Index_Ranges –(Type Integer Integer Integer ) (Usage Info) –Table with index ranges for each tap Tx_Optimization_Mode (Tx_Optimization_Mode (List “Manual” “Auto” “Co-Optimize”) (Usage In) (Type String) (Description “ Manual: Tx Equalization will be based on Tx parameter inputs AMI_Init will not alter the Tx equalization AMI_GetWave will not alter the Tx equalization Auto: Tx Equalization will be based on input impulse response AMI_GetWave will not alter the Tx equalization Co-Optimize Initial Tx equalization will be based on Tx parameter inputs AMI_Init will not alter the Tx equalization AMI_GetWave will alter the Tx equalization based on inputs”))

Tx.ami Model Specific Parameters My_Peak_to_Peak_Voltage –(Type Tap) (Usage InOut) –Tx Peak to Peak Voltage My_Tap_Coefficient –(Type Tap) (Usage InOut) –Taps with Coefficient values –Sum of absolute values of taps = 1. My_Tap_Index –(Type Tap)(Usage InOut) –Taps with Index values My_Tap_Increment –(Type Tap)(Usage InOut) –Taps with Increment values

Rx.ami Info Reserved Parameters Rx_Init_Optimizes_Tx Rx_GetWave_Optimizes_Tx Max_Training_Bits Pre_Amble (This is really a Link function) Training_Pattern (Just need PRBS ) Post_Amble (This is really a Link function) Rx_Tap_Coefficient_Parameter Rx_Tap_Index_Parameter Rx_Tap_Increment_Parameter Training True|False 13

Rx.ami In and InOut Reserved Parameters InOut –Training True|False In –Tx_Tap_Coefficient_Ranges (Type Integer Float Float) (Usage Info) Table with coefficient ranges for each tap EDA tool puts Tx data here –Tx_Tap_Index_Ranges (Type Integer Integer Integer ) (Usage Info) Table with index ranges for each tap EDA tool puts Tx data here 14

Rx.ami Model Specific Parameters InOut –This_Tx_Tap_Coefficient –This_Tx_Tap_Index –This_Tx_Tap_Increment 15

Rx Can Support Multiple Protocols Rx_Init_Optimizes_Tx Rx_GetWave_Optimizes_Tx Max_Training_Bits Training True|False Training_Protocol (List “PCIe-G3” “802.3KR”) (PCIe-G3 –(Training_PRBS (Value 11)) (802.3KR –(Training_Pattern (Value “PRBS21”)) 16

PCIe-3 Presets Not clear where this should be defined Table 4-3: Transmitter Preset Encoding Encoding De-emphasis (dB) Preshoot (dB) 0000b b b b b 0 0 (note this is no equalization!) 0101b b b b b b See description above. See description above. 1011b through 1111b Reserved Table 4-4: Receiver Preset Hint Encoding Encoding Receiver Preset Value 000b -6 dB 001b -7 dB 010b -8 dB 011b -9 dB 100b -10 dB 101b -11 dB 110b -12 dB 111b Reserved 17

Training Flow - Verify presets EDA tool picks presets EDA tool runs normal flow with no training to verify that channel has BER < 1.0E-5 –If not, repeat these steps to find preset with best BER 802.3bj COM (Channel Operating Margin) uses brute force technique to evaluate channel with every possible Tx tap configuration, and an ideal 14 UI Rx equalization. 18

Init Training Flow – Tx Init Tx_Init Input –Tx_Tap_Coefficient or Tx_Tap_Index set to preset –Tap_Conversion True if Tx_Tap_Coefficient is preset False if Tx_Tap_Index is preset –Impulse Response Input is Channel Impulse Response Tx_Init Output –Tap_Conversion True Tx_Tap_Index (from input Tx_Tap_Coefficient) Tx_Tap_Coefficient (corrected from actual Index) –Tap_Conversion False Tx_Tap_Coefficient (Tx_Tap_Index is unchanged) –Channel with Preset Tx Equalization 19

Init Training Flow – Rx Init Rx_Init Input –Tx_Tap_Coefficient –Tx_Tap_Index –Tx_Tap_Coefficient_Ranges –Tx_Tap_Index_Ranges –CTLE preset –Training True –Channel Impulse Response with Tx_Tap_Coefficient Equalization Rx_Init Output –Either Tx_Tap_Index Tx_Tap_Coefficient –CTLE –Equalized Impulse Response, including Channel Impulse Response Tx Equalization Rx Equalization 20

Init Training Flow – Tx Init Again? After Rx Init determines optimum Tx tap coefficients, Tx Init can be called again –Tx Init can verify/correct Tx tap coefficients –Tx Init can convert Tx tap coefficients to Tx tap indexes –Tx Init can create a new Impulse Response of Channel modified by Tx equalization Rx Init can be called again with refined equalized channel, and Rx Init can then be called upon to do normal channel analysis. EDA tool may choose to continue with training or no training GetWave time domain flow. 21

Time Domain Training Flow – Tx GetWave Input Tx_GetWave Input –Tx_Tap_Coefficient or Tx_Tap_Index from Rx Init statistical optimization or from User/EDA tool selected Preset If Tx_Tap_Coefficient –EDA tool corrects based on Tx_Tap_Ranges –Tap_Conversion set to True If Tx_Tap_Index –EDA tool corrects based on Tx_Tap_Ranges –Tap_Conversion set to False –Stimulus Pre-amble followed by Training_Pattern 22

Time Domain Training Flow – Tx GetWave Note that Tx_GetWave may not accept all Tap coefficients/indexes/increments, and may alter them Tx_GetWave Output –Tap_Conversion True Tx_Tap_Index Tx_Tap_Coefficient –Tap_Conversion False Tx_Tap_Coefficient –Waveform: Stimulus including Tx Equalization EDA tool convolves Waveform with Channel to form waveform input to Rx_GetWave 23

Time Domain Training Flow – Rx GetWave Rx_GetWave Input –One or more of following Tx_Tap_Coefficient Tx_Tap_Index Tx_Tap_Increment CTLE –Training True –Waveform from previous step Rx_GetWave Output –One or more of following Tx_Tap_Index Tx_Tap_Coefficient Tx_Tap_Increment CTLE –Waveform including Rx Equalization –Training True|False True, go to Training Flow – Tx GetWave Input False, go to Training Flow - Ended 24

Time Domain Training Flow - Ended Tx_GetWave Input –Tx Tap Coefficient, Index, or Increment from Rx If Tx_Tap_Coefficient –EDA tool corrects based on Coefficient Ranges –Tap_Conversion set to True If Tx_Tap_Index (or Incremented Index) –EDA tool corrects based on Index Ranges –Tap_Conversion set to False –Stimulus Post-amble followed by simulation stimulus 25

Time Domain Training Flow – Ended (cont) Tx_GetWave Output –Tap_Conversion True Tx_Tap_Index Tx_Tap_Coefficient –Tap_Conversion False Tx_Tap_Coefficient –Waveform: Stimulus including Tx Equalization EDA tool convolves Waveform with Channel to form waveform input to Rx_GetWave 26

Time Domain Training Flow Ended – Statistical Channel Analysis From the last call to Tx GetWave we have either: –Tx_Tap_Index(s) –Tx_Tap_Coefficient(s) Remember the trained configuration of Tx and Rx models. Close Tx and Rx DLLs Run Tx Init then Rx Init in the normal way, but using the remembered Tx and Rx configuration. 27

Time Domain Training Flow Ended – Time Domain Channel Analysis Rx_GetWave Input –Training False –Waveform from previous step Rx_GetWave Output –Waveform including Rx Equalization Tx_GetWave Input –Stimulus Tx_GetWave Output –Waveform including Tx Equalization –EDA tool convolves Waveform with Channel to form waveform input to Rx_GetWave Go to Rx_GetWave Input above 28