IP Library Granted Patent US 8,788,882
Granted Patent B2
US 8,788,882 · App. 13/398,580 · Granted Jul 22, 2014

Customizing code modules of software and programmable hardware for a test instrument

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,788,882
App. No.
13/398,580
Granted
Jul 22, 2014
Kind
B2
Abstract

Customizing a test instrument. A plurality of pairs of code modules may be provided. Each pair of code modules may include a first code module having program instructions for execution by a processor of the test instrument and a second code module for implementation on a programmable hardware element of the test instrument. For each pair of code modules, the first code module and the second code module may collectively implement a function in the test instrument. User input may be received specifying modification of a second code module of at least one of the plurality of pairs of code modules. Accordingly, a hardware description may be generated for the programmable hardware element of the test instrument based on the modified second code module.

Claims (69)

1. A method for customizing a test instrument, comprising:

providing a plurality of pairs of code modules and an application programming interface (API) for interacting with the plurality of pairs of code modules, wherein each pair of code modules comprises a first code module having program instructions for execution by a processor of the test instrument and a second code module for implementation on a programmable hardware element of the test instrument;

wherein, for each pair of code modules, the first code module and the second code module collectively implement a function in the test instrument, wherein the first code module of a pair of code modules is executable on the processor to perform a first portion of a function, and wherein the second code module of the pair of code modules is configured to be implemented on the programmable hardware element to perform a corresponding second portion of the function;

wherein the plurality of pairs of code modules are executable to perform a test operation on a system under test (SUT);

receiving user input specifying modification of a second code module of a first one of the plurality of pairs of code modules;

wherein other ones of the plurality of pairs of code modules are not affected by the modification of the second code module of the first one of the plurality of pairs of code modules; and

generating a hardware description for the programmable hardware element of the test instrument based on the modified second code module.

2. The method of claim 1 , wherein the user input also specifies modification of the first code module of the at least one of the plurality of pairs of code modules.

3. The method of claim 1 , wherein the user input specifies removal of at least a portion of a second code module for a first pair of code modules.

4. The method of claim 1 , wherein the user input specifies additional code for the second code module of the at least one of the plurality of pairs of code modules.

5. The method of claim 1 , further comprising:

configuring the test instrument with the plurality of pairs of code modules, including the at least one of the plurality of pairs of code modules customized based on the user input, wherein said configuring the test instrument comprises:

storing the plurality of first code modules in one or more memory mediums of the test instrument for execution by the processor of the test instrument; and

configuring the programmable hardware element of the test instrument with the hardware description, wherein the hardware description implements the plurality of second code modules.

6. The method of claim 1 ,

wherein the code modules are specified in one or more graphical program portions comprising a plurality of nodes connected by wires, wherein the plurality of nodes visually represent functionality of the one or more graphical program portions;

wherein said receiving user input specifying customization comprises receiving user input modifying the one or more graphical program portions.

7. The method of claim 1 , wherein the pairs of code modules implement one or more of: hardware configuration, digital signal processing, acquisition, generation, or synchronization.

8. The method of claim 1 , wherein the programmable hardware element is configured to interact with underlying hardware of the test instrument.

9. The method of claim 8 , wherein the underlying hardware comprises one or more of:

analog to digital converters (ADCs);

digital to analog converters (DACs);

digital input and output;

clocking hardware; or

analog gain hardware.

10. The method of claim 1 ,

wherein the API remains unchanged and usable after said receiving user input.

11. The method of claim 1 , wherein a portion of each second code module is fixed and is not changeable in response to user input.

12. A non-transitory, computer accessible memory medium storing program instructions for customizing a test instrument, wherein the program instructions are executable to:

provide a plurality of pairs of code modules and an application programming interface (API) for interacting with the plurality of pairs of code modules, wherein each pair of code modules comprises a first code module having program instructions for execution by a processor of the test instrument and a second code module for implementation on a programmable hardware element of the test instrument, wherein, for each pair of code modules, the first code module and the second code module collectively implement a function in the test instrument, wherein the first code module of a pair of code modules is executable on the processor to perform a first portion of a function, and wherein the second code module of the pair of code modules is configured to be implemented on the programmable hardware element to perform a corresponding second portion of the function;

receive user input specifying modification of a second code module of at least one of the plurality of pairs of code modules; and

generate a hardware description for the programmable hardware element of the test instrument based on the modified second code module.

13. The non-transitory, computer accessible memory medium of claim 11 , wherein the user input also specifies modification of the first code module of the at least one of the plurality of pairs of code modules.

14. The non-transitory, computer accessible memory medium of claim 11 , wherein the user input specifies removal of at least a portion of a second code module for a first pair of code modules.

15. The non-transitory, computer accessible memory medium of claim 11 , wherein the user input specifies additional code for the second code module of the at least one of the plurality of pairs of code modules.

