Implementation design support method and apparatus

The disclosed method includes: identifying a first reference component from among first components defined in a first constraint condition that is a reference designated from among constraint conditions regarding a position relationship between plural components on a printed circuit board; identifying a second reference component from among second components defined in a second constraint condition that is to be compared with the first constraint condition and included in the constraint conditions; and identifying a fourth component that is a component other than the second reference component among the second components and has a correspondence with a third component, based on position relationships with the third component and an attribute of the third component, wherein the third component is a component other than the first reference component among the first components.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-076095, filed on Mar. 30, 2011, the entire contents of which are incorporated herein by reference.

FIELD

This technique relates to a technique for supporting design of printed circuit boards.

BACKGROUND

FIG. 1illustrates an example of a procedure performed in development of a printed circuit board. In the development of the printed circuit board, there are steps such as specification design, circuit design, implementation design, analysis (confirmation), trial manufacture of the board, and mass production. In the specification design, system requirements such as the functions to be achieved, and manufacturing conditions such as the placement restrictions and the number of layers are determined, and instructions are given to the designer of the circuit design by way of a specifications document. In the circuit design, a netlist expressing the components and power supply to be used and the wiring of those components, and constraint conditions in the implementation are determined, after which instructions are given to the implementation designer. The netlist is exchanged, for example, in EDIF (Electronic Design Interchange Format) format. Moreover, the constraint conditions include, for example, the position relationship among components, the wiring length of the network, the wire spacing, the number of bypass capacitors and the like. The constraint conditions are also exchanged as electronic data in a format that can be read, for example, by a CAD (Computer Aided Design) system. In the implementation design, the arrangement of components and the wiring pattern on the printed circuit board are designed. In the work up to this point, the actual layout on the printed circuit board is determined. After that, in the analysis (confirmation), the layout data is used in performing the analysis of whether any problems in the manufacturing will occur. CAM (Computer Aided Manufacturing) data for manufacturing the printed circuit board is then given to the production line, and a trial printed circuit board is manufactured, and when there are no problems, the printed circuit board is mass-produced.

In such a procedure as this, there are already systems that automatically carry out the implementation design of the printed circuit board. For example, using a database that stores standard shapes, constraints on the design, placement order of circuit blocks and the like, the placement of the circuit blocks and the wiring between the circuit blocks are determined so as to satisfy the constraints on the design, and to be accommodated within a predetermined board.

Here, an example of constraint conditions for the netlist and position relationship of components that are determined in the circuit design will be explained usingFIG. 2AandFIG. 2B. First, in order to define the components, power supply, ground and the like, and the connection relationships of these, the designer of the circuit design creates data for a circuit diagram such as illustrated inFIG. 2A. In the circuit diagram illustrated inFIG. 2A, component pin2of component I2is connected with component pin1of component C4, component pin1of component R1and component pin1of component R2, respectively. From data of such a circuit diagram, a netlist is then created that includes data for the components and the like, and data for the connection relationships among those components, and that netlist is given to the designer of the implementation design. The designer of the circuit design also sets constraint conditions such as illustrated inFIG. 2Bfor the position relationships of component groups that are included in such a circuit diagram. In the constraint conditions illustrated inFIG. 2B, a condition that “components C4, R1and R2are to be placed within 15 mm from component I2” is defined. Typically, plural constraint conditions for a part of the components included in such a circuit diagram are registered. Here, in case that the designer of the implementation design determines the placement position on the printed circuit board for components that are regulated in one constraint condition, when it is possible to apply the placement position of the components to components that are regulated in another suitable constraint condition, it is possible to lighten the burden of the work.

However, in the circuit design that is carried out before the implementation design, designation that it is possible to apply the placement position on the printed circuit board for a component defined in a certain constraint condition to the placement position of a component defined in another constraint condition is not always made. Moreover, there is also a case where, even when the association between the constraint conditions is recognized, the correlation between components that are regulated in one constraint condition and components that are regulated in another constraint condition may not always be clear. Furthermore, there is also a case where components having no correlation may be included in one of the constraint conditions.

In an analog LSI (Large Scale Integrated circuit), there is also an element shape determining method for satisfying the layout constraints and achieving the large-scale integration. For example, a closely spacing condition that is set in advance to keep the same shape is input, and when there are plural elements in the netlist, which match with the condition, those elements are handled as one group. Moreover, when there are elements which correspond to basic shape designation in which the basic shape is defined in advance, the element shape is determined using that basic shape.

In addition, in the design of the analog LSI, there is also a technique for selecting the optimum wiring candidate elements. For example, when an arbitrary element that has already been wired is treated as a reference element, all of the elements that will be connected to that reference element are extracted, and the connection relationships between the reference element and the extracted elements are compared with a layout condition file to carry out ranking of placement candidate elements, and the placement candidate elements are automatically selected according to that ranking.

Conventionally, the correlation between components defined in the constraint condition as a reference and components defined in another constraint condition cannot be clearly grasped.

SUMMARY

An information processing method relating to this technique includes: (A) identifying a first reference component from among first components defined in a first constraint condition that is a reference designated from among constraint conditions regarding a position relationship between plural components on a printed circuit board; (B) identifying a second reference component from among second components defined in a second constraint condition that is to be compared with the first constraint condition and included in the constraint conditions; and (C) identifying a fourth component that is a component other than the second reference component among the second components and has a correspondence with a third component, based on position relationships with the third component and an attribute of the third component, wherein the third component is a component other than the first reference component among the first components.

DESCRIPTION OF EMBODIMENTS

FIG. 3illustrates a functional block diagram of an information processing apparatus1relating to an embodiment of this technique. The information processing apparatus1relating to this embodiment has: an input unit101that accepts inputs from a user; a data storage unit103, a circuit data storage unit105that stores data concerning a circuit diagram that was designed by a user in the circuit design; a constraint condition data storage unit107that stores constraint condition data that represents constraints when implementing the circuits that are defined by the circuit diagram data on a printed circuit board; a reference component identifying unit109; a component library data storage unit111that stores data about components that can be used in the circuit design; a corresponding component identifying unit113; an output unit115; and a display unit117.

