This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2009-207458, filed on Sep. 8, 2009; the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a high-level synthesis apparatus, a high-level synthesis method, and a computer readable medium comprising a high-level synthesis program and, specifically, those for use in design of a semiconductor integrated circuit.
2. Related Art
Recently, as a method for reducing a period for designing a large scale integration (LSI), a method is known for using a conventional high-level synthesis apparatus that generates a circuit description based on a behavioral description fed by user. The conventional high-level synthesis apparatus generates the circuit description in such a manner that one functional unit performs the same kind of operations in the behavioral description. In the conventional high-level synthesis apparatus, a relationship between what one functional unit performs a plurality of operations (hereinafter referred to as “share of functional unit”) and power consumption (hereinafter referred to as “dynamic power consumption”) in an operation of the LSI is not considered. That is, it is not considered which one of the functional units should be shared and in which cycles the functional unit should be shared, in order to efficiently reduce the dynamic power consumption. Therefore, the circuit description in such a manner that the functional unit is shared only when each of performance cycles does not overlap with other performance cycles is generated. As a result, such a circuit description in which the functional unit is used evenly over all the cycles would be generated.
On the other hand, a technology is known for turning off power to be supplied to each of gates in the functional unit in order to reduce not only the dynamic power consumption in the operation of the LSI but also power consumption (hereinafter referred to as “static power consumption”) in a non-operation of the LSI.
However, when the power is turned off, there is a problem in that as described above, the circuit description in which the functional unit is used evenly over all the cycles would be generated. Specifically, it is taken at least several microseconds to restore the power once turned off. Therefore, for the LSI operating in the cycle of several nanoseconds, it is required that the cycles in which the functional unit is not operating (hereinafter referred to as “non-operating cycle”) should be continual as long as possible. However, in the conventional high-level synthesis apparatus, the non-operating cycles will not be continual because the circuit description in which the functional unit is used evenly over all the cycles is generated. As a result, the LSI designed by utilizing the circuit description generated by the conventional high-level synthesis apparatus has a short turned-off time period of the power. That is, the conventional high-level synthesis apparatus cannot provide the user with information and the circuit description which are required to efficiently reduce the power consumption including the dynamic power consumption and the static power consumption.
Another technology (hereinafter referred to as “clock gating”) is known for stopping a clock signal to be supplied to each of the gates in the functional unit in order to save on the number of times to switch the gates, thereby reducing the dynamic power consumption ((see JP-A 2008-282360 (KOKAI)). In JP-A 2008-282360 (KOKAI), if there is a plurality of speculative executions under exclusive conditions, the clock signal to be supplied to a register that corresponds to the operations rendered unnecessary when performance conditions are determined is stopped, thereby reducing the dynamic power consumption of the LSI.
However, in JP-A 2008-282360 (KOKAI), it is impossible to reduce the power consumption when the performance conditions are not exclusive. Further, in recent years, with shrinkage of the LSI, the percentage of the static power consumption with respect to the dynamic power consumption is increased. Therefore, reducing only the dynamic power consumption is not enough to save the power consumption of the LSI. That is, even if a scheme of JP-A 2008-282360 (KOKAI) is applied to the conventional high-level synthesis apparatus, it is impossible to provide the user with information required to efficiently reduce the power consumption of the LSI.
According to a first aspect of the present invention, there is provided a high-level synthesis apparatus comprising:
an input unit configured to input a behavioral description indicating a behavior of a semiconductor integrated circuit comprising a plurality of functional units;
an internal representation generator configured to generate an internal representation based on the behavioral description input by the input unit, the internal representation showing a data flow in the behavioral description and an order in which operations are to be performed in the behavioral description;
a scheduler configured to perform scheduling for the operations in the internal representation generated by the internal representation generator in such a manner that non-operating cycles of the functional units continue;
a binder configured to perform binding for determining a configuration of the semiconductor integrated circuit operates scheduled operations on the internal representation generated by the internal representation generator;
a circuit description generator configured to generate a circuit description based on a result scheduled by the scheduler and a result bound by the binder; and
an output unit configured to output the internal representation generated by the internal representation generator and the circuit description generated by the circuit description generator.
According to a second aspect of the present invention, there is provided a high-level synthesis method comprising:
inputting a behavioral description indicating a behavior of a semiconductor integrated circuit comprising a plurality of functional units;
generating an internal representation based on the behavioral description, the internal representation showing a data flow in the behavioral description and an order in which operations are to be performed in the behavioral description;
performing scheduling for the operations in the internal representation in such a manner that non-operating cycles of the functional units continue;
performing binding for determining a configuration of the semiconductor integrated circuit operates scheduled operations on the internal representation;
generating a circuit description based on a scheduled result and a bound result; and
outputting the internal representation and the circuit description.
According to a third aspect of the present invention, there is provided a computer readable medium comprising a high-level synthesis program comprising:
inputting a behavioral description indicating a behavior of a semiconductor integrated circuit comprising a plurality of functional units;
generating an internal representation based on the behavioral description, the internal representation showing a data flow in the behavioral description and an order in which operations are to be performed in the behavioral description;
performing scheduling for the operations in the internal representation in such a manner that non-operating cycles of the functional units continue;
performing binding for determining a configuration of the semiconductor integrated circuit operates scheduled operations on the internal representation;
generating a circuit description based on a scheduled result and a bound result; and
outputting the internal representation and the circuit description.
Hereafter, embodiments of the present invention will now be explained with reference to the accompanying drawings.
A first embodiment of the present invention will now be explained. The first embodiment is a basic example of a high-level synthetic apparatus according to the embodiments.
A configuration of the high-level synthetic apparatus according to the first embodiment will now be explained.
As shown in
The memory 12 in
The input unit 14 in
The CPU 16 in
The internal representation generator 161 in
The scheduler 162 in
The binder 163 in
The circuit description generator 164 in
The scheduling information generator 165 in
The output unit 18 in
The high-level synthesis operation according to the first embodiment will now be explained.
The input unit 14 inputs the behavioral description fed by the user through the input device 20.
The internal representation generator 161 analyzes the source code of the behavioral description input in the inputting step (S401), thereby generating the CDFG.
The scheduler 162 performs the scheduling on the CDFG generated in the internal representation generating step (S402), thereby determining the timing of operations in such a manner that the non-operating cycles of the functional units continue. Specifically, the scheduling step (S403) will be performed according to a procedure shown in
The first scheduler 162a performs the first scheduling in such a manner that one functional unit performs the operations, on the CDFG generated in the internal representation generating step (S402). The first scheduling step (S501) will be performed by a typical method.
The second scheduler 162b performs the second scheduling in such a manner that the non-operating cycles of the functional units continue, on the CDFG after the first scheduling is performed in the first scheduling step (S501). For example, the second scheduler 162b selects one of the operations having other operations close-packed before and after themselves, based on first results scheduled in the first scheduling step (S501), which are represented in the CDFG. Then, the second scheduler 162b performs the scheduling in such a manner that other operations become near a clock step in which the selected operations are scheduled.
The second scheduling step (S502) is followed by a binding step (S404) in
The binder 163 performs the binding in such a manner that the functional units are allocated to the operations based on the results scheduled in the scheduling step (S403) (that is, second results scheduled in the second scheduling step (S502)). The binding step (S404) will be performed by a typical method.
The circuit description generator 164 generates the RTL description based on the results scheduled in the scheduling step (S403) and the results bound in the binding step (S404). In the circuit description generating step (S405), a signal indicating an on-state/off-state for each of power supply domains every states of a state machine may be generated. Further, in the circuit description generating step (S405), although the RTL description including descriptions which indicates a control circuit for a power saving operation (described below) is not generated, the RTL description including information which indicates a timing when the power saving operation for each of power supply domains can be performed may be generated.
The second scheduling information generator 165 generates the scheduling information based on the second results scheduled in the second scheduling step (S502). The scheduling information includes the timing information, the domain information, the increase information, and the cycle information.
The output unit 18 outputs the output device 30 with the results (CDFG after the second scheduling step (S502) is performed by the second scheduler 162b) scheduled in the scheduling step (S403), the results (RTL description corresponding to the second results scheduled in the second scheduling step (S502)) in the circuit description generating step (S405), and the scheduling information (the timing information, the domain information, the increase information, and the cycle information) generated in the scheduling information generating step (S406).
After the outputting step (S407), the high-level synthesis operation ends.
A comparative example between the first embodiment and the conventional techniques will now be explained.
In (A) of
In (B) and (C) of
(C) of
According to the first embodiment, the scheduler 162 performs the scheduling in which the timing of operations in such a manner that the non-operating cycles of the functional units continue is determined. Then, the output unit 18 outputs the high-level synthesis results based on the scheduled results. Therefore, information required to efficiently reduce the power consumption of the LSI can be easily obtained. Further, a working efficiency is improved on downstream manufacturing steps for the power saving operation.
Further, according to the first embodiment, the scheduler 162 includes the second scheduler 162b that performs the second scheduling in such a manner that the non-operating cycles of the functional units continue, on the internal representation after the first scheduling is performed. Therefore, the high-level synthesis results can be obtained, which have continual non-operating cycles.
In the first embodiment, the output unit 18 may output only the internal representation and the circuit description. In this case, the scheduling information generator 165 will be omitted.
Further, in the first embodiment, the output unit 18 may output only the timing information and the domain information contained in the scheduling information generated by the scheduling information generator 165. In this case, the scheduling information generator 165 will not generate the increase information and the cycle information.
Further, although the first embodiment has been explained with the example where the power is cut off and restored in the power saving operation, the scope of the present invention is not limited to the example. In the first embodiment, the power saving operation may employ the clock gating in the non-operating cycles. In this case, the continual non-operating cycles are formed by the second scheduler 162b. Therefore, an ENABLE signal for use in the clock gating can be easily controlled.
A second embodiment of the present invention will now be explained. The second embodiment is an example of a high-level synthesis apparatus that performs the scheduling on each of CDFGs which are divided (hereinafter referred to as “divided CDFG”). A description of the same contents as the above-described embodiment will be omitted.
A configuration of a high-level synthesis apparatus according to the second embodiment will now be explained.
As shown in
The divider 162c in
The second scheduler 162b in
A high-level synthesis operation according to the second embodiment will now be explained.
This step is the same as the first scheduling step (S501) in
The divider 162c divides the CDFG generated in the first scheduling step (S801) into a plurality of divided CDFGs. For example, as shown in (A) in
The second scheduler 162b performs the second scheduling on each of the divided CDFGs in such a manner that the cycles in which the same kind of operations is performed continue as much as possible. For example, in the divided CDFGs at the previous stage of the dividing borderline DB, scheduling is performed in such a manner that operations are performed as soon as possible (that is, the operating cycles continue from an earlier cycle), while in the divided CDFGs at the subsequent stage of the dividing borderline DB, scheduling is performed in such a manner that operations are performed as late as possible (that is, the operating cycles continue from a later cycle). In other words, the second scheduler 162b performs the second scheduling in such a manner that the operating cycles are allocated to positions away from the dividing borderline DB. As a result, as shown in (B) of
The second scheduling step (S803) is followed by the binding step (S404) in
In the second embodiment, the number of divided CDFGs is not limited to two. Further, in the second embodiment, the input unit 14 may input the number of divided CDFGs and the position of the dividing borderline DB fed by the user.
According to the second embodiment, the second scheduler 162b performs the second scheduling on each of the divided CDFGs. Therefore, information required to reduce the power consumption of the LSI more efficiently than the first embodiment can be easily obtained. Further, the working efficiency on the downstream manufacturing steps for the power saving operation is higher than that according to the first embodiment.
In the second embodiment, the second scheduler 162b may perform the second scheduling in such a manner that the power saving operation cycle is prolonged as much as possible with in a predetermined number of functional units. The number of functional units may be determined on the basis of information input by the input unit 14. Therefore, information regarding an appropriate number of functional units, which is required to efficiently reduce the power consumption of the LSI, can be easily obtained.
A third embodiment of the present invention will now be explained. The third embodiment is an example of a high-level synthesis apparatus that cancels the share of the functional units when a period of time necessary in the power saving operation is not secured for the high-level synthesis results. A description of the same contents as the above-described embodiments will be omitted.
A configuration of a high-level synthesis apparatus according to the third embodiment will now be explained with reference to
The binder 163 in
A high-level synthesis operation according to the third embodiment will now be explained.
The binder 163 determines a magnitude relation between the number of non-operating cycles and a predetermined share cancelling threshold CTH. The share cancelling threshold CTH is input by the input unit 14 and used as an index in deciding whether the share of functional unit should be canceled for the power saving operation. When the number of non-operating cycles is larger than the share cancelling threshold CTH (YES in S1001), the procedure advances to a displaying step (S1002). When the number of non-operating cycles is not larger than the share cancelling threshold CTH (NO in S1001), the procedure advances to an allocating step (S1011). For example, in a case where results of the second scheduled results shown in (B) of
An output unit 18 outputs the output device 30 with two messages regarding the high-level synthesis results obtained when the second scheduling is performed. One message indicates that the number of non-operating cycles is larger than the share cancelling threshold CTH. For example, the message includes the number of non-operating cycles and the number of cycles necessary in the power saving operation. Another message is a confirmation message as for whether a share cancelling step (S1004) (described below) should be performed. In response to it, the user will feed a command as for whether the share cancelling step (S1004) should be performed through the input device 20. The command fed by the user will be input by the input unit 14, and supplied to the binder 163.
When the user feeds the command for the share cancelling step (S1004) (hereinafter referred to as “share cancelling command”) (YES in S1003), a procedure advances to the share cancelling step (S1004). When the user does not feed the share cancelling command (NO in S1003), a procedure advances to the allocating step (S1011).
The binder 163 cancels the share of functional unit and allocates new functional units to those operations to which no functional units is allocated. For example, as shown in (C) of
The binder 163 allocates the functional units to the operations based on the results scheduled by the scheduler 162. The allocating step (S1011) will be performed by a typical method.
The share cancelling step (S1004) or the allocating step (S1011) is followed by the circuit description generating step (S405) in
A specific example of a high-level synthesis operation according to the third embodiment will now be explained.
The binder 163 determines the functional units and the registers which are handled in the share cancelling step (S1004), based on the share cancelling threshold CTH. The share cancelling threshold CTH indicates a minimum number of secured non-operating cycles counted from the dividing borderline DB, which is required to perform the share cancelling step (S1004).
In ellipsoids A in
On the other hand, in broken-line rectangles B in
The share cancelling threshold CTH need not be the same value both in the divided CDFGs at the previous stage and at the subsequent stage of the dividing borderline DB. Further, the share cancelling threshold CTH may be specified in only either one of the divided CDFGs at the previous stage and at the subsequent stage.
According to the third embodiment, when the non-operating cycles necessary in the power saving operation are secured, the binder 163 cancels the share of functional unit and allocates functional units belonging to the different power supply domain to the share-cancelled functional unit. Specifically, the binder 163 cancels the share of functional unit for which the non-operating cycles necessary in the power saving operation are secured. Then, the binder 163 allocates the functional units belonging to the different power supply domains to the operations respectively in the divided CDFGs at the previous stage of the dividing borderline DB and at the subsequent stage of the dividing borderline DB, which should be performed by those share-cancelled functional units. Therefore, as for the functional units which are used only in the divided CDFG at the previous stage, a time period from a cycle which is behind the dividing borderline DB by the share cancelling threshold CTH to a cycle in which a whole operation ends is given for the power saving operation. On the other hand, as for the functional units which are used only in the divided CDFG at the subsequent stage, a time period from a cycle in which the whole operation starts to a cycle which is behind the dividing borderline DB by the share cancelling threshold CTH is given for the power saving operation. Resultantly, a sufficient lapse of time necessary for the power saving operation can be secured. In (C) of
In the third embodiment, step S1001 may be performed on the basis of a plurality of share cancelling thresholds CTH in such a manner that the number of power saving operation cycles becomes maximized.
At least a portion of the high-level synthesis apparatus 10 according to the above-described embodiments of the present invention may be composed of hardware or software. When at least a portion of the high-level synthesis apparatus 10 is composed of software, a program for executing at least some functions of the high-level synthesis apparatus 10 may be stored in a recording medium, such as a flexible disk or a CD-ROM, and a computer may read and execute the program. The recording medium is not limited to a removable recording medium, such as a magnetic disk or an optical disk, but it may be a fixed recording medium, such as a hard disk or a memory.
In addition, the program for executing at least some functions of the high-level synthesis apparatus 10 according to the above-described embodiment of the present invention may be distributed through a communication line (which includes wireless communication) such as the Internet. In addition, the program may be encoded, modulated, or compressed and then distributed by wired communication or wireless communication such as the Internet. Alternatively, the program may be stored in a recording medium, and the recording medium having the program stored therein may be distributed.
The above-described embodiments of the present invention are just illustrative, but the invention is not limited thereto. The technical scope of the invention is defined by the appended claims, and various changes and modifications of the invention can be made within the scope and meaning equivalent to the claims.
Number | Date | Country | Kind |
---|---|---|---|
2009-207458 | Sep 2009 | JP | national |