IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0612197
(2006-12-18)
|
등록번호 |
US-7707014
(2010-05-20)
|
발명자
/ 주소 |
- Kodosky, Jeffrey L.
- Andrade, Hugo
- Odom, Brian K.
- Butler, Cary P.
|
출원인 / 주소 |
- National Instruments Corporation
|
대리인 / 주소 |
Meyertons Hood Kivlin Kowert & Goetzel, P.C.
|
인용정보 |
피인용 횟수 :
14 인용 특허 :
18 |
초록
▼
A computer-implemented system and method for generating a hardware implementation of graphical code. The method comprises first creating a graphical program. A first portion of the graphical program may optionally be compiled into machine code for execution by a CPU. A second portion of the graphica
A computer-implemented system and method for generating a hardware implementation of graphical code. The method comprises first creating a graphical program. A first portion of the graphical program may optionally be compiled into machine code for execution by a CPU. A second portion of the graphical program is converted into a hardware implementation according to the present invention. The operation of converting the graphical program into a hardware implementation comprises exporting the second portion of the graphical program into a hardware description, wherein the hardware description describes a hardware implementation of the second portion of the graphical program, and then configuring a programmable hardware element utilizing the hardware description to produce a configured hardware element. The configured hardware element thus implements a hardware implementation of the second portion of the graphical program.
대표청구항
▼
We claim: 1. A computer-accessible memory medium comprising program instructions executable by a processor to: receive a block diagram, wherein the block diagram is executable to implement a model of a system; wherein the block diagram comprises a plurality of nodes, wherein the plurality of nodes
We claim: 1. A computer-accessible memory medium comprising program instructions executable by a processor to: receive a block diagram, wherein the block diagram is executable to implement a model of a system; wherein the block diagram comprises a plurality of nodes, wherein the plurality of nodes are interconnected to indicate data flow among the plurality of nodes, wherein the plurality of nodes visually represent functionality of the model, wherein a first node of the plurality of nodes specifies control flow of data among one or more of the plurality of nodes; generate a hardware description based on the block diagram, wherein the hardware description describes a hardware implementation of at least a portion of the block diagram, wherein the at least a portion of the block diagram comprises the first node and the one or more nodes; wherein the hardware description is usable to configure a programmable hardware element to implement at least a portion of the model. 2. The memory medium of claim 1, wherein the first node specifies iteration for the one or more nodes. 3. The memory medium of claim 1, wherein the first node indicates iteration of the one or more nodes; wherein the iteration node is associated with an iteration number which indicates a number of iterations for the one or more nodes, and wherein said generating uses the iteration number in generating the hardware description. 4. The memory medium of claim 1, wherein the first node specifies iteration for the one or more nodes, wherein the first node is operable to receive an iterator number, wherein the iterator number specifies a number of iterations for the one or more nodes. 5. The memory medium of claim 1, wherein the first node specifies looping for the one or more nodes. 6. The memory medium of claim 1, wherein the first node specifies conditional branching for the one or more nodes. 7. The memory medium of claim 1, wherein the first node comprises an interior portion, wherein nodes comprised in the interior portion of the first node execute according to control flow as specified by the first node. 8. The memory medium of claim 1, wherein said generating comprises examining one or more control flow parameters associated with the first node, wherein said generating uses the one or more control flow parameters in generating the hardware description. 9. The memory medium of claim 8, wherein the first node is one of an iteration node or a looping node; wherein the first node comprises at least one of a period parameter and a phase delay parameter, wherein the period parameter indicates a period of execution for cycles of the one or more nodes, and wherein the phase delay parameter indicates a phase delay of cycles of the one or more nodes. 10. The memory medium of claim 1, wherein the first node is an iteration node, wherein the iteration node comprises an iteration number that specifies a number of iterations for the one or more nodes; and wherein said generating uses the iteration number in generating the hardware description. 11. The memory medium of claim 1, wherein the first node is a looping node, wherein the looping node specifies looping of the one or more nodes; wherein the looping node comprises a loop condition which specifies iterative execution of the one or more nodes; and wherein said generating uses the loop condition in generating the hardware description. 12. The memory medium of claim 1, wherein the first node comprises one or more of: a while/do loop; a for/next loop; a case structure node; or a sequence structure node. 13. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one constant. 14. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one global variable. 15. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one value, wherein the at least one value is accessible by any of the plurality of nodes. 16. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one control terminal. 17. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one indicator terminal. 18. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing at least one sub-program. 19. The memory medium of claim 1, wherein the at least a portion of the block diagram comprises at least one node representing two or more of: at least one constant, at least one global variable, at least one control terminal, at least one indicator terminal, at least one structure node, or at least one sub-program. 20. The memory medium of claim 1, wherein the hardware description is usable to configure a programmable hardware element to implement the at least a portion of the model in accordance with the functionality visually represented by the at least a portion of the block diagram. 21. The memory medium of claim 1, wherein said generating the hardware description comprises converting each node of the at least a portion of the block diagram into a hardware description format in generating the hardware description. 22. The memory medium of claim 1, wherein the block diagram is executable to perform one or more of: a measurement function; a process control function; an automation function; an instrumentation function; a testing function; or a process modeling function. 23. The memory medium of claim 1, wherein the program instructions are further executable to: converting the hardware description into a netlist, wherein the netlist implements the functionality of the at least a portion of the block diagram; and compiling the netlist format into a hardware program file, wherein the hardware program file implements the functionality of the at least a portion of the block diagram; wherein the hardware program file is usable to configure the programmable hardware element. 24. The memory medium of claim 23, wherein said converting the hardware description into a netlist comprises: utilizing at least one function block from a library of pre-compiled function blocks; and utilizing hardware target specific information. 25. The memory medium of claim 1, wherein the program instructions are further executable by a processor to: compile a first portion of the block diagram portion into machine code for execution by a computer system coupled to the programmable hardware element; configure the programmable hardware element to perform functionality specified by the at least a portion of the block diagram; wherein the machine code is executable to perform functionality specified by the first portion of the block diagram portion; and wherein said executing the machine code and the programmable hardware element performing functionality operate to perform functionality specified by the block diagram. 26. The memory medium of claim 1, wherein the programmable hardware element is coupled to a non-volatile memory, wherein the program instructions are further executable by the processor to: store the hardware description into the non-volatile memory; and transfer the hardware description from the non-volatile memory to the programmable hardware element to configure the programmable hardware element. 27. The memory medium of claim 1, wherein said generating the hardware description based on the block diagram comprises converting each nodes of the at least a portion of the block diagram into a hardware description format; wherein, for the first node, said converting comprises: determining inputs and outputs to/from the first node; creating a hardware description of a control block which performs the control function indicated by the first node; traversing input dependencies of the node; and creating a hardware description of an AND gate, including listing connections of said input dependencies of the node to said AND gate. 28. The memory medium of claim 1, wherein said generating the hardware description based on the block diagram comprises converting each of said nodes into a hardware description format; wherein, for the first node, said converting comprises: determining inputs and outputs to/from the first node; accessing a hardware description of a control block which performs the control function indicated by the first node from a library of hardware descriptions; traversing input dependencies of the node; and creating a hardware description of an AND gate, including listing connections of said input dependencies of the node to said AND gate. 29. The memory medium of claim 1, wherein the block diagram implements a measurement function, and wherein the programmable hardware element is comprised in a device, and wherein the program instructions are executable to configure the programmable hardware device using the hardware description; wherein the device is operable to acquire a signal from an external source after said configuring; and wherein, after configuration, the programmable hardware element in the device is operable to perform the measurement function on the signal. 30. The memory medium of claim 1, wherein the block diagram is associated with one or more panels, wherein the one or more panels operate as a user interface for the block diagram, and wherein the program instructions are further executable to: configure the programmable hardware device using the hardware description; store executable code corresponding to the one or more panels in a memory, wherein the executable code is executable to display the one or more panels on a display; operate the programmable hardware element; and execute the executable code from the memory to present the one or more panels on the display during operation of the programmable hardware element to implement the at least a portion of the model. 31. The memory medium of claim 30, wherein the one or more panels are usable for viewing the signal. 32. The memory medium of claim 30, wherein the one or more panels are usable for viewing input to and/or output from the programmable hardware element. 33. The memory medium of claim 30, wherein the one or more panels are usable for manipulating input to and viewing output from the programmable hardware element. 34. The memory medium of claim 1, wherein the block diagram is associated with one or more panels, and wherein the one or more panels operate as a user interface for the block diagram. 35. The memory medium of claim 34, wherein said generating comprises incorporating a register in the hardware description for at least one of the one or more panels; and wherein, after configuration, the programmable hardware element is operable to implement functionality of the block diagram by accessing the register on the programmable hardware element to affect values displayed in one of said one or more panels. 36. The memory medium of claim 1, wherein the program instructions are executable to configure the programmable hardware device using the hardware description. 37. A computer-implemented method, the method comprising: receiving a block diagram, wherein the block diagram is executable to implement a model of a system; wherein the block diagram comprises a plurality of nodes, wherein at least a subset of the plurality of nodes are connected to indicate data flow among the at least a subset of the plurality of nodes, wherein the plurality of nodes visually represent functionality of the model, wherein a first node of the plurality of nodes specifies control flow of data among one or more of the plurality of nodes; generating a hardware description based on the block diagram, wherein the hardware description describes a hardware implementation of at least a portion of the block diagram, wherein the at least a portion of the block diagram comprises the first node and the one or more nodes; wherein the hardware description is usable to configure a programmable hardware element to implement at least a portion of the model. 38. The method of claim 37, wherein the first node specifies iteration for the one or more nodes. 39. The method of claim 37, wherein the first node specifies looping for the one or more nodes. 40. The method of claim 37, wherein the first node specifies conditional branching for the one or more nodes. 41. The method of claim 37, wherein the first node comprises an interior portion, wherein nodes comprised in the interior portion of the first node execute according to control flow as indicated by the first node. 42. The method of claim 37, wherein said generating comprises examining one or more control flow parameters associated with the first node, wherein said generating uses the one or more control flow parameters in generating the hardware description. 43. The method of claim 37, wherein the first node is one of an iteration node or a looping node; wherein the first node comprises at least one of a period parameter and a phase delay parameter, wherein the period parameter indicates a period of execution for cycles of the one or more nodes, and wherein the phase delay parameter indicates a phase delay of cycles of the one or more nodes. 44. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing at least one constant. 45. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing at least one global variable. 46. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing a value, wherein the value is accessible by any of the plurality of nodes. 47. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing at least one control terminal. 48. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing at least one indicator terminal. 49. The method of claim 37, wherein the at least a portion of the block diagram comprises at least one node representing at least one sub-program. 50. The method of claim 37, wherein, after configuration, the programmable hardware element is operable to implement the at least a portion of the model in accordance with the functionality visually represented by the at least a portion of the block diagram. 51. The method of claim 37, wherein said generating the hardware description comprises converting each node of the at least a portion of the block diagram into a hardware description format. 52. The method of claim 37, further comprising: converting the hardware description into a netlist, wherein the netlist implements the functionality of the at least a portion of the block diagram; and compiling the netlist format into a hardware program file, wherein the hardware program file incorporates the functionality of the at least a portion of the block diagram; wherein the hardware program file is usable to configure the programmable hardware element. 53. The method of claim 37, further comprising configuring the programmable hardware device using the hardware description. 54. A system which generates a hardware implementation of graphical code, the system comprising: a computer system comprising a processor and memory, wherein the memory stores a block diagram; wherein the block diagram comprises a plurality of nodes, wherein the block diagram is executable to implement a model of a system, wherein the plurality of nodes are interconnected to indicate data flow among the plurality of nodes, wherein the plurality of nodes visually represent functionality of the model, wherein a first node of the plurality of nodes specifies control flow of data among one or more of the plurality of nodes; wherein the memory also stores a software program which is executable to generate a hardware description based on the block diagram, and wherein the hardware description describes a hardware implementation of at least a portion of the block diagram, wherein the at least a portion of the block diagram comprises the first node and the one or more nodes; a programmable hardware element; wherein the hardware description is usable to configure a programmable hardware element to implement at least a portion of the model. 55. The system of claim 54, wherein the first node specifies iteration for the one or more nodes. 56. The system of claim 54, wherein the first node indicates iteration of the one or more nodes; wherein the iteration node is associated with an iteration number which indicates a number of iterations for the one or more nodes, and wherein the software program is executable to use the iteration number in generating the hardware description. 57. The system of claim 54, wherein the first node indicates iteration for the one or more nodes, wherein the first node is operable to receive an iterator number, wherein the iterator number specifies a number of iterations for the one or more nodes. 58. The system of claim 54, wherein the first node specifies looping for the one or more nodes. 59. The system of claim 54, wherein the first node specifies conditional branching for the one or more nodes. 60. The system of claim 54, wherein the first node comprises an interior portion, wherein nodes comprised in the interior portion of the first node execute according to control flow as specified by the first node. 61. The system of claim 54, wherein, in generating the hardware description, the software program is executable to examine one or more control flow parameters associated with the first node, and wherein the software program is executable to use the one or more control flow parameters in generating the hardware description. 62. The system of claim 61, wherein the first node is one of an iteration node or a looping node; wherein the first node comprises at least one of a period parameter and a phase delay parameter, wherein the period parameter indicates a period of execution for cycles of the one or more nodes, and wherein the phase delay parameter indicates a phase delay of cycles of the one or more nodes. 63. The system of claim 54, wherein the first node is an iteration node, wherein the iteration node specifies a number of iterations for the one or more nodes; wherein the software program is executable to use the iteration number in generating the hardware description. 64. The system of claim 54, wherein the first node is a looping node, wherein the looping node indicates looping of the one or more of the plurality of nodes in the block diagram for a plurality of times; wherein the looping node comprises a loop condition which indicates a number of executions for the one or more of the plurality of nodes; and wherein the software program is executable to use the loop condition in generating the hardware description. 65. The system of claim 54, wherein the first node comprises one or more of: a while/do loop; a for/next loop; a case structure node; or a sequence structure node. 66. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one constant. 67. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one global variable. 68. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one value, wherein the at least one value is accessible by any of the plurality of nodes. 69. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one control terminal. 70. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one indicator terminal. 71. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing at least one sub-program. 72. The system of claim 54, wherein the at least a portion of the block diagram comprises at least one node representing two or more of: at least one constant, at least one global variable, at least one control terminal, at least one indicator terminal, at least one structure node, or at least one sub-program. 73. The system of claim 54, wherein, after configuration, the programmable hardware element is operable to implement the model in accordance with the functionality represented by the block diagram. 74. The system of claim 54, wherein the software program is executable to convert each node of the at least a portion of the block diagram into a hardware description format in generating the hardware description. 75. The system of claim 54, wherein block diagram is executable to perform one or more of: a measurement function; a process control function; an automation function; an instrumentation function; a testing function; and a process modeling function. 76. The system of claim 54, wherein the software program is further executable to: convert the hardware description into a netlist, wherein the netlist incorporates the functionality of the at least a portion of the block diagram; and compile the netlist format into a hardware program file, wherein the hardware program file incorporates the at least a portion of the block diagram; wherein the hardware program file is usable to configure the programmable hardware element. 77. The system of claim 76, wherein said converting the hardware description into a netlist comprises: utilizing at least one function block from a library of pre-compiled function blocks; and utilizing hardware target specific information. 78. The system of claim 54, wherein the software program is further executable to: compile a first portion of the block diagram portion into machine code for execution by a computer system coupled to the programmable hardware element; configure the programmable hardware element to perform functionality specified by the at least a portion of the block diagram; wherein the machine code is executable to perform functionality indicated by the first portion of the block diagram portion; and wherein said executing the machine code and the programmable hardware element performing functionality operate to perform functionality specified by the block diagram. 79. The system of claim 54, wherein the programmable hardware element is coupled to a non-volatile memory, wherein the software program is further executable to store the hardware description into the non-volatile memory; wherein the computer system is operable to transfer the hardware description from the non-volatile memory to the programmable hardware element to configure the programmable hardware element. 80. The system of claim 54, wherein the software program is executable to convert each of said nodes into a hardware description format in generating the hardware description; wherein, for said first node, said converting comprises: determining inputs and outputs to/from the first node; creating a hardware description of a control block which performs the control function indicated by the first node; traversing input dependencies of the node; and creating a hardware description of an AND gate, including listing connections of said input dependencies of the node to said AND gate. 81. The system of claim 54, wherein the software program is executable to convert each of said nodes into a hardware description format in generating the hardware description; wherein, for said first node, said converting comprises: determining inputs and outputs to/from the first node; accessing a hardware description of a control block which performs the control function indicated by the first node from a library of hardware descriptions; traversing input dependencies of the node; and creating a hardware description of an AND gate, including listing connections of said input dependencies of the node to said AND gate. 82. The system of claim 54, wherein the block diagram implements a measurement function, wherein the programmable hardware element is comprised in a device, and wherein the computer system is operable to configure the programmable hardware element using the hardware description; wherein the device is operable to acquire a signal from an external source after said configuring; and wherein the programmable hardware element in the device is operable to perform the measurement function on the signal. 83. The system of claim 54, wherein the block diagram is associated with one or more panels stored in the memory, wherein the one or more panels operate as a user interface for the block diagram, and wherein the software program is further executable to store executable code corresponding to the one or more panels in the memory, wherein the executable code is executable to display the one or more panels on a display; and wherein, after configuration of the programmable hardware element, the processor is operable to execute the executable code in the memory to present the one or more panels on the display during operation of the programmable hardware element to implement the at least a portion of the model. 84. The system of claim 83, wherein the one or more panels are usable for viewing the signal. 85. The system of claim 83, wherein the one or more panels are usable for viewing input to and/or output from the programmable hardware element. 86. The system of claim 83, wherein the one or more panels are usable for manipulating input to and viewing output from the programmable hardware element. 87. The system of claim 54, wherein the block diagram is associated with one or more panels stored in the memory, wherein the one or more panels operate as a user interface for the block diagram. 88. The system of claim 87, wherein the software program is executable to incorporate a register in the hardware description for at least one of the one or more panels in generating the hardware description; and wherein, after configuration, the programmable hardware element is operable to perform the procedure by accessing the register on the programmable hardware element to affect values displayed in one of said one or more panels. 89. The system of claim 54, wherein the computer system is operable to configure the programmable hardware element utilizing the hardware description. 90. A computer-accessible memory medium comprising program instructions executable by a processor to: create a block diagram, wherein the block diagram is executable to implement a model of a system; wherein the block diagram comprises a plurality of nodes, wherein at least a subset of the plurality of nodes are connected to indicate data flow among the at least a subset of the plurality of nodes, wherein the plurality of nodes visually represent functionality of the model, wherein a first node controls flow of data among one or more of the plurality of nodes; generate a hardware description based on the block diagram, wherein the hardware description describes a hardware implementation of the block diagram; and configure a programmable hardware element utilizing the hardware description to produce a configured programmable hardware element, wherein the configured programmable hardware element implements a hardware implementation of the model.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.