Graphical Specification and Constraint Language for Developing Programs for Hardware Implementation and Use

US2016350080A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016350080-A1
Application numberUS-201615232171-A
CountryUS
Kind codeA1
Filing dateAug 9, 2016
Priority dateJul 30, 2010
Publication dateDec 1, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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 is useable to configure 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 is useable to configure 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 firi

Assignees

Inventors

Classifications

  • Visual data mining; Browsing structured data · CPC title

  • G06F8/34Primary

    Graphical or visual programming · CPC title

  • Manufacturability analysis or optimisation for manufacturability · CPC title

  • G06F8/20Primary

    Software design · CPC title

  • Design for testability [DFT], e.g. scan chain or built-in self-test [BIST] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016350080A1 cover?
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 funct…
Who is the assignee on this patent?
Nat Instr Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/34. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).