This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-106478, filed on May 27, 2016, the entire contents of which are incorporated herein by reference.
The embodiment discussed herein is related to a component placement method and an information processing apparatus.
Typically, when designing component placement and pattern wiring on a printed circuit board for an electronic equipment/device, major components such as a large-scale integration (LSI) and an integrated circuit (IC) are first placed, and then the placement and pattern wiring for sub-components such as a resistor and a capacitor are performed.
As a related technique, there is a technique in which, in a method for automatically determining placement and wiring for a printed circuit board, a pre-designated pair of components is displayed in a highlighted manner and is wired prior to other components. Also, as a related technique, there is a technique in which, in an apparatus for aiding placement and design of components on a printed circuit board, surface-mounted components, such as a chip resistor, are placed so that they do not overlap placement-prohibited areas.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 9-50456 and Japanese Laid-open Patent Publication No. 2007-140679.
During design of component placement and pattern wiring on a printed circuit board, there are cases in which the number of wiring channels becomes insufficient owing to concentration of components and an increased density of wiring. In such cases, during design of component placement and pattern wiring, for example, an already placed component may be moved to a position where wiring becomes possible or a wiring pattern may be re-rerouted or moved. Thus, there is a problem in that rework often occurs during the design of the component placement and pattern wiring.
According to an aspect of the present invention, provided is an information processing apparatus including a memory and a processor coupled to the memory. The processor is configured to display, when a first component is not yet placed on a printed circuit board to be designed in a simulation space, the first component in a first state in which a first terminal of the first component is located on a second terminal of a second component. The second terminal has a connection relationship with the first terminal. The second component is included in already placed components which are already placed on the printed circuit board. The processor is configured to display a first wiring pattern along a designated route. The first wiring pattern is to connect the second terminal to the first terminal. The processor is configured to re-display the first component in a state in which the first terminal is located at a first distal end of the first wiring pattern. The processor is configured to determine whether a pattern area of the first wiring pattern overlaps any of first areas of the already placed components or second areas of already wired wiring patterns. The processor is configured to determine, upon receiving an instruction for finalizing the designated route, whether a component area of the first component which is placed at a second distal end of the designated route overlaps any of the first areas or the second areas. The processor is configured to finalize placement of the first component at the second distal end and finalize the first wiring pattern, when it is determined that the pattern area overlaps none of the first areas and the second areas and the component area overlaps none of the first areas and the second areas.
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.
A component placement method and an information processing apparatus according to an embodiment will be described below in detail with reference to the accompanying drawings.
The simulation space 101 is a virtual space simulated on the computer. Specifically, for example, the simulation space 101 is a space virtually set in the information processing apparatus 100 in order to design the printed circuit board 102. For example, a global coordinate system having an X-axis and a Y-axis is defined in the simulation space 101.
Before the printed circuit board 102 is designed, the shapes, polarity definitions, and so on of components and pins of the components are prepared as various libraries. The components and the pins of the components are designed in respective simulation spaces 101. For example, a local coordinate system having an X-axis and a Y-axis is defined in the respective simulation spaces 101.
Heretofore, when designing component placement and pattern wiring on a printed circuit board 102 for an electronic equipment/device, major components such an LSI and an IC are first placed, and then sub-components such as a transistor and a resistor are placed. For placement of the sub-components, two-terminal components such as a two-terminal resistor and a two-terminal capacitor are, in many cases, placed in the last half of the placement work. Thus, the sub-components are placed so as to fill the gap between already placed components. After various types of components are placed, pattern wiring is performed to provide connections between component pins of the various types of components. In many cases, in the wiring work, as in the placement work, the major components are wired first, and the sub-components are wired in the last half of the wiring work.
There are cases in which the number of wiring channels becomes insufficient owing to concentration of components and an increased density of wiring. The “wiring channel” refers to a wiring path through which a wiring pattern provided between components may be passed. In particular, there are cases in which, toward the end of the wiring work, the number of wiring channels becomes insufficient owing to concentration of components and an increased density of wiring. In such cases, during design of component placement and pattern wiring, for example, an already placed component is moved to a position where wiring becomes possible, a wiring pattern is re-routed, or a wiring pattern is moved, as described later with reference to
Accordingly, during wiring work for a wiring pattern starting from an already placed component to connect an unplaced component, when an area of the unplaced component that is temporarily placed at a distal end of the wiring pattern and an area of the wiring pattern do not interfere with areas of already placed and wired elements, the information processing apparatus 100 finalizes the component placement and the wiring pattern. This makes it possible to perform placement work for an unplaced component while performing wiring work, thus making it possible to reduce redoing of the placement work and the wiring work.
The information processing apparatus 100 displays, on the printed circuit board 102, an unplaced first component in a state in which a first terminal of the first component is located on a second terminal of an already placed second component having a connection relationship with the first terminal.
As illustrated in SCENE-1 in
As illustrated in SCENE-2 in
Next, the information processing apparatus 100 displays a first wiring pattern that connects from the second terminal to the first terminal, along a route designated from the second terminal. The “designated route” means, for example, a route of the first wiring pattern, which is designated by a designer's operation. In the example illustrated in
Subsequently, the information processing apparatus 100 determines whether or not the area of the first wiring pattern overlaps the areas of the already placed components and the areas of the already wired wiring patterns. The “areas” are also referred to as, for example, “occupied areas”. Each occupied area includes at least the outer shape of the corresponding component and the terminals of the component. The designer may designate the occupied area so that it includes at least the outer shape of the corresponding component and the terminals of the component. For example, the occupied area is an area including the largest outer shape of the corresponding component and the terminals of the component. Also, for example, the occupied area is an area including the largest outer shape with a margin width. The margin width is a numerical value that the designer may set depending on design conditions, manufacturing conditions, test conditions, and so on. Checking whether or not the areas overlap each other is also referred to as “interference check”.
Upon receiving an instruction for finalizing the placement of the first component, as illustrated in SCENE-4 in
Upon determining that the area of the first wiring pattern and the area of the first component do not overlap the areas of the already placed components and the areas of the already wired wiring patterns, the information processing apparatus 100 finalizes the placement of the first component at the position of the distal end and also finalizes the first wiring pattern. Finalizing the first wiring pattern means finalizing a wiring pattern so that it runs along the received route. Also, in the processing for finalizing the placement of the first component and the first wiring pattern, the information processing apparatus 100 registers the placement of the first component and the route for the first wiring pattern in information regarding the design of the printed circuit board 102.
As illustrated in SCENE-5 in
As illustrated at the left side in
However, in practice, since wiring for the components 201 and 202, other than the two-terminal component 203, is performed earlier, as illustrated at the center in
The CPU 301 is responsible for overall control of the information processing apparatus 100. The ROM 302 stores therein a program, such as a boot program. The RAM 303 is used as a work area for the CPU 301. In accordance with control performed by the CPU 301, the disk drive 304 controls writing/reading of data to/from a disk 305. The disk 305 stores therein data written under the control of the disk drive 304. Examples of the disk 305 include a magnetic disk and an optical disk.
The I/F 306 is coupled to a network 310, which includes a local area network (LAN), a wide area network (WAN), the Internet, or the like, through a communication link and is further coupled to another apparatus through the network 310. The I/F 306 is responsible for interfacing between the network 310 and the internal elements and controls input/output of data from an external device. The I/F 306 may be implemented by, for example, a modem or a LAN adapter.
The keyboard 307 and the mouse 308 are interfaces for receiving inputs of various types of data via operations of a user. The display 309 is an interface for outputting data in accordance with an instruction from the CPU 301.
Although not illustrated, the information processing apparatus 100 may include a solid state drive (SSD), a semiconductor memory, or the like. Also, although not illustrated, the information processing apparatus 100 may be provided with an input device, such as a camera for capturing still images or moving images or a microphone for picking up sound. In addition, although not illustrated, the information processing apparatus 100 may be provided with an output device, such as a printer.
Although a case in which the information processing apparatus 100 is a personal computer is described in the present embodiment as an exemplary hardware configuration of the information processing apparatus 100, the present disclosure is not limited thereto, and the information processing apparatus 100 may be a server or the like. When the information processing apparatus 100 is a server, the information processing apparatus 100 may be coupled to an apparatus operable by the user, the display 309, and so on through the network 310.
The display control unit 403 also controls the display 309 and so on to display, on the screen thereof, a printed circuit board and components in a simulation space.
The database unit 411 is implemented by, for example, the RAM 303, the ROM 302, or the disk 305. The database unit 411 stores therein a net connection table 421, a wiring-pattern table 424, a component placement table 422, an obstacle management table 423, a component shape library 425, a component-pin shape library 426, an adjacent-element acquisition table 427, and so on.
For example, in the case of the record 501-1, a net n00001 provides connection between the pin P04 of the component IC1 and the pin P01 of the component R1.
A component name is entered in the “component name” field as the identification information of a component. A component-shape management number is entered in the “component-shape management number” field as the identification information of a component shape of the component. The “mount information” field includes a “surface” field, a “coordinate X” field, a “coordinate Y” field, and an “angle” field. The identification information of a surface of a printed circuit board is entered in the “surface” field. The component is provided on that surface. An X coordinate value is entered in the “coordinate X” field as position information of the component on the printed circuit board. A Y coordinate value is entered in the “coordinate Y” field as position information of the component on the printed circuit board. Information indicating in which orientation the component is placed at the position on the printed circuit board is entered in the “angle” field. The position is represented by the X coordinate value and the Y coordinate value. The information indicating in which orientation the component is placed is, for example, a rotation angle of the component.
For example, in the case of the record 601-1, the shape of the component IC1 is a shape indicated by a component-shape management number SOP10-0001, and the component IC1 is placed on a surface L1 at the position indicated by coordinates (10.500, 12.700) at an angle of 0°. Since details of individual shapes are defined in the component shape library 425 (described later), the occupied area of each component may be identified using the component-shape management number.
The identification information of a range within a predetermined distance from a reference point is entered in the “range” field for each reference point. Examples of the reference point include the start point of a wiring pattern, the end point of a wiring pattern, and a turn-back point. The component name of a component included in the range is entered in the “component” field.
An attribute of a wiring pattern is entered in the “attribute” field. Examples of the attribute of a wiring pattern include “line”, “via”, “land”, and “solid”. The X coordinate value of the start point of a wiring pattern is entered in the “start-point coordinate X” field as start-point information of the wiring pattern. The Y coordinate value of the start point of the wiring pattern is entered in the “start-point coordinate Y” field as start-point information of the wiring pattern. The X coordinate value of the end point of the wiring pattern is entered in the “end-point coordinate X” field as end-point information of the wiring pattern. The Y coordinate value of the end point of the wiring pattern is entered in the “end-point coordinate Y” field as end-point information of the wiring pattern. The width of the wiring pattern is entered in the “line width” field. The net number of a net expressed by the wiring pattern is entered in the “net number” field.
A management number of a component shape is entered in the “component-shape management number” field as the identification information of a component shape. The type of shape of a component is entered in the “shape type” field.
The X coordinate values of vertices of a rectangle in a local coordinate system of the component are entered in the “coordinate X” fields. The Y coordinate values of vertices of the rectangle in the local coordinate system of the component are entered in the “coordinate Y” fields. A coordinate system defined on the printed circuit board is a global coordinate system. In this case, the origin in the local coordinate system of the component is associated with coordinates listed in the component placement table 422. For example, when the shape of the component is a rectangle, coordinate values of two diagonal vertices among the vertices of the rectangle are entered in the component shape library 425.
A component pin number is entered in the “component pin number” field as the identification information of a pin of the component. An X coordinate value of the pin of the component is entered in the “pin coordinate X” field as position information of the pin of the component. A Y coordinate value of the pin of the component is entered in the “pin coordinate Y” field as position information of the pin of the component.
The orientation of the pin relative to the component is entered in the “pin placement angle” field. For example, when the orientation of 0° defined for the component and the orientation of the pin are the same, 0° is entered in the “pin placement angle” field.
When a polarity is defined for the component, information indicating the polarity is entered in the “polarity” field. For example, when the component is a capacitor, “+” or “−” is entered in the “polarity” field. For example, when the component is a diode, “anode” or “cathode” is entered in the “polarity” field. In
Information indicating a surface of the component, on which the pin is placed, is entered in the “pin placement surface” field. When the pin is placed on a surface on which a component is to be placed, for example, “mount surface” is entered in the “pin placement surface” field.
A pin management number for associating the pin of the component with the component-pin shape library 426 is entered in the “pin management number” field.
A pin management number indicating the type of pin is entered in the “pin management number” field. Information indicating whether or not a pin of a component is to be inserted into a hole in a printed circuit board is entered in the “presence/absence of hole” field. For example, when the pin of the component is to be inserted into a hole in a printed circuit board, “presence” is entered in the “presence/absence of hole” field, and when the pin of the component is not to be inserted into a hole in a printed circuit board, “absence” is entered in the “presence/absence of hole” field.
Information indicating the shape of a pin is entered in the “shape type” field. For example, when the shape of the pin is quadrangular, “rectangle” is entered in the “shape type” field. The X coordinate values of vertices of a rectangle in a local coordinate system of the pin are entered in the “coordinate X” fields. The Y coordinate values of vertices of the rectangle in the local coordinate system of the pin are entered in the “coordinate Y” fields.
Each record of the adjacent-element acquisition table 427 includes a “number” field and “element” fields for obtained elements. Upon entry of information in the fields, records (record 1101-1 and so on) are stored in the adjacent-element acquisition table 427. The number for identifying a designated position is entered in the “number field”. The element names of respective elements located within a predetermined distance from the designated position are entered in the “element” fields.
Referring back to
An unwired section may be pre-identified to determine between which components wiring work for a wiring pattern is to be performed. Based on the wiring-pattern table 424 and the net connection table 421, the unwired-section identification unit 401 identifies the unwired section. The unwired-section identification unit 401 identifies, as an unwired section, a net that is included in nets registered in the net connection table 421 and that is not registered in the wiring-pattern table 424. With respect to a pin of a component which is to be connected to a net that is an unwired section, the display control unit 403 may also display information indicating that the pin is not yet wired. The display control unit 403 displays, for example, a pin of a component to be connected to a net that is an unwired section, by using a color different from pins of components that are already wired.
When an unwired section is identified, the reception unit 402 receives a pin of a component, which is selected by the user's operation.
In the example in SCENE-1 in
The display control unit 403 displays the unplaced first component in a state in which the first terminal of the first component is located on the second terminal of the second component. The second terminal of the second component has a connection relationship with the first terminal. Here, the first component is, for example, a two-terminal component. Based on the net connection table 421, the display control unit 403 may identify the first terminal at the end point of the net connected to the second terminal of the second component and the first component having the first terminal at the end point.
According to the net connection table 421, the pin P01 at the end point of the net n00001 to be connected to the pin P04 of the component IC1 is included in the component R1. At this time, the display control unit 403 displays the components already placed on the printed circuit board and an unplaced two-terminal component such that they are distinguishable from each other. Therefore, as illustrated in SCENE-2 in
The display control unit 403 varies the display color, the display line width, the line type, and so on between the components already placed on the printed circuit board and the two-terminal component. This makes it possible to distinguish between the components already placed on the printed circuit board and the unplaced two-terminal component.
The first interference check unit 404 also determines whether or not the occupied area of the component IC1 having the selected pin P04 and the occupied area of the unplaced two-terminal component R1 overlap each other. The “overlap of the areas” is also referred to as “interference”. Determining whether or not the areas overlap each other is also referred to as “interference check”. When there is interference, the first interference check unit 404 determines that there is an error.
As described above, the occupied area is an area including at least the outer shape of a component and pins of the component. The occupied area of a component may be, for example, an area including the largest outer shape of a component and pins of the component. The occupied area of each component may be an area having a margin of a predetermined length in each direction from the area including the largest outer shape.
As illustrated in SCENE-2 in
The display control unit 403 displays a first wiring pattern that connects from the second terminal to the first terminal, along a route designated from the second terminal. As illustrated in SCENE-3 in
The display control unit 403 then displays the wiring pattern 1201 so that it runs along the received route and also displays the component R1 at the distal end of the wiring pattern 1201, based on the component shape library 425 and the component-pin shape library 426. Detailed examples of a case in which the component R1 is displayed at the distal end of the wiring pattern 1201 will be described later with reference to
Next, the second interference check unit 405 checks interference between the first wiring pattern and the already placed components or the already wired wiring patterns, with respect to the occupied areas. Although it is not illustrated, when it is determined that the wiring pattern 1201 to be provided along the received route and a component or a wiring pattern already placed on the printed circuit board interfere with each other, the display control unit 403 outputs information indicating that the wiring pattern 1201 is not to be provided along the designated route. The display control unit 403 does not display, for example, the wiring pattern on the designated route.
Upon receiving an instruction for finalizing the route, the third interference check unit 406 determines whether or not the area of the first component overlaps the areas of the already placed components or the areas of the already wired wiring patterns when the first component is placed at the position of the distal end of the route. As illustrated in SCENE-4 in
The third interference check unit 406 checks interference between the component R1 and the respective obtained adjacent elements. The interference check in this case determines whether or not the occupied area of the first component and the occupied area of each adjacent element overlap each other.
When it is determined that the area of the first wiring pattern and the area of the first component do not overlap the areas of the already placed components and the areas of the already wired wiring patterns, the finalization unit 407 finalizes the placement of the first component at the position of the distal end and also finalizes the first wiring pattern.
When it is determined that the interference check performed by the third interference check unit 406 and the second interference check unit 405 indicates no error, the finalization unit 407 finalizes the placement of the component R1 at the position of the distal end of the wiring pattern and finalizes the wiring pattern, as illustrated in SCENE-5 in
On the other hand, when it is determined that the area of the first wiring pattern overlaps one of the areas of the already placed components or one of the areas of the already wired wiring patterns, the finalization unit 407 neither finalizes the placement of the first component at the position of the distal end nor finalizes the first wiring pattern. Also, when it is determined that the area of the first component overlaps one of the areas of the already placed components or one of the areas of the already wired wiring patterns, the finalization unit 407 neither finalizes the placement of the first component at the position of the distal end nor finalizes the first wiring pattern. When the placement of the first component and the first wiring pattern are not finalized, the display control unit 403 displays information indicating that the finalization is not permitted.
As illustrated in SCENE-2 in
As illustrated in SCENE-3 in
When it is determined that the interference check performed by the third interference check unit 406 and the second interference check unit 405 indicates no error, the finalization unit 407 finalizes the placement of the component R1 at the position of the distal end of the wiring pattern and also finalizes the wiring pattern 1301, as illustrated in SCENE-4 in
Next, display orientations and placement orientations of an unplaced component during wiring work will be described with reference to
The display control unit 403 displays the component R1 in a state in which the pin P01, which is the first terminal, of the component R1 is located at a distal end of the wiring pattern 1401, and the pins P01 and P02 of the component R1 are located on an extended straight line of the wiring pattern 1401. The component R1 is oriented such that the wiring pattern 1401 and the pin P02 do not overlap each other.
As illustrated in
When an instruction for finalizing the component placement is received, the third interference check unit 406 checks interference between the component R1, which is placed in the default orientation at the distal end of the wiring pattern, and an already placed element. When finalizing the component placement, the finalization unit 407 finalizes the placement of the component R1 in the default orientation at the distal end of the wiring pattern.
When receiving an instruction for finalizing the placement of an unplaced component, the reception unit 402 also receives an instruction indicating in which of the orientations the placement of the component is to be finalized. The third interference check unit 406 then checks interference between the component, which is placed in the orientation indicated by the instruction, and adjacent elements.
The plurality of orientations are orientations based on a polarity defined for terminals of the component. The polarity is defined in the component shape library 425. As described above, when the component of interest is a diode, a capacitor, or the like, the polarity is defined.
According to the placement restriction information 1600, for example, the orientation of a component is “−X orientation” or “+Y orientation” when the polarity is “+”. In contrast, according to the placement restriction information 1600, for example, the orientation of a component is “+X orientation” or “−Y orientation”, when the polarity is “−”.
As illustrated in SCENE-2 in
When it is determined that the result of the interference check performed by the third interference check unit 406 and the second interference check unit 405 indicates no error, the finalization unit 407 moves the component R1 to the position of the distal end of the wiring pattern 1801, finalizes the position of the component R1, and finalizes the wiring pattern 1801, as illustrated in SCENE-3 in
When a second wiring pattern that connects from a terminal, which is one terminal of the component R1 and different from the first terminal, to a terminal of a third component having a connection relationship with the other terminal is already finalized, the display control unit 403 displays information indicating that the second wiring pattern is already finalized, before the placement of the first component and the first wiring pattern are finalized.
As illustrated in SCENE-1 in
In such a case, the display control unit 403 does not display a component to be connected in a state in which a pin thereof is located on the selected pin of the already placed component. Instead, the reception unit 402 receives a designated route for a wiring pattern from the selected pin P04 of the already placed component IC1, as illustrated in SCENE-1 in
As illustrated in SCENE-2 in
When it is determined that the interference check performed by the third interference check unit 406 and the second interference check unit 405 indicates no error, the finalization unit 407 moves the component R1 to the position of the distal end of the wiring pattern 1901, finalizes the placement of the component R1, and finalizes the wiring pattern 1901, as illustrated in SCENE-2 in
When the finalization unit 407 moves the first component R1 to the position of the distal end, finalizes the placement of the first component R1, and finalizes the first wiring pattern, the finalization unit 407 removes the second wiring pattern 1902. Thereafter, the reception unit 402 becomes able to receive a designated route for a third wiring pattern that connects from another terminal to a terminal of a third component TR2.
As illustrated in SCENE-3 in
In a related art illustrated in
Subsequently, as illustrated in
Thereafter, wiring work for the later-placed component is performed. In the wiring work for the later-placed component, a wiring command is executed, and wiring work for the wiring pattern is performed. Then, in the wiring work for the later-placed component, the wiring pattern is finalized in response to an instruction for completing the wiring pattern.
In another related art illustrated in
Next, a later-placed component is placed, as illustrated in
Thereafter, wiring work for the later-placed component is performed. In the wiring work for the later-placed component, a wiring command is executed, and wiring work for the wiring pattern is performed. Then, in the wiring work for the later-placed component, the wiring pattern is finalized in response to an instruction for completing the wiring pattern.
As illustrated in
Thus, comparison between
Subsequently, the information processing apparatus 100 determines whether or not there is an unwired section (S2103). Upon determining that there is an unwired section (Yes in S2103), the information processing apparatus 100 selects a start-point pin in the unwired section and starts wiring (S2104). The information processing apparatus 100 determines whether or not the end-point pin having a connection relationship with the start-point pin is included in a later-placed component (S2105).
Upon determining that the end-point pin is included in a later-placed component (Yes in S2105), the information processing apparatus 100 performs processing for placing and wiring the later-placed component (S2106) and then returns to S2103. Upon determining that the end-point pin is not included in a later-placed component (No in S2105), the information processing apparatus 100 performs processing for wiring between the start-point pin and the end-point pin in the unwired section (S2107).
Next, the information processing apparatus 100 determines whether or not the wiring is possible (S2108). Upon determining that the wiring is possible (Yes in S2108), the information processing apparatus 100 returns to S2103. Upon determining that the wiring is not possible (No in S2108), the information processing apparatus 100 moves the component including the end-point pin (S2109) and then returns to S2104.
Upon determining that there is no unwired section (No in S2103), the information processing apparatus 100 ends the series of processing.
Next, the information processing apparatus 100 obtains wire routing information from the mouse pointer (S2204). Subsequently, the information processing apparatus 100 obtains the occupied area of the wiring pattern at the corresponding position (S2205). Then, the information processing apparatus 100 obtains all adjacent elements from the obstacle management table 423 (S2206).
The information processing apparatus 100 determines whether or not there are any unselected adjacent elements (S2207). Upon determining that there are unselected adjacent elements (Yes in S2207), the information processing apparatus 100 selects one of the unselected adjacent elements (S2208). The information processing apparatus 100 then checks interference between the wiring pattern and the selected adjacent element by using the occupied areas (S2209).
The information processing apparatus 100 determines whether or not there is interference (S2210). Upon determining that there is no interference (No in S2210), the information processing apparatus 100 returns to S2207. Upon determining that there is interference (Yes in S2210), the information processing apparatus 100 displays an error (S2211). Subsequently, the information processing apparatus 100 sets an error flag (S2212) and then returns to S2207.
Upon determining that there is no more unselected adjacent element (No in S2207), the information processing apparatus 100 advances to S2301.
The information processing apparatus 100 determines whether or not an error flag is set (S2301). That is, the information processing apparatus 100 determines whether or not there is an interference error. Upon determining that no error flag is set (No in S2301), the information processing apparatus 100 finalizes the position of the route for the wiring pattern (S2302). The information processing apparatus 100 registers the wiring pattern in the obstacle management table 423 (S2303). The information processing apparatus 100 then determines whether or not the later-placed component is to be placed (S2304). Upon determining that the later-placed component is not to be placed (No in S2304), the information processing apparatus 100 advances to S2412. Upon determining that the later-placed component is to be placed (Yes in S2304), the information processing apparatus 100 receives an instruction for finalizing the placement of the later-placed component (S2305). The information processing apparatus 100 obtains position information of the later-placed component from the mouse pointer (S2306). Examples of the position information include information indicating a reference pin position, information indicating a placement surface, and information indicating a component rotation angle.
The information processing apparatus 100 determines the occupied area of the later-placed component when the later-placed component is placed at the corresponding position (S2307). The information processing apparatus 100 obtains all adjacent elements from the determined obstacle management table 423 on the basis of the determined occupied area of the later-placed component (S2308) and advances to S2401.
Upon determining that an error flag is set (Yes in S2301), the information processing apparatus 100 advances to S2412.
The information processing apparatus 100 determines whether or not there are any unselected adjacent elements (S2401). Upon determining that there are unselected adjacent elements (Yes in S2401), the information processing apparatus 100 selects one of the unselected adjacent elements (S2402). The information processing apparatus 100 obtains the occupied area of the selected adjacent element (S2403). The occupied areas of the already placed components are already set in S2102 illustrated in
The information processing apparatus 100 refers to an occupied-area control table to check interference between the later-placed component to be placed and the occupied area of the adjacent element (S2404). The occupied-area control table has information that defines occupied areas of later-placed component and the adjacent element.
The information processing apparatus 100 determines whether or not there is interference (S2405). Upon determining that there is no interference (No in S2405), the information processing apparatus 100 returns to S2401. Upon determining that there is interference (Yes in S2405), the information processing apparatus 100 displays an error (S2406). In the error display in S2406, the information processing apparatus 100 displays, for example, the occupied area of the later-placed component in a highlighted manner. Next, the information processing apparatus 100 sets an error flag indicating that there is interference (S2407) and then returns to S2401.
Upon determining that there is no more adjacent element (No in S2401), the information processing apparatus 100 determines whether or not an error flag indicating that there is interference is set (S2408). Upon determining that no error flag is set (No in S2408), the information processing apparatus 100 finalizes the component placement and the wiring pattern (S2409). The information processing apparatus 100 then registers, in the obstacle management table 423, the later-placed component whose placement is finalized (S2410) and then advances to S2412.
Upon determining that an error flag is set (Yes in S2408), the information processing apparatus 100 recognizes that the component placement and the wiring pattern are not yet finalized and displays information indicating that the component placement and the wiring pattern are not yet finalized (S2411).
Next, the information processing apparatus 100 determines that the section wiring is completed (S2412). Upon determining that the section wiring is not completed (No in S2412), the information processing apparatus 100 advances to S2202. Upon determining that the section wiring is completed (Yes in S2412), the information processing apparatus 100 ends the series of processing.
As described above, during work on a wiring pattern for connecting an unplaced component from an already placed component on a board, when an unplaced component placed at the distal end of the wiring pattern and an already placed element do not interfere with each other, the information processing apparatus 100 finalizes the component placement and the wiring pattern. This makes it possible to perform the placement work while performing the wiring work, thus making it possible to improve the work efficiency of the placement and wiring. The improvement in the work efficiency means reduction of redoing of the placement work and the wiring work. Also, performing the placement work and the wiring work at the same time makes it possible to more easily perform individual work.
When there is interference, the information processing apparatus 100 displays information indicating that the placement of the first component is not permitted to be finalized at the position of the distal end of the wiring pattern and the first wiring pattern is not permitted to be finalized. This makes it possible to present information indicating that the unplaced component is not permitted to be placed at a position for which an instruction for the finalization is issued and makes it possible to facilitate the placement work and the wiring work.
The information processing apparatus 100 may display the first component in a state in which the first terminal is located at the distal end of the first wiring pattern and the first terminal and another terminal of the first component are located on the straight line of the first wiring pattern. This makes it possible to directly route a wiring pattern on a straight line from the center point of the body of the component toward the origin of the component lead. Thus, performing wiring work for a wiring pattern considering the orientation of a pin of an already placed component makes it possible to suppress generation of a pool of solder or the like and makes it possible to suppress a decline in the soldering quality.
Also, the information processing apparatus 100 may display the first component in a plurality of orientations in a state in which the first terminal is located at the position of the distal end of the first wiring pattern, and finalizes the placement of the first component in one of the plurality of orientations, which is designated by the designer. Thus, the component may be placed in an orientation considering the quality of soldering, among a plurality of orientations in which the component may be manufactured.
When a component whose terminals have a polarity, such as a two-terminal finite capacitor, is attached in a wrong direction during assembly, there is a possibility that a failure occurs in a product in which the component is mounted. During assembly, since components are mounted based on design information designed via CAD, no terminals are mounted in a wrong direction. However, for example, when a person removes a component owing to a product failure due to soldering or the like and then remounts the component or when a person remounts a component owing to a change in design, the component may be attached in a wrong direction.
Accordingly, the information processing apparatus 100 displays the first component in a plurality of orientations based on a polarity defined for the terminals of the first component and finalizes the placement of the first component in one of the plurality of orientations, which is designated by a designer. For example, in the case of a finite capacitor, the orientation of the finite capacitor is defined on a printed circuit board such that a terminal having a positive (+) polarity is placed in the positive direction on an X-axis or in the positive direction on a Y-axis. The orientation of the finite capacitor is defined on the printed circuit board such that a terminal having a negative (−) polarity is placed in the negative direction on the X-axis or in the negative direction on the Y-axis. In the case of a diode, the orientation of the diode is determined such that the anode terminal thereof is placed at the positive side on the X-axis or the positive side on the Y-axis. In the case of a diode, the orientation of the diode is determined such that the cathode terminal thereof is placed at the negative side on the X-axis or the negative side on the Y-axis. As described above, restricting the orientation of the placement of a component makes it possible to suppress the component being attached in a wrong direction. Accordingly, it is possible to perform design considering the manufacturability called DFM and testability called DFT.
Also, there a case in which the first component is already placed or is temporarily placed. When the first component is already placed, the information processing apparatus 100 does not display the first component in a state in which the first terminal is located on the second terminal of the second component, instead, moves the first component to the position of the distal end of the wiring pattern, finalizes the placement of the first component, and finalizes the wiring pattern. Thus, when the first component is already placed, component movement work may be performed while performing wiring work, thus making it possible to reduce redoing of the movement work and the wiring work.
When a second wiring pattern that connects from another terminal of the first component, which is different from the first terminal, to a terminal of a third component having a connection relationship with the other terminal is already finalized, the information processing apparatus 100 displays information indicating that the second wiring pattern is already finalized, before finalizing the placement of the first component. When another terminal is already wired, it is possible to provide the designer with information indicating that another terminal is already wired, thus making it possible to suppress unwanted movement of the component. Also, this allows the designer to select, for example, the placement of a component which reduces the length of a wiring pattern.
When the information processing apparatus 100 moves the first component to the position of the distal end of the wiring pattern, finalizes the placement of the first component, and finalizes the first wiring pattern, it removes the second wiring pattern and receives a designated route for the third wiring pattern that connects from another terminal to a terminal of the third component. This makes it possible to receive designation of a route for another wiring pattern in place of the removed wiring pattern, while moving the placement of the component.
A computer, such as a personal computer or a workstation, may execute a prepared component placement program to realize the component placement method described in the present embodiment. The component placement program is recorded in a computer-readable recording medium, such as a magnetic disk, an optical disk, a universal serial bus (USB) flash memory, and the computer reads the component placement program from the recording medium to execute it. The component placement program may also be distributed over a network, such as the Internet.
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 embodiment of the present invention has 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 |
---|---|---|---|
2016-106478 | May 2016 | JP | national |