The input unit101accepts inputs from a user, and identifies, from constraint condition data that is stored in the constraint condition data storage unit107, reference conditions that will be a reference when correlating components, and target conditions that will be compared with the reference conditions, and stores data for identifying the reference conditions and data for identifying the target conditions into the data storage unit103. The reference component identifying unit109uses the data that is stored in the data storage unit103to identify, from among the components that are defined in the reference conditions and the target conditions, reference components that will be a reference when comparing components that are defined in the reference conditions and the target conditions, and stores the processing result in the data storage unit103. The corresponding component identifying unit113uses data that is stored in the data storage unit103, circuit data storage unit105, constraint condition data storage unit107and component library data storage unit111to identify the correlation between the components that are defined in the constraint conditions stored in the constraint condition data storage unit107, and stores the constraint condition data for which the correlation with the components was identified, in the constraint condition data storage unit107. Incidentally, circuit diagram data that is created in the circuit design is not included in the netlist or constraint conditions that are given to the implementation designer. The corresponding component identifying unit113of this embodiment identifies from among components that are defined in a certain constraint condition and components that are defined in another constraint condition, combinations of components to which the similar placement position can be applied in the implementation design, based on such circuit diagram data. The output unit115then outputs data that is stored in the circuit data storage unit105and in the constraint condition data storage unit107. Information representing the combination of components to which the similar placement position can be applied in the implementation design is included in the outputted data. The display unit117also uses data that is stored in the data storage unit103, circuit data storage unit105, constraint condition data storage unit107and component library data storage unit111to carry out a suitable display processing.

Next,FIG. 4toFIG. 27will be used to explain the processing by the information processing apparatus1that is illustrated inFIG. 3. It is presumed that an extraction algorithm, which is used to identify corresponding components, was selected in advance in this embodiment by a user, and judgment conditions and threshold values, which are used when determining the correlation between components, are stored in advance in the data storage unit103.

Moreover, it is presumed that a component library table such as illustrated inFIG. 4is registered beforehand in the component library data storage unit111. The component library table illustrated inFIG. 4includes items of a component library ID (identifier), component name, component type, component pin information and characteristic value. Components that will be used in the circuit design are registered in the component library table. It is presumed that unique identifiers in the table are set in a column of the component library ID, component names are set in a column of the component name, the type of component such as resistor, capacitor, coil and the like are set in a column of the component type, the numbers that are attached for convenience to the component pins, and attributes of the component pins, which represent properties such as whether the pin is a positive pole or negative pole are set in a column of the component pin information, and characteristic values of each of the components are set in a column of the characteristic value.

When the user completes the circuit design, it is presumed that a circuit diagram table such as illustrated inFIG. 5, a component table such as illustrated inFIG. 6, a component pin table such as illustrated inFIG. 7and a network table such as illustrated inFIG. 8are stored in the circuit data storage unit105. The circuit diagram table illustrated inFIG. 5includes items of a circuit diagram ID (identifier), circuit diagram name, link to the component table and link to the network table. The unique identifier in the table is registered in a column of the circuit diagram ID, the name attached to the circuit diagram are registered in a column of the circuit diagram name, a link to a record in the component table, which represents a component included in the circuit diagram, is registered in a column of the component table link, and a link to a record in the network table, which represents a network included in the circuit diagram, is registered in a column of the network table link. A record that includes such items is stored in association with the circuit diagram designed by the user.

Moreover, the component table illustrated inFIG. 6includes items of a component ID (identifier), component name, component library ID (identifier), attributes, sheet number, position, link to a component pin table and link to a constraint condition table. It is presumed that a unique identifier in the table is registered in a column of the component ID, a component name is registered in a column of the component name, an identifier of a corresponding component that is registered in the component library table is registered in a column of the component library ID, attributes that represent the properties of the component are registered in a column of the attributes, the number that is attached to a sheet that are obtained by conveniently dividing circuit diagram data as will be explained later is registered in a column of the sheet number, and coordinates of a position where the component in a sheet representing a circuit diagram is located are registered in a column of the position. A record that includes such items is correlated and registered with each of the components that are used in the circuit diagram designed by the user.

The component pin table that is illustrated inFIG. 7includes items of a component pin ID (identifier), component pin name, attributes, link to the component table, link to the network table and link to the constraint condition table. A unique identifier in the table is set in a column of the component ID, the name attached to the component pin is set in a column of the component pin name, attributes that represent the properties of the component such as whether the pin is a positive pole or negative pole, are set in a column of the attributes, a link to a record in the component table, which represents a component having that component pin, are set in a column of the link to the component table, and a link to a record in the constraint condition table, which represents constraint conditions when the constraint conditions are set for that component pin, are set in a column of the link to the constraint condition table. A record that includes such items is correlated and registered with each of the component pins of the component that is used in the circuit design.

In addition, the network table illustrated inFIG. 8includes items of a network ID (identifier), network name, attributes, link to the component pin table and link to the constraint condition table. A unique identifier in the table is set in a column of the network ID, the name attached to the network is set in a column of the network name, attributes that represent the properties of the network such as power supply, signal or ground are set in a column of the attributes, a link to a record in the component pin table, which represents the component pin that is connected to the network is set in a column of the link to the component pin table, and a link to a record in the constraint condition table, which represents constraint conditions when the constraint conditions have been set for the network is set in a column of the link to the constraint condition table link. Such a record is correlated and registered with each network that is connected to the component pin in the circuit diagram.

For example,FIG. 9illustrates an example of the connection relationship of components included in a circuit. In the circuit diagram ofFIG. 9, there are component A, component R, component C and component B. In addition, a component pin PA of the component A and a component pin PR1of the component R are connected by a network N1, a component pin PR2of the component R and component pin PC1of the component C are connected by a network N2, and a component pin PC2of the component C and component pin PB of the component B are connected by network N3. When there is such a circuit diagram, one record that represents the entire circuit diagram is registered in the circuit diagram table, records that respectively represents the component A, component R, component C and component B are registered in the component table, records that respectively represents the component pin PA, component pin PR1, component pin PR2, component pin PC1, component pin PC2and component pin PB are registered in the component pin table, and records that respectively represents the network N1, network N2and network N3are registered in the network table.

As illustrated inFIG. 4toFIG. 8, links to the records for the component A, component R, component C and component B, and links to the records for the network N1, network N2and network N3are set in the record for the overall circuit diagram. A link to the record for the component pin PA is set in the record for the component A, links to records for the component pin PR1and component pin PR2are set in the record for the component R, links to the records for the component pin PC1and component pin PC2are set in the record for the component C, and a link to the record for the component pin PB is set in the record for the component B. Moreover, links to the records for the component A and network N1are registered in the record for the component pin PA, links to the records for the component R and network N1are registered in the record for the component pin PR1, links to the records for the component R and network N2are registered in the record for the component pin PR2, links to the records for the component C and network N2are registered in the record for the component pin PC1, links to the records for the component C and network N3are registered in the record for the component pin PC2, and links to the records for the component B and network N3are registered in the record for the component pin PB. Furthermore, links to the records for the component pin PA and component pin PR1are registered in the record for the network N1, links to the records for the component pin PR2and component pin PC1are registered in the record for the network N2, and links to the records for the component pin PC2and component pin PB are registered in the record for the network N3.

