1. Field of the Invention
The present invention generally relates to a method and apparatus for designing an integrated circuit that design a circuit by dividing an integrated circuit into a plurality of blocks. Specifically, the present invention relates to a method and apparatus for designing an integrated circuit that allow efficient optimization of a circuit system that requires to be optimized across the entire integrated circuit and also allow efficient design of an integrated circuit.
2. Description of the Related Art
In an integrated circuit increased in scale year after year, generally, hierarchical designing is adopted in designing such an integrated circuit. In the hierarchical designing, an integrated circuit is divided into some blocks and the blocks are independently designed in parallel so that a large integrated circuit can be efficiently designed.
The hierarchical designing has some problems, which includes designing of a clock distribution circuit. In the clock distribution circuit, it is ideal to optimize the distribution system in the entire integrated circuit. In the conventional hierarchical designing, however, even such a clock distribution circuit is divided for each block to design a circuit.
Next, circuit designing of a clock distribution circuit performed in conventional hierarchical designing will be described in detail with reference to FIGS. 14 to 18.
When an integrated circuit is hierarchically designed, the integrated circuit is first logically designed only for logical connection between circuit elements such as a flip-flop, a latch, and a buffer by using a block as a unit, and then the integrated circuit is physically designed for specific arrangement of the circuit elements and blocks.
FIG. 14 shows an example of a clock distribution circuit that is logically designed according to hierarchical designing. In the example, it is assumed that the clock distribution circuit is logically designed by dividing an integrated circuit into four logical blocks of a logical block A, a logical block B, a logical block C and a logical block D and a clock buffer p that forms the clock distribution circuit is arranged in the logical block D. Here, a heavy line in the figure indicates logical wiring for connecting between the logical blocks.
FIGS. 15, 16, and 17 show data of net lists of the clock distribution circuit that is logically designed here.
In the net list, in the part #a of FIG. 15, it is defined that a chip of the integrated circuit has a pin ck and inputs a clock ck, that the logical block D has the pin ck1 for inputting a clock ck, the pin ck2 for outputting a signal w1, the pin ck3 for inputting the signal w1, that a logical block A has the pin ck for inputting the signal w1, that a logical block B has the pin ck for inputting the signal w1 and that a logical block C has the pin ck for inputting the signal w1 to define connection relationship between logical blocks arranged on the chip.
A part #b of FIG. 15 defines that a logical block A has the pin ck and inputs a clock ck, that a clock buffer buf2i0 shown in FIG. 14 outputs the signal w1 with the clock ck as an input, that a clock buffer buf3i1 shown in FIG. 14 outputs a signal w2 with the signal w1 as an input, and that a clock buffer buf3i2 shown in FIG. 14 outputs a signal w3 with the signal w1 as an input.
A part #b of FIG. 15 defines that a flip flop ffi0 (a flip flop at the leftmost in the left group) has the pin ck with the signal w2 as an input, that a flip flop ffi1 (a flip flop at the second place from left in the left group) has the pin ck with the signal w2 as an input, that a flip flop ffi2 (a flip flop at the third place from the left in the left group) has the pin ck with a signal w2 as an input, and that a flip flop ffi3 (a flip flop at the rightmost in the left group) has the pin ck with a signal w2 as an input.
A part #b of FIG. 15 defines that a flip fop ffi4 (a flip flop at the leftmost in the right group) has the pin ck with a signal w3 as an input, that a flip flop ffi5 (a flip flop at the second place from the left in the right group) has the pin ck with a signal w3 as an input, that a flip flop ffi6 (a flip flop at the third place from the left in the right group) has the pin ck with a signal w3 as an input, and that a flip flop ffi7 (a flip flop at the rightmost in the right group) has the pin ck with a signal w3 as an input.
A part #c of FIG. 16 defines the same thing as that in the part #b of FIG. 15 for the logical block B.
A part #d of FIG. 16 defines the same thing as that in the part #b of FIG. 15 for the logical block C.
A part #e of FIG. 17 defines that the logical block D has pins ck1, ck2, ck3 and outputs a clock ck3 with the clocks ck1, ck2 as inputs, and the same thing as that in the part #b of FIG. 15, and additionally, also defines that the clock buffer p denoted by bufli0 outputs a clock ck3 with the clock ck1 as an input.
When a designer of an integrated circuit designs a clock distribution circuit according to a hierarchical design, the designer first determines which clock circuit part is to be arranged in each block and performs logical designing with a block as a unit to create a net list of the clock distribution circuit with a block as a unit as shown in FIGS. 15 to 17. Then, the designer performs physical designing for specific arrangement of logical blocks or circuit elements as shown in FIG. 18. Here, a heavy line shown in the figure is a physical line for connecting physical blocks.
In such a manner, when an integrated circuit is divided into some blocks according to the hierarchical design to accomplish the design in the conventional technique, even a clock distribution circuit is divided for each block to design the circuit, although it would be ideal to optimize the distribution system in the clock distribution circuit across the entire integrated circuit.
In the patent documents 1 (Japanese Patent Laid-Open No. 2003-316843) and patent document 2 (Japanese Patent Laid-Open No. 8-129576) disclose techniques relating the present invention.
In the patent document 1, a technique for retrieving logic required to combine clocks from respective hierarchies, dividing the combined clock and returning the clocks to the hierarchies is described. In the patent document 2, a technique for performing clock-wiring by making each hierarchy in an expanded form and performing similar wiring by viewing the result in each hierarchy is described.
According to the conventional technique, however, there is a problem in that when an integrated circuit is divided into a plurality of blocks to accomplish the design, a circuit system such as a clock distribution circuit, which would ideally be optimized across the entire integrated circuit, cannot be efficiently optimized.
That is to say, there is a problem in that it is difficult to optimize the circuit system in consideration of skew (a difference between clock reaching times) viewed from all over the circuit when the clock distribution circuit is divided to accomplish design as in a conventional technique.
As such, a circuit system such as a clock distribution circuit, which would ideally be optimized across the entire integrated circuit, needs to be designed without being divided into blocks. However, in the conventional technique, it is difficult to optimize the circuit system across the entire integrated circuit because such a circuit system is also divided into blocks to accomplish the design.
According to the conventional technique, there is also a problem in that an integrated circuit cannot be efficiently designed when an integrated circuit is divided into a plurality of blocks to accomplish the design.
That is to say, it may be found that although the clock buffer p is in the logical D block when logical designing is performed, the clock buffer p needs to be in another physical block when physical designing is performed as shown in FIG. 14. For example, it may be found that the clock buffer p needs to be in the physical block A as shown in FIG. 19.
In such a case, the circuit needs logical correction so that the clock buffer p is in the logical block A even in logical designing.
As such, according to the conventional technique, there is also a problem in that when an integrated circuit is divided into a plurality of blocks to accomplish the design, a change made due to a physical design requirement may involve logical correction, and therefore an integrated circuit cannot be efficiently designed.