IP Library Granted Patent US 8,862,795
Granted Patent B2
US 8,862,795 · App. 14/026,007 · Granted Oct 14, 2014

Waveform accumulation and storage in alternating memory banks

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,862,795
App. No.
14/026,007
Granted
Oct 14, 2014
Kind
B2
Abstract

System and method for hardware implemented accumulation of waveform data. A digitizer is provided that includes first and second memory banks. A first waveform is stored in chunks alternating between successive buffers in the first and second memory banks, and concurrently, the first and second chunks may be transferred to first and second FIFOs, respectively, which may be accumulated with respective first and second chunks of a second waveform into the first and second memory banks. This process may be repeated for respective successive pairs of the first and second waveforms, where the first and second memory banks and FIFOs are used in an alternating manner, and further, to accumulate additional waveforms, where previously stored (and accumulated) waveform data are accumulated chunkwise with successive additional waveform data, and where at least some of the accumulation is performed concurrently with waveform data transfers to and from the memory banks and FIFOs.

Claims (77)

1. A system for accumulating waveform data, comprising:

a digitizer, comprising:

a circuit;

a first memory bank, coupled to the circuit; and

a second memory bank, coupled to the circuit;

wherein the circuit is configured to:

a) store a first chunk of a first waveform of a first set of waveforms in a first memory buffer of the first memory bank;

b) store a second chunk of the first waveform in a first memory buffer of the second memory bank;

c) repeat a)-b) respectively for successive pairs of further chunks of the first waveform, thereby storing the first waveform in chunks alternating between successive buffers in the first and second memory banks;

d) concurrently with c), transfer the first chunk stored in first memory buffer of the first memory bank to a first FIFO;

e) concurrently with c), transfer the second chunk stored in the first memory buffer of the second memory bank to a second FIFO;

f) accumulate a first chunk of a second waveform of the first set of waveforms with the first chunk of the first waveform stored in the first FIFO and store in the first memory buffer of the first memory bank;

g) accumulate a second chunk of the second waveform with the second chunk of the first waveform stored in the second FIFO and store in the first memory buffer of the second memory bank;

h) concurrently with g), transfer a first chunk of a first successive pair of the further chunks of the first waveform from a second buffer of the first memory bank into the first FIFO;

i) accumulate a first chunk of a first successive pair of further chunks of the second waveform with the first chunk of the first successive pair of the further chunks of the first waveform stored in the first FIFO and store in the second memory buffer of the first memory bank;

j) concurrently with i), transfer a second chunk of the first successive pair of further chunks of the first waveform from the second buffer of the second memory bank into the second FIFO;

k) repeat g)-j) for further successive pairs of chunks of the second waveform using respective successive buffers of the first and second memory banks, thereby generating an accumulated record of the first and second waveforms;

l) repeat f)-k) for successive further waveforms of the first set of waveforms, thereby generating an accumulated record of all waveforms of the first set of waveforms.

2. The system of claim 1 , wherein, after l), the first FIFO contains a first chunk of the accumulated record of all waveforms of the first set of waveforms, the second FIFO is empty, and remaining chunks of the accumulated record of all waveforms of the first set of waveforms are contained in the first and second memory banks in interleaved fashion, and wherein the circuit is further configured to:

m) store a first chunk of a first waveform of a second set of waveforms in the first memory buffer of the first memory bank;

n) concurrently with m), transfer the second chunk of the accumulated record of all waveforms of the first set of waveforms stored in the first buffer of the second memory bank to the second FIFO;

o) concurrently with m) and n), transfer the first chunk of the accumulated record of all waveforms of the first set of waveforms stored in the first FIFO to a high speed serial interface (HSSI);

p) store a second chunk of a first waveform of the second set of waveforms in the first memory buffer of the second memory bank;

q) concurrently with p), transfer a first chunk of a first successive pair of the further chunks of the accumulated record of all waveforms of the first set of waveforms stored in a successive buffer in the first memory bank to the first FIFO;

r) concurrently with p) and q), transfer the second chunk of the accumulated record of all waveforms of the first set of waveforms stored in the second FIFO to the HSSI; and

s) repeat m)-r) respectively for successive pairs of further chunks of the first waveform of the second set of waveforms, thereby storing the first waveform in chunks in successive buffers in the first and second memory banks in alternating fashion, storing the first chunk of the first waveform of the second set of waveforms in the first FIFO and transferring all the chunks of the accumulated record of all waveforms of the first set of waveforms to the HSSI.

3. The system of claim 2 , wherein, after s), the first FIFO stores a first chunk of first waveform of a second set of waveforms, the second FIFO is empty, and remaining chunks of the first waveform of a second set of waveforms are stored in the first and second memory banks in interleaved fashion, and where the circuit is further configured to:

t) accumulate a first chunk of a second waveform of the second set of waveforms with the first chunk of the first waveform stored in the first FIFO and store in the first memory buffer of the first memory bank;

u) concurrently with t) transfer the second chunk of the first waveform of the second set of waveforms stored in the first memory buffer of the second memory bank to the second FIFO

v) accumulate a second chunk of the second waveform with the second chunk of the first waveform stored in the second FIFO and store in the first memory buffer of the second memory bank;

w) concurrently with v), transfer a first chunk of a first successive pair of the further chunks of the first waveform from a second buffer of the first memory bank into the first FIFO;

x) repeat t)-w) for further successive pairs of chunks of the second waveform using respective successive buffers of the first and second memory banks, thereby generating an accumulated record of the first and second waveforms;

y) repeat t)-x) for successive further waveforms of the second set of waveforms, thereby generating an accumulated record of all waveforms of the first set of waveforms.

4. The system of claim 1 , wherein the circuit comprises a programmable hardware element.