A constraint condition table such as illustrated inFIG. 10and a setting target table such as illustrated inFIG. 11are registered in the constraint condition data storage unit107. The constraint condition table illustrated inFIG. 10includes items of a constraint condition ID (identifier), constraint condition name, link to the setting target table, condition type and instruction contents. A unique identifier in the table is registered in a column of the constraint conditions ID, a name of the constraint condition is registered in a column of the constraint condition name, a link to a record in the setting target table, which represents components restricted by the constraints, is registered in a column of the link to the setting target table, the type of the constraint condition such as the position relationship between components, wiring length, wire spacing and the like is registered in a column of the condition type, and data representing the contents of the conditions, such as “the position is within a predetermined distance from a specific component”, “the position is within the area of a predetermined shape” or “the wiring length is within a predetermined distance” are registered in a column of the instruction contents. A record that includes such items is correlated and registered with each of the constraint conditions that are set by the user.

Moreover, the setting target table illustrated inFIG. 11includes items of a setting target ID (identifier), type, setting target name and setting target number. A unique identifier in the table is registered in a column of the setting target ID, the type of the setting target such as component, component pin, or network is registered in a column of the type, the name of the setting target is registered in a column of the setting target name, and the number that is not duplicated in the records linked from one constraint condition is registered in a column of the number. In this embodiment, the same identifier as the component ID in the component table, the component pin ID in the component pin table or the network ID in the network table is registered, and the data in the circuit data storage unit105is associated with the data in the constraint condition data storage unit107. Such a record is registered for each of the components defined as targets for which the constraints are set.

Incidentally, the constraint condition illustrated inFIG. 2Bis registered in the constraint condition table and setting target table as a record such as illustrated inFIG. 12. In the record of the constraint condition table illustrated inFIG. 12, “position relationship between components” is registered as the condition type, and data representing the component is to be placed within 15 mm from component I2is registered as the instruction contents. Links to records representing the components related to that constraint condition is set in the column of the link to the setting target table. A component that is the nucleus (reference) of the position relationship (component I2in the example illustrated inFIG. 12) and the components that are restricted by the constraint of the position relationship (component C4, component R1and component R2in the example illustrated inFIG. 12) are registered in the setting target table. When the record in the constraint condition table and record in the setting target table are registered in the circuit design, a constraint such as illustrated inFIG. 13, for example, is imposed in the implementation design. The component I2, component C4, component R1and component R2, which are registered in the setting target table illustrated inFIG. 12, are located on the printed circuit board illustrated inFIG. 13. As defined in the instruction contents in the constraint condition table illustrated inFIG. 12, the component C4, component R1and component R2are placed within a radius of 15 mm from the component I2. The distance on the printed circuit board is determined with one preset point on each component, such as the center or lower left, as a reference.

FIG. 14illustrates a processing flow of the information processing apparatus1relating to this embodiment. First, the input unit101of the information processing apparatus1accepts inputs from a user, and respectively identifies a constraint condition that will be the reference in the process processing as a reference condition from among the constraint condition data that is stored in the constraint condition data storage unit107, and identifies a constraint condition that will be a target for comparison as a target condition. Then, the input unit101then stores the data for identifying the reference condition and target condition in the data storage unit103(FIG. 14: step S1). Here, the input unit101respectively accepts designations from the user for the reference condition and target condition, and stores a constraint condition ID of each of them, for example, in the data storage unit103. Incidentally, the display unit117, for example, displays the data that is stored in the constraint condition data storage unit107on a display device, and prompts the user to designate constraint conditions.

Here, not only constraint conditions for the position relationship between components such as illustrated inFIG. 2B, but also a constraint condition for the wiring length such as illustrated inFIG. 15is registered. The example inFIG. 15shows that component pin I1.1of component I1and component pin I2.2of component I2that are illustrated in the circuit diagram should be to be mounted on the printed circuit board with a wiring length of 10 mm or less. However, in this embodiment, the constraint condition for the position relationship between components as illustrated inFIG. 2Bis taken to be a target of the processing. Therefore, at the step S1, it is presumed that designations are accepted from the user to identify, as the target, the constraint conditions for which “position relationship between components” is registered in the column of the condition type of the constraint condition table.

Next, the reference component identifying unit109of the information processing apparatus1carries out a reference component identifying processing (step S3). This reference component identifying processing will be explained usingFIG. 16. First, the reference component identifying unit109acquires a pertinent record from the constraint condition table in the constraint condition data storage unit107, based on the data to identify the reference condition, which is stored in the data storage unit103, and determines whether or not the component that is a nucleus of the position relationship is set in the column of the instruction contents in that record (FIG. 16: step S21). For example, when the constraint condition illustrated inFIG. 12is identified as the reference condition, the component I2is set as the nucleus of the position relationship in the column of the instruction contents.

When such a component that is the nucleus of the position relationship has been set, the reference component identifying unit109identifies the nucleus component as the reference component of the reference condition, and stores data to identify the reference component of the reference condition in the data storage unit103(step S23). The setting target ID of the setting target table is stored, for example, as the data to identify the reference component. On the other hand, when the component that is the nucleus of the position relationship is not set in the column of the instruction contents in the constraint condition table (for example, placement of certain components in an area having a predetermined shape is designated in the column of the instruction contents), the reference component identifying unit109identifies, as the reference component, the component relating to the record having the smallest number that is registered in the column of the number in the record of the setting target table that are linked from the reference condition table, and stores data to identify the reference component in the data storage unit103(step S25).

Then, after the step S23or step S25, the reference component identifying unit109acquires a pertinent record from the constraint condition table in the constraint condition data storage unit107based on the data to identify a target condition, which is stored in the data storage unit103, and determines whether or not the component that is the nucleus of the position relationship is set in the column of the instruction contents (step S27). The reference component identifying unit109then carries out the similar judgment to that at the step S21for the target condition, and when it is determined that the nucleus component is set, the reference component identifying unit109identifies that component as the reference component of the target condition, and stores data to identify the reference component of the target condition in the data storage unit103(step S29). After that, the reference component identifying processing ends via terminal A, and the processing returns to the processing inFIG. 14.

