Claims
- 1. In a behavioral synthesis tool used to design a hardware circuit, a method comprising:
identifying loops within a source code representation of a hardware circuit; calculating an estimate of hardware execution time for the identified loops; and displaying the estimate of hardware execution time in association with the identified loops.
- 2. The method of claim 1, further comprising:
receiving via a graphical user interface, an indication to unroll a specified loop; unrolling the specified loop; calculating the execution time for the unrolled loop; and displaying the execution time associated with the loops including the unrolled loop.
- 3. The method of claim 1, further comprising:
receiving via a graphical user interface, an indication to pipeline a specified loop; pipelining the specified loop; calculating the execution time for the pipelined loop; and displaying the execution time associated with the loops including the pipelined loop.
- 4. The method of claim 1, wherein the displayed execution time for the loops is represented as a bar graph, a pie graph, a numeric graph, a graphic comparison or a numeric comparison.
- 5. The method of claim 1, wherein the displayed execution time for a parent loop is represented as a bar graph, and the bar graph of the parent loop represents the execution time of a child loop as a different shade or color.
- 6. The method of claim 1, wherein the displayed execution time for a loop is represented as a bar, and the bar represents the execution time in the loop as a shade or color, and the bar represents the execution time of a descendent loop as a different shade or color.
- 7. The method of claim 1 wherein the displayed execution time for the identified loops is represented as relative to the execution time of the other identified loops.
- 8. The method of claim 1 wherein the displayed execution time for the loops are a bar graph, and a bar representing a parent loop is greater than or equal to the sum of the bars representing its child loops.
- 9. The method of claim 1, wherein calculating comprises:
for each loop, summing the time required to complete the hardware instructions within the loop; and multiplying the time required to complete the hardware instructions within a loop by the number of iterations of the loop.
- 10. The method of claim 1, wherein calculating comprises:
assigning hardware instructions within a loop to clock cycles within a loop thereby obtaining a number of clock cycles within the loop; for non-pipelined loops, using the following equation: (number of clock cycles within the loop * number of loop iterations); and for pipelined loops, using the following equation: (number of clock cycles within the loop+(initiation interval * (number of loop iterations −1))).
- 11. The method of claim 1, wherein identifying means reading loop directive identifiers in the source code.
- 12. The method of claim 1, wherein the displayed estimate of hardware execution time is within a interactive graphical user interface which includes a representation of hardware operations within loops, and a loop-only button removes hardware operations from the representation.
- 13. A computer-readable medium having computer-executable instructions for performing the method of claim 1.
- 14. The method of claim 2, wherein unrolling means unrolling without changing the source code.
- 15. The method of claim 3, wherein pipelining means pipelining without changing the source code.
- 16. The method of claim 2 wherein an integrated circuit is created containing the unrolled loop.
- 17. An integrated circuit created using the method of claim 16.
- 18. In a behavioral synthesis tool used to design an integrated circuit, a method of displaying relative time spent executing in loops, the method comprising:
reading a source code description associated with the integrated circuit into the behavioral synthesis tool; storing the source code description as a data structure within memory; calculating from the data structure, a relative loop execution time; and displaying the relative loop execution time.
- 19. The method of claim 18, further comprising:
receiving via a graphical user interface, an indication to alter a specified loop; altering the specified loop in the data structure; calculating an altered relative loop execution time; and displaying the altered loop execution time.
- 20. An integrated circuit designed using the method of claim 19.
- 21. A computerized 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 calculates a relative execution time for identified loops; software that creates displayable output of the relative execution time; and an output device.
- 22. The system of claim 21, wherein the source code description is at least one of a file, or a series of keyboard strokes.
- 23. The system of claim 21, further comprising software that generates an interactive graphical interface for receiving indications to alter identified loops.
- 24. A networked server computer method comprising:
receiving a source code description of a hardware circuit; identifying loops within the source code; calculating relative execution time of identified loops; and sending data representing calculated relative execution times of identified loops.
- 25. The method of claim 24, further comprising:
receiving an indication to alter a specified loop; altering the specified loop; re-calculating relative execution time of identified loops; and re-sending the re-calculated relative execution time of identified loops.
- 26. An integrated circuit containing a loop designed using the method of claim 25.
- 27. A networked client computer method comprising:
sending a source code description of a hardware circuit; receiving data representing relative execution times of identified loops; and displaying relative execution times of identified loops.
- 28. The method of claim 27, further comprising:
sending an indication to alter a specified loop; receiving data altered in response to the indication representing relative execution times of identified loops; and displaying relative execution times of identified loops.
- 29. An integrated circuit containing a loop designed using the method of claim 28.
RELATED APPLICATION DATA
[0001] This application is based on provisional application serial No. 60/285,656, filed Apr. 20, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60285656 |
Apr 2001 |
US |