Skip to content

Commit f9ecdf5

Browse files
committed
fixed skews
1 parent e2556c6 commit f9ecdf5

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

matlab/a1_3.m

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
for inc = 1:10
1+
for inc = 1:5
22
%filename = char("conor_test/settings1_" + num2str(inc) + ".bin");
33
%filename = char("scope_41.bin");
44

5-
path3 = "~/gdrive/measurements/monday2/adpll_1b" + num2str(inc) + ".bin";
5+
%path3 = "~/gdrive/measurements/monday2/adpll_1b" + num2str(inc) + ".bin";
6+
path3 = "~/gdrive/measurements/monday/design2b_" + num2str(inc) + ".bin";
67
fileID = fopen(path3);
78
A = fread(fileID, 'double');
89
fclose(fileID);
@@ -92,19 +93,19 @@
9293
end
9394

9495
if length(init_cross2) == length(init_cross1)
95-
TIE(2,inc) = max((init_cross2(1:len)-init_cross1));
96+
TIE(2,inc) = mean((init_cross2(1:len)-init_cross1));
9697
elseif length(init_cross2) > length(init_cross1)
97-
TIE(2,inc) = max((init_cross2(2:end)-init_cross1));
98+
TIE(2,inc) = mean((init_cross2(2:end)-init_cross1));
9899
end
99100
if length(init_cross3) == length(init_cross1)
100-
TIE(3,inc) = max((init_cross3(1:len)-init_cross1));
101+
TIE(3,inc) = mean((init_cross3(1:len)-init_cross1));
101102
elseif length(init_cross3) > length(init_cross1)
102-
TIE(3,inc) = max((init_cross3(2:end)-init_cross1));
103+
TIE(3,inc) = mean((init_cross3(2:end)-init_cross1));
103104
end
104105
if length(init_cross4) == length(init_cross1)
105-
TIE(4,inc) = max((init_cross4(1:len)-init_cross1));
106+
TIE(4,inc) = mean((init_cross4(1:len)-init_cross1));
106107
elseif length(init_cross4) > length(init_cross1)
107-
TIE(4,inc) = max((init_cross4(2:end)-init_cross1));
108+
TIE(4,inc) = mean((init_cross4(2:end)-init_cross1));
108109
end
109110

110111

thesis/NetworkImplemenation.tex

+13-4
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ \section{Measurement Setup}\label{section:measurement_setup}
383383
%TODO diagram or picture of some sort
384384

385385
\section{\acs{ADPLL} Characterisation}
386-
Before combining the \ac{ADPLL}s in a network it was important to analyse the designs locked to an ideal reference, in order to establish a baseline performance. These tests were carried out with the \ac{ADPLL}s locked to an external reference at $5~\si{\mega\hertz}$. As \ac{ADPLL} 2 \& 3 have significant variance in the step sizes, for these oscillators range and step based measurements were obtained by measuring a number of oscillators, and typical values will be shown. Jitter was calculated based on the performance on nine individual \ac{ADPLL}s all locked simultaneously to the $5~\si{\mega\hertz}$ external reference. While jitter and skew are the key indicators of \ac{ADPLL} network performance, when it comes to the individual \ac{ADPLL}s themselves it is important to check lock and capture ranges also, to check that the implemented designs match with their intended values.
386+
Before combining the \ac{ADPLL}s in a network it was important to analyse the designs locked to an ideal reference, in order to establish a baseline performance. These tests were carried out with the \ac{ADPLL}s locked to an external reference at $5~\si{\mega\hertz}$. As \ac{ADPLL} 2 \& 3 have significant variance in the step sizes, for these oscillators range and step based measurements were obtained by measuring a number of oscillators, and typical values will be shown. Jitter was calculated based on the performance on nine individual \ac{ADPLL}s all locked simultaneously to the $5~\si{\mega\hertz}$ external reference. While jitter and skew are the key indicators of \ac{ADPLL} network performance, when it comes to the individual \ac{ADPLL}s themselves it is important to check lock and capture ranges also, to check that the implemented designs match with their intended values. The lock and capture ranges are given based on typical values, whereas jitter and skew are the median values from the \ac{ADPLL}s tested.
387387

388388
The \label{table:characterisation} contains the results of this analysis. The first thing to note is that to the $\si{\kilo\hertz}$ the lock and capture ranges of the \ac{ADPLL}s implementing \ac{RO}s are identical. As the lock range would be expected to be slightly wider than the capture range in a design limited by the loop filter, it can be deduced that the limiting factor in the tuning range of the \ac{ADPLL} is the \ac{DCO} frequency range. This is confirmed by a cursory comparison against the values in Table \ref{table:adpll2}, where the \ac{RO} range is given as $4.571-5.518~\si{\mega\hertz}$. This range of $0.947~si{\mega\hertz}$ is almost identical to those of the \ac{ADPLL} $1$ \& $3$ which confirms the \ac{RO} is the limiting factor. In \ac{ADPLL} 1 however, the lock and capture ranges show some difference, with the lock range being slightly wider. The lower end of both ranges is identical, as rather than the instant loss of lock seen at all other thresholds, the low end of both lock and capture ranges saw a more gradual degradation, and $1.08~\si{\mega\hertz}$ is the point that the lock was observed to be lost.
389389