On the other hand, when it is determined that the nucleus component is not set, the reference component identifying unit109determines whether or not a record whose component type is the same as that of the reference component of the reference condition that was set at the step S23or step S25exists in the records of the setting target table, which are linked from the record of the target condition in the constraint condition table in the constraint condition data storage unit107(step S31). When it is determined that there are no records having the same component type, the reference component identifying unit109identifies, from among the records linked from the record of the target condition in the setting target table, a component relating to the record having the smallest number registered in the column of the number, as the reference component of the target condition, and stores data to identify that reference component in the data storage unit103(step S33). After that, the reference component identifying processing ends via the terminal A, and the processing returns to the processing inFIG. 14.

On the other hand, when there is a record having the same component type, the reference component identifying unit109determines whether or not there are plural pertinent records (step S35). When there is one record having the same component type as the reference component of the reference condition, the reference component identifying unit109identifies the component relating to that pertinent record as the reference component of the target condition, and stores data to identify the reference component in the data storage unit103(step S37). After that, the reference component identifying processing ends via the terminal A, and the processing returns to the processing inFIG. 14.

On the other hand, when there are plural records whose component type is the same as the component type of the reference component of the reference condition, the reference component identifying unit109identifies, from among the records whose component type is the same as the component type of the reference component of the reference condition, a component relating to a record having the smallest number that is registered in the column of the number, as the reference component of the target condition, and stores the data to identify that reference component in the data storage unit103(step S39). After that, the reference component identifying processing ends, and the processing returns to the processing inFIG. 14.

Returning to the explanation of the processing inFIG. 14, the corresponding component identifying unit113of the information processing apparatus1reads, from the data storage unit103, an extraction algorithm to be used for extracting corresponding components, and determines whether or not the extraction algorithm is a “topology” algorithm (step S5). The extraction algorithm may be a “circuit diagram coordinates” algorithm for identifying corresponding components based on the coordinates on the circuit diagram that was created in the circuit design, or a “topology” algorithm for identifying corresponding components based on information on the type and connection state of components on the circuit diagram (circuit topology). When the extraction algorithm is not a “topology” algorithm, or in other words, when the extraction algorithm is a “circuit diagram coordinates” algorithm, the processing moves to step S9.

On the other hand, when the extraction algorithm is a “topology” algorithm, the corresponding component identifying unit113determines whether or not the component type that is included in the record of the reference component for the reference condition in the setting target table in the constraint condition data storage unit107is the same as the component type that is included in the record of the reference component for the target condition (step S7). When the component type is not the same, or when it was determined at the step S5that the extraction algorithm was not a “topology” algorithm, the corresponding component identifying unit113carried out a corresponding component extraction processing by the circuit diagram coordinates (step S9). The corresponding component identifying processing by the circuit diagram coordinates will be explained usingFIG. 17toFIG. 24.

First, the corresponding component identifying unit113initializes an index number n, which is used to control the processing for the reference condition, to “1” (FIG. 17: step S41). Then, the corresponding component identifying unit113determines whether or not “n” is less than the number of records in the setting target table, which are defined in the reference condition (step S43). In this embodiment, the subsequent processing is repeated (n−1) times, which is equal to the number of records other than the record relating to the reference component among records defined in the reference condition. At this step, when it is determined that “n” is equal to or greater than the number of records in the setting target table, which are defined in the reference condition, the processing moves to step S49. On the other hand, when “n” is determined to be less than the number of records in the setting target table, which are defined in the reference condition, the corresponding component identifying unit113carries out a corresponding component extraction processing (step S45). This corresponding component extraction processing will be explained usingFIG. 18toFIG. 24.

First, the corresponding component identifying unit113acquires a component relating to the n-th record as PRnfrom the components that is other than the reference component but is defined in the reference condition in the constraint condition storage unit107, and the component type for that component as TRn, and stores the acquired data in the data storage unit103(FIG. 18: step S61). Here, first, the corresponding component identifying unit113uses the data to identify the reference condition, which is stored in the data storage unit103to acquire the records for the reference condition from the constraint condition table in the constraint condition data storage unit107. Then, the corresponding component identifying unit113acquires, from the records in the setting target table, which are linked from the acquired record of the reference condition, the setting target ID of the component relating to the n-th record as PRn, and acquires the component type of the n-th record as TRn, and stores them in the data storage unit103.

Then, the corresponding component identifying unit113calculates the relative position CRnof the acquired component PRnon the circuit diagram with respect to reference component, and stores the calculation result in the data storage unit103(step S63). Here, respectively using, as keys, the setting target IDs of the components in the setting target table for both PRnand the reference component, the corresponding component identifying unit113searches the component table in the circuit data storage unit105to acquire the sheet numbers and positions of the pertinent records. The corresponding component identifying unit113then calculates a difference between the sheet numbers and the relative coordinates of PRnfrom the reference component as a reference point, and stores the calculation result in the data storage unit103.

Here, sheets in the circuit diagram data will be explained. In the circuit diagram data created by the user, one circuit may be designed in plural separate sheets. In such a case, the plural sheets are managed by the sheet numbers, for example. The sheets represent virtual division of the circuit, and they differ from layers of a multi-layered printed circuit board. When designing a circuit diagram by dividing the circuit into the sheets, how the circuit will be divided depends on the user, however, there is a trend for a user to group components according to the functions, and place the grouped components on the circuit diagram, and by using a function of a CAD system, the circuit diagram may be generated by copying and modifying similar components on the circuit diagram.

These sheet numbers are for convenience, and in the case, for example, when two components are on different sheets, the difference between the sheet numbers may be used as a scale to express the relative positional relationship between the components. On the other hand, when the difference between sheet numbers is not used, it is possible to compare the coordinates in each sheet as they are, or it is also possible to define a connection relationship between sheets beforehand, and to calculate relative coordinates over the sheets.

Next, calculation of the relative position CRnwill be explained using the circuit diagram that is illustrated inFIG. 19A. Here, the index number n is taken to be 1. In the circuit diagram illustrated inFIG. 19A, component I3is connected with each of component R3, component C5, component C6and component C7. Moreover, it is presumed that the component I3is identified as the reference component. In such a circuit diagram, when calculating the relative position CR1of the component C5with respect to the reference component I3, first, the difference between the sheet numbers “0” is calculated, because the reference component I3and component C5are on the same sheet. As illustrated by arrow d1inFIG. 19A, the relative coordinates of a predetermined position on the component C5are calculated with respect to the predetermined position of the reference component I3, which is used as a reference point. When the coordinates of the predetermined position on the reference component I3are taken to be (xI3, yI3) and the coordinates of the predetermined position on the component C5are taken to be (xC5, yC5), the relative coordinates (xR1, yR1) are calculated as (xC5−xI3, yC5−yI3). Incidentally, as for the predetermined position of the component on the circuit diagram, a predetermined one point such as the center of each component or the bottom left of each component, is used. Supposing that the reference component I3is on a sheet whose number is 1 and component C5is on sheet whose number is 3, the difference between the sheet numbers, which is regarded as the relative position CR1, is calculated as 2 (=3−1). As for this difference between the sheet numbers, the absolute value of the difference between the sheet numbers may also be used.