16. The non-transitory, computer accessible memory medium of claim 11 , wherein the program instructions are further executable to:

configure the test instrument with the plurality of pairs of code modules, including the at least one of the plurality of pairs of code modules customized based on the user input, wherein said configuring the test instrument comprises:

storing the plurality of first code modules in one or more memory mediums of the test instrument for execution by the processor of the test instrument; and

configuring the programmable hardware element of the test instrument with the hardware description, wherein the hardware description implements the plurality of second code modules.

17. The non-transitory, computer accessible memory medium of claim 11 ,

wherein the code modules are specified in one or more graphical program portions comprising a plurality of nodes connected by wires, wherein the plurality of nodes visually represent functionality of the one or more graphical program portions;

wherein said receiving user input specifying customization comprises receiving user input modifying the one or more graphical program portions.

18. The non-transitory, computer accessible memory medium of claim 11 , wherein the pairs of code modules implement one or more of: hardware configuration, digital signal processing, acquisition, generation, or synchronization.

19. The non-transitory, computer accessible memory medium of claim 11 , wherein the programmable hardware element is configured to interact with underlying hardware of the test instrument.

20. The non-transitory, computer accessible memory medium of claim 19 , wherein the underlying hardware comprises one or more of:

analog to digital converters (ADCs);

digital to analog converters (DACs);

digital input and output;

clocking hardware; or

analog gain hardware.

21. The non-transitory, computer accessible memory medium of claim 11 ,

wherein the API remains unchanged and usable after said receiving user input.

22. The non-transitory, computer accessible memory medium of claim 11 , wherein a portion of each second code module is fixed and is not changeable in response to user input.

23. A method for customizing a test instrument, comprising:

providing a library of pairs of code modules and an application programming interface (API) for interacting with the plurality of pairs of code modules, wherein each pair of code modules comprises a processor-side code module having program instructions for execution by a processor of the test instrument and a PHE-side code module for implementation on a programmable hardware element (PHE) of the test instrument;

wherein, for each pair of code modules, the processor-side code module and the PHE-side code module collectively implement a function in the test instrument, wherein the processor-side code module of a pair of code modules is executable on the processor to perform a first portion of a function, and wherein the PHE-side code module of the pair of code modules is configured to be implemented on the programmable hardware element to perform a corresponding second portion of the function;

displaying a first graphical data flow program configured to execute on the processor of the test instrument, wherein the first graphical data flow program comprises a plurality of processor-side code modules; and

displaying a second graphical data flow program configured to execute on the programmable hardware element of the test instrument, wherein the second graphical data flow program comprises a corresponding plurality of PHE-side code modules corresponding to the plurality of processor-side code modules in the first graphical data flow program;

wherein changes to a respective PHE-side code module of a pair does not affect other pairs of code modules in the first and second graphical data flow programs.

24. A method for customizing a test instrument, comprising:

providing a library of pairs of code modules and an application programming interface (API) for interacting with the plurality of pairs of code modules, wherein each pair of code modules comprises a processor-side code module having program instructions for execution by a processor of the test instrument and a PHE-side code module for implementation on a programmable hardware element (PHE) of the test instrument;

wherein, for each pair of code modules, the processor-side code module and the PHE-side code module collectively implement a function in the test instrument, wherein the processor-side code module of a pair of code modules is executable on the processor to perform a first portion of a function, and wherein the PHE-side code module of the pair of code modules is configured to be implemented on the programmable hardware element to perform a corresponding second portion of the function;

displaying a first graphical data flow program configured to execute on the processor of the test instrument, wherein the first graphical data flow program comprises first and second processor-side code modules;

displaying a second graphical data flow program configured to execute on the programmable hardware element of the test instrument, wherein the second graphical data flow program comprises corresponding first and second PHE-side code modules corresponding to the first and second processor-side code modules in the first graphical data flow program;

wherein the first processor-side code module and the first PHE-side code module correspond to a first pair of code modules, and wherein the second processor-side code module and the second PHE-side code module correspond to a second pair of code modules;

receiving user input specifying modification of the first PHE-side code module in the second graphical data flow program;

wherein the second PHE-side code module is not affected by the modification of the first PHE-side code module; and

generating a hardware description for the programmable hardware element of the test instrument based on the modified first PHE-side code module and the second PHE-side code module;

wherein the first and second pairs of code modules are executable on the processor and the programmable hardware element, respectively, to perform a test operation on a system under test (SUT).

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 Mar 15, 2012
From: SCHROEDER, CHARLES G.; GRAF, CHRISTOPHER F.; NISHIGUCHI, CIRO T.; D'SOUZA, NIGEL G.; BAKER, DANIEL J.; MAGRUDER, THOMAS D.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 027866/0746 →