Sharing termination keep a constant current through leg, which
improve TX speed in this way. On the other hand, the sharing termination
facilitate drain/source sharing technique in layout.
pull-up and pull-down
resistor
Original stacked structure
Pro's:
smaller static current when both pull up and pull down path is
on
Con's:
slowly switching due to parasitic capacitance behind pull-up and
pull-down resistor
with single shared linearization resistor
Pro's:
The parasitic capacitance behind the resistor still exists but is
now always driven high or low actively
Con's:
more static current
VM
Driver Equalization - differential ended termination
\[
V_o = D_{n+1}C_{-1}+D_nC_0+D_{n-1}C_{+1}
\]
where \(D_n \in \{-1, 1\}\)
\[
V_{\text{rx}} = V_{\text{dd}} \frac{(R_2-R_1)R_T}{R_1R_T+R_2R_T+R_1R_2}
\] With \(R_u=(L+M+N)R_T\)
\[\begin{align}
V_{\text{rxp}} &= \frac{1}{2} \cdot \frac{N}{L+M+N} \\
V_{\text{rxm}} &= \frac{1}{2} \cdot \frac{L+M}{L+M+N}
\end{align}\] So \[
V_{L}= \frac{1}{2}\cdot\frac{N-(L+M)}{L+M+N}
\] which is same with differential ended termination
Equation-2
\[\begin{align}
V_{\text{rxp}} &= \frac{1}{2} \\
V_{\text{rxm}} &= 0
\end{align}\] So \[
V_{M}= \frac{1}{2}
\] which is same with differential ended termination
Pre-cursor FFE can compensate phase distortion through the
channel
Single-ended termination
Differential termination
reference
J. F. Bulzacchelli et al., "A 28-Gb/s 4-Tap FFE/15-Tap DFE Serial
Link Transceiver in 32-nm SOI CMOS Technology," in IEEE Journal of
Solid-State Circuits, vol. 47, no. 12, pp. 3232-3248, Dec. 2012, doi:
10.1109/JSSC.2012.2216414.
Jhwan Kim, CICC 2022, ES4-4: Transmitter Design for High-speed Serial
Data Communications
We define the ISF of the sampler as the sensitivity of its final
output voltage to the impulse arriving at its input at different times,
the ISF essentially describes the aperture of the sampler.
An ideal sampler would have the perfect aperture, i.e. sampling the
input voltage at exactly one point in time; thus, its ISF would be a
Dirac delta function, \(\delta(t-t_s)\)
where \(t_s\) is when sampling
occurs.
A realistic sampler would rather capture a weighted-average of the
input voltage over a certain time window. This weighting function is
called the sampling aperture and is equivalent to the ISF
A time-varying impulse response\(h(t, \tau)\) is defined as the circuit
response at time \(t\) responding to an
impulse arriving at time \(\tau\).
In general, the ISF can be regarded as the time-varying
impulse response evaluated at one particular observation
time\(t=t_0\).
The system output \(y(t)\) is
related to the input \(x(t)\) as: \[
y(t) = \int_{-\infty}^{\infty}h(t, \tau)\cdot x(\tau)d\tau
\] Note that in a linear time-invariant (LTI) system, \(h(t,\tau)=h(t-\tau)\) and the above
equation reduces to a convolution.
If \(X(j\omega)\) is the Fourier
transform of the input signal \(x(t)\),
i.e. \[
x(t) = \frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)\cdot e^{j\omega
t}d\omega
\] Then \[\begin{align}
y(t) &=
\int_{-\infty}^{\infty}h(t,\tau)\left[\frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)\cdot
e^{j\omega\tau }d\omega \right]\cdot d\tau \\
&=\frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)\left[\int_{-\infty}^{\infty}h(t,\tau)\cdot
e^{j\omega\tau}d\tau\right]\cdot d\omega \\
&=\frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)\left[\int_{-\infty}^{\infty}h(t,\tau)\cdot
e^{-j\omega(t-\tau)}d\tau\right]\cdot e^{j\omega t}\cdot d\omega \\
&=\frac{1}{2\pi}\int_{-\infty}^{\infty}X(j\omega)\cdot
H(j\omega;t)\cdot e^{j\omega t}\cdot d\omega
\end{align}\]
where \(H(j\omega;t)\) is
time-varying transfer function, defined as the Fourier
transform of the time-varying impulse response. \[
H(j\omega;t)=\int_{-\infty}^{\infty}h(t,\tau)\cdot
e^{-j\omega(t-\tau)}d\tau
\] And it follows that: \[
Y(j\omega)=H(j\omega;t)\cdot X(j\omega)
\] And
For linear, periodically time-varying (LPTV) systems, \(h(t, \tau) = h(t+T, \tau+T)\) and \(H(j\omega; t) = H(j\omega; t+T)\) where
\(T\) is the period of the time-varying
dynamics of the system.
Since \(H(j\omega;t)\) is periodic
in \(T\), The time-varying transfer
function \(H(j\omega;t)\) can be
expressed in a Fourier series: \[
H(j\omega;t)=\sum_{m=-\infty}^{\infty}H_m(j\omega) \cdot e^{jm\omega_c
t}
\] where \(\omega_c\) is the
fundamental frequency of the periodic system. \(H_m(j\omega)\) represent the frequency
response of the system at the (m-th) harmonic output sideband
to a unit \(j\omega\) sinusoid.
The above equation link time-varying transfer function \(H(j\omega;t)\) with PAC simulation
output
The response to a periodic impulse train, that is: \[
x(t)=\sum_{m=-\infty}^{\infty}\delta(t-\tau-nkT)
\] The idea is that if the impulse response of the system settles
to zero long before the next impulse arrives, then the system response
to this impulse train would be approximately equal to the periodic
repetition of the true impulse response, i.e.: \[
y(t) \cong \sum_{m=-\infty}^{\infty}h(t;\tau+nkT)
\] and \(y(t)\) would be
approximately equal to \(h(t;\tau)\)
for \(\tau \leq t \le t+kT\)
Without loss of generality and for computation convenience, we set
\(k=1\) thereafter.
The Fourier transform \(X(j\omega)\)
of the T-periodic impulse train is: \[
X(j\omega)=\omega_c\sum_{n=-\infty}^{\infty}\delta(\omega-n\omega_c)\cdot
e^{-j\omega\tau}
\] Then the response \(y(t)\)
is: \[
y(t)=\frac{1}{T}\sum_{n=-\infty}^{\infty}H(jn\omega_c;t)\cdot
e^{jn\omega_c\cdot(t-\tau)}
\] The expression for the approximate time-varying impulse
response: \[
h(t,\tau) = \left\{ \begin{array}{cl}
\frac{1}{T}\sum_{n=-\infty}^{\infty}\sum_{m=-\infty}^{\infty}H_m(jn\omega_c)\cdot
e^{jm\omega_ct+jn\omega_c\cdot (t-\tau)} & : \ \tau \leq t \lt
\tau+T \\
0 & : \ \text{elsewhere}
\end{array} \right.
\] Finally, the ISF \(\Gamma(\tau)\) is equal to \(h(t,\tau)\) when \(t=t_0\) and \(t_0
\gt \tau\)\[
\Gamma(\tau)\cong
\frac{1}{T}\sum_{n=-\infty}^{\infty}\sum_{m=-\infty}^{\infty}H_m(jn\omega_c)\cdot
e^{jm\omega_ct_0+jn\omega_c\cdot (t_0-\tau)}
\] In practice, the summations are carried out over finite ranges
of n and m, for example, -50~50.
For each combination of n and m,
the PAC analysis needs to be performed to compute \(H_m(jn\omega_c)\), the m-th harmonic
response to the excitation at \(n\omega_c\)
The detailed procedure for characterizing the ISF of this sampler is
outlined as follows:
First, apply the proper input voltages that place the sampler in
a metastable state and perform the periodic steady-state (PSS)
analysis.
Second, perform the PAC analysis.
Third, based on the simulated PAC response, pick a time point
\(t_0\) at which the ISF is to be
computed and derive the ISF
One possible candidate for the ISF measurement point \(t_0\) is the time at which the output
voltage is amplified to the largest value. PAC response of the sampler
to a small signal DC input, that is, the time-varying transfer
function evaluated at \(\omega=0\)\[
H(0;t)=\sum_{m=-\infty}^{\infty}H_m(0) \cdot e^{jm\omega_c t}
\]
The total area under the ISF is the sampling gain, which is equal to
the time-varying gain measured at \(t_0\) to a small signal DC input (\(\omega=0\))
Because we have \(H(j\omega;t)=\int_{-\infty}^{\infty}h(t,\tau)\cdot
e^{-j\omega(t-\tau)}d\tau\), i.e. Fourier transform \[
H(0;t)=\int_{-\infty}^{\infty}h(t,\tau)d\tau =
\int_{-\infty}^{\infty}\Gamma(\tau)d\tau
\]
1 2
time-varying gain at t0 H(0;t0): 19.486305 The total area under the ISF: 19.990230
clock frequency should be low enough to assure system response
settle to zero.
Beat Frequency os PSS should be clock frequency
For PAC setup,
the Sweeptype is absolute
Input Frequency Sweep Range(Hz) should be large
enough.
Sweep Type should be Linear and
Step Size should equal PSS Beat
Frequency(Hz)
SideBands should large enough, like 50 (i.e. 50*2 +1,
positive, negative and 0)
Specialized Analyses should be None
one example: clock, i.e. beat frequency = 8G PAC: input frequency
sweep from -400G to 400G and step is 8G, which is beat frequency, here
K=1 Eq.(9) of paper
freqaxis=out: freqaxis of PAC not only
affect "Direct Plot"'s output but also simuation data i.e. the phase
shift(imaginary part).
************************************************** Periodic Steady-State Analysis `pss': fund = 1 GHz ************************************************** DC simulation time: CPU = 208 us, elapsed = 211.954 us.
============================= `pss': time = (0 s -> 1.3 ns) =============================
Opening the PSF file ../psf/pss.tran.pss ...
Output and IC/nodeset summary: save 1 (current) save 2 (voltage)
Important parameter values in tstab integration: start = 0 s outputstart = 0 s stop = 1.3 ns period = 1 ns maxperiods = 20 step = 1.3 ps maxstep = 40 ps ic = all useprevic = no ...
xlabel('t (ps)'); ylabel('V(t)'); legend('Using pss\_td', 'Using pss\_fd', 'pss\_tb one period clip', 'Using pss\_fd with time shift', 'location', 'east');
Transient Method
TODO 📅
reference
J. Kim, B. S. Leibowitz and M. Jeeradit, "Impulse sensitivity
function analysis of periodic circuits," 2008 IEEE/ACM International
Conference on Computer-Aided Design, 2008, pp. 386-391, doi:
10.1109/ICCAD.2008.4681602. [https://websrv.cecs.uci.edu/~papers/iccad08/PDFs/Papers/05C.2.pdf]
Adding a (small) clamp behind the isolation resistance can extend
the ESD design window, e.g. enabling dual diode protection for thin
oxide transistors.
ESD current through this clamp will build-up voltage across the
isolation resistance, while protecting the circuit.
The higher voltage at the IN pad will then trigger the primary
protection (red current path)
Adding a (small) clamp behind the isolation resistance can extend the
ESD design window, e.g. enabling dual diode protection
for thin oxide transistors
Extended ESD design window example. The failure voltage of a thin
gate oxide in advanced CMOS is about 4V. The primary ESD solution (red
IV curve) introduces too much voltage. Thanks to an isolation resistance
between primary and secondary local clamp device (green IV curve)
additional margin is created.
M. Simicic, G. Hellings, S. -H. Chen, N. Horiguchi and D. Linten,
"ESD diodes with Si/SiGe superlattice I/O finFET architecture in a
vertically stacked horizontal nanowire technology," 2018 48th European
Solid-State Device Research Conference (ESSDERC), Dresden, Germany,
2018
ESD tests simulate real world events (HBM, MM,
CDM)
TLP does not simulate any real-world event
ESD tests record failure level
(Qualification)
TLP tests record failure level and device behavior
(Characterization)
TLP is not a qualification test, but a characterization method, which
describes the resistance of a device for a given stimulus, aka.
Device Characterization
Unlike ESD waveforms, TLP does not mimic any real world event
TLP and Curve Tracing
Curve Tracing is DC; TLP is a short pulse
Shorter pulse - Reduced duty cycle, less heating, which means higher
voltage before failure
Controlled Impedance - Allows device behavior to be observed
Both measure resistance of device with increasing voltage
Device Characterization with
TLP
Turn-on time
Snapback voltage
Performance changes with rise time
VF-TLP and CDM differences
Question:
How well will VF-TLP results predict CDM testing performance?
Answer:
VF-TLP can be a guide to CDM failure levels, and provide a lot of
understanding of a circuit's operation during CDM stressing, but simple
correlations between VF-TLP failure current level and CDM withstand
voltage levels are difficult to establish.
I.V and Leakage Evolution
Plots
DC leakage current data combined with the I-V data provides
electrical indications of where damage begins, and how rapidly it can
evolve from soft to hard failures
Unfortunately, this protection concept is not effective anymore in
advanced FinFET technology. Our analysis showed that both core and IO
transistors are damaged at the onset of snapback in several FinFET
processes.
Influence of the pulse rise time on ggNMOS. (left side) A fast ESD
pulse can couple the bulk of the NMOS to a higher potential for a short
period, reducing the trigger voltage. (right side) A clear Vt1 reduction
is visible, while the remaining part of the IV curve remains the
same.
resistance between gate and source that designers typically use to
reduce the Vt1 trigger voltage of a ggNMOS ESD protection
The drain (D) is connected to an I/O pad and the gate (G) is
grounded.
To ensure “zero” leakage of the ESD protection structure under normal
operations.
To to protect gate of core device, tie-high and tie-low shall be used
when used as secondary ESD protection.
Positive ESD transient at I/O
pad
DB junction is reverse-biased all the way to its
breakdown.
Avalance multiplication takes place and generates electron-hole
pairs
Hole current flows into the ground via the B-region
and build up a potential, VR, across the lateral parasitic resistance
R
As VR increases, the BS junction turns on,
eventually triggers the parasitic lateral NPN transistor Q
(DBS)
Negative ESD transient at I/O
pad
The forward-biased parasitic diode, BD, will shunt
the transient
ggNMOS is commonly used in the GPIO provided by foundry, which
alleviate the ESD design burden of customer.
These GPIO is self-protective thanks to the ggNMOS.
S. Kim et al., "Technology Scaling of ESD Devices in State of the Art
FinFET Technologies," 2020 IEEE Custom Integrated Circuits Conference
(CICC), 2020, pp. 1-6, doi: 10.1109/CICC48029.2020.9075899.
Yuanzhong Zhou, D. Connerney, R. Carroll and T. Luk, "Modeling MOS
snapback for circuit-level ESD simulation using BSIM3 and VBIC models,"
Sixth international symposium on quality electronic design (isqed'05),
2005, pp. 476-481, doi: 10.1109/ISQED.2005.81.
UVM_WARNING @ 0: reporter [BDTYP] Cannot create a component of type 'my_test' because it is not registered with the factory. UVM_FATAL @ 0: reporter [INVTST] Requested test from command line +UVM_TESTNAME=my_test not found. UVM_INFO /home/EDA/Cadence/XCELIUM2109/tools/methodology/UVM/CDNS-1.2/sv/src/base/uvm_report_catcher.svh(705) @ 0: reporter [UVM/REPORT/CATCHER]
QuestaSim log:
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(277) @ 0: reporter [Questa UVM] QUESTA_UVM-1.2.3# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(278) @ 0: reporter [Questa UVM] questa_uvm::init(+struct)# UVM_WARNING @ 0: reporter [BDTYP] Cannot create a component of type 'my_test' because it is not registered with the factory.# UVM_FATAL @ 0: reporter [INVTST] Requested test from command line +UVM_TESTNAME=my_test not found.# UVM_INFO verilog_src/uvm-1.2/src/base/uvm_report_server.svh(847) @ 0: reporter [UVM/REPORT/SERVER]
It specifies the FSDB file name created by the Novas object files for
FSDB dumping. If it is not specified, then the default FSDB file name is
"novas.fsdb".
This command is valid only before executing
$fsdbDumpvars and is ignored if specified after
$fsdbDumpvars
$fsdbSuppress
The fsdbSuppressutility is used to skip dumping of few
instances, scopes, modules and signals. The
fsdbSuppressutility is a system task like other fsdb
tasks.
For $fsdbSuppress() to be effective, it needs to be
specified/called before$fsdbDumpvars
$fsdbAutoSwitchDumpfile
Automatically switch to a new dump file when the working FSDB file
reaches the specified size or the specified wall time period.
After the dumping is finished, a virtual FSDB file
(*.vf) is automatically created and list all of the generated
FSDB files with the correct sequence. Only the virtual FSDB
file, rather than all of the FSDB files, needs to be loaded to
view the simulation results
When specified in the design to switch based on file
size:
For VCS users, to include memory, MDA, packed array and structure
information in the generated FSDB file, the -debug_access
option must be included when VCS is invoked to compile the
design
depth
Specify how many sub-scope levels under the given scope you want to
dump.
Specify this argument as 1 to dump the signals
under the given scope
Specify this argument as 0 to dump all signals
under the given scope and its descendant scopes.
0: all signals in all scopes.
1: all signals in current scope.
2: all signals in the current scope and all scopes one level
below.
n: all signals in the current scope and all scopes n-1 levels
below.
initialbegin clk = 1'b0; forever #5 clk = ~clk; end
initialbegin #100; $finish(); end
initialbegin #10; $fsdbDumpfile("tb.fsdb"); //$fsdbDumpvars(0); // same with $fsdbDumpvars(0, tb) //$fsdbDumpvars(1); // same with $fsdbDumpvars(1, tb) //$fsdbDumpvars(2); // same with $fsdbDumpvars(2, tb) //$fsdbDumpvars(1, tb.u_div2); $fsdbDumpvars(0, tb.u_div2); #80$finish(); end
endmodule
module divider2 ( input clk ); reg div2;
divider2neg u_div2neg(div2);
always@(posedge clk) begin div2 = ~div2; end
initialbegin div2 = 1'b0; end
endmodule
module divider2neg ( input clk ); reg div2neg;
always@(negedge clk) begin div2neg = ~div2neg; end
initialbegin div2neg= 1'b0; end
endmodule
compile
1
vcs -full64 -kdb -debug_access+all tb.v
simulate
1
./simv
load fsdb
1
verdi -ssf tb.fsdb
$fsdbDumpon, $fsdbDumpoff
1 2 3
$fsdbDumpon(["+fsdbfile+filename"])
$fsdbDumpoff(["+fsdbfile+filename"])
These FSDB dumping commands turn dumping on and off.
fsdbDumpon/fsdbDumpoff has the highest priority and
overrides all other FSDB dumping commands.
fsdbDumpon/fsdbDumpoff is not restricted to only
fsdbDumpvars. If there is more than one FSDB file open for
dumping at one simulation run, fsdbDumpon/fsdbDumpoff may
only affect a specific FSDB file by specifying the specific file
name.
+fsdbfile+filename: Specify the FSDB file name. If not
specified, the default FSDB file name is "novas.fsdb"
$fsdbDumpFinish
This command closes all FSDB files in the current simulation and
stops dumping of signals. Although all FSDB files are closed
automatically at the end of simulation, this dumping command can be
invoked to explicitly close the FSDB files during the
simulation
VCD
$dumpfile
The declaration onf $dumpfile must come before the
$dumpvars or any other system tasks that specifies
dump.
1
$dumpfile("test.vcd");
argument is necessary, there is no default value
$dumpvars
The $dumpvars is used to specify which variables are to
be dumped ( in the file mentioned by $dumpfile). The
simplest way to use it is without any argument.
1
$dumpvars(<levels> <, <module_or_variable>>* );
$dumplimit
It is possible that you inadvertantly generate huge file in Gigabytes
( for examples while dumping a Gigahertz clock for one second). To
reduce such occurrences, we may use $dumplimit. It usage
is
1
$dumplimit(<filesize>);
$dumpoff and $dumpon
During the simulation if you are bothered about about only during a
certain interval then you can use $dumpoff and
$dumpon. The following example shows its usage. It will
dump the changes for first 100 units of time and then between 10200 and
10400 units of time.
plusargs are command-line switches supported by the
simulator. As per SystemVerilog LRM arguments beginning with the
+ character will be available using the
$test$plusargs and $value$plusargsPLI
APIs.
1 2 3
$test$plusargs (user_string)
$value$plusargs (user_string, variable)
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// tb.v module tb; int a; initialbegin if($test$plusargs("RUNSIM")) begin $display("There is RUNSIM plusargs"); endelsebegin $display("There is NO $test$plusargs"); end if($value$plusargs("SEED=%d",a)) begin $display("SEED=%d",a); endelsebegin $display("There is NO $value$plusargs"); end end endmodule
compile
1 2
$ vlib work $ vlog -sv tb.v
simulate (QuestaSim)
without plusargs
1
$ vsim work.tb -c -do "run; exit"
1 2 3 4 5 6 7 8 9
# // # Loading sv_std.std # Loading work.tb(fast) # run # There is NO $test$plusargs # There is NO $value$plusargs # exit # End time: 13:04:23 on Jun 04,2022, Elapsed time: 0:00:01 # Errors: 0, Warnings: 0
regsigned [8:0] t; // extend 1b begin if(plus) begin t = {a[7], a} + {1'b0, b}; satop_sus8b = (t[8:7]==2'b01) ? {1'b0, {7{1'b1}}} // up saturate for signed : t[7:0]; endelsebegin t = {a[7], a} - {1'b0, b}; satop_sus8b = (t[8:7]==2'b10) ? {1'b1, {7{1'b0}}} // dn saturate for signed : t[7:0]; end end endfunction
Isolation cells are additional cells inserted by the synthesis tools
for isolating the buses/wires crossing from power-gated
domain of a circuit to its always-on domain
(AON).
To prevent corruption of always-on domain, we clamp the nets crossing
the power domains to a value depending upon the design.
A simple circuit having a switchable (or gated) power
domain
The circuit shown in Figure 1, after isolation cells are
inserted
Jitter separation lets you learn if the components of jitter are
random or deterministic. That is, if they are caused by crosstalk,
channel loss, or some other phenomenon. The identification of jitter and
noise sources is critical when debugging failure sources in the
transmission of high-speed serial signals
Tail Fit Method
Spectral method
RJ Extraction Methods
Rationale
Spectral
Speed/Consistency to Past Measurements; Accuracy in low
Crosstalk or Aperiodic Bounded Uncorrelated Jitter (ABUJ)
conditions
Tail Fit
General Purpose; Accuracy in high Crosstalk or ABUJ
conditions
Jitter Components
dual-Dirac model
Spectral method
power spectral density (PSD) represents jitter spectrum and peaks in
the spectrum can be interpreted as PJ or DDJ, while the average noise
floor is the power of RJ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
S1 = sum(win); S2 = sum(win.^2); N = length(win); spec_nospur2 = (spec_nospur*S1).^2/N/S2; % To obtain linear spectrum for rj rj_utj = sqrt(sum(spec_nospur2))*1e12;
spec = 1*ones(length(spec_nospur), 1)*1e-21; spec(index) = specx(index); % insert fft nyquist frequency component between positive frequency and % negative frequency component % DC;posFreq;nyqFreq;negFreq spec_ifft = [spec;specnyq;conj(spec(end:-1:2))]'; sfactor = sum(win)/sqrt(2); spec_ifft = spec_ifft*sfactor; sig_rec = real(ifft(spec_ifft)); sig_rec = sig_rec(:); sig_rec_utj = sig_rec./win(1:end);
Tail Fit Method
Tail fitting algorithm based on the Gaussian tail
model by using probability distribution of collected jitter
value
1 2 3 4 5 6 7 8 9 10 11 12 13
bin_sig = bin_sig*1e12;
x = qfuncinv(cdf_sig);
% coef(1)*bin_sig + coef(2) = x % which x is norm(0, 1) % bin_sig = (x - coef(2))/coef(1) % Then bin is norm(-coef(2)/coef(1), 1/coef(1)) coef = polyfit(bin_sig, x, 1); sigma = 1/coef(1); mu = -coef(2)*sigma;
fprintf('sigma=%.3fps, mu=%.3fps\n', sigma, mu);
Least Squares (LS) method
It is known that TIE jitter is a linear equation, shown in below
formula \[
x[n] = d_n \times \left[ \Delta t_{pj}[n]+\Delta t_{DCD}[n] +\Delta
t_{ISI}[n]+\Delta t_{RJ}[n]\right]
\] LS can be used to estimate the PJ, DCD, RJ , and ISI
parameters \([a,b,J_{DCD},J_0,
J_1...J_{(2^k-1)}]\)
Jitter modeling
Periodic Jitter (PJ)
PJ is a repeating jitter \[
\Delta t_{PJ}[n]=A\sin(2\pi f_0\cdot nT_s + \theta)=a \sin(2\pi f_0
\cdot nT_s)+b\cos(2\pi f_0 \cdot nT_s)
\] where \(f_0\) represents the
fundamental frequency of PJ; \(A\) is
the amplitude of PJ; \(T_s\) is the
data stream period, and \(\theta\) is
the initial phase of PJ
In the spectrum, the frequency of maximum amount of the jitter is PJ
frequency \(f_0\).
Duty Cycle Distortion (DCD)
DCD is viewed as a series of adjacent positive and negative
impulses\[
\Delta t_{DCD}[n] = J_{DCD}\times (-1)^n =
[-J_{DCD},J_{DCD},-J_{DCD},J_{DCD},...]
\] Where \(J_{DCD}\) is the DCD
amplitude.
Random Jitter (RJ)
RJ is created by unbounded jitter sources, such as Gaussian white
noise. The statistical PDF for RJ is enerally treated as a Gaussian
distribution \[
f_{RJ}(\Delta t) = \frac{1}{\sqrt{2\pi\sigma}}\exp(-\frac{(\Delta
t)^2}{2\sigma^2})
\]
Remarks
Periodic Jitter
Generator and Insertion
Analysis and Estimation of Jitter Sub-Components: Classification
and Segregation of Jitter Components
Reference
Mike Li. 2007. Jitter, noise, and signal integrity at high-speed
(First. ed.). Prentice Hall Press, USA.
Y. Duan and D. Chen, "Accurate jitter decomposition in high-speed
links," 2017 IEEE 35th VLSI Test Symposium (VTS), 2017, pp. 1-6, doi:
10.1109/VTS.2017.7928918.
Y. Duan and D. Chen, "Fast and Accurate Decomposition of
Deterministic Jitter Components in High-Speed Links," in IEEE
Transactions on Electromagnetic Compatibility, vol. 61, no. 1, pp.
217-225, Feb. 2019, doi: 10.1109/TEMC.2018.2797122.
"Jitter Analysis: The Dual-Dirac Model, RJ/DJ, and Q-Scale",
Whitepaper: Keysight Technologies, U.S.A., Dec. 2017
Sharma, Vijender Kumar and Sujay Deb. "Analysis and Estimation of
Jitter Sub-Components." (2014).
Qingqi Dou and J. A. Abraham, "Jitter decomposition in ring
oscillators," Asia and South Pacific Conference on Design Automation,
2006
E. Balestrieri, L. De Vito, F. Lamonaca, F. Picariello, S. Rapuano
and I. Tudosa, "The jitter measurement ways: The jitter decomposition,"
in IEEE Instrumentation & Measurement Magazine, vol. 23, no. 7, pp.
3-12, Oct. 2020, doi: 10.1109/MIM.2020.9234759.
McClure, Mark Scott. "Digital jitter measurement and separation." PhD
diss., 2005.
Ren, Nan, Zaiming Fu, Shengcu Lei, Hanglin Liu, and Shulin Tian.
"Jitter generation model based on timing modulation and cross point
calibration for jitter decomposition." Metrology and Measurement Systems
28, no. 1 (2021).
M. P. Li, J. Wilstrup, R. Jessen and D. Petrich, "A new method for
jitter decomposition through its distribution tail fitting,"
International Test Conference 1999. Proceedings (IEEE Cat.
No.99CH37034), 1999, pp. 788-794, doi: 10.1109/TEST.1999.805809.
K. Bidaj, J. -B. Begueret and J. Deroo, "RJ/DJ jitter decomposition
technique for high speed links," 2016 IEEE International Conference
on Electronics, Circuits and Systems (ICECS) [https://sci-hub.se/10.1109/ICECS.2016.7841269]