Thank you Fangyi for touching this important issue: ideally the spec should explain the intended usage of the clock times so that implementation becomes unambiguous. > For each tick, EDA tools will use waveform from tick_time to (tick_time+UI) to fill the eye histogram. If tick_time < 0, ... That makes practical sense. If anyone agrees with that, then why not put this into the spec? But here is a minor technical problem: if you do this way, and the clock times are not equidistant, then some portions of the waveform in your histogram are counted twice and some could be missing. This is another Pandora box: what's a definition of an eye histogram built from waveform and non-equidistant clock times? Vladimir -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of fangyi_rao@xxxxxxxxxxx Sent: Wednesday, April 14, 2010 9:28 AM To: fangyi_rao@xxxxxxxxxxx; scott@xxxxxxxxxxxxx; ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: clock_times .... yet again There was a typo in my previous reply. For each tick, EDA tools will use waveform from (tick_time-UI/2) to (tick_time+UI/2) to fill the eye histogram. If tick_time < UI/2, ... I meant For each tick, EDA tools will use waveform from tick_time to (tick_time+UI) to fill the eye histogram. If tick_time < 0, ... Sorry for the confusion. Fangyi From: RAO,FANGYI (A-USA,ex1) Sent: Tuesday, April 13, 2010 10:34 PM To: 'scott@xxxxxxxxxxxxx'; IBIS-ATM Subject: RE: [ibis-macro] clock_times .... yet again Hi, Scott; For each tick, EDA tools will use waveform from (tick_time-UI/2) to (tick_time+UI/2) to fill the eye histogram. If tick_time < UI/2, a portion of the waveform does not even exist. Ignore_Bits can be used to deal with the situation you described, or the model can choose to not return the first few ticks (missing ticks). Let's make the clock tick definition simple: clock tick is used for AMI models to instruct EDA tools where to center the eye. This is all what EDA tools care about. Regards, Fangyi From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Scott McMorrow Sent: Tuesday, April 13, 2010 5:08 PM To: IBIS-ATM Subject: [ibis-macro] clock_times .... yet again Fellow AMI travelers In the specification for clock_times is the statement: "The clock times are referenced to the start of the simulation (the first AMI_GetWave call). The time is always greater or equal to zero." According to the discussion today, it has been agreed that all known implementations of AMI dlls calculate the correct sample time and then calculate clock_times as sample_times minus 1/2 the nominal clock period. If this is truly the case, then there is a problem. During startup the CDR is free-running, with no defined phase relationship to the received data. In order to model this, the period of the CDR would be set to it's free-running period, and the phase of the CDR would need to be randomly initialized at INIT. The location of the receiver sample point is then random within the first UI data window, as it is in reality. No matter what the Tx does, there will generally be a free-running sample occuring with no phase relationship to anything, until the first received differential transition occurs. If the first value of clock_times is calculated as receiver sample time minus 1/2 the nominal clock period, then clock_times can take any value from -0.5 UI to +0.5 UI. The specification should be clarified to state that: The clock times are referenced to the start of the simulation (the first AMI_GetWave call). The time is always greater or equal to -0.5 nominal clock periods or symbol UI." best regards, Scott -- Scott McMorrow Teraspeed Consulting Group LLC 121 North River Drive Narragansett, RI 02882 (401) 284-1827 Business (401) 284-1840 Fax http://www.teraspeed.com Teraspeed(r) is the registered service mark of Teraspeed Consulting Group LLC