Extracting system architecture in high level synthesis

US9449131B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9449131-B2
Application numberUS-201414294062-A
CountryUS
Kind codeB2
Filing dateJun 2, 2014
Priority dateJun 2, 2014
Publication dateSep 20, 2016
Grant dateSep 20, 2016

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.

Extracting a system architecture in high level synthesis includes determining a first function of a high level programming language description and a second function contained within a control flow construct of the high level programming description. The second function is determined to be a data consuming function of the first function. Within a circuit design, a port including a local memory is automatically generated. The port couples a first circuit block implementation of the first function to a second circuit block implementation of the second function within the circuit design.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: determining a first function of a high level programming language description and a second function contained within a control flow construct of the high level programming description; determining that the second function is a data consuming function of the first function; automatically generating, within a circuit design and using a processor, a port comprising a local memory, wherein the port couples a first circuit block implementation of the first function to a second circuit block implementation of the second function within the circuit design; and automatically generating, within the circuit design, control circuitry controlling operation of the second circuit block by performing handshake signaling between the first circuit block and the second circuit block as a non-self-synchronized port. 2. The method of claim 1 , wherein automatically generating control circuitry comprises: generating a start control circuit and an end control circuit implementing the flow control construct. 3. The method of claim 1 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block or a third circuit block according to a condition of the control flow construct; and generating an end control circuit that provides a start control signal to a fourth circuit block responsive receiving a done control signal from either the second circuit block or the third circuit block; wherein the fourth circuit block is generated from a function that is a data consuming function of the second function or the third function. 4. The method of claim 1 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block according to a condition of the control flow construct; and generating an end control circuit that provides a start control signal to a third circuit block responsive to receiving a done control signal from the second circuit block; wherein the third circuit block is generated from a third function that is a data consuming function of the second function. 5. The method of claim 1 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block; and generating an end control circuit that provides a start control signal to a third circuit block responsive to determining that an end condition of the control flow construct is met; wherein the third circuit block is generated from a third function that is a data consuming function of the second function. 6. The method of claim 5 , wherein the start control circuit communicates the end condition of the flow control construct to the end control circuit. 7. The method of claim 6 , wherein the end control circuit provides the start control signal to the third circuit block responsive to both the start control circuit and the end control circuit detecting the end condition. 8. A system, comprising: a processor programmed to initiate executable operations comprising: determining a first function of a high level programming language description and a second function contained within a control flow construct of the high level programming description; determining that the second function is a data consuming function of the first function; automatically generating, within a circuit design, a port comprising a local memory; wherein the port couples a first circuit block implementation of the first function to a second circuit block implementation of the second function within the circuit design; and wherein the processor further initiates executable operations comprising: automatically generating, within the circuit design, control circuitry controlling operation of the second circuit block by performing handshake signaling between the first circuit block and the second circuit block as a non-self-synchronized port. 9. The system of claim 8 , wherein automatically generating control circuitry comprises: generating a start control circuit and an end control circuit implementing the flow control construct. 10. The system of claim 8 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block or a third circuit block according to a condition of the control flow construct; and generating an end control circuit that provides a start control signal to a fourth circuit block responsive receiving a done control signal from either the second circuit block or the third circuit block; wherein the fourth circuit block is generated from a function that is a data consuming function of the second function or the third function. 11. The system of claim 8 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block according to a condition of the control flow construct; and generating an end control circuit that provides a start control signal to a third circuit block responsive to receiving a done control signal from the second circuit block; wherein the third circuit block is generated from a third function that is a data consuming function of the second function. 12. The system of claim 8 , wherein automatically generating control circuitry comprises: generating a start control circuit that, responsive to receiving a done control signal from the first circuit block, outputs a start control signal to the second circuit block; and generating an end control circuit that provides a start control signal to a third circuit block responsive to determining that an end condition of the control flow construct is met; wherein the third circuit block is generated from a third function that is a data consuming function of the second function. 13. The system of claim 12 , wherein the start control circuit communicates the end condition of the flow control construct to the end control circuit. 14. The system of claim 13 , wherein the end control circuit provides the start control signal to the third circuit block responsive to both the start control circuit and the end control circuit detecting the end condition. 15. A non-transitory computer-readable storage medium having instructions stored thereon which, when executed by a processor, perform a method comprising: determining a first function of a high level programming language description and a second function contained within a control flow construct of the high level programming description; determining that the second function is a data consuming function of the first function; automatically generating, within a circuit design, a port comprising a local memory; wherein the port couples a first circuit block implementation of the first function to a second circuit block implementation of the second function within the circuit design; and automatically generating, within the circuit design, control circuitry controlling operation of the second circuit block by performing handshake signaling between the first circuit

Assignees

Inventors

Classifications

  • HW-SW co-design, e.g. HW-SW partitioning · CPC title

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • G06F30/327Primary

    Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist · CPC title

  • for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD] · CPC title

  • Circuit design · 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 US9449131B2 cover?
Extracting a system architecture in high level synthesis includes determining a first function of a high level programming language description and a second function contained within a control flow construct of the high level programming description. The second function is determined to be a data consuming function of the first function. Within a circuit design, a port including a local memory …
Who is the assignee on this patent?
Xilinx Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/433. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 20 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).