Loop manipulation in a behavioral synthesis tool
First Claim
1. In a behavioral synthesis tool used to design a hardware circuit, a method comprising:
- detecting a first loop, wherein the first loop comprises a first item;
detecting a second loop, wherein the second loop comprises a second item that is dependent upon the first item; and
at least partially merging the first loop with the second loop.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for analyzing and processing loops within an integrated circuit design are described. According to one embodiment, the processing comprises unrolling loops. In another embodiment, the processing comprises pipelining loops. In yet another embodiment, the processing comprises merging loops. In any of the disclosed embodiments, loops comprise independent loops, dependent loops or some combination thereof. Other embodiments for processing loops are disclosed, as well as integrated circuits and circuit design databases resulting from the disclosed methods. Computer-executable media storing instructions for performing the disclosed methods are also disclosed.
-
Citations
27 Claims
-
1. In a behavioral synthesis tool used to design a hardware circuit, a method comprising:
-
detecting a first loop, wherein the first loop comprises a first item;
detecting a second loop, wherein the second loop comprises a second item that is dependent upon the first item; and
at least partially merging the first loop with the second loop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A networked computer method comprising:
-
receiving a plurality of dependent loops;
analyzing the plurality of dependent loops; and
merging the plurality of dependent loops.
-
-
10. A method comprising:
-
identifying loops within a source code representation of a hardware circuit, wherein a first loop is dependent upon a second loop; and
merging at least the first loop and second loop.
-
-
11. A system for designing integrated circuits, comprising:
-
an input device for receiving a source code description of an integrated circuit;
a processor for executing software;
software that identifies loops within the source code;
software that merges at least two loops together, wherein at least one of the loops comprises a dependent loop; and
an output device.
-
-
12. A method comprising:
-
receiving input code, wherein the input code comprises code relating to a plurality of loops, wherein at least one of the plurality of loops comprises a dependent loop;
processing the input code, wherein the processing comprises merging at least two of the plurality of loops; and
providing output code, wherein the output code comprises the at least two merged loops. - View Dependent Claims (13, 14)
-
-
15. In a user interface for a behavioral synthesis tool, a method comprising:
-
receiving a plurality of choices for setting a mergeable directive corresponding to a plurality of loops, wherein at least one of the plurality of loops comprises a dependent loop; and
selecting one of the plurality of choices. - View Dependent Claims (16, 17)
-
-
18. In designing a hardware circuit, a method comprising:
-
identifying loops within a source code representation of a hardware design;
receiving via a graphical user interface (GUI) an indication to merge a plurality of the loops, wherein at least one of the plurality of loops comprises a dependent loop; and
merging the plurality of loops. - View Dependent Claims (19)
-
-
20. A method of creating a hardware circuit design, comprising:
-
selecting an option relating to a possible merging of a plurality of loops, wherein the plurality of loops comprises at least one dependent loop; and
receiving information regarding at least one impact the selected option might have on the hardware circuit design. - View Dependent Claims (21)
-
-
22. A method of designing an integrated circuit, comprising:
-
identifying loops within a source code representation of a hardware design;
receiving via a graphical user interface (GUI) a request to analyze a potential merging of a plurality of the loops, wherein the plurality of loops comprises a first loop that is dependent upon at least a second loop; and
providing an analysis of the potential merging of the plurality of loops.
-
-
23. A method of designing an integrated circuit, comprising:
-
at least partially unrolling a first loop, wherein the first loop comprises a dependent loop; and
merging the first loop with a second loop.
-
-
24. A method of designing an integrated circuit, comprising:
-
merging a first loop with a second loop, wherein the second loop comprises a dependent loop; and
pipelining the first loop and the second loop.
-
-
25. A method, comprising:
-
identifying a first loop;
identifying a second loop, wherein the first loop is dependent on the second loop, and wherein the second loop is mergeable with the first loop; and
merging the first loop and the second loop together into a first merged loop. - View Dependent Claims (26, 27)
-
Specification