Method and apparatus for performing synthesis for field programmable gate array embedded feature placement

US11080019B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11080019-B2
Application numberUS-201816022857-A
CountryUS
Kind codeB2
Filing dateJun 29, 2018
Priority dateJan 12, 2018
Publication dateAug 3, 2021
Grant dateAug 3, 2021

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.

A method for designing and configuring a system on a field programmable gate array (FPGA) is disclosed. A portion of the system that is implemented greater than a predetermined number of times is identified. A structural netlist that describes how to implement the portion of the system a plurality of times on the FPGA and that leverages a repetitive nature of implementing the portion is generated. The identifying and generating is performed prior to synthesizing and placing other portions of the system that are not implemented greater than the predetermined number of time. Synthesizing, placing, and routing the other portions of the system on the FPGA is performed in accordance with the structural netlist. The FPGA is configured with a configuration file that includes a design for the system that reflects the synthesizing, placing, and routing, wherein the configuring physically transforms resources on the FPGA to implement the system.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for designing and configuring a system on a field programmable gate array (FPGA), comprising: identifying a portion of the system that is implemented greater than a predetermined number of times; generating a structural netlist that describes how to implement the portion of the system a plurality of times on the FPGA and that leverages a repetitive nature of implementing the portion, wherein the identifying and generating is performed prior to synthesizing and placing other portions of the system that are not implemented greater than the predetermined number of time; synthesizing, placing, and routing the other portions of the system on the FPGA in accordance with the structural netlist; and configuring the FPGA with a configuration file that includes a design for the system that reflects the synthesizing, placing, and routing, wherein the configuring physically transforms resources on the FPGA to implement the system. 2. The method of claim 1 , wherein generating the structural netlist comprises constructing a leaf that includes a densely packed structural netlist of the portion that utilizes more than a predetermined percentage of resources occupying an area of the leaf. 3. The method of claim 2 further comprising identifying a plurality of different functionally equivalent design variations for implementing the leaf on the FPGA. 4. The method of claim 3 , wherein the plurality of different design variations for implementing the leaf includes a first variation that utilizes only logic array blocks, a second variation that utilizes a first combination of logic array blocks and digital signal processing blocks, and a third variation that utilizes a second combination of logic array blocks and digital signal processing blocks. 5. The method of claim 3 further comprising generating a layout of a plurality of leaves on the FPGA. 6. The method of claim 5 , wherein generating the layout accounts for a flow of data into and out of the system. 7. The method of claim 5 , wherein generating the layout comprises determining which of the plurality of different functionally equivalent design variations for implementing the leaf on the FPGA are to be used for the layout of the plurality leaves. 8. The method of claim 5 , wherein generating the layout comprises utilizing each of the plurality of different functionally equivalent design variations for implementing the leaf on the FPGA for the layout of the plurality leaves. 9. The method of claim 5 further comprising modifying the layout to account for discontinuities on the FPGA. 10. The method of claim 5 further comprising modifying the layout to reduce congestion. 11. The method of claim 10 , wherein the congestion is measured using a number of inputs and outputs, a total area of the one of the leaves, a hamming weight, and a Manhattan distance of one of the plurality of leaves. 12. The method of claim 9 further comprising replicating the modified layout for the design of the system. 13. The method of claim 1 further comprising: identifying a second portion of the system that is implemented greater than the predetermined number of times; generating another structural netlist that describes how to implement the second portion of the system a plurality of times on the FPGA and that leverages a repetitive nature of implementing the second portion, wherein the identifying and generating is performed prior to synthesizing and placing other portions of the system that are not implemented greater than the predetermined number of time. 14. The method of claim 1 , wherein the portion comprises a processor. 15. The method of claim 1 , wherein the portion comprises a memory. 16. The method of claim 1 , wherein the portion comprises a logic function. 17. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method for designing and configuring a system on a field programmable gate array (FPGA), comprising: identifying a first portion of the system that is implemented greater than a predetermined number of times; generating a structural netlist that describes how to implement the first portion a plurality of times on the FPGA and that leverages a repetitive nature of implementing the portion; identifying a second portion of the system that is implemented greater than the predetermined number of times; and generating another structural netlist that describes how to implement the second portion of the system a plurality of times on the FPGA and that leverages a repetitive nature of implementing the second portion, wherein the identifying and generating is performed prior to synthesizing and placing other portions of the system that are not implemented greater than the predetermined number of time. 18. The non-transitory computer readable medium of claim 17 , wherein the method further comprises: synthesizing, placing, and routing the system on the FPGA in accordance with the structural netlist and the another structural netlist; and configuring the FPGA with a configuration file that includes a design for the system that reflects the synthesizing, placing, and routing, wherein the configuring physically transforms resources on the FPGA to implement the system. 19. A system designer for designing and configuring a system on a field programmable gate array (FPGA), comprising: a synthesis for embedded feature placement (SEFP) unit that identifies a portion of the system that is implemented greater than a predetermined number of times, and that generates a structural netlist that describes how to implement the portion of the system a plurality of times on the FPGA by leveraging a repetitive nature of implementing the portion, wherein the identifying and generating is performed prior to synthesizing and placing other portions of the system that are not implemented greater than the predetermined number of time; a synthesis unit that synthesizes other portions of the system on the FPGA with the portion of the system in accordance with the structural netlist; a placement unit that places the other portions of the system with the portion of the system on the FPGA in accordance with the structural netlist; and an assembly unit that configures the FPGA with a configuration file that includes a design for the system that reflects the synthesizing and placing, wherein the configuring physically transforms resources on the FPGA to implement the system. 20. The system designer of claim 19 , wherein the SEFP unit comprises a leaf function construction unit that constructs a leaf that includes a densely packed structural netlist of the portion that utilizes more than a predetermined percentage of resources occupying an area of the leaf. 21. The system designer of claim 20 , wherein the leaf function construction unit further identifies a plurality of different functionally equivalent design variations for implementing the leaf on the FPGA. 22. The system designer of claim 21 , wherein the plurality of different design variations for implementing the leaf includes a first variation that utilizes only logic array blocks, a second variation that utilizes a first combination of logic array blocks and digital signal processing blocks, and a third variation that utilizes a second combination of logic array blocks and digital signal processing blocks. 23. The system designer of claim 22 further comprising a high-level layout unit that

Assignees

Inventors

Classifications

  • G06F7/5306Primary

    with row wise addition of partial products (G06F7/5324 takes precedence) · CPC title

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

  • G06F7/5312Primary

    using carry save adders · CPC title

  • Timing analysis or timing optimisation · CPC title

  • Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00) · 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 US11080019B2 cover?
A method for designing and configuring a system on a field programmable gate array (FPGA) is disclosed. A portion of the system that is implemented greater than a predetermined number of times is identified. A structural netlist that describes how to implement the portion of the system a plurality of times on the FPGA and that leverages a repetitive nature of implementing the portion is generat…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F7/5306. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 03 2021 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 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).