Graphical specification and constraint language for developing programs for hardware implementation and use
US-9436438-B2 · Sep 6, 2016 · US
US9983852B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9983852-B2 |
| Application number | US-201615232171-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 9, 2016 |
| Priority date | Jul 30, 2010 |
| Publication date | May 29, 2018 |
| Grant date | May 29, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques for specifying and implementing programs. A graphical program is created in a graphical specification and constraint language that allows specification of a model of computation and explicit declaration of constraints in response to user input. The graphical program includes a specified model of computation, a plurality of interconnected functional blocks that visually indicate functionality of the graphical program in accordance with the specified model of computation, and specifications or constraints for the graphical program or at least one of the functional blocks in the graphical program. The specified model of computation and specifications or constraints are useable to analyze the graphical program or generate a program or simulation.
Opening claim text (preview).
We claim: 1. An apparatus, comprising one or more processing elements configured to: receive first user input relating to a first functional block in a graphical program, wherein the user input specifies annotation information indicating a model of computation and constraints for the first functional block; select the first functional block, based on the annotation information, for use in a graphical program that uses the model of computation; wherein the constraints include: initiation interval (II) information that indicates a minimum number of cycles between firings of the first functional block; input pattern (IP) information that comprises a first sequence of values having a length that is smaller than or equal to the minimum number of cycles, wherein the first sequence of values aligns with the beginning of firing of the first functional block, wherein each instance of a particular value in the first sequence denotes consumption of a token at an input terminal of the first functional block; and output pattern (OP) information that comprises a second sequence of values having a length that is smaller than or equal to the minimum number of cycles, wherein the second sequence of values aligns with the end of firing of the first functional block, wherein each instance of a particular value in the second sequence denotes production of a token at an output terminal of the first functional block; and automatically generate an output program based on the graphical program, wherein the output program implements the functionality of the graphical program in accordance with the indicated model of computation, and further implements the constraints; and wherein the output program configures a programmable hardware element to perform functionality of the selected functional block subject to the constraints. 2. The apparatus of claim 1 , wherein the apparatus is configured to select the first functional block from among multiple functional blocks configured to perform the same function, wherein different ones of the multiple functional blocks use different models of computation. 3. The apparatus of claim 1 , wherein the apparatus is configured to select the first functional block from among multiple functional blocks configured to perform the same function, wherein different ones of the multiple functional blocks have different constraints. 4. The apparatus of claim 1 , where the apparatus is configured to generate the output program based on analyzing the constraints. 5. The apparatus of claim 1 , wherein the apparatus is further configured to generate the output program based on one or more of: throughput of terminals on the functional blocks; throughput of the graphical program; clock rate of the graphical program; buffer sizes between functional blocks; or latency between functional block inputs and corresponding functional block outputs. 6. The apparatus of claim 1 , wherein at least one of the constraints specifies tokens consumed and produced in a plurality of graphically indicated phases or modes. 7. The apparatus of claim 1 , wherein the constraints further include execution time (ET) that specifies a number of cycles needed by the first functional block to complete firing and a flag denoting whether the execution time is exact or worst case. 8. The apparatus of claim 1 , wherein the apparatus is further configured to: automatically select harnessing logic for the first functional block to ensure that data flow for the first functional block occurs according to the runtime updates of the first functional block's configuration. 9. The apparatus of claim 1 , wherein the constraints further include input count (IC) information that indicates a number of tokens consumed at an input terminal of the first functional block by one firing of first functional block; and output count (OC) information that indicates a number of tokens produced at an output terminal of the first functional block by one firing of the first functional block. 10. The apparatus of claim 9 , wherein the IC of a first functional block and the OC of a second functional block correspond in rate to each other n to m, and, II, IP and OP match. 11. A non-transitory computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising: receiving first user input relating to a first functional block in a graphical program, wherein the user input specifies annotation information in a standardized format that indicates a model of computation and constraints for the first functional block; selecting the first functional block, based on the annotation information, for use in a graphical program that uses the model of computation; wherein the constraints include: initiation interval (II) information that indicates a minimum number of cycles between firings of the first functional block; input pattern (IP) information that comprises a first sequence of values having a length that is smaller than or equal to the minimum number of cycles, wherein the first sequence of values aligns with the beginning of firing of the first one functional block, wherein each instance of a particular value in the first sequence denotes consumption of a token at an input terminal of the first functional block; and output pattern (OP) information that comprises a second sequence of values having a length that is smaller than or equal to the minimum number of cycles, wherein the second sequence of values aligns with the end of firing of the first functional block, wherein each instance of a particular value in the second sequence denotes production of a token at an output terminal of the first functional block; and automatically generating an output program based on the graphical program, wherein the output program implements the functionality of the graphical program in accordance with the indicated model of computation, and further implements the constraints; wherein the output program configures a programmable hardware element to perform functionality of the selected functional block subject to the constraints. 12. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise: selecting the first functional block from among multiple functional blocks configured to perform the same function, wherein different ones of the multiple functional blocks use different models of computation. 13. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise: selecting the first functional block from among multiple functional blocks configured to perform the same function, wherein different ones of the multiple functional blocks have different constraints. 14. The non-transitory computer-readable medium of claim 11 , wherein generating the output program is based on one or more of: throughput of terminals on the functional blocks; throughput of the graphical program; clock rate of the graphical program; buffer sizes between functional blocks; or latency between functional block inputs and corresponding functional block outputs. 15. The non-transitory computer-readable medium of claim 11 , wherein at least one of the constraints specifies tokens consumed and produced in a plurality of graphically indicated phases or modes. 16. The non-transitory computer-readable medium of claim 11 , wherein the constraints further include execution time (ET) that specifies a number of cycles needed by the first functional block to complete firing and a flag denoting whether the execution time is exact or worst case.
CAD in a network environment, e.g. collaborative CAD or distributed simulation · CPC title
Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules · CPC title
Constraint-based CAD · CPC title
Circuit design · CPC title
Graphical or visual programming · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.