IP Library Granted Patent US 8,924,949
Granted Patent B2
US 8,924,949 · App. 14/304,412 · Granted Dec 30, 2014

Synchronization modules for performing synchronization of programmable hardware elements

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,924,949
App. No.
14/304,412
Granted
Dec 30, 2014
Kind
B2
Abstract

Customizing a target system. The target system may include a first device with a first programmable hardware element (PHE) and a second device with a second PHE. Synchronization modules may be provided for implementation on the first and second PHEs. The synchronization modules may provide a standard interface for interacting with other code. A user may specify user-created code for the first and second PHEs which utilizes the synchronization modules. The user-created code may interact with the synchronization modules using the standard interface. Accordingly, hardware descriptions may be generated for the first and second PHEs of the target system. Different modules may be used for different interconnects. Additionally, multiple synchronization modules may be used, e.g., dynamically, during operation of the target system.

Claims (60)

1. A method for modifying a program for a target system, wherein the target system comprises a first device with a first programmable hardware element (PHE), comprising:

storing a first program for implementation on the first PHE of the first device, wherein the first program comprises:

1) a first synchronization module having code for implementation on the first PHE of the first device, wherein the first synchronization module provides a standard interface for interacting with other code; and

2) first user-created code which performs a first function;

wherein the first synchronization module is configured to adjust timing of the first user-created code in the first program according to a first type of synchronization;

receiving user input specifying use of a second type of synchronization to synchronize the first user-created code;

replacing the first synchronization module with a second synchronization module in response to the user input, wherein the second synchronization module is configured to adjust timing of the first user-created code in the first program according to the second type of synchronization, wherein the second synchronization module provides the standard interface for interacting with other code, and wherein the first user-created code does not require modification in response to said replacing the first synchronization module;

generating a hardware description for the first PHE based on the second synchronization module and the first user-created code; and

configuring the first PHE according to the hardware description, wherein during operation, the first PHE is configured to adjust timing of the first user-created code according to the second synchronization module.

2. The method of claim 1 , wherein the target system comprises a second device having a second PHE, wherein the method further comprises:

storing a second program for implementation on the second PHE of the second device, wherein the second program comprises:

1) a third synchronization module having code for implementation on the second PHE of the second device, wherein the third synchronization module provides the standard interface for interacting with other code; and

2) second user-created code which performs a second function;

wherein the third synchronization module is configured to adjust timing of the second user-created code in the second program according to the first type of synchronization;

receiving user input specifying use of the second type of synchronization for adjusting timing of the second user-created code; and

replacing the third synchronization module with a fourth synchronization module in response to the user input, wherein the fourth synchronization module also provides the standard interface for interacting with other code, and wherein the second user-created code does not require modification in response to said replacing the third synchronization module with the fourth synchronization module.

3. The method of claim 1 , wherein said replacing is performed automatically in response to the user input.

4. The method of claim 1 , wherein the first program comprises a graphical program, the graphical program comprising a plurality of interconnected nodes that visually indicates the functionality of the graphical program.

5. The method of claim 1 , wherein the first user-created code utilizes a plurality of custom triggers, wherein each custom trigger is invoked or received using the second synchronization module.

6. The method of claim 1 ,

wherein the first synchronization module is configured to use a first trigger to perform the first type of synchronization; and

wherein the second synchronization module is configured to use a second trigger to perform the second type of synchronization.

7. The method of claim 1 , further comprising:

receiving user input selecting the first synchronization module from a library of synchronization modules.

8. The method of claim 1 , further comprising:

receiving user input specifying the first synchronization module and the first user-created code.

9. The method of claim 1 , wherein said receiving user input specifying use of a second type of synchronization is performed by one or more of:

a graphical user interface (GUI); or

a wizard.

10. A non-transitory, computer accessible memory medium storing program instructions for modifying a program for a target system, wherein the target system comprises a first programmable hardware element (PHE), wherein the program instructions are executable to:

display a first program for implementation on the first PHE, wherein the first program comprises:

1) a first synchronization module having code for implementation on the first PHE, wherein the first synchronization module provides a standard interface for interacting with other code; and

2) first user-created code which performs a first function;

wherein the first synchronization module is configured to synchronize timing of the first user-created code in the first program according to a first type of synchronization;

receive user input specifying use of a second type of synchronization to synchronize the first user-created code;

replace the first synchronization module with the second synchronization module in response to the user input, wherein the second synchronization module is configured to adjust timing of the first user-created code in the first program according to the second type of synchronization, wherein the second synchronization module provides the standard interface for interacting with other code, and wherein the first user-created code does not require modification in response to said replacing the first synchronization module;

generate a hardware description for the first PHE based on the second synchronization module and the first user-created code; and

configure the first PHE according to the hardware description, wherein during operation, the first PHE is configured to adiust timing of the first user-created code according to the second synchronization module.

11. The non-transitory, computer accessible memory medium of claim 10 , wherein the target system comprises a second PHE, wherein the program instructions are further executable to:

display a second program for implementation on the second PHE, wherein the second program comprises:

1) a third synchronization module having code for implementation on the second PHE, wherein the third synchronization module provides the standard interface for interacting with other code; and

2) second user-created code which performs a second function;

wherein the third synchronization module is configured to synchronize timing of the second user-created code in the second program with the first user-created code in the first program according to the first type of synchronization;

receive user input specifying use of the second type of synchronization; and

replace the third synchronization module with a fourth synchronization module in response to the user input, wherein the fourth synchronization module also provides the standard interface for interacting with other code, and wherein the second user-created code does not require modification in response to said receiving user input replacing the third synchronization module with the fourth synchronization module.

12. The non-transitory, computer accessible memory medium of claim 10 , wherein the target system comprises a second PHE, wherein the program instructions are further executable to:

display a second program for implementation on the second PHE, wherein the second program comprises:

1) a third synchronization module having code for implementation on the second PHE, wherein the third synchronization module provides the standard interface for interacting with other code; and

2) second user-created code which performs a second function;

wherein the third synchronization module is configured to synchronize timing of the second user-created code in the second program with the first user-created code in the first program using the first type of synchronization;

in response to receiving user input to replace the first synchronization module with the second synchronization module, automatically replace the third synchronization module with a fourth synchronization module, wherein the fourth synchronization module is configured to synchronize timing of the second user-created code in the second program with the first user-created code in the first program using the second type of synchronization, wherein the fourth synchronization module also provides the standard interface for interacting with other code, and wherein the second user-created code does not require modification in response to said replacing the third synchronization module with the fourth synchronization module.

13. The non-transitory, computer accessible memory medium of claim 10 , wherein said replacing is performed automatically in response to the user input.

14. The non-transitory, computer accessible memory medium of claim 10 , wherein the first program comprises a graphical program, the graphical program comprising a plurality of interconnected nodes that visually indicates the functionality of the graphical program.

15. The non-transitory, computer accessible memory medium of claim 10 , wherein the first user-created code utilizes a plurality of custom triggers, wherein each custom trigger is invoked or received using the first synchronization module.

16. The non-transitory, computer accessible memory medium of claim 10 ,

wherein the first synchronization module is configured to use a first trigger to perform the first type of synchronization; and

wherein the second synchronization module is configured to use a second trigger to perform the second type of synchronization.

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

receive user input selecting the first synchronization module from a library of synchronization modules;

wherein said receiving user input specifying use of a second type of synchronization to synchronize the first user-created code comprises receiving user input selecting the second synchronization module from the library of synchronization modules.

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 Jun 16, 2014
From: GRAF, CHRISTOPHER F.; BROWN, RYAN H.; BAKER, DANIEL J.; DEVOE, MATTHEW J.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 033112/0655 →