The calculated difference between the sheet numbers and the relative position for the reference condition are registered in the data storage unit103as illustrated inFIG. 20, for example. The table illustrated inFIG. 20includes a column of the difference between the sheet numbers and relative coordinates between the components relating to the reference condition, a column of the difference between the sheet numbers and relative coordinates between the components relating to the target condition, and a column of an absolute value MSof the difference between the differences between the sheet numbers and absolute value MLof the difference between the relative coordinates of the components. For example, data that is intermediately generated is held by using such a table.

After that, the corresponding component identifying unit113initializes an index number m for controlling the processing for the target condition, to “1” (step S65). The corresponding component identifying unit113then determines whether or not “m” is less than the number of records in the setting target table, which are defined in the target condition (step S67). In this embodiment, the subsequent processing is repeated (m−1) times that is equal to the number of records, which are records other than the record relating to the reference component among the records defined in the target condition. At this step, when “m” is determined to be equal to or greater than the number of records in the setting target table, which are defined in the target condition, then the processing moves to step S81inFIG. 24via terminal B.

On the other hand, when it is determined that “m” is less than the number of records in the setting target table, which are defined in the target condition, the corresponding component identifying unit113acquires, from the setting target table in the constraint condition data storage unit107, the component PTmrelating to the m-th record and the component type TTmof that component, and stores the acquired data in the data storage unit103(step S69). Here, first, the corresponding component identifying unit113uses the data to identify the target condition, which is stored in the data storage unit103, to acquire the record for the target condition from the constraint condition table in the constraint condition data storage unit107. Then, the corresponding component identifying unit113acquires, from the records in the setting target table, which are linked from the record for the acquired reference condition, the component ID of the component relating to the m-th record when the values registered in the column of the number are arranged in ascending order, as “PTm”, and the component type in that record as “TTm”, and holds them in the data storage unit103.

The corresponding component identifying unit113then determines whether or not the component type TRnof the component defined in the reference condition and the component type TTmof the component defined in the target condition are the same (step S71). Here, it is determined whether or not the component types such as resistor, capacitor, coil or the like are the same. When it is determined that the component types are not the same, the processing moves to step S79.

On the other hand, when it is determined that the component types are the same, the corresponding component identifying unit113calculates the relative position CTmof the PTmon the circuit diagram, with respect to the reference component as a reference point, and stores the calculated result in the data storage unit103(step S73). Here, as for component PRnand the reference component, the corresponding component identifying unit113uses the respective setting target IDs of the components in the setting target table as keys to search the component table in the circuit data storage unit105, and acquires the sheet numbers and positions of the components for the pertinent records. Then, as was done at the step S63for example, the corresponding component identifying unit113calculates the difference between the sheet numbers and the relative coordinates of PRnwith respect to the reference component as a reference point, and stores the calculated result in the data storage unit103. It is also possible to not use the sheet number as may be done at the step S63.

For example, in the circuit diagram illustrated inFIG. 19B, it is presumed that the coordinates of the predetermined position of the reference component I4are (xI4, yI4), the coordinates of the predetermined position of component C8are (xC8, yC8), and the index number m is “1”. In this case, the relative coordinates (xT1, yT1) of PRnwith respect to the reference component as a reference point are calculated to be (xC8−xI4, yC8−yI4). Then, for example, as illustrated in the column of the target conditions inFIG. 21, the calculated difference between the sheet numbers and relative coordinates (xT1, yT1) are registered in the data storage unit103.

After that, the corresponding component identifying unit113calculates the absolute value M of the difference between the relative position CRnand the relative position CTm, and determines whether or not the absolute value M of the difference is equal to or less than a predetermined threshold value (step S75). Here, the corresponding component identifying unit113calculates the absolute value of the difference between the differences between the sheet numbers, for example, as MS, and calculates the absolute values of the differences between the x coordinates and between the y coordinates as ML. The x coordinate and y coordinate express the position of the component on the circuit diagram. Moreover, the corresponding component identifying unit113reads the predetermined threshold values that are stored in the data storage unit103for the respective sheet number and x and y coordinates, and determines whether or not the absolute values MSand MLare equal to or less than the respective predetermined threshold values.

Moreover, it is presumed that the user sets predetermined threshold values in advance so that the threshold value for the absolute value MSof the difference is S, and the threshold values for the absolute values MLof the differences are xSand yS. In the example illustrated inFIG. 19AandFIG. 19B, first the absolute value MSof the difference is calculated as 0, and the absolute values MLof the difference are calculated as |xT1−xR1| and |yT1−yR1|. For example, as illustrated in a column of the absolute value M of the difference inFIG. 22, the calculated absolute values Msof the differences and the absolute values MLof the differences are registered in the data storage unit103. The corresponding component identifying unit113determines whether or not “0”, which is the absolute value MSof the difference, is equal to or less than the threshold value S, whether or not |xT1−xR| is equal to or less than xS, and whether or not |yTm−yRn| is equal to or less than yS. When either of the absolute value MSof the difference and the absolute values MLof the differences is not equal to or less than the corresponding threshold value described above, the processing moves to step S79.

On the other hand, when it is determined that the absolute value MSof the difference and the absolute values MLof the differences are equal to or less than the predetermined threshold values, the corresponding component identifying unit113stores PRNas a corresponding component candidate for the component PRnin the data storage unit103(step S77). Then, when it is determined at the step S71that the component types are not the same, or when it is determined at the step S75that any of the absolute values M of the differences is not equal to or less than the corresponding predetermined threshold value, or after the step S77, the corresponding component identifying unit113increments m by “1” (step S79), and the processing returns to the processing of the step S67. In this way, the processing of the step S67to step S79is repeated, and for each of the components PTmother than the reference component among the components defined in the target condition, the absolute values M of the difference with the component PRnrelating to the reference condition obtained at the step S61are compared to determine whether or not the component is a corresponding component.

