You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: grapheditor.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,11 +22,11 @@ Right click on a block to configure it.
22
22
23
23
Need a decode for an obscure or proprietary protocol that's not in the library? Build it yourself!
24
24
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.
26
26
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)
28
28
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.
30
30
31
31
<imgsrc="images/filtergraph1.png"alt="Filter graph example screenshot"/>
Copy file name to clipboardExpand all lines: multiscope.md
+17-2Lines changed: 17 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,17 @@
2
2
layout: default
3
3
---
4
4
5
-
# Multi-scope support
5
+
# Multi-instrument support
6
6
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.
8
8
9
9
<figure>
10
10
<imgsrc="images/multiscope1.png"alt="Multi-scope example screenshot"/>
11
11
<figcaptionstyle='font-style:italic'>A multi-scope setup containing one trigger group with two instruments</figcaption>
12
12
</figure>
13
13
14
+
## Trigger groups
15
+
14
16
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:
15
17
16
18
* 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
25
27
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.
26
28
27
29
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
+
<imgsrc="images/multiscope-curves.png"alt="Graphs showing efficiency, ripple, and other parameters of a DC-DC converter"/>
41
+
<figcaptionstyle='font-style:italic'>Example of a complex characterization setup for a DC-DC converter</figcaption>
0 commit comments