The present disclosure relates to a method and a program for automatically arranging parts on a CAD, and more specifically a method and a program for automatically arranging a plurality of types of parts constituting a semiconductor chip in a semiconductor chip arrangement area.
In processes for manufacturing a semiconductor device, a photolithographic technique is used to transfer a pattern onto a semiconductor substrate. In the photolithographic technique, a photosensitive material applied onto the semiconductor substrate is irradiated with light through a photomask. A pattern of a semiconductor chip is drawn on the photomask. A CAD device also referred to as a CAD tool is used to manufacture the photomask. CAD drawings, which are created using the CAD device, of the photomask have a hierarchical structure. That is, a file where a plurality of types of parts constituting the semiconductor chip are arranged and a file where each of various types of parts is drawn are separated so that an entire image of the semiconductor device can be easily managed.
A power device has been known as a semiconductor device for power control. In the power device, many transistors referred to as cells are arranged to be connected in parallel to control a large current. The number of arrangements of cells ranges to several millions, for example. In the CAD drawings for the power device, parts are arranged without any gap therebetween in a semiconductor chip arrangement area. The arrangement of the parts in position without any gap therebetween is implemented by automatic arrangement of the parts on a drawing surface of the CAD device.
Patent Literature 1 discloses a method for automatically designing a semiconductor integrated circuit.
A map system may be adopted as a method for automatically arranging parts. In the map system, after reading an arrangement map into a program, as illustrated in
As another automatic arrangement method, a free arrangement system for freely arranging parts without using a map may be adopted. In the free arrangement system, to identify that parts have not yet been arranged or that parts have arranged, arrangement coordinates are previously set by providing a mesh Ms as illustrated in
The present disclosure has been made to solve the above-described problems, and is directed to providing a method and a program for automatically arranging semiconductor chip parts having a small number of conditions to be set by a user and having a small calculation load.
A method for automatically arranging parts on a CAD according to the present disclosure is the method for automatically arranging a plurality of types of parts in an arrangement area on a CAD tool. Two directions perpendicular to each other in the arrangement area are an X-direction and a Y-direction, and the plurality of types of parts are each a rectangle having a side parallel to the X-direction or the Y-direction. The method for automatically arranging parts on a CAD, comprising: a part condition acquisition step for acquiring a part boundary condition, which is set for each of the types of the parts, representing the type of the part to be permitted to be arranged adjacent to the part; a part arrangement order acquisition step for acquiring an arrangement order, which is set for each of the types of the parts, of the part in the arrangement area; a boundary line acquisition step for arranging a boundary line parallel to an area termination end line as a line representing a termination end of the arrangement area in the X-direction or the Y-direction and acquiring a boundary line boundary condition representing the parts arranged in two regions separated by the boundary line; a part arrangement step for comparing the part boundary condition set for the part and the boundary line boundary condition set for the boundary line arranged in the arrangement area and arranging the part when the conditions match each other; a boundary line updating step for updating the boundary line and the boundary line boundary condition after arranging the part in the part arrangement step; a first repetition step for repeatedly performing the part arrangement step and the boundary line updating step; a part type change step for changing, when the part boundary condition and the boundary line cannot match each other, the type of the part to be arranged to the part to be arranged next in order; and a second repetition step for repeatedly performing the part arrangement step, the boundary line updating step, the first repetition step, and the part type change step according to the arrangement order.
A program for automatically arranging parts on a CAD according to the present disclosure is the program for automatically arranging a plurality of types of parts in an arrangement area on a CAD tool. Two directions perpendicular to each other in the arrangement area are an X-direction and a Y-direction, and the plurality of types of parts are each a rectangle having a side parallel to the X-direction or the Y-direction. The program for automatically arranging causes a computer to perform: a part condition acquisition step for acquiring a part boundary condition, which is set for each of the types of the parts, representing the type of the part to be permitted to be arranged adjacent to the part; a part arrangement order acquisition step for acquiring an arrangement order, which is set for each of the types of the parts, of the part in the arrangement area; a boundary line acquisition step for arranging a boundary line parallel to an area termination end line as a line representing a termination end of the arrangement area in the X-direction or the Y-direction and acquiring a boundary line boundary condition representing the parts arranged in two regions separated by the boundary line; a part arrangement step for comparing the part boundary condition set for the part and the boundary line boundary condition set for the boundary line arranged in the arrangement area and arranging the part when the conditions match each other; a boundary line updating step for deleting the boundary line that overlaps a side of the part arranged in the part arrangement step and setting the new boundary line and the boundary line boundary condition on the side of the part that does not overlap the boundary line; a first repetition step for repeatedly performing the part arrangement step and the boundary line updating step; a part type change step for changing, when the part boundary condition and the boundary line cannot match each other, the type of the part to be arranged to the part to be arranged next in order; and a second repetition step for repeatedly performing the part arrangement step, the boundary line updating step, the first repetition step, and the part type change step according to the arrangement order.
According to the present disclosure, since parts are automatically arranged using a boundary condition, the number of conditions to be set by a user can be reduced. Moreover, it can be identified that the part has not yet been arranged or that the part has using not a mesh but a boundary line. Accordingly, a calculation load, including reduction of a memory, can be small.
An embodiment will be described below with reference to the drawings. Common or corresponding elements in the drawings are each assigned the same reference numerals, and hence description is simplified or omitted.
A method for automatically arranging semiconductor chip parts according to a first embodiment will be described using as an example a case where a plurality of types of parts are arranged in a semiconductor chip arrangement area AC to be set inside a dicing line DL with reference to
(Preliminary Preparation by User)
Before performing the method for automatically arranging semiconductor chip parts, a user prepares a part CAD file, a part setting file, and a command file, and a stretch setting file described below, if necessary. These files are recorded in a memory 100b of a CAD device 1, described below.
The part CAD file is a file on which various types of parts PT to be arranged are drawn.
The part setting file is created for each type of part PT to correspond to the part CAD file. The part setting file includes first boundary conditions BB, BR, BT, and BL to be respectively set for all the sides XLp0, YLp1, XLp1, and YLp0 of the part PT, second boundary conditions BC0, BC1, BC2, and BC3 to be set for each of all corners C0 to C3, and a rotation condition representing a rotational angle to be permitted when the part PT is arranged in addition to coordinates Xmin, Ymin, Xmax, and Ymax of the part PT, as illustrated in
The first boundary condition represents the type of the part PT to be permitted to be arranged adjacent to each of the sides XLp0, YLp1, XLp1, and YLp0 parallel to the X-direction or the Y-direction. The second boundary condition represents the type of the part PT to be permitted to be arranged diagonally adjacent to each of the corners C0 to C3. The type of the part PT also includes being unable to be adjacently arranged. The part boundary condition is a boundary condition required to arrange the part PT, and a boundary condition after arrangement of the part PT need not be set.
When a condition to be set for the lower side XLp0 is described as an example of the first boundary condition, the part PT cannot be adjacently arranged because it overlaps the part PT itself on the upper side in the Y-direction of the lower side XLp0. On the other hand, the part PT is permitted to be adjacently arranged on the lower side in the Y-direction of the lower side XLp0. Accordingly, the lower boundary condition BB is set as the first boundary condition for the lower side XLp0. Similarly, the right boundary condition BR is set for the right side YLp1, the upper boundary condition BT is set for the upper side XLp1, and the left boundary condition BL is set for the left side YLp0.
when a condition to be set for the lower left corner C0 is described as an example of the second boundary condition, the part PT is permitted to be adjacently arranged diagonally downward to the left on the opposite side to the upper right corner C2 in a direction diagonal to the upper right corner C2 diagonally opposing the lower left corner C0. Accordingly, as the second boundary condition for the lower left corner C0, the diagonally lower left boundary condition BC0 is set. Similarly, the diagonally lower right boundary condition BC1 is set for the lower right corner C1, the diagonally upper right boundary condition BC2 is set for the upper right corner C2, and the diagonally upper left boundary condition BC3 is set for the upper left corner C3.
A rotational angle is set as the rotation condition. The rotational angle can be represented by a multiple of 90 degrees, for example, in a clockwise direction or a counterclockwise direction. In the map system already described, three conditions, i.e., an X coordinate and a Y coordinate as arrangement coordinates and a rotational angle need to be set for each corner, and the number of conditions to be set by a user is 12 when parts PT are each arranged at four corners. On the other hand, in the present embodiment, the number of conditions to be set by the user may be a total of three, that is, the conditions are two first boundary conditions and one rotation condition.
In a command file, commands such as a chip drawing size, an arrangement order of parts, a boundary line, an arrangement option, and a region designation are set. The commands can be described using a program language with which the CAD device 1, described below, is equipped.
The chip drawing size is lengths in the X-direction and the Y-direction of an arrangement area AC where a plurality of types of parts PT constituting a semiconductor chip are arranged, as illustrated in
The arrangement option includes a coordinate arrangement option, a line arrangement option, an offset arrangement option, and the like. In the coordinate arrangement option, two coordinates (X and Y coordinates) in which a part is arranged are described. In the line arrangement option, a line end YLe at which a part is arranged (see
When the parts PT are automatically arranged on a drawing surface of the CAD device 1 as a CAD tool, a part CAD file, a part setting file, a command file, and a stretch setting file preliminarily prepared by the user are read out from the memory 100b in the CAD device 1, and are acquired (a part condition acquisition process, a part arrangement order acquisition process, and a boundary line acquisition process).
The CAD device 1 can also create a part setting film from a CAD file where parts have already been arranged in the past. In this case, the CAD device 1 needs to be configured to be able to acquire a name or a type of the part PT, arrangement coordinates of the part, rotation/inversion information, stretch information, and size information of the part.
Then, parts are automatically arranged by the following procedure (a part arrangement process). That is, in the part arrangement process, a part boundary condition set for the part of a first type (hereinafter also merely referred to as “part”) PTa arranged in the preceding order and a boundary line boundary condition set for a boundary line arranged in the arrangement area AC are compared with each other. Specifically, a first boundary condition and a second boundary condition set for the part PTa and a third boundary condition set for the boundary line are compared with each other. A case where the same type of part PTa has already been arranged in the arrangement area AC will be described as an example. As a matching condition of boundary conditions under which the part PTa can be arranged, examples illustrated in
In the example illustrated in
In the example illustrated in
In the example illustrated in
In the example illustrated in
In the example illustrated in
When boundary conditions set for the part PTa and the two boundary lines XLa and YLa match each other, arrangement of the part PTa can be classified into eight types illustrated in
In an example illustrated in
It is examined which of the arrangement patterns is possible from the first boundary condition or the third boundary condition set for the part PTa, to perform the following operation for each of the possible arrangement patterns. That is, candidates for an XLa group and a YLa group that match the part boundary condition for the part PTa are first searched for, as illustrated in
When the arrangement of the part PTa is finished, a boundary line newly created by the arrangement of the part PTa is evaluated, to update the boundary line, as illustrated in
When the boundary line newly created by the arrangement of the part PTa overlaps the boundary line that has already existed, the boundary lines in an overlapping portion indicated by a broken line in
In the above-described procedure, the part arrangement process and the boundary line updating process are repeatedly performed (a first repetition step). If a part boundary condition set for the part PTa and a boundary line boundary condition set for a boundary line cannot match each other, i.e., the first type of part PTa cannot be arranged, the type of part is changed to a second type of part PTb to be arranged next in order (a part type change process).
A part arrangement process, a boundary line updating process, a first repetition process, and a part type change process are repeatedly performed according to an arrangement order described in a command file (a second repetition step). This makes it possible to arrange a plurality of types of parts PT in the arrangement area AC.
Since the parts are automatically arranged using the boundary condition, the number of conditions to be set by the user can be reduced. Moreover, it can be identified that the part has not yet been arranged using not a mesh Ms but the boundary line. Accordingly, a calculation load, including reduction of a memory, may be small While the part PT is repeatedly arranged, deletion and production of the boundary lines XLa and YLa are repeatedly updated, thereby making it possible to significantly more reduce the number of arrangements of the boundary lines than when new boundary lines continue to be produced. This makes it possible to reduce a calculation load including reduction of a memory.
To prevent a circuit from being disconnected, it is desirable to arrange parts without any gap therebetween in the arrangement area AC except for the above-described offset arrangement. On the other hand, if the gap between the parts is made clear after the parts are arranged, a time loss is large if the parts are rearranged. In a method for arranging an adjustment part PTaj, like in the map system already described, an amount of coordinates to be set by the user increases.
In the present embodiment, a part is provisionally arranged before the part is arranged (a provisional arrangement process). The provisional arrangement of the part means not provisionally arranging the part itself but updating a boundary line assuming that the part has been provisionally arranged, thereby making it possible to more shorten a time period required for the provisional arrangement and reduce a calculation load than when the part itself is provisionally arranged, like in the part arrangement process. To further shorten the time period required for the provisional arrangement, a provisional arrangement area At may be restricted to be smaller than an arrangement area AC, as illustrated in
In the provisional arrangement, a gap (gap region) Gp that has occurred by updating boundary lines or its function is found. A stretch line Ls is provided such that the found gap Gp is eliminated, that is, parts are arranged without any gap therebetween. The stretch line Ls is set to the maximum value max side or the minimum value min side from its initial value, as described below, thereby making it possible to stretch the dimensions of each of the parts. The boundary lines are updated assuming that the parts have been provisionally arranged, and the gap Gp immediately before the boundary lines cross each other is set as a stretch dimension. When the stretch line Ls is set to the maximum value max side, as illustrated in
As the boundary line updating procedure, a similar procedure to a procedure for the above-described part arrangement can be used. This makes it possible to use the part arrangement procedure at a maximum to update the boundary lines and to enhance versatility. Further, provisional arrangement can be performed without grasping the entire arrangement of the semiconductor chip. Moreover, in the provisional arrangement process, only the boundary lines for the provisional arrangement are updated. Accordingly, information about the parts may not be left. As a result, a calculation load can be reduced.
Although a case where the part is arranged in the rectangular arrangement area AC has been described in the present embodiment, the present invention is not limited to this. An example of a power device is a device having a periodic structure, like an IGBT and a diode constituting an RC-IGBT. For example, as illustrated in
A shape of the arrangement area AC is not limited to a rectangle, but may be a circle like a master mask illustrated in
In the power device, a gate liner GL may be arranged such that a cell arrangement region as an arrangement area AC is equally divided, as illustrated in
Next, the CAD device 1 that performs a method for automatically arranging parts on a CAD will be described with reference to
If the processing circuit includes at least one processor 100a and at least one memory 100b, each of functions of an apparatus for automatically arranging parts on a CAD is implemented by software, firmware, or a combination of software and firmware. At least one of the software and the firmware is described as a program. At least one of the software and the firmware is stored in at least one memory 100b. The at least one processor 100a reads out and executes a program stored in the at least one memory 100b. The at least one processor 100a is also referred to as a central processing unit, a processing device, a calculation device, a microprocessor, a microcomputer, or a DSP. Examples of the at least one memory 100b include non-volatile or volatile semiconductor memories such as a RAM, a ROM, a flash memory, an EPROM, and an EEPROM, a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
If the processing circuit includes at least one dedicated hardware 200, the processing circuit is implemented by a single circuit, a composite circuit, a programmed processor, a parallel-programmed processor, an ASIC, an FPGA, or their combination, for example. For example, each of the functions of the apparatus for automatically arranging parts is implemented by a processing circuit. Some of the functions of the apparatus for automatically arranging parts may be implemented by dedicated hardware 200, and the others may be implemented by software or firmware.
First, in step S11, initialization processing is performed. In the initialization processing, a sub-routine illustrated in
Then, a part setting file is acquired (step S111). Step S111 corresponds to a part condition acquisition process. First and second boundary conditions are required to arrange a part PT, and a boundary condition after arrangement of the part PT need not be set.
Then, the size of the part PT is acquired (step S112). The size of the part PT may be obtained by a part outline output function of the CAD device 1. In this case, the user can omit preliminary setting of the size of the part PT. Steps S111 and S112 are repeatedly performed until it is determined in step S113 that there is no part to be arranged next in order, that is, for all types of parts PT.
Then, a part CAD file as a CAD file of the plurality of types of parts is acquired (step S114). Then, it is determined whether or not a boundary line has been stored, and can be loaded (step S115). If the boundary line can be loaded, the boundary line is loaded (step S116). If the boundary line cannot be loaded, the boundary line is initialized (step S117). In the initialization, four boundary lines to be arranged parallel to a dicing line DL as an area termination end line of an arrangement area AC can be set. Then, it is determined whether or not stretch information as information about a stretch of the part has been stored, and can be loaded (step S118). If the stretch information can be loaded, the stretch information is loaded (step S119). If the stretch information cannot be loaded, the stretch information is initialized (step S120).
When the initialization processing ends, arrangement option processing is performed (step S12). In the arrangement option processing, a sub-routine illustrated in
In the boundary arrangement processing, a sub-routine illustrated in
In the boundary line evaluation processing, a sub-routine illustrated in
After the boundary line evaluation processing ends, it is determined whether or not the provisional arrangement flag is on (step S136). If the provisional arrangement flag is off, arrangement processing is performed (step S137).
In the arrangement processing, a sub-routine illustrated in
When the arrangement processing ends, processing in steps S131 to S137 is repeated until there is no part to be next arranged (step S138).
If it is determined in step S154 described above that the stretch dimensions have not been set, provisional arrangement pre-processing is performed (step S156).
In the provisional arrangement pre-processing, a sub-routine illustrated in
If it is determined in step S136 described above that the provisional arrangement flag is on, the processing proceeds to step S138. In step S138, the part is provisionally arranged according to a similar routine to that in the arrangement of the part. The provisional arrangement of the part is not to provisionally arrange the part itself but to update the boundary line assuming that the part has been provisionally arranged, as described above.
If it is determined in step S121 described above that an arrangement option has been set, it is determined whether or not there is coordinate arrangement option setting (step S123). If there is coordinate arrangement option setting, coordinate arrangement processing is performed (step S124).
In the coordinate arrangement processing, a sub-routine illustrated in
In the line arrangement processing, a sub-routine illustrated in
If it is determined in step S161 described above that the two coordinates have been designated, the arrangement flag is turned on (step S163), and the above-described boundary arrangement processing is performed (step S164). Then, it is determined whether or not the provisional arrangement flag is on (step S165). If the provisional arrangement flag is on, the coordinate arrangement processing ends. If the provisional arrangement flag is off, the above-described arrangement processing is performed (step S166), and the coordinate arrangement processing ends.
When the arrangement option processing ends, it is determined whether or not there is a next part arrangement order (step S13). If there is a next part arrangement order, the processing returns to step S12. On the other hand, if there is no next part arrangement order, it is determined whether or not the provisional arrangement flag is on (step S14). If the provisional arrangement flag is on, provisional arrangement post-processing is performed (step S15).
In the provisional arrangement post-processing, a sub-routine illustrated in
If it is determined in step S14 described above that the provisional arrangement flag is off, completion processing is performed (step S16).
In the completion processing, a sub-routine illustrated in
Then, an area termination end line as a line representing a termination end of the arrangement area AC of the semiconductor chip is acquired as a boundary line, and a third boundary condition to be set for the boundary line is acquired (step S114). Step S114 corresponds to the boundary line acquisition process.
According to the present embodiment, the amount of coordinates to be set by the user can be reduced to automatically arrange the part using the boundary condition. Moreover, it can be identified that the part has not yet been arranged using not a mesh Ms but the boundary line. Accordingly, a calculation load, including reduction of a memory, may be small.
The part arrangement order need not be designated. In this case, as illustrated in
In the part candidate extraction processing, a sub-routine illustrated in
Number | Date | Country | Kind |
---|---|---|---|
2022-073231 | Apr 2022 | JP | national |