This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2009-240904, filed on Oct. 19, 2009, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to wiring design support with respect to a printed substrate and a large-scale integrated circuit (LSI).
In recent years, as LSIs operate at a lower voltage and a higher signal transmission rate, specifying a design constraint condition in wiring design on a printed substrate has become widespread. In the design constraint condition, a line length corresponding to signal delay in a wiring path (transmission delay) is specified for the wiring path to match the timing of signals in a wiring pattern interconnecting components. For a wiring group of multiple wiring paths, such as a bus, an instruction is given to match signal delays so that input timing into a receiver in each wiring path becomes equal.
Generally in wiring design, the line length of an existing line is adjusted to satisfy a condition on signal delay after confirming that components can be connected across a wiring section without error. When no wiring region remains for which line length adjustment is possible, a wiring pattern of a wiring group must be shifted or a wiring route must be reconsidered from the start, which leads to a prolonged wiring design period. A design tool has been provided for designing wiring to comply with a line length constraint condition. This design tool displays a noncompliant line length on a window different from a window where a wiring pattern is displayed (e.g., see Japanese Laid-Open Patent Publication No. H11-110434).
The conventional design tool, however, poses a problem in that the correlation between a wiring pattern and a noncompliant line length is difficult to adjust, and in that an actual wiring pattern length corresponding to a noncompliant line length is difficult to image, leading to difficulty in determining whether a wiring region necessary in the adjustment of line length is sufficient.
According to an aspect of an embodiment, a non-transitory, computer-readable recording medium storing therein a design support program that causes a computer to execute selecting a wiring path whose line length is greatest among a plurality of wiring paths making up a wiring group leading from a transmission origin to a transmission destination; detecting insufficient line lengths of the wiring paths not selected, insufficiency being determined with respect to the line length of the selected wiring path; calculating the area of insufficiency according to a sum of the detected insufficient line lengths; allocating to a vicinity of the wiring group, a line length adjustment region corresponding to a sum of the areas of insufficiency calculated at calculating; and controlling a display screen to display the wiring group and the allocated line length adjustment region.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. According to this embodiment, in processing design data, a wiring path not complying with a line length constraint condition is detected automatically, and based on a noncompliant line length, a wiring region necessary in the adjustment of the line length of the wiring path is displayed near a wiring group to which the wiring path belongs. As a result, the presence/absence of a noncompliant wiring group and a wiring region necessary in the adjustment of line length (line length adjustment region) are displayed all together to a designer.
At a stage before wiring path connection, therefore, the designer is allowed to make use of a line length adjustment region, which is used by each wiring group, for determining a wiring route while visually recognizing the line length adjustment region, based on wiring connection relations. Additionally, in the wiring path connection work, the designer is allowed to carry out path connection while leaving a line length adjustment region for an already connected wiring group unused. In this manner, the designer is able to carry out wiring work while considering line length adjustment to be made later and thus, is able to efficiently carry out wiring design without any setback.
In the present specification, “wiring path” means information indicating the connection relation of a wiring subject using component pins, via-holes specifying relay points in wiring, etc. “Wiring pattern” means layout data indicative of a line serving as a conductor that electrically connects components along a wiring path.
A line length under a constraint condition is obtained by extracting a physically connected wiring pattern while checking the wiring pattern against the connection relation of wiring paths and converting each extracted wiring pattern into the line length of a wiring path by a conversion method specified by the line length constraint condition. “Noncompliant line length” represents a line length that is shorter than a reference value range under the line length constraint condition (negative value), and further represents a line length that is longer than the reference value range (positive value). To adjust the timing of a signal in a line between components, signal delay is converted numerically into a line length and is defined as a constraint on line length in the constraint condition so that signal delays are matched by matching line lengths. If signal delay is not converted into a line length but is defined as a constraint on delay in the constraint condition, the resulting difference is merely a difference in units for internal calculation. Directly processing signal delay is, therefore, possible.
In this embodiment, the presence/absence of noncompliance wiring paths and the lengths of noncompliant line lengths are displayed together to the designer in eight types of display examples. Thirteen display examples of this embodiment will be described sequentially hereinafter.
A first display example is an example of displaying a line length adjustment region for wiring paths in the vicinity of a wiring group composed of the wiring paths. The line length adjustment region is an empty area for adjusting the line lengths of the wiring paths. For example, when a given wiring path is of a line length that is too short (noncompliant line length as a negative value), the insufficient portion of the line is extended to the line length adjustment region. The first display example will hereinafter be described with reference to
In the topology 100 of (A), a driver 101 is connected to a receiver 102 via the bus 103 specified by the line length constraint condition BUS01.
The line length constraint condition of (B) provides a condition name, a path name, a line length, a reference value, and a noncompliant line length. The condition name is the name of the line length constraint condition, which is BUS01 in
In the line length constraint condition, the path name is the name of a wiring path specified under the line length constraint condition. In
The reference value is information of a reference for the wiring paths (path 1 to path 8) specified under the line length constraint condition. For example, the line length of a specific wiring path selected from the wiring paths specified under the line length constraint condition or the average line length of the wiring paths specified under the line length constraint condition is used as the reference value. In
The noncompliant value or noncompliant line length represents a line length that is shorter than the reference value range under the line length constraint condition, and further represents a line length that is longer than the reference value range. For an arbitrary wiring path, specifically, when the line length is larger than the reference value, the noncompliant line length is a positive value obtained by subtracting the upper limit line length of the range, i.e., the equal length, from the line length of the wiring path. When the line length is smaller than the reference value, the noncompliant line length is a negative value obtained by subtracting the lower limit line length of the range, i.e., the equal length, from the line length of the wiring path. When the line length of the wiring path is the equal length (length between the upper limit line length and the lower limit line length), the line length is in compliance with the line length constraint condition.
For example, the line length of the path 1 is 130.000 [mm] and the reference value is 120.500 [mm]. Subtracting the upper limit line length 121.000 [mm] (=120.500 [mm]+0.5 [mm]) from the line length 130.000 [mm] of the path 1 gives +9.000 [mm] (>0). Hence, the line length of the path 1 is in excess of 9.00 [mm].
The line length of the path 4 is 120.000 [mm] and the reference value is 120.500 [mm]. Subtracting the lower limit line length 120.000 [mm] (=120.500 [mm]−0.5 [mm]) from the line length 120.000 [mm] of the path 4 gives 0 [mm]. Hence, the line length of the path 4 is in compliance with the line length constraint condition.
The line length of the path 8 is 112.000 [mm] and the reference value is 120.500 [mm]. Subtracting the lower limit line length 120.000 [mm] (=120.500 [mm]−0.5 [mm]) from the line length 112.000 [mm] of the path 8 gives −8.000 [mm] (<0). Hence, the line length of the path 8 is insufficient by 8.000 [mm].
For each wiring path, a difference between the target line length and the line length is calculated to determine the difference to be an adjustable line length for each wiring path. Adjustable line lengths are then summed up (72.500 [mm] in
In this manner, by displaying the line length adjustment region necessary for the wiring group in the vicinity of the wiring group, the region necessary for increasing the line lengths of the wiring paths (path 1 to path 8) making up the wiring group into the equal length can be grasped.
A second display example will be described. The second display example is an example of displaying a line length adjustment region for which an obstacle is considered in the vicinity of a wiring group.
In this manner, the line length adjustment region 104 is displayed in a location that avoids the obstacles 105. This allows presentation of a highly precise estimation to the designer, thus improves design efficiency.
A third display example will be described. The third display example is an example of displaying the line length adjustment region 104 in the vicinity of the wiring group in a specified region specified by the designer.
In this manner, by displaying the line length adjustment region 104 in the specified region 106, the intention of the designer is reflected on an estimation of a design subject.
A fourth display example will be described. The fourth display example is an example of displaying a line length adjustment region even if connection of a wiring pattern is incomplete. Specifically, line lengths in an unconnected section are calculated by logical calculation, wiring path compliance/noncompliance with a line length constraint condition is checked based on the line lengths resulting from the logical calculation, and the line length adjustment region is displayed. The fourth display example will be described with reference to
In the topology 100 of (A), a driver 101 is connected to a receiver 102 via the bus 103 specified by the line length constraint condition BUS01.
Under the line length constraint condition of
The line length of the wiring path whose temporary line length is the greatest (path 1) among the wiring paths (path 1 to path 8) is determined to be a target line length for the path 1. A target line length for the remaining wiring paths (path 2 to path 8) is determined to be the lower limit line length 129.500 [mm](130.000 [mm]−0.5 [mm]) of the temporary line length of the longest wiring path (path 1).
For each wiring path, a difference between the target line length and the temporary line length is calculated to determine an adjustable line length for each wiring path. Adjustable line lengths are then summed up (72.500 [mm] in
In this manner, the line length adjustment region necessary for the wiring group is displayed in the vicinity of the wiring patterns of the connected wiring paths. Because of this, even if unconnected wiring paths (path 5 to path 8) are present, the region necessary for increasing the line lengths of the wiring paths (path 1 to path 8) making up the wiring group into the equal length can be known.
A fifth display example will be described. Similar to the fourth display example, the fifth display example is an example of displaying a line length adjustment region even if connection of a wiring pattern is incomplete. Specifically, the logical line lengths of wiring paths are calculated based not on each wiring path but on schematic route information concerning a wiring group. The wiring path compliance/noncompliance with a line length constraint condition is checked based on the logically calculated line lengths, and the line length adjustment region is displayed.
In the topology 100 of (A), a driver 101 is connected to a receiver 102 via the bus 103 specified by the line length constraint condition BUS01.
Under the line length constraint condition of (B) in
The line length of the wiring path whose temporary line length is the greatest (path 1) among the wiring paths (path 1 to path 8) is determined to be a target line length for the path 1. A target line length for the remaining wiring paths (path 2 to path 8) is determined to be the lower limit line length 130.000 [mm] (130.000 [mm]−0.5 [mm]) of the temporary line length of the longest wiring path (path 1).
For each wiring path, a difference between the target line length and the temporary line length is calculated to determine an adjustable line length for each wiring path. Adjustable line lengths are then summed up (76.000 [mm] in
In this manner, by interpolating for a unconnected section by logical calculation, a line length adjustment region for wiring paths can be displayed even in an unconnected condition, based on a schematic route. Even for an unconnected wiring group, therefore, the line length adjustment region can be confirmed through the schematic route.
A sixth display example will be described. The sixth display example is an example of display of a line length adjustment region in the case of multiple wiring groups being present in the fifth display example.
The line length adjustment region 104 for the bus 103 is displayed around the bus 103, while a line length adjustment region 903 for the bus 902 is displayed around the bus 902. In the sixth display example, the line length adjustment region 104 and the line length adjustment region 903 are displayed in an adjusted manner so as to not overlap each other.
This enables simultaneous checking of multiple wiring groups for insufficient line length adjustment regions.
A seventh display example will be described. The seventh display example is an example of displaying insufficiencies of the line length adjustment region in the second, third, and sixth display examples. An example of displaying insufficiencies of the line length adjustment region in the sixth display example will be described as a typical example.
In this manner, an insufficiency of the line length adjustment region, an area of insufficiency, and the location of an region equivalent to the area of insufficiency are known in advance, reducing setbacks in wiring design. While the insufficient regions 1001 and 1002 are displayed in the seventh display example, an area of insufficiency may be displayed in the form of a character string or a numerical value (e.g., 20 [mm2], etc.).
An eighth display example will be described. The eighth display example is an example of displaying insufficiencies of the line length adjustment region in the second, third, and sixth display examples. An example of displaying insufficiencies of the line length adjustment region in the sixth display example will be described as a typical example with reference to
If, for example, the line length adjustment region 903 is insufficient in an area of 20 [mm2], the insufficient regions 1001 and 1002 are not displayed on the same layer L2 as in the seventh display example, but rather a insufficient region 1100 is displayed on another layer (layer L3 in
The layer L3 is used as an insufficient region dedicated layer. Hence, the designer is able to intuitively know of insufficiencies by checking the layer L3. Since the insufficient region 1100 is connected to the line length adjustment region 903 via the via-holes, the insufficient region 1100 may be used directly as the line length adjustment region.
The CPU 1201 governs overall control of the design support apparatus. The ROM 1202 stores therein programs such as a boot program. The RAM 1203 is used as a work area of the CPU 1201. The magnetic disk drive 1204, under the control of the CPU 1201, controls the reading and writing of data with respect to the magnetic disk 1205. The magnetic disk 1205 stores therein data written under control of the magnetic disk drive 1204.
The optical disk drive 1206, under the control of the CPU 1201, controls the reading and writing of data with respect to the optical disk 1207. The optical disk 1207 stores therein data written under control of the optical disk drive 1206, the data being read by a computer.
The display 1208 displays, for example, data such as text, images, functional information, etc., in addition to a cursor, icons, and/or tool boxes. A cathode ray tube (CRT), a thin-film-transistor (TFT) liquid crystal display, a plasma display, etc., may be employed as the display 1208.
The I/F 1209 is connected to a network 1214 such as a local area network (LAN), a wide area network (WAN), and the Internet through a communication line and is connected to other apparatuses through the network 1214. The I/F 1209 administers an internal interface with the network 1214 and controls the input/output of data from/to external apparatuses. For example, a modem or a LAN adaptor may be employed as the I/F 1209.
The keyboard 1210 includes, for example, keys for inputting letters, numerals, and various instructions and performs the input of data. Alternatively, a touch-panel-type input pad or numeric keypad, etc. may be adopted. The mouse 1211 is used to move the cursor, select a region, or move and change the size of windows. A track ball or a joy stick may be adopted provided each respectively has a function similar to a pointing device.
The scanner 1212 optically reads an image and takes in the image data into the design support apparatus. The scanner 1212 may have an optical character reader (OCR) function as well. The printer 1213 prints image data and text data. The printer 1213 may be, for example, a laser printer or an ink jet printer.
The contents of various tables used in this embodiment will be described.
The constraint condition number corresponds to the condition name of
The wiring path number list is the list of wiring path numbers for identifying wiring paths to which the line length constraint condition is applied. The line length reference is set based on the wiring path number list. For example, when a specific wiring path number is determined to be the line length reference, the specific wiring path number is selected from the wiring path number list. Likewise, when the average line length of wiring paths is determined to be the line length reference, the average line length of a group of wiring paths specified by the wiring path number list is the line length reference.
The wiring route number list is the list of wiring route numbers for defining wiring group wiring routes specified by the wiring path number list.
The wiring path number corresponds to the path name in the line length constraint condition. The wiring connection order element list is the list of such wiring elements as component pins and via-holes that are arranged in the order of connection. The line length is the line length of a wiring path, being equivalent to the line length in the line length constraint condition. The line length determining information is information indicative of the result of a determination on whether a wiring path is in compliance with the line length constraint condition. When the line length determining information is “OK”, the wiring path is in compliance with the line length constraint condition. When the line length determining information is a numerical value, however, the wiring path is not in compliance with the line length constraint condition. A positive numerical value means excess in line length, while a negative numerical value means insufficiency in line length.
The selecting unit 3001 selects a specific wiring path whose line length is the greatest from among the wiring paths making up a wiring group connecting a transmission origin to a transmission destination. The transmission origin is, for example, the receiver 102. The wiring group is, for example, a wiring pattern consisting of a bundle of wiring paths, such as the bus 103. The selecting unit 3001 selects the wiring path whose line length is greatest from among the wiring paths making up the wiring group, as the specific wiring path. The remaining wiring paths other than the selected wiring path are, therefore, shorter in line length than the specific wiring path. The selecting unit 3001 carries out a process at step S5406 of a flowchart depicted in
The insufficient-line-length detecting unit 3002 detects insufficient line lengths of the remaining wiring paths with respect to the specific wiring path selected by the selecting unit 3001. For example, insufficient line length is calculated by subtracting the line length of a remaining wiring path from the specific wiring path.
The area of insufficiency calculating unit 3003 calculates the area of insufficiency according to the sum of insufficient line lengths of the remaining wiring paths detected by the insufficient-line-length detecting unit 3002. For example, the area of insufficiency for the wiring group is calculated by multiplying the sum of the insufficient line lengths detected by the insufficient-line-length detecting unit 3002 by a line length adjustment width read out from the design reference table 1300 depicted in
The allocating unit 3004 allocates a line length adjustment region according to the total area of insufficiency calculated by the area of insufficiency calculating unit 3003, to the vicinity of the wiring group. The definition of vicinity is as follows. In this embodiment, the lattice management table representing a group of lattices arranged in a matrix formation is adopted. As a result, a lattice including the remaining wiring path farthest from the specific wiring path or a lattice adjacent to that lattice is selected first as a lattice in the vicinity. The lattice including the remaining wiring path farthest from the specific wiring path is sufficient for wiring when the wiring pattern occupation rate of the lattice is equal to or less than a given rate, in which case, therefore, the lattice is selected as the lattice in the vicinity.
The region is expanded stepwise toward the outside of the wiring group until the region goes beyond the area of insufficiency. When the line length adjustment region is determined schematically, the lattice management table is segmented to determine the line length adjustment region in detail. These detailed processes will be described later with reference to flowcharts.
The display control unit 3005 controls a display screen to display the wiring group and the line length adjustment region allocated by the allocating unit 3004 on the display screen. The allocating unit 3004 may allocate the line length adjustment region in the vicinity of a wiring group free from an obstacle, as depicted in the second display example. The allocating unit 3004 may allocate the line length adjustment region in a region whose range is specified in the vicinity to the wiring group, as depicted in the third display example.
The arrangement position detecting unit 3006 detects the order in which the wiring paths are arranged. According to the order of arrangement of the wiring paths detected by the arrangement position detecting unit 3006, the proportional relation determining unit 3007 determines whether a proportional relation exists between insufficient line length and the order of arrangement. A proportional relation indicates a trend in variation between the insufficient line lengths following the order of arrangement of wiring paths and existence of a proportional relation is determined by calculation of correlation coefficients.
The dividing unit 3008 has a function of dividing the wiring group by a boundary line to include a specific wiring path in a sub-wiring group, based on a determination result obtained by the proportional relation determining unit 3007. If the existence of the proportional relation is determined, division of the wiring group by the dividing unit 3008 results in a sub-wiring group substantially composed of the specific wiring path only and a sub-wiring group mainly composed of the remaining wiring paths other than the specific wiring path because the specific wiring path is situated closer to one end of the arrangement of wiring paths.
In this case, for each sub-wiring group resulting from the division by the dividing unit 3008, the area of insufficiency calculating unit 3003 calculates the area of insufficiency according to the sum of insufficient line lengths of the remaining wiring paths in a sub-wiring group. Further, for each of the sub-wiring groups, the allocating unit 3004 allocates to a vicinity of the sub-wiring group, a line length adjustment region according to the area of insufficiency.
The reselecting unit 3009 has a function of newly selecting, as the specific wiring path, a wiring path arranged in the middle of multiple wiring paths, if the proportional relation determining unit 3007 determines the nonexistence of the proportional relation. Specifically, insufficient line lengths are substantially equal to each other if a proportional relation does not exist. In such a case, the wiring group is not divided with respect to the specific wiring path as reference path but rather is divided with respect to the wiring path arranged in the middle, enabling more efficient allocation by the allocating unit 3004.
The retrieving unit 3010 has a function of retrieving, for each sub-wiring group resulting from the division by the dividing unit 3008, the shortest route between ends of a boundary line and detouring the sub-wiring group. For example, the retrieving unit 3010 retrieves the shortest route that does not pass through the diagrammatic shape of a sub-wiring group (passage through the boundary is permitted).
For each sub-wiring group, the acquiring unit 3011 acquires a detouring region detouring the sub-wiring group to enable wiring, from a figure encompassed by the boundary line and the shortest route retrieved by the retrieving unit 3010. For each sub-wiring group, the setting unit 3012 adjusts the area of the detouring region acquired by the acquiring unit 3011 to make the area equal to or less than the area of insufficiency and thus, sets the line length adjustment region.
For each sub-wiring group, the determining unit 3013 determines whether the area of the detouring region is at most the area of insufficiency. If the determining unit 3013 determines the area of the detouring region to be equal to or less than the area of insufficiency, the retrieving unit 3010 newly retrieves the shortest route that is between ends of the boundary line and detours the sub-wiring group the most. This means that when multiple shortest routes are present, the shortest route that detours the sub-wiring group the most is selected, enabling selection of a larger line length adjustment region. The acquiring unit 3011 then acquires, from a figure encompassed by the boundary line and the shortest route newly retrieved by the retrieving unit 3010, a detouring region detouring the sub-wiring group.
If the determining unit 3013 determines the area of the detouring region to be equal to or less than the area of insufficiency, the generating unit generates a figure by expanding the figure encompassed by the boundary line and the shortest route newly retrieved by the retrieving unit 3010 by a given extent. Through this process, the figure is expanded stepwise until the figure covers the area of insufficiency. In this case, the acquiring unit 3011 acquires a detouring region detouring the sub-wiring group from the figure generated by the generating unit.
The temporary line length calculating unit 3015 calculates the temporary line length of an unconnected wiring path in the wiring group. Specifically, as depicted in the fourth and fifth display examples, even if some or all of wiring paths making up the wiring group are unconnected, a line length adjustment region is allocated to be displayed using temporary line lengths. In this case, the selecting unit 3001 selects a specific wiring path from among wiring paths making up the wiring group, using the temporary line length calculated by the temporary line length calculating unit 3015.
The insufficient-line-length detecting unit 3002 detects insufficient line lengths of the remaining wiring paths with respect to the specific wiring path, using the temporary line length calculated by the temporary line length calculating unit 3015. The area of insufficiency calculating unit 3003 calculates the area of insufficiency according to the sum of the insufficient line lengths of the remaining wiring paths, using the temporary line lengths calculated by the temporary line length calculating unit 3015.
The allocating unit 3004 may allocate the line length adjustment region in such a way that the allocated line length adjustment region does not overlap another line length adjustment region, as depicted in the sixth display example. The determining unit 3013 determines whether the area of the line length adjustment region is sufficient, based on the area of insufficiency, as depicted in the eighth display example. In this case, if the determining unit 3013 determines the area of the line length adjustment region to be insufficient, the allocating unit allocates to another layer, a region equivalent to the area of insufficiency, enabling the area of insufficiency to be allocated to a substitute layer.
The determining unit 3013 determines whether the area of the line length adjustment region is sufficient, based on the area of insufficiency. If the determining unit 3013 determines the area of the line length adjustment region to be insufficient, the display control unit 3005 displays the line length adjustment region on the display screen in a manner different from the manner of display in the case of the line length adjustment region being sufficient. In other words, if the line length adjustment region is insufficient, the display control unit 3005 displays the line length adjustment region in a manner that enables the designer to know that the line length adjustment region is insufficient, using a hatched pattern, character display, etc. This allows the designer to know in advance that the line length adjustment region is insufficient and thus, reduces setbacks in wiring design.
A design support procedure of this embodiment will be described.
Specifically, the substrate table 1400 of
Through the lattice management table generating process (step S3103), which will be described in detail later, the lattice management table Ga is acquired as the return value. The lattice management table Ga is a table obtained by dividing the diagrammatic shape Bd of the substrate into a mesh of lattices in the unit size Ua for the schematic lattice.
By the processing at step S3104 and subsequent steps as well as by the processing at steps S3201 to S3210 of
To realize the fifth display example, steps S3105 to S3109 are then carried out. Specifically, a loop variable I1 is set to 1 (step S3105), and whether the loop variable I1 exceeds the number of wiring groups is determined (step S3106). The number of wiring groups is equivalent to the number of line length constraint conditions, thus equal to the number of records of the line length constraint condition table of
When the loop variable I1 is equal to or less than the number of wiring groups (step S3106: NO), a wiring group under the I1-th line length constraint condition is set as a wiring group Rg (step S3107). Specifically, a group of wiring paths identified by wiring path numbers listed on the wiring path number list in the record for the I1-th wiring group in the line length constraint condition table 2000 are set as the wiring group Rg.
A wiring route schematic wiring process is then carried out (step S3108). In the wiring route schematic wiring process (step S3108), which will be described in detail later, the lattice management table Ga and the wiring group Rg are used as arguments.
Following the wiring route schematic wiring process (step S3108), the loop variable I1 is increased by 1 (step S3109), and the procedure returns to step S3106. Through this process, the wiring route schematic wiring process is carried out for all line length constraint conditions. When the loop variable I1 exceeds the number of wiring groups (step S3106: YES), the procedure proceeds to step S3201 of
In
When the loop variable I1 is equal to or less than the number of wiring groups (step S3202: NO), a wiring group under the I1-th line length constraint condition is set as a wiring group Rg (step S3203). Specifically, a group of wiring paths identified by wiring path numbers listed on the wiring path number list in the record for the I1-th wiring group in the line length constraint condition table 2000 are set as the wiring group Rg.
A wiring group mapping process is then carried out (step S3204). In the wiring group mapping process (step S3204), which will be described in detail later, the lattice management table Ga and the wiring group Rg are used as arguments.
Following the wiring group mapping process (step S3204), the loop variable I1 is increased by 1 (step S3205), and the procedure returns to step S3202. Through this process, the wiring group mapping process is carried out for all line length constraint conditions. When the loop variable I1 exceeds the number of wiring groups (step S3202: YES), the procedure proceeds to step S3206.
To realize the fourth display example, the loop variable I1 is reset to 1 (step S3206), and whether the loop variable I1 exceeds the number of wiring groups is determined (step S3207).
When the loop variable I1 is equal to or less than the number of wiring groups (step S3207: NO), a wiring group under the I1-th line length constraint condition is set as the wiring group Rg (step S3208). Specifically, a group of wiring paths identified by wiring path numbers listed in the wiring path number list in the record for the I1-th wiring group on the line length constraint condition table 2000 are set as the wiring group Rg.
An unconnected section schematic wiring process is then carried out (step S3209). In the unconnected section schematic wiring process (step S3209), which will be described in detail later, the lattice management table Ga and the wiring group Rg are used as arguments.
Following the unconnected section schematic wiring process (step S3209), the loop variable I1 is increased by 1 (step S3210), and the procedure returns to step S3207. Through this process, the unconnected section schematic wiring process is carried out for all line length constraint conditions. When the loop variable I1 exceeds the number of wiring groups (step S3207: YES), the procedure proceeds to step S3301 of
Subsequently, to realize the sixth display example, the schematic shape of a line length adjustment region is determined and a detailed region is further determined at steps S3301 to S3307.
In
A line length adjustment region schematic wiring process (step S3304), a line length adjustment region detail wiring process (step S3305), and a line length adjustment region mapping process (step S3306) are then carried out. In each of the line length adjustment region schematic wiring process (step S3304), the line length adjustment region detail wiring process (step S3305), and the line length adjustment region mapping process (step S3306), which will be described in detail later, the lattice management table Ga and the wiring group Rg are used as arguments.
Following the line length adjustment region mapping process (step S3306), the loop variable I2 is increased by 1 (step S3307), and the procedure returns to step S3302. In this manner, the schematic wiring process, detail wiring process, and mapping process on the line length adjustment region are carried out for all line length constraint conditions. When the loop variable I2 exceeds the number of wiring groups (step S3302: YES), the procedure proceeds to step S3308.
Subsequently, to realize the eighth display example, an insufficiency of the line length adjustment region is allocated to a substitute layer. Specifically, the loop variable I2 is reset to 1 (step S3308), and whether the loop variable I2 exceeds the number of wiring groups is determined (step S3309).
When the loop variable I2 is equal to or less than the number of wiring groups (step S3309: NO), a wiring group under the I2-th line length constraint condition is determined to be the wiring group Rg (step S3310). Specifically, a group of wiring paths identified by wiring path numbers listed in the wiring path number list in the record for the I2-th wiring group on the line length constraint condition table 2000 are set as the wiring group Rg.
A line length adjustment region substitute layer allocating process is then carried out (step S3311). In the line length adjustment region substitute layer allocating process (step S3311), which will be described in detail later, the wiring group Rg is used an argument.
Following the line length adjustment region substitute layer allocating process (step S3311), the loop variable I2 is increased by 1 (step S3312), and the procedure returns to step S3309. In this manner, the line length adjustment region substitute layer allocating process is carried out for all line length constraint conditions. When the loop variable I2 exceeds the number of wiring groups (step S3309: YES), a line length adjustment region displaying process is carried out (step S3313). In the line length adjustment region displaying process (step S3313), which will be described in detail later, the line length adjustment region is displayed.
In the lattice management table generating process, the diagrammatic shape S and the unit size U are used as arguments and the lattice management table G is used as a return value.
In the same manner, the number of lattices G.Gy in the y direction perpendicular to the x direction is calculated (step S3505). Specifically, the length of the diagrammatic shape G.Gr in the y direction divided by the unit size G.Gu gives the number of lattices G.Gy in the y direction. Subsequently, the total number of lattices Gz (=G.Gx×G.Gy) is calculated (step S3506), and a memory region for Gz lattices is set as a lattice array G.Ga[ ](step S3507), after which the procedure proceeds to step S3601 of
Subsequently, in
Subsequently, the loop variable I2 is increased by 1 (step S3605), and the procedure returns to step S3603. If I2>G.Gy is satisfied at step S3603 (step S3603: YES), whether I1>G.Gx is satisfied is determined (step S3606). If I1>G.Gx is not satisfied (step S3606: NO), the loop variable I1 is increased by 1 (step S3607), and the procedure returns to step S3602, at which the loop variable I2 is set to 1.
If I1>G.Gx is satisfied (step S3606: YES), every lattice array element G.Ga[I1, I2] is specified, which gives the lattice management table G as a return value. Hence the lattice management table G as a structure is built.
In the obstacle mapping process, obstacle mapping is carried out on the lattice management table G.
In
If the loop variable I1 does not exceed the number of lines (step S3802: NO), the I1-th line is set as a wiring element E1 (step S3803), and whether the wiring element E1 is part of a wiring path in a wiring group is determined (step S3804). Specifically, whether the line as the wiring element E1 (line segment connecting From-To coordinate values) is included in a wiring path identified by the wiring path number list on the line length constraint condition table 2000 is determined.
More specifically, because the wiring path is identified by referring to the wiring path table 2100 of
If the wiring element E1 is part of the wiring path in the wiring group (step S3804: YES), the wiring element E1 is not an obstacle, in which case the procedure proceeds to step S3807. If the wiring element E1 is not part of the wiring path (step S3804: NO), the wiring element E1 is an obstacle, in which case the shape of a wiring pattern of the wiring element E1 is set as a diagrammatic shape S1 (step S3805). Specifically, the line width of the line as the wiring element E1 is acquired by referring to the line table 1900 of
A pattern occupation rate calculating process is then carried out (step S3806). In the pattern occupation rate calculating process (step S3806), which will be described in detail later, the lattice management table G=Ga, the diagrammatic shape S=S1, a figure type flag Fk=1, and an addition flag Fa=1 are set. The figure type flag Fk and the addition flag Fa will be described later. With this setting, the lattice array Gp[ ] is acquired.
After a pattern occupation rate is calculated on the diagrammatic shape S1, the loop variable I1 is increased by 1 (step S3807), and the procedure returns to step S3802. If the loop variable I1 exceeds the number of lines at step S3802 (step S3802: YES), the procedure proceeds to step S3901 of
In
If the loop variable I2 has not exceeded the number of via holes (step S3902: NO), the I2-th via hole is set as a wiring element E2 (step S3903), and whether the wiring element E2 is part of a wiring path in a wiring group is determined (step S3904). Specifically, whether the coordinate values of the via hole as the wiring element E2 is included in a wiring path identified by the wiring path number list on the line length constraint condition table 2000 is determined.
More specifically, because the wiring path is identified by referring to the wiring path table 2100 of
If the wiring element E2 is part of the wiring path in the wiring group (step S3904: YES), the wiring element E2 is not an obstacle, in which case the procedure proceeds to step S3907. If the wiring element E2 is not part of the wiring path (step S3904: NO), the wiring element E2 is an obstacle, in which case the shape of a wiring pattern of the wiring element E2 is set as a diagrammatic shape S2 (step S3905).
Specifically, by referring to the via-hole table 1800 of
A pattern occupation rate calculating process is then carried out (step S3906). In the pattern occupation rate calculating process (step S3906), which will be described in detail later, the lattice management table G=Ga, the diagrammatic shape S=S2, a figure type flag Fk=1, and an addition flag Fa=1 are set. With this setting, the lattice array Gp[ ] is acquired.
After a pattern occupation rate is calculated on the diagrammatic shape S2, the loop variable I2 is increased by 1 (step S3907), and the procedure returns to step S3902. If the loop variable I2 exceeds the number of via holes at step S3902 (step S3902: YES), the procedure proceeds to step S4001 of
In
If the loop variable I3 does not exceed the number of component pins (step S4002: NO), the 13-th line is set as a wiring element E3 (step S4003), and whether the wiring element E3 is part of a wiring path in a wiring group is determined (step S4004). Specifically, whether the coordinate values of the component pin as the wiring element E3 is included in a wiring path identified by the wiring path number list on the line length constraint condition table 2000 is determined.
More specifically, because the wiring path is identified by referring to the wiring path table 2100 of
If the wiring element E3 is part of the wiring path in the wiring group (step S4004: YES), the wiring element E3 is not an obstacle, in which case the procedure proceeds to step S4007. If the wiring element E3 is not part of the wiring path (step S4004: NO), the wiring element E3 is an obstacle, in which case the shape of a wiring pattern of the wiring element E3 is set as a diagrammatic shape S1 (step S4005).
Specifically, by referring to the component pin table 1700 of
A pattern occupation rate calculating process is then carried out (step S4006). In the pattern occupation rate calculating process (step S4006), which will be described in detail later, the lattice management table G=Ga, the diagrammatic shape S=S3, a figure type flag Fk=1, and an addition flag Fa=1 are set. With this setting, the lattice array Gp[ ] is acquired.
After a pattern occupation rate is calculated on the diagrammatic shape S3, the loop variable I3 is increased by 1 (step S4007), and the procedure returns to step S4002. If the loop variable I3 exceeds the number of via holes at step S4002 (step S4002: YES), the obstacle mapping process ends.
For example, for a
The diagrammatic shape S=S1 is set in the pattern occupation rate calculating process at step S3806, the diagrammatic shape S=S2 is set in the pattern occupation rate calculating process at step S3906, and the diagrammatic shape S=S3 is set in the pattern occupation rate calculating process at step S4006. In the pattern occupation rate calculating processes at steps S3806, S3906, and S4006, the lattice management table G is the lattice management table Ga generated by the lattice management table generating process (step S3103).
The figure type flag Fk is a flag for determining whether a given diagrammatic shape element is an obstacle or a wiring path. If Fk=1 is satisfied, the diagrammatic shape element is an obstacle. If Fk=2 is satisfied, the diagrammatic shape element is a wiring path. If Fk=0 is satisfied, no determination is made.
The addition flag Fa is a flag for determining whether or not to add a rate of inclusion of a given diagrammatic shape. The rate of inclusion of the diagrammatic shape is not added if Fa=0 is satisfied, and is added if Fa=1 is satisfied. In the pattern occupation rate calculating processes at steps S3806, S3906, and S4006, both flags are set to satisfy Fk=1 and Fa=1.
A combination of the figure type flag Fk and the addition flag Fa may satisfy {Fk=0, Fa=0}. In this case, only the lattices overlapping the diagrammatic shape S given as the argument are determined to return the lattices as the lattice array Gp[ ].
In
An intersection of the diagrammatic shape Sr and the diagrammatic shape G.Gr is then set as the diagrammatic shape Sr (step S4203). The diagrammatic shape G.Gr is the rectangular shape including the diagrammatic shape S at step S3502 of the flowchart of the lattice management table generating process (step S3103). Because the diagrammatic shape S at step S3502 is the diagrammatic shape Bd (diagrammatic shape of the substrate), the diagrammatic shape G.Gr at step S4203 is the rectangular shape including the diagrammatic shape Bd of the substrate.
Whether the area of the diagrammatic shape Sr as the intersection is zero is determined (step S4204). If the area is not zero (step S4204: NO), a rectangle covered with the diagrammatic shape Sr on the lattice coordinate system of the lattice management table G (lattice management table Ga for the diagrammatic shape Bd of the substrate at steps S3806, S3906, and S4006) is set as a lattice rectangular Gr (step S4205), after which the procedure proceeds to step S4301.
In
Whether the variable I2 exceeds the maximum of the Y coordinate (Y coordinate max) of the lattice rectangular Gr is then determined (step S4303). If the variable I2 exceeds the maximum (step S4303: YES), the variable I1 is increased by 1 (step S4304), and whether the variable I1 exceeds the maximum of the X coordinate (X coordinate max) of the lattice rectangular Gr is determined (step S4305). If the variable I1 does not exceed the maximum (step S4305: NO), the procedure returns to step S4302, at which the variable I2 is set again to the minimum of the Y coordinate of the lattice rectangular Gr.
If the variable I2 does not exceed the maximum of the Y coordinate of the lattice rectangular Gr at step S4303 (step S4303: NO), a rectangular shape formed by the range Ax1, Ay1, Ax2, Ay2 of the lattice array element G.Ga[I1, I2] (i.e., lattice) is set as the diagrammatic shape Sr (step S4306).
The intersection of the diagrammatic shape S and the diagrammatic shape Sr acquired at step S4306 is then set as a diagrammatic shape Sa (step S4307). In
In
If Fk=1 is satisfied (step S4402: 1), an obstacle occupation flag G.Ga[I1, I2].Af1 for the lattice array element G.Ga[I1, I2] is set to 1 (step S4403), and the procedure proceeds to step S4405. If Fk=2 is satisfied (step S4402: 2), a wiring path occupation flag G.Ga[I1, I2].Af2 for the lattice array element G.Ga[I1, I2] is set to 1 (step S4404), and the procedure proceeds to step S4405.
Following this, whether the addition flag Fa=1 is satisfied is determined (step S4405). If Fa=1 is not satisfied (step S4405: NO), the procedure proceeds to step S4407. If Fa=1 is satisfied (step S4405: YES), the rate Ar is added to the pattern occupation rate G.Ga[I1, I2].Ar (initial value 0) of the lattice array element G.Ga[I1, I2] (step S4406) to update the pattern occupation rate G.Ga[I1, I2].Ar.
An intersection of the lattice array Gp[ ] and the lattice array element G.Ga[I1, I2] is then set as a new lattice array Gp[ ] (step S4407), and the loop variable I2 is increased by 1 (step S4408), after which the procedure returns to step S4303 of
If the area of the diagrammatic shape Sr as the intersection is zero at step S4204 of
The wiring route schematic wiring process will be described. The wiring route schematic wiring process is a process of identifying a wiring route in the wiring route table 2200 of
The wiring route of the wiring group Rg selected at step S3107 of
Whether the wiring route Rr=φ (empty set) is satisfied is then determined (step S4602). If the wiring route Rr is an empty set (step S4602: YES), the wiring route Rr is not present, which makes schematic wiring impossible, thereby terminating the wiring route schematic wiring process (step S3108).
If Rr=φ is not satisfied (step S4602: NO), the diagrammatic shape of the wiring route Rr is set as the diagrammatic shape S that is an argument in the pattern occupation rate calculating process at step S4604 (step S4603). The pattern occupation rate calculating process is then carried out (step S4604).
In the pattern occupation rate calculating process (step S4604), the lattice management table G=Ga, the diagrammatic shape S=Rr, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
A given value (>0) is added to the pattern occupation rate of each lattice in the lattice array Gp[ ] (step S4605). Because the addition flag Fa is set to 0 in the pattern occupation rate calculating process (step S4604), the pattern occupation rate G.Ga[I1, I2].Ar of the lattice array element G.Ga[I1, I2] included in the lattice array Gp[ ] remains 0. To provide each lattice in the lattice array Gp[ ] with schematic wiring, therefore, the given value is added to the pattern occupation rate G.Ga[I1, I2].Ar of the lattice array element G.Ga[I1, I2].
Subsequently, a lattice region conversion process is carried out (step S4606). The lattice region conversion process (step S4606), which will be described later, is carried out as a function that uses the lattice array Gp[ ] as an argument and that returns the diagrammatic shape Ra representing schematic wiring of the wiring group Rg as a return value.
The diagrammatic shape Ra acquired by the lattice region conversion process (step S4606) is then correlated with the wiring group Rg and is stored in the memory device (step S4607). Specifically, when a schematic region number in the schematic region table 2400 is not set in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg, (1) a new record is added to the schematic region table 2400 to set the diagrammatic shape Ra in the schematic shape information on the schematic region in the new record, and (2) the schematic region number set in the new record added at (1) is added to the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg.
If a schematic region number in the schematic region table 2400 is set in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg, (3) the schematic shape information in the record in the schematic region table 2400 that is pointed to by the schematic region number in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg is updated with the diagrammatic shape Ra. The wiring route schematic wiring process is then ended.
A wiring group mapping process will be described. The wiring group mapping process is carried out as a function of sequentially mapping wiring paths in a wiring group onto the lattice management table G (=Ga).
The lattice array Gp[ ]=φ (empty set) is set (step S4801), and the loop variable I1=1 is set (step S4802). Whether the loop variable I1 exceeds the number of wiring paths making up the wiring group Rg is then determined (step S4803). If the loop variable I1 does not exceed the number of wiring paths (step S4803: NO), the wiring path number of the I1-th wiring path defined in the wiring group Rg is set to J1 (step S4804), and the J1-th wiring path is set as the wiring path Rp (step S4805). Specifically, J1 represents the J1-th position in decreasing order from the top (left end) of the wiring path number list in a record of a line length constraint condition managed in the line length constraint condition table 2000.
The loop variable I2 is then set to 1 (step S4806), and whether the loop variable I2 exceeds the number of wiring pattern elements on the wiring path Rp is determined (step S4807). Wiring pattern elements are component pins and via-holes listed in the wiring connection order element list on the wiring path table 2100. The number of wiring pattern elements is the total number of the component pins and via-holes listed in the wiring connection order element list that are on the wiring path Rp.
If the loop variable I2 does not exceed the number of wiring pattern elements on the wiring path Rp (step S4807: NO), the number of the I2-th wiring pattern element on the wiring path Rp is set as J2 (step S4808), and the I2-th wiring pattern element on the wiring path Rp is set as the wiring pattern element E1 (step S4809). Specifically, J2 represents the J2-th position in decreasing order from the top (left end) of the wiring connection order element list in a record of the wiring path Rp managed in the wiring path table 2100.
The shape of a wiring pattern of the wiring pattern element E1 is then set as the diagrammatic shape S1 (step S4810). For example, when J2 represents the top position of the wiring connection order element list in the record of the wiring path Rp, the diagrammatic shape of the pattern element E1 (component pin or via-hole) as the top element is the diagrammatic shape S1. When the J2 represents the second or lower position from the top, a combination of the diagrammatic shape of a line from the (J2−1)-th wiring pattern element and the diagrammatic shape of the J2-th wiring pattern E1 (component or via-hole) is the diagrammatic shape S1. Following step S4810, the pattern occupation rate calculating process is carried out (step S4811).
In the pattern occupation rate calculating process (step S4811), the lattice management table G=Ga, the diagrammatic shape S=S1, the figure type flag Fk=2, and the addition flag Fa=1 are set, and the process is carried out in accordance with the procedure of
An intersection of the lattice array Gp[ ] (initial value is φ) and the lattice array Gp1[ ] is determined to set the union as a new lattice array Gp[ ] (step S4812). The loop variable I2 is then increased by 1 (step S4813), and the procedure returns to step S4807.
If the loop variable I2 exceeds the number of wiring pattern elements on the wiring path Rp (step S4807: YES), the loop variable I1 is increased by 1 (step S4818), and the procedure returns to step S4803.
If the loop variable I1 exceeds the number of wiring paths making up the wiring group Rg at step S4803 (step S4803: YES), the lattice region conversion process is carried out (step S4815). In the lattice region conversion process (step S4815), the lattice array Gp[ ] is used an argument and the diagrammatic shape Ra is returned as a return value.
The diagrammatic shape Ra including all the mapped wiring paths Rp (see
If a schematic region number in the schematic region table 2400 is set in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg, (3) the schematic shape information in the record in the schematic region table 2400 that is pointed to by the schematic region number in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg is updated with the diagrammatic shape Ra. The wiring group mapping process is then ended.
The unconnected section schematic wiring process (step S3209) for realizing the fourth display example will be described. The unconnected section schematic wiring process (step S3209) is a process of determining a diagrammatic shape in the case of schematic wiring on an unconnected section, as described in the fourth display example. The unconnected section schematic wiring process (step S3209) is carried out as a function that uses the lattice management table Ga and the wiring group Rg as arguments and that returns the wiring group Rg as a return value.
In the pattern occupation rate calculating process (step S4903), the lattice management table G=Ga, the diagrammatic shape S=Ra, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
A lattice array Gp2[ ]=φ (empty set) is set (step S4904), and the loop variable I1=1 is set (step S4905). Whether the loop variable I1 exceeds the number of wiring paths making up the wiring group Rg is then determined (step S4906).
If the loop variable I1 does not exceed the number of wiring paths (step S4906: NO), the wiring path number of the I1-th wiring path defined in the wiring group Rg is set as J1 (step S4907), and the wiring path with the wiring path number J1 is set as the wiring path Rp (step S4908), after which the procedure proceeds to step S5001 of the
If the loop variable I1 exceeds the number of wiring paths making up the wiring group at step S4906 (step S4906: YES), whether the lattice array Gp2[ ]=φ is satisfied is determined (step S4909). If the lattice array Gp2[ ]=φis satisfied (step S4909: YES), the diagrammatic shape Ra is not acquired. As a result, the unconnected section schematic wiring process (step S3209) is ended.
If the lattice array Gp2[ ]=φ is not satisfied (step S4909: NO), the diagrammatic shape correlated with the wiring group Rg is set as the diagrammatic shape Ra (step S4910), and the pattern occupation rate calculating process of
In the pattern occupation rate calculating process (step S491), the lattice management table G=Ga, the diagrammatic shape S=Ra, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
An intersection of the acquired lattice array Gp[ ] (initial value is φ) and the lattice array Gp1[ ] is determined (step S4912), and the lattice region conversion process is carried out (step S4913). In the lattice region conversion process (step S4913), the lattice array Gp[ ] is used an argument and the diagrammatic shape Ra is returned as a return value.
Subsequently, the acquired diagrammatic shape Ra is correlated with the wiring group Rg and is stored to the memory device (step S4914). Specifically, if a schematic region number in the schematic region table 2400 is not set in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg, (1) a new record is added to the schematic region table 2400 to set the diagrammatic shape Ra in the schematic shape information on the schematic region in the new record, and (2) the schematic region number set in the new record added at (1) is added to the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg.
If a schematic region number in the schematic region table 2400 is set in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg, (3) the schematic shape information in the record in the schematic region table 2400 that is pointed to by the schematic region number in the schematic region number list in the line length adjustment table 2300 that corresponds to the wiring group Rg is updated with the diagrammatic shape Ra. The unconnected section schematic wiring process is then ended.
In
An array of lattices along the shortest route 1 leading from the lattice G1 to lattice G2 on the lattice array Gp[ ] acquired by the pattern occupation rate calculating process (step S4903) are set as the lattice array Gp1[ ] (step S5004). Retrieval conditions on this shortest route 1 include the following conditions (1) to (3). (1) The shortest route 1 is the shortest route from the starting point to the end point. (2) Under condition (1), even if an imaginary wiring pattern is generated based on the shortest route and is added to lattices on the route, no lattice with the pattern occupation rate over 100% exists. (3) Under condition (1), when plural routes of the same length are found, the route that makes the sum of lattice pattern occupation rates maximum is selected.
Subsequently, whether the lattice array Gp1[ ]=φ(empty set) is satisfied is determined (step S5005). If the lattice array Gp1[ ]=φ is not satisfied (step S5005: NO), a pattern occupation rate allowing the passage of one line is added to the pattern occupation rate of each lattice of the lattice array Gp1[ ] (step S5006).
The wiring path occupation flag Af2 for each lattice of the lattice array Gp1[ ] is then set to 1 (step S5007). Subsequently, the lattice array Gp1[ ] is set as a coordinate array Go[ ] (step S5008), and a temporary wiring route is determined based on the coordinate array G0[ ] (step S5009). The coordinate array Co[ ] along the determined temporary wiring route is then correlated with the wiring path Rp and is stored in the memory device (step S5010).
Specifically, (1) a new record is added to the temporary wiring table 2700, and the coordinate array Co[ ] along the temporary wiring route is set as an unconnected section. (2) A temporary wiring number in the new record of (1) is added to the temporary wiring number list in a record of a line length adjustment number corresponding to the wiring group Rg in the line length adjustment table 2300.
An intersection of the lattice array Gp2[ ] and the lattice array Gp1[ ] is determined to set the union as the lattice array Gp2[ ] (step S5011), and the procedure returns to step S5001. If Gp1[ ]=φ is satisfied at step S5005 (step S5005: YES), whether Gp[ ]=G.Ga[ ] is satisfied is determined (step S5012), which means whether the diagrammatic shape Ra can be further expanded is determined.
If Gp[ ]=G.Ga[ ] is not satisfied (step S5012: NO), the diagrammatic shape Ra is expanded by the unit size G.Gu (step S5013), and the pattern occupation rate calculating process is carried out (step S5014).
In the pattern occupation rate calculating process (step S5014), the lattice management table G=Ga, the diagrammatic shape S=Ra, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
If Gp[ ]=G.Ga[ ] is satisfied at step S5012 (step S5012: YES), the diagrammatic shape Ra cannot be further expanded, in which case the procedure returns to step S4909 of
If no unconnected section is present on the wiring path Rp at step S5001 (step S5001: NO), the loop variable I1 is increased by 1 (step S5015), and the procedure returns to step S4906 of
Carrying out temporary wiring on the shortest route 1 means placing a wiring pattern equivalent to one line in lattices along the route 1. For this reason, the process at step S5006 is carried out beforehand. The temporary wiring route is then determined in compliance with the retrieval conditions on the shortest route 1. The temporary wiring route may identical to the shortest route 1 in some cases and may be different from the shortest route 1 in other cases. The coordinate array Co[ ] is an array of the typical coordinates of lattices making up the temporary wiring route. The typical coordinate may be a specific apex coordinate or the central coordinate of a lattice.
(B) in
The lattice region conversion process will be described. The lattice region conversion process is the process of carrying out region conversion by finding an intersection of groups of lattices and determining a final diagrammatic shape. In the lattice region conversion process, therefore, an argument is the lattice array Gp[ ] and a return value is the diagrammatic shape Sp. The lattice region conversion process is carried out at steps S4606, S4815, and S4913.
A rectangular shape formed by the range Ax1, Ay1, Ax2, Ay2 of the extracted lattice G1 is then set as the diagrammatic shape Sr (step S5204). An intersection of the diagrammatic shape Sp and the diagrammatic shape Sr is set as a new diagrammatic shape Sp that is a diagrammatic shape intersection (step S5205), after which the procedure returns to step S5202. If Gp[ ]4 is satisfied at step S5202 (step S5202: YES), the lattice region conversion process is ended.
The line length adjustment region schematic determining process will be described. In this embodiment, for the line length adjustment region, processes of schematic determining, detail determining, and mapping are carried sequentially.
In
In the pattern occupation rate calculating process (step S5402), the lattice management table G=Ga, the diagrammatic shape S=Ra, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
To realize the third display example, a user specified region for the wiring group Rg is set as a diagrammatic shape Rz (step S5403). If Rz=φ (empty set) is satisfied (step S5404: YES), no user specified region is present, in which case the procedure proceeds to step S5406. If Rz=φ (empty set) is not satisfied (step S5404: NO), an intersection of the diagrammatic shape Ra and the user specified region Rz is determined and is set as the diagrammatic shape Ra (step S5405).
Insufficient line lengths of the wiring paths of the wiring group Rg with respect to a reference length that is the line length Rx of the wiring path Rp is set as a line length Ry[ ] (step S5408). Elements of the line length Ry[ ] are insufficient line lengths of the remaining wiring paths other than the wiring path Rp, among wiring paths making up the wiring group Rg.
Whether element values in the line length Ry[ ] have a proportional relation with each other is determined (step S5409). If the element values have the proportional relation (step S5409: YES), the procedure proceeds to step S5501 of
Determination of a proportional relation will be described in detail. Where a line length adjustment region is to be located varies depending on whether the insufficient line lengths of the remaining wiring paths, other than the wiring path Rp having the greatest line length in the wiring group Rg, have a proportional relation.
(B) in
The existence of proportional relation may be determined by calculating a correlation coefficient. A correlation coefficient r for variables x and y is obtained by the following equation.
r=(covariance of x and y)/{(standard deviation of x)×(standard deviation of y)}
Returning to
Whether the lattice array Gp1[ ] as the intersection is φ (empty set) is then determined (step S5503). If Gp1[ ]=φ is satisfied (step S5503: YES), an error message is output (step S5504), after which a series of processes are ended. If Gp1[ ]=φ is not satisfied (step S5503: NO), an array of the central coordinates of lattices making up the lattice array Gp1[ ] are set as the coordinate array Co[ ] (step S5505).
Returning to
In
Likewise, the sum of insufficient line lengths of the wiring paths of the wiring group Rg2 with respect to the reference length that is the line length Rx is determined to set the sum of insufficient line lengths as a line length Rx2 (step S5604). Subsequently, the line length adjustment conversion process is carried out (step S5605). The line length adjustment conversion process (step S5605), which will be described in detail later, is carried out as a function that uses the line length Rx2 as an argument and that returns an area Rs2 as a return value. The schematic region allocating process is then carried out (step S5606). The schematic region allocating process (step S5606), which will be described in detail later, is carried out as a function that uses the lattice management table Ga, the diagrammatic shape Ra2, the coordinate array Co[ ], and the area Rs2 as arguments and that returns a diagrammatic shape Rb2 as a return value.
Subsequently, the coordinate array Co[ ], the areas Rs1 and Rs2, and the diagrammatic shapes Rb1 and Rb2 are correlated with the wiring group Rg and stored to the memory device (step S5607). Specifically, two new records are added to the schematic region table 2400, and the coordinate array Co[ ] is set in the dividing line in both records. The diagrammatic shape Rb1 is set in the substantial shape information in one of the records, while the diagrammatic shape Rb2 is set in the schematic shape information in the other of the records. The schematic region numbers in both records are added to the schematic region number list in the record in the line length adjustment table 2300 that corresponds to the wiring group Rg.
Two new records are added to the line length region table 2500, and the wiring path numbers of wiring paths making up the wiring group Rg are set in the wiring path number list in both records. The area Rs1 is set in the area of insufficiency in one of the records, while the area Rs2 is set in the area of insufficiency in the other of the records. The diagrammatic shape Rb1 is set in the schematic shape information in one of the records, while the diagrammatic shape Rb2 is set in the schematic shape information in the other of the records. At this point, the detail shape information and the detail area in both records are empty (undefined). Hence, the line length adjustment region schematic determining process is ended.
The line length adjustment conversion process will be described. The line length adjustment conversion process is carried out at steps S5602 and S5605. In the line length adjustment conversion process, the line length Rx1 (or Rx2) is used as an argument and a converted area Rs (Rs=Rs1 in the case of the line length Rx1, while Rs=Rs2 in the case of the line length Rx2) is returned as a return value. The case of line length Rx1 will be described.
Converted area Rs=1.03×Width×Rx1
“1.03” is a coefficient for establishing a relatively large area. The line length adjustment width Width is equivalent to an inter-lattice span (constant).
The schematic region allocating process will be described. The schematic region allocating process is carried out at steps S5603 and S5606. The schematic region allocating process is carried out as a function that uses the lattice management table Ga, the diagrammatic shape Ra (Ra1 or Ra2), the coordinate array Co[ ], and the area Rs (Rs1 or Rs2) as arguments and that returns the diagrammatic shape Rb1 (or Rb2) as a return value. At step S5603, the diagrammatic shape Ra1 and the area Rs1 acquired by the line length adjustment conversion process (step S5602) are set as the arguments Ra and Rs. At step S5606, the diagrammatic shape Ra2 and the area Rs2 acquired by the line length adjustment conversion process (step S5605) are set as the arguments Ra and Rs.
Subsequently, an array of coordinates from the first coordinate of the coordinate array Co[ ] to the last coordinate of the same are set as a coordinate array Cp1[ ] to determine the shortest route 2 that passes through the coordinate array Cp1[ ] (step S6502).
A diagrammatic shape encompassed by the coordinate array Co[ ] and the coordinate array Cp1[ ] is set as the diagrammatic shape S (step S6503), and the pattern occupation rate calculating process of
In the pattern occupation rate calculating process (step S6504), the lattice management table G=Ga, the diagrammatic shape S, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, a lattice array detouring region acquiring process is then carried out (step S6505). In the lattice array detouring region acquiring process, which will be described in detail later, the lattice array Gp1[ ] is used as an argument and the lattice array Gp1[ ] is returned as a return value.
A lattice array area calculating process is then carried out (step S6506). In the lattice array area calculating process, which will be described in detail later, the lattice array Gp1[ ] is used as an argument and the area Rs1 is returned as a return value.
Whether Rs1≧Rs is satisfied is then determined (step S6507). If Rs1≧Rs is not satisfied (step S6507: NO), the procedure proceeds to step S6601 of
In (B) of
The case of not satisfying Rs1≧Rs at step S6507 of
In
A diagrammatic shape encompassed by the coordinate array Co[ ] and the coordinate array Cp2[ ] is set as the diagrammatic shape S (step S6602), and the pattern occupation rate calculating process of
In the pattern occupation rate calculating process (step S6603), the lattice management table G=Ga, the diagrammatic shape S, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, a lattice array detouring region acquiring process is then carried out (step S6604). In the lattice array detouring region acquiring process, which will be described in detail later, the lattice array Gp2[ ] is used as an argument and the lattice array Gp2[ ] is returned as a return value.
A lattice array area calculating process is then carried out (step S6605). In the lattice array area calculating process, which will be described in detail later, the lattice array Gp2[ ] is used as an argument and the area Rs1 is returned as a return value.
Whether Rs1≧Rs is satisfied is then determined (step S6606). If Rs1≧Rs is not satisfied (step S6606: NO), the procedure proceeds to step S6701 of
In (B) of
The case of not satisfying Rs1≧Rs at step S6606 of
In
The diagrammatic shape S1=φ (empty set) is set (step S6704), and the diagrammatic shape S is given to the diagrammatic shape S1 (step S6705). The diagrammatic shape S except the section of the coordinate array Co[ ] is then expanded by the unit size Ua (step S6706).
Subsequently, an intersection of the diagrammatic shape S and the diagrammatic shape G.Gr is determined (step S6707), which is followed by execution of the pattern occupation rate calculating process of
In the pattern occupation rate calculating process (step S6708), the lattice management table G=Ga, the diagrammatic shape S, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, a lattice array detouring region acquiring process is then carried out (step S6709). In the lattice array detouring region acquiring process, which will be described in detail later, the lattice array Gp3[ ] is used as an argument and the lattice array Gp3[ ] is returned as a return value.
A lattice array area calculating process is then carried out (step S6710). In the lattice array area calculating process, which will be described in detail later, the lattice array Gp3[ ] is used as an argument and the area Rs1 is returned as a return value.
Whether Rs1≧Rs is satisfied is then determined (step S6711). If Rs1≧Rs is satisfied (step S6711: YES), the procedure proceeds to step S6810 of
A case of satisfying Rs1≧Rs (step S6507: YES, step S6606: YES, and step S6711: YES) will be described.
In
In the lattice management table generating process (step S6805), the diagrammatic shape S=G.Gr and the unit size U=Ub are set as arguments, and the process is carried in accordance with the procedure of
In
If I1>Gb.Gx is not satisfied (step S6902: NO), the loop variable I2 is set to 1 (step S6903), and whether I2>Gb.Gy is satisfied is determined (step S6904). Gb.Gy is 2 in
If I2>Gb.Gy is not satisfied (step S6904: NO), the rectangular shape of a lattice array element Gb.Ga[I1, I2] is set as the diagrammatic shape Sr (step S6905). The pattern occupation rate calculating process is then carried out (step S6906).
In the pattern occupation rate calculating process (step S6906), the lattice management table G=Gb, the diagrammatic shape Sr, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
The sum of the priority levels Ap of all the lattices of the lattice array Gp[ ] (lattices on the lattice management table Ga in the case of
In
Whether the priority level G1.Ap of the retrieved lattice G1 satisfies G1.Ap≦0 is determined (step S7004). If G1.Ap≦0 is satisfied (step S7004: YES), the schematic region allocating process is ended.
If G1.Ap≦0 is not satisfied (step S7004: NO), the priority level G1.Ap is turned to a negative value (step S7005). The rectangular shape of the lattice G1 is then set as the diagrammatic shape Sr (step S7006), and the pattern occupation rate calculating process of
In the pattern occupation rate calculating process (step S7007), the lattice management table G=Gb, the diagrammatic shape Sr, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, the loop variable I1 is set to 1 (step S7008), and whether the loop variable I1 exceeds the number of lattices of the lattice array Gp1[ ] is determined (step S7009). If the loop variable I1 does not exceed the number of lattices of the lattice array Gp1[ ] (step S7009: NO), the I1-th element of the lattice array Gp1[ ] is set as a lattice G2 (step S7010), and whether the priority level G2.Ap of the lattice G2 satisfies G2.Ap=0 is determined (step S7011).
If G2.Ap=0 is satisfied (step S7011: YES), the procedure proceeds to step S7013. If G2.Ap=0 is not satisfied (step S7011: NO), an intersection of the lattice array Gp[ ] and the lattice G2 is set as a new lattice array Gp[ ] (step S7012), and the procedure proceeds to step S7013, at which the loop variable I1 is increased by 1 (step S7013), after which the procedure returns to step S7009.
If the loop variable I1 exceeds the number of lattices of the lattice array Gp1[ ] at step S7009 (step S7009: YES), the lattice region conversion process of
The lattice array area calculating process is then carried out (step S7015). In the lattice array area calculating process (step S7015), which will be described later, the lattice array Gp[ ] is used as an argument and the area Rs2 is returned as a return value.
Subsequently, whether the calculated area Rs2 satisfies Rs2<Rs1 (Rs1 represents the area acquired at step S6710) is determined (step S7016). If Rs2<Rs1 is satisfied (step S7016: YES), the procedure returns to step S7003. If Rs2<Rs1 is not satisfied (step S7016: NO), the schematic region allocating process is ended.
The lattice array detouring region acquiring process will be described. The lattice array detouring region acquiring process is carried out at steps S6505 of
Whether I2>I1 is satisfied is then determined (step S7705). If I2>I1 is not satisfied (step S7705: NO), the I2-th lattice of the lattice array Gp[ ] is set as the lattice G2 (step S7706), and whether the wiring path occupation flag Af2 for the lattice G2 satisfies Af2=1 is determined (step S7707).
If Af2=1 is not satisfied (step S7707: NO), whether the wiring path occupation flag Af2 for each of lattices surrounding the lattice G2 satisfies Af2=1 is determined (step S7708). If Af2=1 is not satisfied (step S7708: NO), the loop variable I2 is increased by 1 (step S7709), and the procedure returns to step S7705.
If the wiring path occupation flag Af2=1 is satisfied at step S7707 or step S7708 (step S7707/S7708: YES), an intersection of the lattice array Gp2[ ] and the lattice G2 is set newly as the lattice array Gp2[ ] (step S7710), and the procedure proceeds to step S7801 of
In
If Gp2[ ]=φ is not satisfied (step S7801: NO), lattices that can be hatched in the lattice array Gp[ ], the lattices starting from an element of the lattice array Gp2[ ], are set as the lattice array Gp2[ ] (step S7802). Whether a lattice can be hatched is determined based on whether the lattice has an empty space wide enough to traverse a wiring path. Specifically, whether a lattice can be hatched is determined based on whether the following conditions (1) and (2) are met. (1) When the obstacle occupation flag Af1 is 1, the wiring pattern occupation rate is equal to or less than a given value (>0). (2) When the wiring path occupation flag Af2 is 1, the sum of the wiring pattern occupation rate of a lattice to be hatched and the same rate of any one of the lattices at the front/rear and to left/right of the lattice to be hatched is equal to or less than a given value (>0). Subsequently, an intersection of the lattice array Gp1[ ] and the lattice array Gp2[ ] is set newly as the lattice array Gp1[ ] (step S7803). The lattice array Gp2[ ] is then deleted from the lattice array Gp[ ], and the resulting lattice array Gp[ ] is set as a new lattice array Gp[ ] (step S7804).
Subsequently, whether the loop variable I1 exceeds the number of lattices of the lattice array Gp[ ] is determined (step S7805). If the loop variable I1 exceeds the number of lattices of the lattice array Gp[ ] (step S7805: YES), the procedure returns to step S7702 of
The lattice array area calculating process will be described. The lattice array area calculating process is carried out at steps S6710 of
For example, for the lattice array Gp[ ]={[1, 2], [2, 2], [3, 2]}, subtracting the area of a wiring path (or obstacle) 7900 from the sum of the areas of the lattices [1, 2], [2, 2], and [3, 2] gives the area Rs.
The area of the diagrammatic shape Sr is set as the area Rs1 (step S8005), and a value obtained by multiplying the area Rs1 by the pattern occupation rate G1.Ar of the lattice G1 is added to the area Rs to update the area Rs (step S8006). The procedure then returns to step S8002. If Gp[ ]4 is satisfied at step S8002 (step S8002: YES), the lattice array area calculating process is ended.
The line length adjustment region detail determining process will be described. The line length adjustment region detail determining process is carried out at step S3305 of
The diagrammatic shape Rb1 and the area Rs1 thereof, which are respectively correlated with the wiring group Rg (correlated at step S5607 in the procedure of the line length adjustment region schematic determining process (step S3304) of FIG. 56)), are then read out.
In
In the lattice management table generating process (step S8105), the diagrammatic shape Rb1 is expanded by the unit size Ub into the diagrammatic shape S1 to use the diagrammatic shape S1 and the unit size Ub as arguments and the lattice management table Gb is returned as a return value.
Subsequently, the obstacle mapping process of
The wiring group mapping process of
In
In the pattern occupation rate calculating process (step S8204), the lattice management table G=Gb, the diagrammatic shape Sr, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, the wiring path occupation flag Af2 for each of lattices of the lattice array Gp2[ ] acquired as the return value is set to 1 (step S8205), and the loop variable I1 is increased by 1 (step S8206), after which the procedure returns to step S8202.
In
The area of the diagrammatic shape Rc1 acquired as the return value is set as an area Rt1 (step S8208), and the diagrammatic shape Rc1 and the area Rt1 are correlated with the wiring group Rg and stored to the memory device (step S8209). Specifically, in one record among new records added to the line length region table 2500 by the line length adjustment region schematic determining process (step S3304), in which one record the area Rs1 and the diagrammatic shape Rb1 are set in the area of insufficiency and the schematic shape information, respectively, the diagrammatic shape Rc1 is set in the detail shape information and the area Rt1 is set in the detail area. The procedure then proceeds to step S8301 of
In
In the lattice management table generating process (step S8303), the diagrammatic shape Rb2 is expanded by the unit size Ub into the diagrammatic shape S2 to use the diagrammatic shape S2 and the unit size Ub as arguments and return the lattice management table Gb as a return value.
Subsequently, the obstacle mapping process of
The wiring group mapping process of
Subsequently, steps s8401 to S8409 of
In
In the pattern occupation rate calculating process (step S8404), the lattice management table G=Gb, the diagrammatic shape Sr, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
Subsequently, the wiring path occupation flag Af2 for each of lattices of the lattice array Gp2[ ] acquired as the return value is set to 1 (step S8405), and the loop variable I1 is increased by 1 (step S8406), after which the procedure returns to step S8402.
If the loop variable I1 exceeds the number of lattices of the lattice array Gp1[ ] at step S8402 (step S8402: YES), the detail region allocating process is carried out (step S8407). The detail region allocating process (step S8407), which will be described in detail later, is carried out as a function that uses the lattice management table Gb, the diagrammatic shape Rb2, and the area Rs2 as arguments and that returns a diagrammatic shape Rc2 as a return value.
The area of the diagrammatic shape Rc2 acquired as the return value is set as an area Rt2 (step S8408), and the diagrammatic shape Rc2 and the area Rt2 are correlated with the wiring group Rg and stored to the memory device (step S8409). Specifically, in one record among new records added to the line length region table 2500 by the line length adjustment region schematic determining process (step S3304), in which one record the area Rs2 and the diagrammatic shape Rb2 are set in the area of insufficiency and the schematic shape information, respectively, the diagrammatic shape Rc2 is set in the detail shape information and the area Rt2 is set in the detail area. Thus, the line length adjustment region detail determining process ends.
The detail region allocating process will be described. The detail region allocating process is carried out at steps S8207 of
In the pattern occupation rate calculating process (step S8901), the lattice management table G=Gb, the diagrammatic shape Rb, the figure type flag Fk=0, and the addition flag Fa=0 are set, and the process is carried out in accordance with the procedure of
A group of lattices with the wiring path occupation flag Af2=1 in the lattice array G.Ga[ ] are set as a lattice array Gp1[ ] (step S8902), and the lattice array Gp2[ ] and the lattice array Gp3[ ] are set as empty lattice arrays (step S8903). The procedure then proceeds to step S9001 of
The initial value of the lattice array Gp1[ ] is the group of lattices with the wiring path occupation flag Af2=1 that are encompassed by a thick line in
In
Whether the lattice G1 is included in the lattice array Gp2[ ] is then determined (step S9004). If the lattice G1 is included (step S9004: YES), the procedure returns to step S9001. If the lattice G1 is not included (step S9004: NO), an intersection of the lattice array Gp2[ ] and the lattice G1 is set as a new lattice array Gp2[ ] (step S9005).
Whether the lattice G1 is included in the lattice array Gp[ ] is then determined (step S9006). The lattice array Gp[ ] is a set of lattices intersecting with the diagrammatic shape Rb that is the function argument. At step S9006, therefore, whether the lattice G1 is a lattice in the diagrammatic shape Rb as the function argument is determined. If the lattice G1 is a lattice in the diagrammatic shape Rb, the lattice G1 is added to the lattice array Gp3[ ] and surrounding lattices at the top/bottom and left/right of the lattice G1 are added to the lattice array Gp1[ ].
If the lattice G1 is not included in the lattice array Gp[ ] (step S9006: NO), the lattice region conversion process (step S9011) is carried out. If the lattice G1 is included in the lattice array Gp[ ] (step S9006: YES), an intersection of the lattice array Gp3[ ] and the lattice G1 is set as a new lattice array Gp3[ ] (step S9007), and the lattice array area calculating process of
Whether the area Rs1 of the diagrammatic shape making up the lattice array Gp3[ ] satisfies Rs1≧Rs is determined (step S9009). If Rs1≧Rs is satisfied (step S9009: YES), the lattice region conversion process (step S9011) is carried out. If Rs1≧Rs is not satisfied (step S9009: NO), an intersection of the lattice array Gp1[ ] and surrounding lattices at the top/bottom and left/right of the lattice G1 is set as a new lattice array Gp1[ ] (step S9010), after which the procedure returns to step S9001.
If the lattice array Gp1[ ]=φ is satisfied (step S9001: YES), the lattice region conversion process (step S9011) is carried out. In the lattice region conversion process (step S9011), the lattice array Gp3[ ] is used as an argument and the diagrammatic shape S serving as a detail region is returned as a return value.
The line length adjustment region mapping process will be described. The line length adjustment region mapping process is the process of reflecting a line length adjustment region as an obstacle.
In the pattern occupation rate calculating process (step S9202), the lattice management table G=Ga, the diagrammatic shape Rc1, the figure type flag Fk=2, and the addition flag Fa=1 are set, and the process is carried out in accordance with the procedure of
In the pattern occupation rate calculating process (step S9203), the lattice management table G=Ga, the diagrammatic shape Rc2, the figure type flag Fk=2, and the addition flag Fa=1 are set, and the process is carried out in accordance with the procedure of
As a result, by the line length adjustment region mapping process (step S3306), the lattice arrays Gp[ ]included in the diagrammatic shapes Rc1 and Rc2 can be mapped as the line length adjustment region to be drawn.
The line length adjustment region substitution layer allocating process will be described. The line length adjustment region substitution layer allocating process is the process of allocating a portion of shortage of a line length adjustment region to a substitution layer, and is carried out, specifically, as a function that uses the wiring group Rg as an argument and that retunes diagrammatic shapes Rb3 and Rc3 and areas Rs3 and Rt3 as return values.
The areas Rs1 and Rs2 are the areas of the diagrammatic shapes Rb1 and Rb2 that are correlated with the wiring group Rg in the line length adjustment region schematic determining process (step S3304). The areas Rt1 and Rt2 are the areas of the diagrammatic shapes Rc1 and Rc2 that are correlated with the wiring group Rg in the line length adjustment region detail determining process (step S3305).
The area Rs3 is then calculated (step S9303). The area Rs3 is calculated by the equation: Rs3=(Rs1+Rs2)−(Rt1+Rt2). Whether Rs3>0 is satisfied is then determined (step S9304). Based on the result of this determination, whether the line length adjustment region is in short is determined. If Rs3>0 is not satisfied (step S9304: NO), the procedure is ended without allocating a portion of shortage of the line length adjustment region to the substitution layer.
If Rs3>0 is satisfied (step S9304: YES), the line length adjustment region is insufficient, so the line length region is allocated within the range of the shape of the wiring group Rg. Specifically, the diagrammatic shape of the substrate is set as the diagrammatic shape Bd (step S9305), the size per lattice for the schematic lattice is set as the unit size Ua (step S9306), and lattice management table generating process of
In the lattice management table generating process (step S9307), the diagrammatic shape S=Bd and the unit size U=Ua are used as arguments and the lattice management table Ga is returned as a return value. The obstacle mapping process of
The diagrammatic shape Ra correlated with the wiring group Rg is set as the diagrammatic shape Ra (step S9309), and the coordinate array Co[ ]φ (empty set) is set (step S9310). The schematic region allocating process of
In the schematic region allocating process (step S9311), the lattice management table Ga, the diagrammatic shape Ra, the coordinate array Co[ ], and the area Rs3 are used as arguments and the diagrammatic shape Rb3 is returned as a return value. Subsequently, the size per lattice for the detail lattice is set as the unit size Ub (step S9312), and lattice management table generating process of
In the lattice management table generating process (step S9313), the diagrammatic shape S=Rb3 and the unit size U=Ub are used as arguments and the lattice management table Gb is returned as a return value. The obstacle mapping process of
The detail region allocating process of
The area of the diagrammatic shape S=Rb3 is set as the area Rt3 (step S9316), and the diagrammatic shapes Rb3 and Rc3 and the areas Rs3 and Rt3 are correlated with the wiring group Rg and are stored in the memory device (step S9317).
Specifically, a new record is added to the schematic region table 2400, and the diagrammatic shape Rb3 is set in the schematic shape information in the newly added record. A layer number is set to a number different from a layer number set in the record containing the schematic region number corresponding to the wiring group Rg. In this case, although any layer may be set as long as the diagrammatic shape Rb3 can be disposed on the set layer, setting a layer with a layer number close to the layer number set in the record containing the schematic region number corresponding to the wiring group Rg is preferable. The dividing line is left undefined.
A new record is added to the line length region table 2500, and the wiring path number of a wiring path making up the corresponding wiring group Rg is set in the wiring path list in the newly added record. The area of insufficiency is left undefined, and the diagrammatic shape Rb3 is set in the schematic shape information. The diagrammatic shape Rc3 is set in the detail shape information, and the area Rt3 is set in the detail area. The line length adjustment number of the new record set in this manner is then added to the line length number list in the new record that is added to the schematic region table 2400. Hence, the liner length adjustment region substitution layer allocating process is ended.
The line length adjustment region displaying process will be described. The line length adjustment region displaying process is the process of displaying a line length adjustment region by drawing the line length adjustment region on the display screen. The end of the line length adjustment region displaying process means the end of all processes.
An area Rs4 is then calculated (step S9406). The area Rs4 is calculated by the equation: Rs4=(Rs1+Rs2)−(Rt1+Rt2+Rt3). A hatching pattern in drawing on the screen is then altered to a pattern in the case of a line length adjustment region being sufficient (step S9407), and whether Rs4>0 is satisfied is determined (step S9408).
When Rs4>0 is not satisfied (step S9408: NO), the procedure proceeds to step S9410. If Rs4>0 is satisfied (step S9408: YES), the hatching pattern in drawing on the screen is then altered to a pattern in the case of the line length adjustment region being insufficient (step S9409), after which the procedure proceeds to step S9410.
At step S9410, the diagrammatic shapes Rc1, Rc2, and Rc3 correlated with the wiring group are set as the diagrammatic shapes Rc1, Rc2, and Rc3 (step S9410), and whether Rc1=φ (empty set) is satisfied is determined (step S9411). When Rc1=φ is satisfied (step S9411: YES), the procedure proceeds to step S9413. If Rc1=φ is not satisfied (step S9411: NO), the diagrammatic shape Rc1 is drawn (step S9412), and the procedure proceeds step S9413.
At step S9413, whether Rc2=φ (empty set) is satisfied is determined (step S9413). If Rc2=φφis satisfied (step S9413: YES), the procedure proceeds to step S9415. If Rc2=φis not satisfied (step S9413: NO), the diagrammatic shape Rc2 is drawn (step S9414), and the procedure proceeds step S9415.
At step S9415, whether Rc3=φ (empty set) is satisfied is determined (step S945). If Rc3=φ is satisfied (step S9415: YES), the procedure proceeds to step S9417. If Rc3=φ is not satisfied (step S9415: NO), the diagrammatic shape Rc3 is drawn (step S9416), and the procedure proceeds step S9417.
At step S9417, the loop variable I1 is increased by 1 (step S9417), and the procedure returns to step S9402. If the loop variable I1 is larger than the number of wiring group (step S9402: YES), the line length adjustment region displaying process is ended.
As described above, according to this embodiment, a wiring path not compliant with a line length constraint condition is detected automatically. Based on the noncompliant line length of the wiring path, a wiring region necessary for adjusting the line length of the wiring path is displayed in the vicinity of a wiring group to which the wiring path belongs.
As a result, the presence/absence of a noncompliant wiring group and a wiring region necessary for line length adjustment are displayed all together to the designer. At the stage before wiring path connection, therefore, the designer is allowed to make use of the line length adjustment region, which is used by each wiring group based on wiring connection relations, for considering a wiring route while displaying the line length adjustment region. In wiring path connection work, in addition, the designer is allowed to carry out wiring path connection while leaving a line length adjustment region for an already connected wiring group unused. In this manner, the designer is able to carry out wiring work while considering line length adjustment to be made later and thus is able to efficiently carry out wiring design without any setback.
Based on the proportional relation between insufficient line lengths in a wiring group, the wiring group is divided. This allows a line length adjustment region to be allocated to wiring paths requiring line length adjustment other than a reference wiring path, thus facilitating line length adjustment work to follow.
When the proportional relation does not exist, the wiring paths of the wiring group is divided with respect to the wiring path in the middle thereof. As a result, line length adjustment regions are allocated equally to both sides of the wiring group, which facilitates line length adjustment work to follow.
When the wiring group is divided, a detouring region is acquired along the shortest route, and the line length adjustment region is expanded stepwise from a vicinity of the wiring group. The line length adjustment region is thus expanded to a size equivalent to the size of an area of insufficiency while kept located in the vicinity of the wiring group.
The line length adjustment region is allocated so as not to overlap an obstacle. This prevents setbacks in designing. The line length adjustment region is allocated in a range specified by the designer. This allows the designer to carry out intended line length adjustment. The size and position of the line length adjustment region can be estimated even if wiring paths are unconnected. This allows the designer to consider line length adjustment in advance before or during wiring path connection.
An area of insufficiency is displayed in a different manner. This allows the designer to know in advance the shortage of the line length adjustment region, an area of insufficiency, and the location of a region equivalent to the area of insufficiency, thus reducing setbacks in wiring design.
The design support method described in the present embodiment may be implemented by executing a prepared program on a computer such as a personal computer and a workstation. The program is stored on a non-transitory computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, read out from the recording medium, and executed by the computer. The program may be a transmission medium that can be distributed through a network such as the Internet.
The embodiments of the present invention offer an effect of intuitively expressing the optimum size and position of a region for line length adjustment to improve the convenience for a designer.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2009-240904 | Oct 2009 | JP | national |