Skip to content

Commit 964a9b1

Browse files
committed
Updates to multi scope and graph editor pages for v0.1 release
1 parent 483b2f4 commit 964a9b1

File tree

5 files changed

+21
-11
lines changed

5 files changed

+21
-11
lines changed

grapheditor.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ Right click on a block to configure it.
2222

2323
Need a decode for an obscure or proprietary protocol that's not in the library? Build it yourself!
2424

25-
A new filter block is a single C++ class which can chain before and after existing blocks. No need to start from raw analog samples - you can take SPI bus transactions, PCIe TLPs, 8B/10B symbols, Ethernet frames, or any other supported data type as input. If your new decode outputs a standard data type, it can be used as input to existing library blocks as well.
25+
A new filter block is a single C++ class which can chain before and after existing blocks. No need to start from raw analog samples - you can take SPI bus transactions, PCIe TLPs, 8B/10B symbols, Ethernet frames, or any other supported data type as input. If your new decode outputs a pre-existing data type, it can be used as input to existing library blocks as well.
2626

27-
Filter blocks can be loaded from binary plugins, allowing easy distribution of filters without needing to build a custom version of libscopehal from source every time you install a new decode.
27+
Filter blocks can be loaded from binary plugins, allowing easy distribution of filters without needing to build a custom version of libscopehal from source every time you install a new decode (although until the v1.0 release we do not have ABI stability guarantees, so plugins must be built for a specific release of ngscopeclient and may not be upward compatible)
2828

29-
The QSGMII protocol decode shown here took less than a day of engineering time to develop due to this ability to leverage existing decodes, and the [source code](https://github.com/ngscopeclient/scopehal/blob/master/scopeprotocols/QSGMIIDecoder.cpp) was under 175 lines including comments. It accepts a single 5 Gbps 8B/10B stream and outputs four demuxed 1.25 Gbps 8B/10B streams which can be used as input to the existing SGMII decode.
29+
The QSGMII protocol decode shown here took less than a day of engineering time to develop due to this ability to leverage existing decodes such as 8B/10B and SGMII, and the [source code](https://github.com/ngscopeclient/scopehal/blob/master/scopeprotocols/QSGMIIDecoder.cpp) was under 175 lines including comments. It accepts a single 5 Gbps 8B/10B stream and outputs four demuxed 1.25 Gbps 8B/10B streams which can be used as input to the existing SGMII decode.
3030

3131
<img src="images/filtergraph1.png" alt="Filter graph example screenshot"/>
3232

images/multiscope-curves.png

283 KB
Loading

index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ layout: default
77
* Drag and drop to create complex, GPU-accelerated analysis pipelines in the [filter graph editor](/grapheditor)
88
* [Open source](https://www.github.com/ngscopeclient/scopehal-apps) toolchain supporting Windows, Linux, and MacOS
99
* Easily extensible to support any T&M instrument with a SCPI interface or native API
10-
* Combine multiple instruments into a unified test platform
10+
* Combine [multiple instruments](/multiscope) into a unified test platform
1111
* Automate production test with the [C++ API](/devdocs)
1212

1313
<figure>

libscopehal.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

multiscope.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22
layout: default
33
---
44

5-
# Multi-scope support
5+
# Multi-instrument support
66

7-
Ngscopeclient allows a single session to connect to arbitrarily many oscilloscopes simultaneously. These instruments can be fully independent of each other (triggering with no relationship to the others) or grouped into "trigger groups", via a cross-trigger sync cable, allowing several instruments to trigger in lock-step.
7+
Ngscopeclient allows a single session to connect to arbitrarily many instruments simultaneously. These instruments can be fully independent of each other (triggering with no relationship to the others) or grouped into "trigger groups", via a cross-trigger sync cable, allowing several instruments to trigger in lock-step.
88

99
<figure>
1010
<img src="images/multiscope1.png" alt="Multi-scope example screenshot"/>
1111
<figcaption style='font-style:italic'>A multi-scope setup containing one trigger group with two instruments</figcaption>
1212
</figure>
1313

14+
## Trigger groups
15+
1416
Any number of oscilloscopes, of any supported make or model, may be combined in the same trigger group. Sample rates need not be the same, and the horizontal positions of each instrument within a group may be adjusted independently. This allows complex analytical setups for study of behavior across varying time scales:
1517

1618
* Use a high speed oscilloscope to identify packets or signal integrity issues in a gigabit serial signal, then trigger a low-speed instrument recording tens or hundreds of ms of activity on status GPIOs, MDIO or I2C buses, etc. before and after the high speed events
@@ -25,3 +27,16 @@ Any number of oscilloscopes, of any supported make or model, may be combined in
2527
An automated deskew wizard allows the cross-trigger path delay within a trigger group to be measured and calibrated out, so that waveforms from all oscilloscopes in the group will line up correctly on the timeline. Simply connect a PRBS to one channel of each instrument and click the "deskew" button.
2628

2729
Protocol decodes, math functions, and filter blocks can work across inputs from multiple instruments. Most math functions require their inputs to be sampled at the same rate, so you may need to use a resampling block if the instruments are not configured identically. Most protocol decode blocks can work with inputs of different sample rates without issue as long as the deskew calibration has been performed.
30+
31+
## Other instruments
32+
33+
In addition to oscilloscopes, ngscopeclient can interface to power supplies, signal generators, active loads, and many other types of instrumentation. Integrating all of these instruments in a single user interface allows complex experiment control from one place, as well as performing data analysis across instrument.
34+
35+
For example, you can measure the voltage and current supplied to a DC-DC converter under test with a power supply, while simultaneously measuring voltage and current sunk by an active load, and output ripple with an oscilloscope.
36+
37+
You can even perform filter graph operations on data from different instruments, for example dividing the power sunk at the load by the power provided by the supply to calcualate efficiency of the converter, or graphing output ripple against load current.
38+
39+
<figure>
40+
<img src="images/multiscope-curves.png" alt="Graphs showing efficiency, ripple, and other parameters of a DC-DC converter"/>
41+
<figcaption style='font-style:italic'>Example of a complex characterization setup for a DC-DC converter</figcaption>
42+
</figure>

0 commit comments

Comments
 (0)