As was described above, when it was determined at the step S67that m is equal to or greater than the number of records in the setting target table, which are regulated in the target condition, the processing moves to the processing inFIG. 24via the terminal B. Then, the corresponding component identifying unit113narrows down, as the corresponding components, combinations of components whose Euclidian distance between the relative coordinates of the component defined in the reference condition and the relative coordinates of the component defined in the target condition is the smallest among the components stored in the data storage unit103as the corresponding component candidates, and stores the results in the data storage unit103(FIG. 24: step S81).

In the processing from the step S67to the step S79, plural components whose absolute value M of the difference with the component defined in the reference condition is determined to be equal to or less than a threshold value among the components defined in the target condition may be held as the corresponding component candidates. At this step, the components are narrowed down to one corresponding component for one component that is defined in the reference condition.

Here,FIG. 23illustrates a diagram in which the circuit diagrams illustrated inFIG. 19AandFIG. 19Bare superimposed with a predetermined position on the reference components13and14as the center O. For example, the distance d7between the component C5and component C8inFIG. 23can be calculated as ((xT1−xR1)2+(yT1−yR1)2)1/2. InFIG. 23, when component C8and component C9are extracted as corresponding component candidates of component C5, the component C8, which is closest to the position of the component C5, is identified from among the component C8and component C9as a corresponding component.

Moreover, for PTmwhose absolute value MSof the difference is the minimum, for example, the components may be narrowed down at this step to a component whose distance described above becomes the minimum, or the absolute value MSof the difference may be converted to a virtual distance in the Z axis direction by multiplying the absolute value MSof the difference by a predetermined coefficient, and the components may be narrowed down to a component whose distance in three-dimensional space becomes the minimum. When all of the corresponding component candidates are correlated one-on-one, each corresponding component candidate is identified as a corresponding component without carrying out the narrowing down processing at this step.

The corresponding component identifying unit113then determines whether or not the corresponding component candidates have been narrowed down to one (step S83). When the corresponding component candidates have been narrowed down to one, the corresponding component extraction processing ends, and the processing returns to the processing inFIG. 17. On the other hand, when there are plural corresponding component candidates, the corresponding component identifying unit113uses a condition for narrowing down the components, such as the difference in x coordinate or the difference in y coordinate on the circuit diagram, the value of the number defined in the target condition or the like that is set by the user in advance and stored in the data storage unit103, and narrows down the component candidates to one corresponding component (step S85). Here, for example, for the components stored in the data storage unit103as corresponding component candidates, first, the differences the x coordinate of the reference component on the circuit diagram is compared to identify the component whose difference is the minimum as the corresponding component. When there is no difference in the x coordinate, the differences in y coordinate are compared in a similar manner, and the component with the minimum difference is identified as the corresponding component. When there is also no difference in the y coordinate, a component relating to the record whose value registered in the column of the number is smallest is identified among components relating to the records that correspond to corresponding component candidates in the setting target table. Incidentally, the sheet numbers are merely for convenience, and it is possible to narrow the candidates to one corresponding component by using the number in the setting target table, so the sheet numbers are not used as a condition for narrowing down candidates at this step. The corresponding component extraction processing then ends, and the processing returns to the processing inFIG. 17.

Returning to the explanation ofFIG. 17, the corresponding component identifying unit113increments “n” by “1”, after which the processing returns to the processing of the step S43. By repeating the processing from the step S43to the step S47in this way, a component that is defined in the reference condition is correlated with a component that is defined in the target condition.

At the step S43, when it is determined that “n” is equal to or greater than the number of records in the setting target table, which are defined in the reference condition, the corresponding component identifying unit113determines whether or not there are any components that are correlated with plural components defined in the reference condition, among the components defined in the target condition (step S49). In the processing from the step S43to the step S47, there are cases where plural components that are defined in the reference condition and one component that is defined in the target condition are identified as corresponding components. At this step, when it is determined that there is a component that is correlated with the plural component defined in the reference condition, among the components defined in the target condition, the corresponding component identifying unit113narrows down the corresponding components that are defined in the reference condition to one component, and stores the component combination in the data storage unit103(step S51). Here, conditions used for narrowing down, which are set in advance by the user or the like and stored in the data storage unit103, such as the circuit diagram coordinates, the circuit topology, the component library ID in the component library table, or the like are applied in sequence to narrow down the corresponding components.

For example, it is presumed that the component C6and component C7illustrated inFIG. 19Aare correlated with the component C10illustrated inFIG. 19B. In this case, when narrowing down the corresponding components using “circuit diagram coordinates” is designated, the corresponding component identifying unit113identifies, from among the component C6and component C7, a component that is closest to the position of the component C10using, as the reference points, the components I3and I4in the similar way as at the step S81. In other words, inFIG. 23, the corresponding component identifying unit113compares the distance d9from the component C10to the component C6with the distance d10to the component C7, and identifies the combination having the shortest distance between components. Similar to the processing at the step S81, it is possible to further use the absolute value MSof the difference.

When narrowing down the corresponding components using “circuit topology” is designated, the corresponding component identifying unit113identifies, as corresponding components, components having the same circuit topology, such as the connection relationship with the reference component (for example, whether it is directly connected with the reference component or it is connected by way of another component), component pin number or component pin attributes. Furthermore, when narrowing down the corresponding components according to the “component library ID in the component library table” is designated, the corresponding component identifying unit113identifies components whose component library ID are the same (in other words, components whose component characteristic values are the same) as corresponding components. Plural conditions for narrowing down components may be set with levels of the priority. In that case, narrowing down the components is carried out using these conditions in order of the priority until the corresponding components have been narrowed down to one.

After that, the corresponding component extraction processing using the circuit diagram coordinates ends, and the processing returns to the processing inFIG. 14, and moves to step S13.

By carrying out the corresponding component extraction processing using the circuit diagram coordinates in this way, correlation of components is carried out based on the circuit diagram created by the designer in the circuit design. Here, in the implementation design, there are cases where it is possible to adopt the similar wiring arrangement position on the printed circuit board between a component that is defined in a certain constraint condition and a component defined in another constraint condition. Moreover, as was described above, there is a trend for the designer to functionally group together components when placing the components on the circuit diagram, and by using a function of a CAD system, the designer may create a circuit diagram by copying and modifying similar components on the circuit diagram. Therefore, by using coordinates on the circuit diagram to correlate components having similar positional relationship, it is possible in the implementation design to identify components to which the same placement position can be applied.

