Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ngscopeclient/scopehal-docs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6ea05aefee7d
Choose a base ref
...
head repository: ngscopeclient/scopehal-docs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: a87078f10870
Choose a head ref
  • 1 commit
  • 3 files changed
  • 1 contributor

Commits on Sep 19, 2020

  1. Copy the full SHA
    a87078f View commit details
Showing with 85 additions and 17 deletions.
  1. +64 −4 section-decodes.tex
  2. +6 −7 section-drivers.tex
  3. +15 −6 section-gettingstarted.tex
68 changes: 64 additions & 4 deletions section-decodes.tex
Original file line number Diff line number Diff line change
@@ -203,6 +203,10 @@ \subsection{Output Signal}

This filter outputs one ADL5205 sample object for each write transaction, formatted as ``write: FA=2 dB, gain=8 dB".

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Autocorrelation}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Base}
@@ -237,10 +241,6 @@ \section{CAN}
\pagebreak
\section{Channel Emulation}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Clock Jitter (TIE)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Clock Recovery (PLL)}
@@ -327,6 +327,19 @@ \subsection{Output Signal}
This filter outputs an analog waveform with one sample for each sample in the input, phase shifted by the requested
offset.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Downconvert}

Performs digital downconversion by mixing a directly sampled RF signal with a two-phase local oscillator, then outputs
the downconverted signal. No filtering or decimation is performed.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Downsample}

Low-pass filters a signal to prevent aliasing, then decimates by an integer factor.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{DRAM Trcd}
@@ -466,6 +479,12 @@ \section{IPv4}
\pagebreak
\section{JTAG}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Magnitude}

Calculates the magnitude of a complex valued signal

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{MDIO}
@@ -498,6 +517,18 @@ \section{Peak-to-Peak}
\pagebreak
\section{Period}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{QSPI}

Quad SPI as used in serial Flash. Note that this filter \emph{only} decodes quad mode streams, not x1 SPI.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Quadrature}

Quadrature pulses from a rotary encoder

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Rise}
@@ -506,6 +537,14 @@ \section{Rise}
\pagebreak
\section{SPI}

Serial Peripheral Interface.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{SPI Flash}

Flash memory attached to a SPI or quad SPI bus. Typically these chips have part numbers that start with ``25".

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Subtract}
@@ -564,6 +603,13 @@ \subsection{Output Signal}
This filter outputs an digital waveform with one sample for each sample in the input, which is true if the
corresponding input sample is above the threshold and false if less than or equal.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{TIE}

Calculates the time interval error of a data or clock signal with respect to an ideal ``golden" clock (typically
obtained from a CDR PLL).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Top}
@@ -618,6 +664,20 @@ \section{Undershoot}
\pagebreak
\section{Upsample}

Upsamples a waveform using sin(x)/x interpolation.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Waterfall}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Windowed Autocorrelation}

Calculates the cross-correlation between a fixed size block of the input signal and another block of the same size.

This will produce maximal response for a signal which has periodicity with the specified period and block size.

For example, period 4 and block size 2 will match aa**aa**.

This can be used to identify OFDM symbols.
13 changes: 6 additions & 7 deletions section-drivers.tex
Original file line number Diff line number Diff line change
@@ -169,9 +169,9 @@ \section{Teledyne LeCroy / LeCroy}
\thickhline
\textbf{Device Family} & \textbf{Driver} & \textbf{Transport} & \textbf{Notes} \\
\thickhline
DDA & lecroy & vicp & \\
DDA & lecroy & vicp & Tested on DDA5000A series \\
\thickhline
HDO & lecroy & vicp & \\
HDO & lecroy & vicp & Tested on HDO9000 series \\
\thickhline
LabMaster & lecroy & vicp & Untested, but should work\\
\thickhline
@@ -187,9 +187,9 @@ \section{Teledyne LeCroy / LeCroy}
\thickhline
WaveMaster & lecroy & vicp & Untested, but should work \\
\thickhline
WaveRunner & lecroy & vicp & \\
WaveRunner & lecroy & vicp & Tested on WaveRunner Xi and 8000 series\\
\thickhline
WaveSurfer & lecroy & vicp & \\
WaveSurfer & lecroy & vicp & Tested on WaveSurfer 3000 series \\
\thickhline
\end{tabularx}

@@ -202,9 +202,8 @@ \subsection{lecroy}
./glscopeclient --debug myscope:lecroy:vicp:192.168.1.1:1861
\end{lstlisting}

This driver has been tested on a wide range of Teledyne LeCroy / LeCroy hardware including DDA 5005, DDA 5005A,
WaveSurfer 3034, WaveRunner 8104, and HDO9204. It should be compatible with any Teledyne LeCroy or LeCroy oscilloscope
running Windows XP or newer and the MAUI or XStream software.
This driver has been tested on a wide range of Teledyne LeCroy / LeCroy hardware. It should be compatible with any
Teledyne LeCroy or LeCroy oscilloscope running Windows XP or newer and the MAUI or XStream software.

\section{Tektronix}
TODO (scopehal:73, scopehal:13)
21 changes: 15 additions & 6 deletions section-gettingstarted.tex
Original file line number Diff line number Diff line change
@@ -18,18 +18,26 @@ \section{Documentation Conventions}

\section{Host System Requirements}

All current development is performed on Linux operating systems (primarily Debian and Arch), although experimental (and incomplete) Windows support is provided.
glscopeclient uses gtkmm as the UI toolkit. Current development mostly uses 3.24 but any recent 3.x version should work.
All current development is performed on Linux operating systems (primarily Debian and Arch), although experimental (and
incomplete) Windows support is provided. glscopeclient uses gtkmm as the UI toolkit. Current development mostly uses
3.24 but any recent 3.x version should work.

Any 64-bit ARM or Intel processor should be able to run glscopeclient. TODO: suggested minimum performance depending on
waveform depth etc?

A mouse with scroll wheel, or touchpad with scroll gesture support, is mandatory to enable full use of the UI. We may
explore alternative input methods for some UI elements in the future.

Waveform rendering is performed in compute shaders, so OpenGL 4.3 or newer is required. The corresponding minimum
hardware requirement is an AMD Radeon HD 5000, NVIDIA GeForce 400 series discrete GPU, or Intel Haswell or newer
integrated GPU plus suitably up-to-date drivers. TODO: what AMD integrated/ARM GPUs started supporting GL 4.3?
Waveform rendering is performed in compute shaders, so OpenGL 4.3 or newer is required as well as the
GL\_ARB\_gpu\_shader\_int64 extension. The corresponding minimum hardware requirement is an AMD Radeon HD 5000, NVIDIA
GeForce 400 series discrete GPU, or Intel Broadwell or newer integrated GPU plus suitably up-to-date drivers.
TODO: what AMD integrated/ARM GPUs started supporting GL 4.3?

To check for necessary graphics card support on Linux:
\begin{lstlisting}[language=sh]
glxinfo | grep GL_ARB_gpu_shader_int64
glxinfo | grep "OpenGL version string"
\end{lstlisting}

The minimum RAM requirement to actually launch glscopeclient is relatively small (TODO: do some testing) however
history mode and deep captures can easily consume many GB of RAM. We suggest 8GB as a reasonable minimum, with 32 or
@@ -43,7 +51,8 @@ \section{Instrument Support}

\section{Compilation}

glscopeclient can be compiled on both Linux and Windows, but the specific steps that have to be taken differ quite a lot between these the two.
glscopeclient can be compiled on both Linux and Windows, but the specific steps that have to be taken differ quite a
lot between these the two.

\subsection{Linux}
\begin{enumerate}