Method and apparatus for performing profile guided optimization for high-level synthesis
First Claim
Patent Images
1. A method for designing a system on a target device, comprising:
- performing a high-level compilation of a computer program language description of the system to generate a hardware description language (HDL) of the system, wherein the high-level compilation adds a description of hardware that collects profile data, to be implemented by the target device, to the HDL of the system, wherein the profile data comprises a number of threads which execute an identified block of logic in the system over a period of time, wherein the profile data further comprises operating parameters of a load store unit implemented in the system that comprises an instruction that reads or writes a value from an address in memory, and wherein performing the high-level compilation further comprises tracking values that reflect maximum and minimum address values accessed by the load store unit using first and second counters; and
generating a data file from the HDL of the system including the added description of the hardware that collects the profile data; and
programming the target device with the data file to physically transform components on the target device to implement the system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for designing a system on a target device includes performing a high-level compilation of a computer program language description of the system to generate a hardware description language (HDL) of the system. The high-level compilation performs optimizations in response to profile data obtained from an earlier compilation of the system.
77 Citations
21 Claims
-
1. A method for designing a system on a target device, comprising:
-
performing a high-level compilation of a computer program language description of the system to generate a hardware description language (HDL) of the system, wherein the high-level compilation adds a description of hardware that collects profile data, to be implemented by the target device, to the HDL of the system, wherein the profile data comprises a number of threads which execute an identified block of logic in the system over a period of time, wherein the profile data further comprises operating parameters of a load store unit implemented in the system that comprises an instruction that reads or writes a value from an address in memory, and wherein performing the high-level compilation further comprises tracking values that reflect maximum and minimum address values accessed by the load store unit using first and second counters; and generating a data file from the HDL of the system including the added description of the hardware that collects the profile data; and programming the target device with the data file to physically transform components on the target device to implement the system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method, comprising:
-
performing a high-level compilation of a computer program language description of a system to generate a hardware description language (HDL) of the system, wherein the high-level compilation adds a description of hardware for collecting hardware profile data, to be implemented by a target device, used for future high-level compilation of the system to the HDL of the system, wherein the hardware profile data comprises operating parameters of a load store unit that comprises an instruction that reads or writes a value from an address in memory, wherein performing the high-level compilation further comprises tracking a value that reflects a number of cycles that the load store unit is active using a first counter, tracking a value that reflects a number of cycles that the load store unit is idle using a second counter, and tracking a value that reflects a number of cycles that the load store unit is stalled using a third counter; generating a data file from the HDL of the system including the added description of the hardware that collects the hardware profile data; programming a target device with the data file to physically transform components on the target device to implement the system; uploading the hardware profile data from the target device implementing the system; and performing a second high-level compilation of the computer program language description of the system to generate a second hardware description language (HDL) of the system, wherein the second high-level compilation performs optimizations in response to the hardware profile data, wherein the optimizations comprises relaxing timing constraint for signals associated with a block of logic identified as not being used from the hardware profile data. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method for designing a system, comprising:
-
performing high-level compilation of a computer program language description of the system to generate a hardware description language (HDL) of the system, wherein performing the high-level compilation comprises adding a description of hardware for collecting hardware profile data, to be implemented on a target device, used for future high-level compilation of the system to the HDL of the system, wherein the hardware profile data comprises operating parameters of a load store unit that comprises an instruction that reads or writes a value from an address in memory, and wherein performing the high-level compilation further comprises tracking values that reflect maximum and minimum address values accessed by the load store unit using first and second counters; presenting a plurality of optimization options and costs and benefits associated with the optimization options on a graphical user interface, wherein an optimization option is performed responsive to a user selecting the optimization option, during a second high-level compilation of the computer program language description of the system to generate a second HDL of the system; generating a data file that describes the system that has been optimized according to the optimization option; and programming a target device with the data file to physically transform components on the target device to implement the system. - View Dependent Claims (19, 20, 21)
-
Specification