Returning to the explanation of the processing inFIG. 14, when it is determined at the step S7that the component types of the reference components are the same, the corresponding component identifying unit113carries out the corresponding component extraction processing using topology (step S11). This corresponding component extraction processing using topology will be explained usingFIG. 25.

First, the corresponding component identifying unit113initializes the index number “n” that is used for controlling the reference condition, to “1” (FIG. 25: step S91). Then, the corresponding component identifying unit113determines whether or not “n” is less than the number of records in the setting target table, which are defined in the reference condition (step S93).

When it is determined that “n” is less than the number of records in the setting target table, which are defined in the reference condition, the corresponding component identifying unit113acquires, as PRn, data for the components relating to the n-th record from among the components that are other than the reference component and are defined in the reference condition in the constraint condition data storage unit107, and stores the acquired data in the data storage unit103(step S95). Here, the corresponding component identifying unit113first uses data to identify the reference condition, which is stored in the data storage unit103, to acquire the record of the reference condition from the constraint condition table in the constraint condition data storage unit107. Then, the corresponding component identifying unit113acquires, as PRn, the setting target ID of the component relating to the n-th record among the records in the setting target table, which are linked from the acquired record in the reference condition, and stores the acquired result in the data storage unit103.

The corresponding component identifying unit113then determines whether or not the acquired component PRnis connected to the reference component (step S97). Here, first, using the setting target ID as a key, the corresponding component identifying unit113identifies the pertinent record in the component table stored in the circuit data storage unit105. The corresponding component identifying unit113then searches records in the component pin table and records in the link table, which are linked from the pertinent record, to determine whether or not the component PRnis connected to the reference component in the reference condition. When it is determined that the component PRnis not connected to the reference component, the processing moves to step S105.

On the other hand, when it is determined that the component PRnis connected to the reference component, the corresponding component identifying unit113extracts, from among the components defined in the target condition, components that are connected to the reference component in the target condition but that are not yet correlated with a component defined in the reference condition (step S99). Here, as was done at the step S97, for components that are defined in the target condition, the corresponding component identifying unit113searches the component table, component pin table and link table, which are stored in the circuit data storage unit105, to identify components that are directly connected to the reference component. The corresponding component identifying unit113also uses the data stored in the data storage unit103to determine whether or not the correlation with any of the components defined in the reference condition has been made, and extracts components that are not correlated. When a component defined in the reference condition is correlated with a component that is defined in the target condition in the subsequent processing, the combination of corresponding components is stored in the data storage unit103.

After that, the corresponding component identifying unit113acquires data stored in the component library data storage unit111for each of the component PRnthat was acquired at the step S95and the components extracted at the step S99(step S101). Here, the corresponding component identifying unit113acquires conditions for correlation such as the component type of components defined in the target condition, component pin information (component pin number and attributes) of the component pins connected to the reference component among the component pins of that components, component library ID and the like, which are set in advance by the user or the like, and stored in the data storage unit103.

The corresponding component identifying unit113then identifies a component corresponding to the component PRnfrom the components extracted at the step S99, and stores the combination of corresponding components in the data storage unit103(step S103). Here, for example, the corresponding component identifying unit113determines, for the components defined in the reference condition and the components defined in the target condition, whether the number of a component pin connected to the reference component is the same, whether the attributes of a component pin connected to the reference component are the same, whether the component type of the component itself is the same, and furthermore, whether the component library IDs are the same (whether the characteristic values of the components are the same), and when there is such a component, the corresponding component identifying unit113identifies that component as a corresponding component. In the case where there are plural components that correspond to these conditions, one component having the smallest number in the setting target table is correlated.

The corresponding component identifying unit113then increments the index number “n” by “1” (step S105), and the processing returns to the processing of the step S93. By repeating the processing from the step S93to the step S105, components defined in the reference condition and components defined in the target condition are correlated. Then, when it is determined at the step S93that “n” is equal to or greater than the number of records in the setting target table, which are defined in the reference condition, the corresponding component extraction processing using topology ends, and the processing returns to the processing inFIG. 14.

By carrying out the corresponding component extraction processing using topology in this way, it is also possible to correlate components based on the circuit diagram data. There is also a possibility that components having similar circuit topology, such as the connection relationship between components, and component types and characteristic values of connected components, can be placed similarly on the printed circuit board. Therefore, even by correlating components based on the circuit topology, it is possible to identify components for which the similar placement position can be adopted in the implementation design.

Returning to the explanation of the processing inFIG. 14, after the step S9or the step S11, the corresponding component identifying unit113reads data concerning the component correlation from the data storage unit103, and sets the same value in the column of the number in the setting target table for the correlated components (step S13). Here, for example, the number of the component that is defined in the target condition is matched with the number of the component that is defined in the reference condition. When there are no corresponding components, a missing number may occur.

For example, inFIG. 19AandFIG. 19B, presuming that component C5and component C8are correlated, and that component C7and component C10are correlated, the same number2as component C5is set in the column of the number for the component C8in the setting target table (FIG. 11), and the same number4as the component C7is set in the column of the number for the component C10. When corresponding components are not identified for the component C6and component C9, a number is assigned to the column of the number for the component C9in the setting target table so that the assigned number does not duplicate the numbers of the components defined in the reference condition. By carrying out such a processing, it is possible to identify the correlation between the components from data created in the circuit design.

Then, the display unit117displays the data that is stored in the constraint condition data storage unit107(step S15). For example, after the correlation of the numbers at the step S13, the display unit117displays the component that is defined in the reference condition and the component that is defined in the target condition.

In the case of the data for the components illustrated inFIG. 19AandFIG. 19B, data such as illustrated inFIG. 26is displayed. In the table illustrated inFIG. 26, by using the setting target names, setting target IDs and numbers, which are registered in the setting target table, the data relating to the reference condition and the data relating to the target condition are arranged side-by-side, and the data of the components defined in the respective conditions are arranged in ascending order of values registered in the column of the number. Component C5and component C8are displayed in the line for the number2, and component C7and component C10are displayed in the line for the number4. Components that correspond to other constraint conditions are not displayed for component C6and component C9. By displaying components that are defined in one constraint condition in the vertical direction, and displaying corresponding components in the horizontal direction, it is easy for the user to know the correlation between component groups.

The output unit115then outputs netlist data and constraint condition data that includes data about correlated components from the circuit data storage unit105and constraint condition data storage unit107to a terminal of the implementation designer or to the data storage unit103of the information processing apparatus1(step S17). Components defined in the constraint conditions are already correlated, so by using such data in the implementation design, applying the same placement position for similar components becomes easier. In the case that it is possible to read circuit diagram data that was created in the circuit design, in the implementation design, the processing of this embodiment may be carried out during the implementation design stage.