5. The system of claim 4 , wherein the first and second memory banks are integrated into the programmable hardware element.

6. The system of claim 1 , wherein the circuit comprises an application specific integrated circuit (ASIC).

7. The system of claim 6 , wherein the first and second memory banks are integrated into the ASIC.

8. The system of claim 1 , wherein the first and second memory banks are integrated into the circuit.

9. The system of claim 1 , wherein the first and second memory banks are external to the circuit.

10. A hardware implemented method for accumulating waveform data, comprising:

a digitizer performing:

a) storing a first chunk of a first waveform of a first set of waveforms in a first memory buffer of a first memory bank of the digitizer;

b) storing a second chunk of the first waveform in a first memory buffer of a second memory bank of the digitizer;

c) repeating a)-b) respectively for successive pairs of further chunks of the first waveform, thereby storing the first waveform in chunks alternating between successive buffers in the first and second memory banks;

d) concurrently with c), transferring the first chunk stored in first memory buffer of the first memory bank to a first FIFO;

e) concurrently with c), transferring the second chunk stored in the first memory buffer of the second memory bank to a second FIFO;

f) accumulating a first chunk of a second waveform of the first set of waveforms with the first chunk of the first waveform stored in the first FIFO and store in the first memory buffer of the first memory bank;

g) accumulating a second chunk of the second waveform with the second chunk of the first waveform stored in the second FIFO and store in the first memory buffer of the second memory bank;

h) concurrently with g), transferring a first chunk of a first successive pair of the further chunks of the first waveform from a second buffer of the first memory bank into the first FIFO;

i) accumulating a first chunk of a first successive pair of further chunks of the second waveform with the first chunk of the first successive pair of the further chunks of the first waveform stored in the first FIFO and store in the second memory buffer of the first memory bank;

j) concurrently with i), transferring a second chunk of the first successive pair of further chunks of the first waveform from the second buffer of the second memory bank into the second FIFO;

k) repeating g)-j) for further successive pairs of chunks of the second waveform using respective successive buffers of the first and second memory banks, thereby generating an accumulated record of the first and second waveforms;

l) repeating f)-k) for successive further waveforms of the first set of waveforms, thereby generating an accumulated record of all waveforms of the first set of waveforms.

11. The method of claim 10 , wherein, after l), the first FIFO contains a first chunk of the accumulated record of all waveforms of the first set of waveforms, the second FIFO is empty, and remaining chunks of the accumulated record of all waveforms of the first set of waveforms are contained in the first and second memory banks in interleaved fashion, the method further comprising:

the digitizer performing:

m) storing a first chunk of a first waveform of a second set of waveforms in the first memory buffer of the first memory bank;

n) concurrent with m), transferring the second chunk of the accumulated record of all waveforms of the first set of waveforms stored in the first buffer of the second memory bank to the second FIFO;

o) concurrent with m) and n), transferring the first chunk of the accumulated record of all waveforms of the first set of waveforms stored in the first FIFO to a high speed serial interface (HSSI);

p) storing a second chunk of a first waveform of the second set of waveforms in the first memory buffer of the second memory bank;

q) concurrently with p), transferring a first chunk of a first successive pair of the further chunks of the accumulated record of all waveforms of the first set of waveforms stored in a successive buffer in the first memory bank to the first FIFO;

r) concurrently with p) and q), transferring the second chunk of the accumulated record of all waveforms of the first set of waveforms stored in the second FIFO to the HSSI;

s) repeating m)-r) respectively for successive pairs of further chunks of the first waveform of the second set of waveforms, thereby storing the first waveform in chunks in successive buffers in the first and second memory banks in alternating fashion, storing the first chunk of the first waveform of the second set of waveforms in the first FIFO and transferring all the chunks of the accumulated record of all waveforms of the first set of waveforms to the HSSI.

12. The method of claim 11 , wherein, after s), the first FIFO stores a first chunk of first waveform of a second set of waveforms, the second FIFO is empty, and remaining chunks of the first waveform of a second set of waveforms are stored in the first and second memory banks in interleaved fashion, the method further comprising:

the digitizer performing:

t) accumulating a first chunk of a second waveform of the second set of waveforms with the first chunk of the first waveform stored in the first FIFO and store in the first memory buffer of the first memory bank;

u) concurrently with t) transferring the second chunk of the first waveform of the second set of waveforms stored in the first memory buffer of the second memory bank to the second FIFO

v) accumulating a second chunk of the second waveform with the second chunk of the first waveform stored in the second FIFO and store it in the first memory buffer of the second memory bank;

w) concurrently with v), transferring a first chunk of a first successive pair of the further chunks of the first waveform from a second buffer of the first memory bank into the first FIFO;

x) repeating t)-w) for further successive pairs of chunks of the second waveform using respective successive buffers of the first and second memory banks, thereby generating an accumulated record of the first and second waveforms;

y) repeating t)-x) for successive further waveforms of the second set of waveforms, thereby generating an accumulated record of all waveforms of the first set of waveforms.

13. The method of claim 10 , wherein a)-l) are performed by a circuit of the digitizer.

14. The method of claim 13 , wherein the circuit comprises a programmable hardware element.

15. The method of claim 14 , wherein the first and second memory banks are integrated into the programmable hardware element.

16. The method of claim 13 , wherein the circuit comprises an application specific integrated circuit (ASIC).

17. The method of claim 16 , wherein the first and second memory banks are integrated into the ASIC.

18. The method of claim 13 , wherein the first and second memory banks are integrated into the circuit.

19. The method of claim 13 , wherein the first and second memory banks are external to the circuit.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2013
From: CASTRO SCORSI, RAFAEL
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 031225/0850 →