@@ -394,8 +394,8 @@ \section{\acs{ADPLL} Characterisation}
394394
Capture Range & $1.08-8.61~\si{\mega\hertz}$ & $4.869-5.877~\si{\mega\hertz}$ & $4.377-5.363~\si{\mega\hertz}$ \\
395395
Lock Range & $1.08-8.635~\si{\mega\hertz}$ & As above & As above \\
396396
Jitter & $1.8385~\si{\nano\second}$ & $0.5623~\si{\nano\second}$ & $0.7410~\si{\nano\second}$ \\
397-
Skew (Mean \acs{TIE} to Ref.) & $7.7939~\si{\nano\second}$ & $6.2101~\si{\nano\second}$ & $5.8145~\si{\nano\second}$ \\
398-
Maximum \acs{TIE} & $8.7847~\si{\nano\second}$ & $6.4770~\si{\nano\second}$ & $6.4578~\si{\nano\second}$ \\
397+
Skew (Mean \acs{TIE} to Ref.) & $1.7439~\si{\nano\second}$ & $0.3741~\si{\nano\second}$ & $0.6381~\si{\nano\second}$ \\
398+
Maximum \acs{TIE} & $7.2840~\si{\nano\second}$ & $6.4770~\si{\nano\second}$ & $6.4578~\si{\nano\second}$ \\
399399
$k_p$ & $\frac{1}{32}$ & $\frac{1}{16}$ & $\frac{1}{16}$ \\
400400
$k_i$ & $\frac{1}{256}$ & $\frac{1}{64}$ & $\frac{1}{64}$
401401
\end{tabular}
@@ -404,7 +404,9 @@ \section{\acs{ADPLL} Characterisation}
404404
\label{table:characterisation}
405405
\end{table}
406406

407-
Looking then at the jitter and skew data, unsurprisingly the entirely \ac{FPGA} clocked \ac{ADPLL} with its larger period step is has the worst jitter, by a significant amount. The maximum \ac{TIE} is also correspondingly worse, which unless significant skew was present in the other \ac{ADPLL} designs is also to be expected.
407+
Looking then at the jitter and skew data, unsurprisingly the entirely \ac{FPGA} clocked \ac{ADPLL} with its larger period step is has the worst jitter, by a significant amount. The maximum \ac{TIE} is also correspondingly worse, which unless significant skew was present in the other \ac{ADPLL} designs is also to be expected. \ac{ADPLL} 2 \& 3 experience low jitter, at less than $1\%$ of the period. Somewhat surprisingly there is no apparent benefit in terms of jitter reduction due to the better delay resolution of the inverter based \ac{TDL}. This may be down to either the increase in jitter from a second source of variation, or a less favourable fractional-N synthesis due to the distribution of periods.
408+
409+
Despite Vivado being forced to use the same layout for both \ac{ADPLL} 2 \& 3 through the use of fixed cells, the minimum and maximum frequencies are still significantly different, although the size of the range is almost identical. This highlights the difficulty of ensuring identical conditions between measurements which is the most significant downside of inverter based modules.
408410

409411
% //9 for older tests @1111 = 4@0000, but >> 5 cos of extra size
410412
% <4 is a no can do //7 for older tests @1111 = 4@0001
@@ -460,9 +462,16 @@ \subsection{Distribution of Period Steps}
460462
This effects the suitability of the FPGA clocked \ac{DCO} for the improvement of simulation models, or the examination of how a novel block may impact the behaviour of the network. If this analysis was carried out for the period steps, similar behaviour would be observed.
461463

462464
%TODO removal of delay
465+
%TODO early
463466
%TODO osc size
464467

465468
\section{\acs{ADPLL} Network Implementation}
469+
As the \ac{ADPLL}s were designed with network usage in mind, the \ac{HDL} aspect of their integration into a network is straightforward. For \ac{ADPLL} 1, the oscillators need only be wired together, but for Design 2 \& 3 which are reliant on inverters require some care to ensure their lock ranges overlap sufficiently. This is a time consuming task, as a number of iterations may be required, even when locking down the cells of lined up \ac{RO}s, as the nets forming the connections may change. It is recommended only to carry out alignment when all other aspects of the design are unlikely to change and to save the bitstream generated. The projected time requirement in aligning \ac{RO}s meant that the creation of a 4x4 network was abandoned. \ac{FPGA} clocked \ac{ADPLL}s are more suited to larger networks as their centre point can be determined with ease.
470+
471+
The network operates using an external reference which is input over a \ac{PMOD} header that is shared with a number of output signals, however it could be configured to use an internal reference generated by either the \ac{FPGA} clock management utility or a \ac{DCO} of the designer's choice.
472+
473+
In order to increase the flexibility of the network, the switches on the \acs{Nexys} are used to change both the proportional and integral gains and the configuration of the network at runtime. The reconfigurability aspect of the error combiner allows for the network to operate in either uni- or bi-directional mode, or as a number of individual \ac{PLL}s all connected to the external reference. This is particularly advantageous for the inverter based designs, as multiple combinations can be measured without reimplementing, and thus changing the layout of either oscillator or \acl{PD}.
474+
466475
%TODO why use each PLL
467476
\subsection{2x2 Network}
468477
\subsection{3x3 Network}

thesis/Thesis.pdf

2.44 KB
Binary file not shown.

0 commit comments

Comments
 (0)