Before the step S17, for example, the processing may be such that it is possible for the user to change the order of components in the table such as illustrated inFIG. 26, or to be such that it is possible to change the correlation between components. For example, in the table illustrated inFIG. 26, the order of selected components may be moved in the vertical direction, or the order can be changed by dragging selected components, or plural selected components may be sorted into alphabetical order. By doing so, after the processing of this embodiment has been completed, it becomes possible for the user to check the results and make minor modifications.

As illustrated inFIG. 27, for example, it is also possible to correlate a component that is defined in one reference condition with a component that is defined in plural target conditions. In the example inFIG. 27, components relating to three constraint conditions are illustrated, with the constraint condition on the left, for example, taken to be the reference condition. In this case, first, in the reference component identifying processing, reference components are identified from the components defined in each of the target conditions. Then, in the corresponding component processing using circuit diagram coordinates, or corresponding component processing using topology, it is determined whether or not there are corresponding components among the components defined in the reference condition, and the components defined in each of the target conditions. The processing may be carried out in order for each of the target conditions, or may be carried out in parallel.

It is also possible to identify corresponding components using both of the algorithms for the corresponding component extraction processing using circuit diagram coordinates, and the corresponding component extraction processing using topology, and when there is a difference in the results, the user may be notified so as to recognize the difference.

In the corresponding component extraction processing using the circuit diagram, corresponding component candidates are extracted in the processing from the step S67to the step S79, and one corresponding component is identified from among those candidates in the processing from the step S81to the step S85, however, it is also possible to identify one corresponding component from the start by applying the conditions used at the step S75, step S81and step S85in order. Moreover, when correlation is dropped at the step S51, it is possible to carry out correlation of corresponding component candidates again with components defined in the reference condition.

Although the embodiments of this technique were explained, this technique is not limited to these embodiments. For example, the functional block diagram is a mere example, and does not always correspond to an actual program module configuration. Moreover, as long as the processing results do not change, the order of the steps in the processing flow may be exchanged, and the steps may be executed in parallel. Furthermore, the aforementioned functions may be realized not only in one computer but also plural computers.

In addition, the aforementioned information processing apparatus1is a computer device as shown inFIG. 28. That is, a memory2501(storage device), a CPU2503(processor), a hard disk drive (HDD)2505, a display controller2507connected to a display device2509, a drive device2513for a removable disk2511, an input device2515, and a communication controller2517for connection with a network are connected through a bus2519as shown inFIG. 28. An operating system (OS) and an application program for carrying out the foregoing processing in the embodiment, are stored in the HDD2505, and when executed by the CPU2503, they are read out from the HDD2505to the memory2501. As the need arises, the CPU2503controls the display controller2507, the communication controller2517, and the drive device2513, and causes them to perform necessary operations. Besides, intermediate processing data is stored in the memory2501, and if necessary, it is stored in the HDD2505. In this embodiment of this technique, the application program to realize the aforementioned functions is stored in the computer-readable, non-transitory removable disk2511and distributed, and then it is installed into the HDD2505from the drive device2513. It may be installed into the HDD2505via the network such as the Internet and the communication controller2517. In the computer as stated above, the hardware such as the CPU2503and the memory2501, the OS and the necessary application programs systematically cooperate with each other, so that various functions as described above in details are realized.

The aforementioned embodiments are summarized as follows:

An information processing method relating to the embodiments includes: (A) identifying a first reference component from among first components defined in a first constraint condition that is a reference designated from among constraint conditions, which are stored in a condition storage unit, regarding a position relationship between plural components on a printed circuit board; (B) identifying a second reference component from among second components defined in a second constraint condition that is to be compared with the first constraint condition and included in the constraint conditions; and (C) identifying a fourth component that is a component other than the second reference component among the second components and has a correspondence with a third component, based on position relationships with the third component and an attribute of the third component, wherein the third component is a component other than the first reference component among the first components.

First, components for which the similar displacement position on the printed circuit board can be adopted according to position relationships between components defined in one constraint condition may exist among components defined in another constraint condition regarding the position relationship between plural components on the printed circuit board. Then, when carrying out the aforementioned processing, the aforementioned fourth component, for which the similar displacement position can be adopted on the printed circuit board, can be identified. Because the similar displacement can be applied in the implementation design, when the components that have such a correspondence are identified, it is possible to reduce the burden of the work on the designer.

Moreover, the third identifying may include: (b1) obtaining displacement coordinates of the first reference component, the third component, the second reference component and fifth components that are components other than the second reference component among the second components, from circuit diagram data including displacement coordinates of components defined in a circuit diagram and being stored in a circuit diagram data storage unit; (b2) obtaining component types of the third component and the fifth components from component data including component types of the components defined in a circuit diagram and being stored in a component data storage unit; and (b3) extracting, from the fifth components, the fourth component that is a component, which has a same component type as the third component and whose difference between a distance, which is based on the displacement coordinates, between the first reference component and the third component and a distance, based on the displacement coordinates, with the second reference coordinates is shortest. By doing so, the aforementioned component can be identified based on the component type and the coordinates on the circuit diagram. The designer tends to define components, which are included in a similar circuit, in a similar layout in the circuit diagram. Moreover, the designer may create the circuit diagram by copying data of the similar circuit in a CAD system. Therefore, when the correspondence can be extracted with the coordinates in the circuit diagram and the component types, the possibility of the component for which the similar displacement position can be adopted on the printed circuit board is high.

Then, the third identifying may include: (b3) extracting a sixth component that is a component connected with the first reference component among components identified by excluding the first reference component from the first components, and seventh components that are components connected with the second reference component among components identified by excluding the second reference component from the second components, based on first data representing connection relationships with the first reference component and the second reference component, wherein the first data is included in data representing connection relationships of components defined in a circuit diagram, and the data is stored in the circuit diagram data storage unit; (b4) extracting first component data concerning the sixth component and second component data concerning the seventh components from components data including at least either of a component type, a characteristic value of a component, a number of a component pin and an attribute of the component pin, wherein the component data is stored in a component data storage unit; and (b5) identifying the fourth component from among the seventh components, wherein the fourth component is a component whose second component data at least partially coincides with at least a portion of the first component data. Thus, the aforementioned fourth component can be identified based on data (i.e. circuit topology) of the component having the connection relationship with the reference component. When the component has such a relationship, the possibility of the component, for which the similar displacement position can be adopted, is high.

Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.