Patentable/Patents/US-20260134189-A1
US-20260134189-A1

Printed Circuit Board (pcb) Wiring Automatic Design Method and System

PublishedMay 14, 2026
Assigneenot available in USPTO data we have
Technical Abstract

A printed circuit board (PCB) wiring automatic design method in a PCB wiring automatic design system, the system including at least one processor and at least one memory including an instruction, and the PCB wiring automatic design method performed in cooperation with the instruction, the memory, and the processor, includes: receiving PCB data including a net list and information on a plurality of terminals; updating a cost of a wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; exploring a shortest path for wiring the plurality of terminals according to the net list in a cost-updated wiring exploration region; and performing wiring of the plurality of terminals based on wiring probability according to the shortest path.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

receiving PCB data including a net list and information on a plurality of terminals; updating a cost of a wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; exploring a shortest path for wiring the plurality of terminals according to the net list in a cost-updated wiring exploration region; and performing wiring of the plurality of terminals based on wiring probability according to the shortest path. . A printed circuit board (PCB) wiring automatic design method in a PCB wiring automatic design system, the system including at least one processor and at least one memory including an instruction, and the PCB wiring automatic design method performed in cooperation with the instruction, the memory, and the processor, comprising:

2

claim 1 . The PCB wiring automatic design method of, wherein, in the updating of the cost of the wiring exploration region, the cost of the wiring exploration region is updated so that a cost of at least some of grid cells among a plurality of grid cells gridization-performed based on a preset criterion is increased based on the preset constraint condition.

3

claim 2 . The PCB wiring automatic design method of, wherein, in the exploring of the shortest path, the shortest path for wiring the plurality of terminals according to the net list is explored by exploring grid cells whose cost is minimized in the cost-updated wiring exploration region.

4

claim 3 calculating wiring probability of the plurality of grid cells using information on grid cells corresponding to the shortest path among the plurality of grid cells; and performing wiring of the plurality of terminals in a continuous coordinate system using the wiring probability of the plurality of grid cells. . The PCB wiring automatic design method of, wherein the performing of the wiring of the plurality of terminals comprise:

5

claim 4 calculating wiring probabilities of the grid cells corresponding to the shortest path among the plurality of grid cells to be higher than wiring probabilities of remaining grid cells so that wiring of the plurality of terminals is performed in the continuous coordinate system centered on the grid cells corresponding to the shortest path. . The PCB wiring automatic design method of, wherein the calculating of the wiring probabilities of the plurality of grid cells comprises:

6

claim 5 converting the wiring exploration region into a heatmap, assigning a probability value to each of the plurality of grid cells included in the wiring exploration region, and wherein the calculating of the wiring probabilities of the plurality of grid cells comprises: generating the heatmap using the probability values assigned to each of the plurality of grid cells. wherein the converting into the heatmap comprises: . The PCB wiring automatic design method of, further comprising:

7

claim 6 performing sampling for points to be included in wiring of the plurality of terminals centered on a region having a high probability value among the wiring exploration region defined by the heatmap. . The PCB wiring automatic design method of, wherein the performing of wiring of the plurality of terminals in the continuous coordinate system comprises:

8

claim 7 constructing a wiring tree centered on points satisfying the constraint condition among points specified through the sampling; and completing wiring of the plurality of terminals using the wiring tree. . The PCB wiring automatic design method of, wherein the performing of wiring of the plurality of terminals in the continuous coordinate system comprises:

9

claim 8 sampling an arbitrary first point positioned in the region having a high probability value on the heatmap, from a point where a first terminal, among terminals grouped into a first net defined by the net list, is positioned. . The PCB wiring automatic design method of, wherein the performing of the sampling comprises:

10

claim 9 specifying a second point spaced apart from the first point by a preset distance, among regions having a high probability value defined by the heatmap, as a wiring candidate point; determining whether the second point satisfies the constraint condition; and performing different wiring processes depending on whether the second point satisfies the preset constraint condition. . The PCB wiring automatic design method of, wherein the performing of wiring of the plurality of terminals in the continuous coordinate system comprises:

11

claim 10 a first wiring process of allowing the second point to be included in a wiring tree of the first net in case that the second point satisfies the constraint condition, and sampling a new wiring candidate point spaced apart from the second point by the preset distance; and a second wiring process of not allowing the second point to be included in the wiring tree of the first net in case that the second point does not satisfy the constraint condition, and sampling a new wiring candidate point spaced apart from the first point by the preset distance. . The PCB wiring automatic design method of, wherein the different wiring processes include:

12

claim 11 setting the first terminal as a start point, and setting a second terminal different from the first terminal as a target point, among terminals grouped into the first net; and repeatedly performing at least one of the first wiring process or the second wiring process until the wiring tree continuing from the start point to the target point is constructed, centered on the region having a high probability value defined by the heatmap. . The PCB wiring automatic design method of, wherein the performing of wiring of the plurality of terminals in the continuous coordinate system comprises:

13

claim 11 switching a direction of a connection path connecting the first point and the second point in at least a portion between the first point and the second point, so that the connection path connecting the first point and the second point satisfies the constraint condition in case that the second point is included in the wiring tree of the first net. . The PCB wiring automatic design method of, wherein the performing of wiring of the plurality of terminals in the continuous coordinate system comprises:

14

claim 1 a first constraint condition that prevents wiring of the plurality of terminals according to the net list from crossing each other; a second constraint condition related to a spacing distance between wirings of respective nets included in the net list, or a line width of the respective nets; or a third constraint condition related to a wiring forbidden zone in which wiring is restricted in the wiring exploration region. . The PCB wiring automatic design method of, wherein the constraint condition comprises at least one of:

15

at least one processor; and at least one memory including an instruction, wherein the memory and the instruction cooperate with the processor to: receive PCB data including a net list and information on a plurality of terminals; update a cost of the wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; explore a shortest path for wiring the plurality of terminals according to the net list in the cost-updated wiring exploration region; and perform wiring of the plurality of terminals based on wiring probability according to the shortest path. . A printed circuit board (PCB) wiring automatic design system, comprising:

16

receive printed circuit board (PCB) data including a net list and information on a plurality of terminals; update a cost of the wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; explore a shortest path for wiring the plurality of terminals according to the net list in the cost-updated wiring exploration region; and perform wiring of the plurality of terminals based on wiring probability according to the shortest path. . A program stored in a computer-readable recording medium and executed by one or more processes in an electronic device, the program comprising instructions to process configured to:

17

receiving PCB wiring target information in the agent through a conversation of a user via a user terminal as a medium; specifying grid cells corresponding to the shortest path that satisfies a preset constraint condition among a plurality of grid cells forming a wiring exploration region, based on the target information; performing a wiring design according to the PCB wiring target information based on calculated probability information, by using information on the grid cells corresponding to the shortest path; and providing, via the agent, a wiring result to the user terminal. . A printed circuit board (PCB) wiring automatic design method in a PCB wiring automatic design system cooperating with an artificial intelligence agent, the system including at least one processor and at least one memory including an instruction, and the PCB wiring automatic design method performed in cooperation with the instruction, the memory, and the processor, the PCB wiring automatic design method comprising:

18

claim 17 via the agent, providing a question related to PCB data to the user terminal so that the PCB data including a net list and information on a plurality of terminals is specified; specifying the PCB data based on an answer received from the user terminal; and specifying the target information based on the PCB data. . The PCB wiring automatic design method of, wherein the receiving of the PCB wiring target information comprises:

19

claim 17 generating, via the agent, a task plan based on the PCB wiring target information, wherein the agent, according to the task plan, cooperates with at least one of a data parsing unit, a path exploration unit, a heatmap generation unit, a sampling-based path exploration unit, or a solution derivation unit of the system, to perform wiring according to the PCB wiring target information. . The PCB wiring automatic design method of, further comprising:

20

claim 19 a main agent configured to generate the task plan; and at least one sub-agent, configured to cooperate with the main agent, respectively interoperating with one among the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, and the solution derivation unit, wherein the main agent, according to the task plan, delivers a task command to at least one of the plurality of sub-agents, and wherein the at least one sub-agent, according to the task command, performs a wiring design according to the PCB wiring target information. . The PCB wiring automatic design method of, wherein the agent comprises:

21

claim 15 specifying at least one specific grid cell that does not satisfy at least one of the first constraint condition, the second constraint condition, or the third constraint condition among the plurality of grid cells. . The PCB wiring automatic design method of, further comprising:

Detailed Description

Complete technical specification and implementation details from the patent document.

This application is a Bypass Continuation of International Patent Application No. PCT/KR 2025/007505, filed on May 30, 2025, which claims priority from and the benefit of Korean Patent Application No. 10-2024-0077750, filed on Jun. 14, 2024 and Korean Patent Application No. 10-2025-0006851, filed on Jan. 16, 2025, each of which is hereby incorporated by reference for all purposes as if fully set forth herein.

Embodiments of the invention relate generally disclosure to a PCB wiring automatic design method and system, and more particularly, embodiments of the invention relate to a printed circuit board (PCB) wiring automatic design method and system, which is capable of performing PCB automatic wiring by using a wiring path explored based on a grid as a guide.

The printed circuit board (PCB) is a component essentially included in electronic devices (e.g., a smartphone, a tablet, a PC, etc.) and increases integration and stability by designing wirings that connect electronic elements such as resistors and transistors to each other on an epoxy board. The PCB is generally designed in a single layer to multi-layer structure, and the number of layers may increase according to wiring density.

In this regard, in a conventional PCB design, a hardware engineer sequentially performs circuit diagram configuration, component disposition, and wiring task (or PCB routing), and a final product is generated by going through such processes multiple times. In this case, as a repetitive modification and review process by the engineer is essential, a large amount of time and cost is consumed in PCB design, and a quality deviation may occur depending on the engineer's proficiency. In addition, in case of complex circuit design, as various constraint conditions need to be satisfied along with a multi-layer structure, the design time and cost are greatly increased.

The above information disclosed in this Background section is only for understanding of the background of the inventive concepts, and, therefore, it may contain information that does not constitute prior art.

The present disclosure is directed to providing a printed circuit board (PCB) wiring automatic design method and system that is capable of automatically designing a PCB.

More particularly, the present disclosure is directed to providing a PCB wiring automatic design method and system that is capable of automatically designing wiring of the PCB using artificial intelligence.

Additional features of the inventive concepts will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the inventive concepts.

According to an embodiment of the invention, the PCB wiring automatic design method in a PCB wiring automatic design system, the system including at least one processor and at least one memory including a computer program code, and the PCB wiring automatic design method performed in cooperation with the computer program code, the memory, and the processor may include: receiving printed circuit board (PCB) data including a net list and information on a plurality of terminals; updating a cost of a wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; exploring a shortest path for wiring the plurality of terminals according to the net list in a cost-updated wiring exploration region; and performing wiring of the plurality of terminals based on wiring probability according to the shortest path.

In the updating of the cost of the wiring exploration region, the cost of the wiring exploration region may be updated so that a cost of at least some of grid cells among a plurality of grid cells gridization-performed based on a preset criterion is increased based on the preset constraint condition.

In the exploring of the shortest path, the shortest path for wiring the plurality of terminals according to the net list may be explored by exploring grid cells whose cost is minimized in the cost-updated wiring exploration region.

The performing of the wiring of the plurality of terminals may include calculating wiring probability of the plurality of grid cells using information on grid cells corresponding to the shortest path among the plurality of grid cells; and performing wiring of the plurality of terminals in a continuous coordinate system using the wiring probability of the plurality of grid cells.

the shortest The calculating of the wiring probabilities of the grid cells may include: calculating wiring probabilities of the grid cells corresponding to the shortest path among the plurality of grid cells to be higher than wiring probabilities of remaining grid cells, so that wiring of the plurality of terminals is performed in the continuous coordinate system centered on the grid cells corresponding to the shortest path.

The PCB wiring automatic design method may further include: converting the wiring exploration region into a heatmap, in which the calculating of the wiring probabilities of the plurality of grid cells includes: assigning a probability value to each of the plurality of grid cells included in the wiring exploration region, and the converting into the heatmap includes: generating the heatmap using the probability values assigned to each of the plurality of grid cells.

The performing of wiring of the plurality of terminals in the continuous coordinate system may include: performing sampling for points to be included in wiring of the plurality of terminals, centered on a region having a high probability value among the wiring exploration region defined by the heatmap.

The performing of wiring of the plurality of terminals in the continuous coordinate system may include: constructing a wiring tree centered on points satisfying the constraint condition among points specified through the sampling; and completing wiring of the plurality of terminals using the wiring tree.

The performing of the sampling may include: sampling an arbitrary first point positioned in the region having a high probability value on the heatmap, from a point where a first terminal, among terminals grouped into a first net defined by the net list, is positioned.

The performing of wiring of the plurality of terminals in the continuous coordinate system may include: specifying a second point spaced apart from the first point by a preset distance, among regions having a high probability value defined by the heatmap, as a wiring candidate point; determining whether the second point satisfies the constraint condition; and performing different wiring processes depending on whether the second point satisfies the preset constraint condition.

The different wiring processes may include: a first wiring process of allowing the second point to be included in a wiring tree of the first net in case that the second point satisfies the constraint condition, and sampling a new wiring candidate point spaced apart from the second point by the preset distance.

The different wiring processes may include: a second wiring process of not allowing the second point to be included in the wiring tree of the first net in case that the second point does not satisfy the constraint condition, and sampling a new wiring candidate point spaced apart from the first point by the preset distance.

The performing of wiring of the plurality of terminals in the continuous coordinate system may include: setting the first terminal as a start point, and setting a second terminal different from the first terminal as a target point, among terminals grouped into the first net; and repeatedly performing at least one of the first wiring process or the second wiring process until the wiring tree continuing from the start point to the target point is constructed, centered on the region having a high probability value defined by the heatmap.

The performing of wiring of the plurality of terminals in the continuous coordinate system may include: switching a direction of a connection path connecting the first point and the second point in at least a portion between the first point and the second point, so that the connection path connecting the first point and the second point satisfies the constraint condition in case that the second point is included in the wiring tree of the first net.

The constraint condition may include at least one of: a first constraint condition that prevents wiring of the plurality of terminals according to the net list from crossing each other; a second constraint condition related to a spacing distance between wirings of respective nets included in the net list, or a line width of the respective nets; or a third constraint condition related to a wiring forbidden zone in which wiring is restricted in the wiring exploration region. The PCB wiring automatic design method may further include specifying at least one specific grid cell that does not satisfy at least one of the first constraint condition, the second constraint condition, or the third constraint condition among the plurality of grid cells.

According to another embodiment of the invention, a printed circuit board (PCB) wiring automatic design system may include at least one processor, and at least one memory including an instruction, in which the memory and the program code may cooperate with the processor to: receive PCB data including a net list and information on a plurality of terminals; update a cost of the wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; explore a shortest path for wiring the plurality of terminals according to the net list in the cost-updated wiring exploration region; and perform wiring of the plurality of terminals based on wiring probability according to the shortest path.

According to another embodiment of the invention, a computer-readable recording medium and executed by one or more processes in an electronic device, the program may include instructions to process configured to: receive printed circuit board (PCB) data including a net list and information on a plurality of terminals; specify a wiring exploration region for performing wiring of the plurality of terminals based on the net list; performing gridization of the wiring exploration region into a plurality of grid cells based on a preset criterion; update a cost of the wiring exploration region so that a cost of at least some of the plurality of grid cells is increased, based on a preset constraint condition; explore, in the cost-updated wiring exploration region, grid cells with minimized costs, to explore a shortest path for wiring the plurality of terminals according to the net list; calculating wiring probabilities of the plurality of grid cells using information on grid cells corresponding to the shortest path; and performing, in a continuous coordinate system, wiring of the plurality of terminals according to the net list using the wiring probabilities of the plurality of grid cells.

According to another embodiment of the invention, a printed circuit board (PCB) wiring automatic design method in a PCB wiring automatic design system cooperating with an artificial intelligence agent, according to the present disclosure may include at least one processor and at least one memory including an instruction, and the PCB wiring automatic design method performed in cooperation with the instruction, the memory, and the processor, may include: receiving PCB wiring target information in the agent through a conversation of a user via a user terminal as a medium; specifying grid cells corresponding to a shortest path that satisfies a preset constraint condition among a plurality of grid cells forming a wiring exploration region, based on the target information; generating a heatmap reflecting wiring probability values for each of the plurality of grid cells using information on the grid cells corresponding to the shortest path; performing a wiring design in a continuous coordinate system according to the PCB wiring target information, based on probability values defined by the heatmap; and providing, via the agent, a wiring result in the continuous coordinate system to the user terminal.

The receiving of the PCB wiring target information may include: providing, via the agent, a question related to printed circuit board (PCB) data to the user terminal, so that the PCB data including a net list and information on a plurality of terminals is specified; specifying, via the agent, the PCB data based on an answer received from the user terminal; and specifying, via the agent, the target information based on the PCB data.

The PCB wiring automatic design method may further include: generating, via the agent, a task plan based on the PCB wiring target information, in which the agent, according to the task plan, cooperates with at least one among a data parsing unit, a path exploration unit, a heatmap generation unit, a sampling-based path exploration unit, and a solution derivation unit of the system, to perform wiring according to the PCB wiring target information.

The agent may include: a main agent configured to generate the task plan; and at least one sub-agent, configured to cooperate with the main agent, respectively interoperating with one among the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, and the solution derivation unit. The main agent may deliver a task command to at least one sub-agent, and the at least one sub-agent, according to the task command, may perform a wiring design according to the PCB wiring target information.

the shortestthe shortestthe shortestthe shortestthe shortestthe shortestthe shortestthe shortestthe shortestIt is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the disclosure as claimed.

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of various embodiments or implementations of the invention. As used herein “embodiments” and “implementations” are interchangeable words that are non-limiting examples of devices or methods employing one or more of the inventive concepts disclosed herein. It is apparent, however, that various embodiments may be practiced without these specific details or with one or more equivalent arrangements. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring various embodiments. Further, various embodiments may be different, but do not have to be exclusive. For example, specific shapes, configurations, and characteristics of an embodiment may be used or implemented in another embodiment without departing from the inventive concepts.

Unless otherwise specified, the illustrated embodiments are to be understood as providing features of varying detail of some ways in which the inventive concepts may be implemented in practice. Therefore, unless otherwise specified, the features, components, modules, layers, films, panels, regions, and/or aspects, etc. (hereinafter individually or collectively referred to as “elements”), of the various embodiments may be otherwise combined, separated, interchanged, and/or rearranged without departing from the inventive concepts.

The use of cross-hatching and/or shading in the accompanying drawings is generally provided to clarify boundaries between adjacent elements. As such, neither the presence nor the absence of cross-hatching or shading conveys or indicates any preference or requirement for particular materials, material properties, dimensions, proportions, commonalities between illustrated elements, and/or any other characteristic, attribute, property, etc., of the elements, unless specified. Further, in the accompanying drawings, the size and relative sizes of elements may be exaggerated for clarity and/or descriptive purposes. When an embodiment may be implemented differently, a specific process order may be performed differently from the described order. For example, two consecutively described processes may be performed substantially at the same time or performed in an order opposite to the described order. Also, like reference numerals denote like elements.

1 2 3 1 2 3 When an element, such as a layer, is referred to as being “on,” “connected to,” or “coupled to” another element or layer, it may be directly on, connected to, or coupled to the other element or layer or intervening elements or layers may be present. When, however, an element or layer is referred to as being “directly on,” “directly connected to,” or “directly coupled to” another element or layer, there are no intervening elements or layers present. To this end, the term “connected” may refer to physical, electrical, and/or fluid connection, with or without intervening elements. Further, the D-axis, the D-axis, and the D-axis are not limited to three axes of a rectangular coordinate system, such as the x, y, and z-axes, and may be interpreted in a broader sense. For example, the D-axis, the D-axis, and the D-axis may be perpendicular to one another, or may represent different directions that are not perpendicular to one another. For the purposes of this disclosure, “at least one of X, Y, and Z” and “at least one selected from the group consisting of X, Y, and Z” may be construed as X only, Y only, Z only, or any combination of two or more of X, Y, and Z, such as, for instance, XYZ, XYY, YZ, and ZZ. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.

Although the terms “first,” “second,” etc. may be used herein to describe various types of elements, these elements should not be limited by these terms. These terms are used to distinguish one element from another element. Thus, a first element discussed below could be termed a second element without departing from the teachings of the disclosure.

Spatially relative terms, such as “beneath,” “below,” “under,” “lower,” “above,” “upper,” “over,” “higher,” “side” (e.g., as in “sidewall”), and the like, may be used herein for descriptive purposes, and, thereby, to describe one elements relationship to another element(s) as illustrated in the drawings. Spatially relative terms are intended to encompass different orientations of an apparatus in use, operation, and/or manufacture in addition to the orientation depicted in the drawings. For example, if the apparatus in the drawings is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the exemplary term “below” can encompass both an orientation of above and below. Furthermore, the apparatus may be otherwise oriented (e.g., rotated 90 degrees or at other orientations), and, as such, the spatially relative descriptors used herein interpreted accordingly.

The terminology used herein is for the purpose of describing particular embodiments and is not intended to be limiting. As used herein, the singular forms, “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Moreover, the terms “comprises,” “comprising,” “includes,” and/or “including,” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, components, and/or groups thereof, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It is also noted that, as used herein, the terms “substantially,” “about,” and other similar terms, are used as terms of approximation and not as terms of degree, and, as such, are utilized to account for inherent deviations in measured, calculated, and/or provided values that would be recognized by one of ordinary skill in the art.

Various embodiments are described herein with reference to sectional and/or exploded illustrations that are schematic illustrations of idealized embodiments and/or intermediate structures. As such, variations from the shapes of the illustrations as a result, for example, of manufacturing techniques and/or tolerances, are to be expected. Thus, embodiments disclosed herein should not necessarily be construed as limited to the particular illustrated shapes of regions, but are to include deviations in shapes that result from, for instance, manufacturing. In this manner, regions illustrated in the drawings may be schematic in nature and the shapes of these regions may not reflect actual shapes of regions of a device and, as such, are not necessarily intended to be limiting.

As customary in the field, some embodiments are described and illustrated in the accompanying drawings in terms of functional blocks, units, and/or modules. Those skilled in the art will appreciate that these blocks, units, and/or modules are physically implemented by electronic (or optical) circuits, such as logic circuits, discrete components, microprocessors, hard-wired circuits, memory elements, wiring connections, and the like, which may be formed using semiconductor-based fabrication techniques or other manufacturing technologies. In the case of the blocks, units, and/or modules being implemented by microprocessors or other similar hardware, they may be programmed and controlled using software (e.g., microcode) to perform various functions discussed herein and may optionally be driven by firmware and/or software. It is also contemplated that each block, unit, and/or module may be implemented by dedicated hardware, or as a combination of dedicated hardware to perform some functions and a processor (e.g., one or more programmed microprocessors and associated circuitry) to perform other functions. Also, each block, unit, and/or module of some embodiments may be physically separated into two or more interacting and discrete blocks, units, and/or modules without departing from the scope of the inventive concepts. Further, the blocks, units, and/or modules of some embodiments may be physically combined into more complex blocks, units, and/or modules without departing from the scope of the inventive concepts.

Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure is a part. Terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and should not be interpreted in an idealized or overly formal sense, unless expressly so defined herein.

The present disclosure relates to a sampling-based wiring method and system (or a wiring method and system, or a printed circuit board (PCB) automatic design method and system). A sampling-based wiring system (or a PCB automatic design system, or a PCB wiring automatic design system) according to the present disclosure may be a system that automatically designs a PCB by using artificial intelligence (or an artificial intelligence algorithm) or generative artificial intelligence (generative AI).

In particular, the sampling-based wiring system according to the present disclosure is a system that may perform efficient PCB automatic wiring while satisfying all constraint conditions (constraints) based on sampling, and the present disclosure aims to explore and/or derive (or generate) an optimal wiring path (i.e., a solution) accurately satisfying various constraint conditions. In the present disclosure, performing wiring may be understood as performing wiring design.

1 FIG. 2 FIG. 3 FIG. 4 4 FIGS.A andB 5 FIG. 6 7 8 9 10 11 12 FIGS.,,,,,, and Hereinafter, the present disclosure will be described in more detail with reference to the accompanying drawings.is a schematic conceptual diagram for explaining a wiring system according to the present disclosure.is a schematic conceptual diagram for explaining components included in a PCB and constraint conditions required for PCB design,is a schematic conceptual diagram illustrating an embodiment of a multi-layer PCB structure,are schematic flowcharts for explaining an overall process of the present disclosure,is a schematic flowchart for explaining a grid-based wiring method according to the present disclosure, andare schematic conceptual diagrams for explaining the grid-based wiring method according to the present disclosure.

13 FIG. 14 FIG. 15 16 17 18 19 20 21 22 23 FIGS.,,,,,,,, and 24 25 FIGS.and is a schematic flowchart for explaining a sampling-based wiring method according to the present disclosure,is a schematic conceptual diagram for explaining an embodiment of a sampling-based path exploration algorithm, andare schematic conceptual diagrams for explaining the sampling-based wiring method according to the present disclosure. Further,are schematic conceptual diagrams for explaining an agent according to the present disclosure.

1 FIG. 100 100 110 120 130 140 150 Meanwhile, as illustrated in, a wiring system(or a sampling-based wiring system) according to the present disclosure may include at least one of an input unit, an output unit, a communication unit, a storage unit, and a control unit.

100 140 The systemaccording to the present disclosure may include at least one processor and at least one memory including a instruction. For example, the storage unitabove may serve as the memory. The memory and the program code may cooperate with the processor to perform a series of processes described below.

100 140 140 Although not illustrated, the wiring systemaccording to the present disclosure may include one or more processors, and these processors may include one or more general-purpose processors and/or one or more specialized processors (for example, a digital signal processor, a tensor processing unit (TPU), a graphics processing unit (GPU), a neural network processing unit (NPU), an application-specific integrated circuit (ASIC), etc.). The one or more processors may be configured to execute instructions, computer-readable directives, and/or other instructions described in the present disclosure, which are stored (or included) in the storage unit. The sampling-based wiring system and method according to the present disclosure may perform data processing, as described below, with the cooperation of a memory and at least one processor. The processor may perform a series of operations and data processing using data and information stored in the memory. For example, the memory may be a configuration of the storage unit.

110 110 110 10 10 Meanwhile, the input unitmay serve as a means for data input and may be configured in various types. For example, the input unitmay be configured to receive a user input. The input unitmay be configured to receive user input from the user terminal. The phrase “receives input” may mean receiving an input signal (or selection signal) corresponding to user input, based on input being made by a user through an input unit configuration provided in the user terminal.

110 In addition, the input unitmay not refer to a hardware means but may be understood as a channel for receiving input from a user.

110 110 110 The input unitmay also be referred to as a user interface module. The input unitmay include a touch screen, computer mouse, keyboard, keypad, touch pad, trackball, joystick, voice recognition module, or other similar devices. However, the types of the input unitare not limited.

100 The user input may include a document, text, image (or video), voice, and the like. For example, the wiring systemmay further include a module for converting voice into text.

120 10 100 120 1000 100 10 120 The output unitmay output information through an output unit configuration (e.g., a display unit, touch screen, speaker, etc.) provided in a user terminalinteroperating with the wiring systemaccording to the present disclosure. For example, the output unitmay output a page (or service page,) linked with the wiring systemaccording to the present disclosure to a display unit of the user terminal. The output unitdoes not refer to a hardware means but may be understood as a channel for outputting results to a user.

130 10 100 The communication unitmay be electrically connected to the user terminal, a server (e.g., a central server, an external server, etc.), a device, and at least one network, etc. via a wireless or wired network, and may be configured to transmit or receive overall data and information required for the operation of the wiring systemaccording to the present disclosure.

10 The user terminalmay include a cell phone, a smart phone, a notebook computer, a portable computer (laptop computer), a slate PC, a tablet PC, an ultrabook, a desktop computer, a digital broadcast terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation device, a wearable device (e.g., a watch-type device (smartwatch), a glass-type device (smart glass), and a head mounted display (HMD)), and the like.

130 The communication unitmay support various communication methods depending on the communication standards of devices to be communicated with.

130 For example, the communication unitmay be configured to communicate with a communication target using at least one of wireless LAN (WLAN), wireless-fidelity (Wi-Fi), wireless-fidelity (Wi-Fi) direct, digital living network alliance (DLNA), wireless broadband (WiBro), world interoperability for microwave access (WiMAX), high speed downlink packet access (HSDPA), high speed uplink packet access (HSUPA), long term evolution (LTE), long term evolution-advanced (LTE-A), fifth generation mobile telecommunication (5G), Bluetooth™ radio frequency identification (RFID), infrared communication (infrared data association (IrDA)), ultra-wideband (UWB), ZigBee, near field communication (NFC), Wi-Fi direct, or wireless universal serial bus (wireless USB) technologies.

140 The storage unit(or a memory) may perform a role of storing various data related to the present disclosure and may include one or more non-transitory computer-readable storage media that may be read and/or accessed by at least one of the one or more processors.

140 140 The one or more computer-readable storage media may include volatile and/or non-volatile storage constituent elements, such as optical, magnetic, organic, or other memory or disk storage devices. In some examples, the storage unitmay be implemented using a single physical device (e.g., one optical, magnetic, organic, or other memory or disk storage device), whereas in other examples, the storage unitmay be implemented using two or more physical devices.

140 140 The storage unitmay include computer-readable directives and additional data. The storage unitmay include a storage necessary to perform at least part of the methods, scenarios, and technologies described in this disclosure and/or at least part of the functions of the devices and networks.

140 110 140 Further, at least a part of the storage unitmay be a cloud storage or a cloud server. At least a part of data corresponding to user input received from the input unitand training data may be stored in the storage unit.

140 100 In particular, the storage unitmay be sufficient to be a space where information necessary for the operation of the wiring systemaccording to the present disclosure is stored, and it may be understood that there are no constraints on physical space.

140 140 100 100 150 100 150 100 150 The storage unitmay store a computer program including computer program instructions. The storage unitmay store a computer program including computer program instructions that, when loaded to a processor of the system, control operation of the systemor operation of the control unit. The control unitmay perform a role of controlling overall operation of the wiring systemrelated to the present disclosure. The control unitmay process signals, data, information, and the like that are input or output through the constituent elements of the wiring systemdescribed above or perform a series of data processing to provide or process appropriate information and functions to the user. The control unitmay be physically implemented by the processor described above.

150 160 170 180 190 195 200 10 1000 140 The control unitmay include at least one of a data parsing unit, a path exploration unit, a heatmap generation unit, a sampling-based path exploration unit, or a solution derivation unit, in order to derive an optimal solution (i.e., an optimal wiring path) that satisfies various constraint conditions required for PCB wiring, based on PCB datareceived (or input) from a user terminalthrough a service page (or a PCB automatic design program), or based on the PCB data stored in a storage unit.

150 200 210 220 230 160 For example, the control unitmay input (or transmit) the PCB data, which includes information on at least one of a net list (e.g., “Net list”,), terminal information (e.g., “Terminal”,), and various wiring constraint conditions, to the data parsing unit.

160 The data parsing unitmay be configured to perform various processes (or data processing) such as string parsing, language parsing, Hyper Text Markup Language (HTML) and eXtensible Markup Language (XML) parsing, syntax analyzing (Parsing), and data format parsing.

160 In an embodiment, string parsing is a process of extracting specific data from a string or converting it into a desired format, and the data parsing unitmay parse a Comma-Separated Values (CSV) file to extract table data or convert a JavaScript Object Notation (JSON) string into an object.

In another embodiment, language parsing may include a process of interpreting source code of a programming language or a markup language, identifying syntax errors, and converting it into executable code. In addition, syntax analyzing may be a process of analyzing a text document in natural language processing to understand sentence structure, vocabulary, grammar, semantics, and the like.

In another embodiment, data format parsing may be a process of analyzing a specific data format (e.g., XML, JSON, Yet Another Markup Language (YAML), etc.) to extract and process data, and such formats may be used for data exchange and storage and may play an important role in sharing data between applications.

160 200 210 220 230 200 160 200 The data parsing unitmay analyze (or interpret) the PCB data (or PCB design data) and may extract at least one of the net list, terminal information, and wiring constraint conditionincluded in the PCB data, based on the analysis result. For example, the data parsing unitmay analyze the PCB data, and extract at least one of net group information, coordinate information (or position information, coordinate values, etc.) for each of a plurality of terminals, or wiring constraint conditions.

160 200 The data parsing unitmay convert information (or data) extracted from the PCB datainto a form (or data structure) understandable by an artificial intelligence model (or algorithm).

160 200 In an embodiment, the data parsing unitmay convert coordinate information (e.g., Cartesian coordinates) for a plurality of terminals included in the PCB datainto grid (lattice-based) coordinate information.

160 150 170 In another embodiment, the data parsing unitmay parse data from PCB design data (e.g., Gerber, ODB, CAD files, etc.), and may input (or transmit) the parsed data to at least one of the control unit, the path exploration unit, or the generative model (not illustrated).

200 Hereinafter, the information included in the PCB dataand constraint conditions required for PCB design will be described in more detail.

2 FIG. 1 2 3 4 5 6 Firstly, as illustrated in (a) of, a plurality of terminals T, T, T, T, T, and Tmay mean electrical connection points (pins or nodes of electronic components) at which wiring is to actually be performed. The term “electrical connection point” may mean an electrical contact point (start point or end point) at which wiring starts or ends, and a terminal may mean an electrical contact point at which wiring starts or ends.

20 20 Such terminals may be points at which electronic components, such as resistors or transistors, are mounted on a printed circuit board (PCB), and a terminal may be expressed as a component pin or an electrical node on the PCB. For example, a specific pin of an integrated circuit (IC) chip, a contact point of a connector, an end point of a PCB (or circuit) trace, or the like may correspond to a terminal.

1 2 3 4 5 6 20 200 200 1 2 3 4 5 6 200 In particular, the plurality of terminals T, T, T, T, T, and Tmay respectively correspond to electrical contact points at which wiring starts or ends on the PCBdefined by the PCB data. For example, the PCB datamay include coordinate information for each of the plurality of terminals T, T, T, T, T, and T(e.g., “Terminal 1: (10, 20 . . . )”, “Terminal 2: (15, 30 . . . )”, etc.). For example, in case that the PCB to be designed has a multi-layer structure, the PCB datamay further include information on the layer on which each terminal is positioned.

Here, an electrical contact point may refer to a physical or logical contact point (point or node) at which electrical signals are delivered, or connections are made. This may operate as a connection point for delivering current, signals, or data in electronic devices and circuit design.

A physical contact point may correspond to a physical connection point at which current actually flows or electrical signals are delivered. For example, the physical contact point may include a point at which pins and sockets of a connector touch, a portion where contact occurs in a relay or switch, a soldered pin on a PCB, or the like.

In addition, a logical contact point (node) may correspond to a point that is not physically connected but is regarded as being electrically connected. For example, the logical contact point may include a node connected by a net in circuit design, a terminal on a path through which an electrical signal moves from one node to another node, or the like.

Such electrical contact points (nodes) may perform a role of forming a path along which electrical signals move to other components or circuits in the circuit. For example, the electrical contact points may i) allow current to be delivered to an electronic device through a contact point, ii) allow power to be supplied at a contact point of battery terminals (anode and cathode), iii) provide a physical connection between electronic components so that signals or power may flow, or iv) perform a role of connecting a pin of an IC chip to a trace in PCB design.

1 2 1 2 Next, a net (“Net”) may mean a path that needs to be essentially connected to deliver signals or supply power in a circuit and may refer to a group of terminals (electrical contact points) that need to be electrically connected or exchange signals with each other. For example, in case that a first terminal Tand a second terminal Tare to be connected by wiring, the first terminal Tand the second terminal Tmay be understood to belong to the same net (e.g., Net 1)

210 210 210 20 1 2 1 2 3 4 5 6 210 210 1 2 The net listmay include a list (or set) of terminals that are to be electrically connected. More particularly, the net listmay include information defining connection relationships among terminals that are to be electrically connected. Terminals defined in the net listmay be key nodes that are to be electrically connected on the PCB. For example, a user (or engineer) may perform grouping of terminals Tand T, which are to be electrically connected, among the plurality of terminals T, T, T, T, T, and T, into a single net (e.g., “Net 1”), and may input net group information (e.g., “Net 1: Terminal 1, Terminal 2”) into the net list. For example, the “Net 1: Terminal 1, Terminal 2” input into the net listmay be interpreted to mean that the first terminal Tis to be electrically connected to the second terminal T.

210 200 1 2 3 4 5 6 Accordingly, the net listincluded in the PCB datamay include net group information in which terminals, among the plurality of terminals T, T, T, T, T, and T, that are to be electrically connected are grouped into respective nets.

210 1 2 1 2 For example, in the net list, a first net group information (e.g., “Net 1: Terminal 1, Terminal 2”) may be included, in which the first terminal Tand the second terminal Tare included in a group called a first net (e.g., Net 1), and it is defined (or represented) that the first terminal Tand the second terminal Tare to be electrically connected.

210 3 4 3 4 In another embodiment, a second net group information (e.g., “Net 2: Terminal 3, Terminal 4”) may be included in the net list, in which a third terminal Tand a fourth terminal Tare included in a group called a second net (e.g., Net 2), and it is defined that the third terminal Tand the fourth terminal Tare to be electrically connected.

210 In particular, the net group information included in the net listmay be understood as information including which terminals are grouped into a single net, and what connections are to be made among the terminals included in each net.

210 Therefore, according to the net group information included in the net list, terminals belonging to (or included in) the same net (e.g., Net 1) need to be electrically connected to each other, and terminals belonging to different nets (e.g., Net 1 and Net 2) need not to be electrically connected to each other.

230 100 2 FIG. Wiring constraint conditionsmay be conditions that need to be followed in PCB wiring and may include various conditions that are essential to ensure performance and reliability of the circuit. For example, as illustrated in (b) of, the wiring constraint conditions may include at least one of i) a line width, ii) a line spacing, iii) a wiring forbidden region (or zone), iv) 45-degree wiring, or v) a wiring length constraint. In the present disclosure, such constraint conditions may also be referred to as a “preset constraint condition(s)” in the sampling-based system.

The line width may mean a thickness (or width) of a line. For example, it is necessary to maintain a consistent line width in order on a PCB to allow current to flow safely.

The line spacing may mean a minimum distance to be maintained between different nets (wirings). For example, in case that the spacing between wirings is too narrow, signal interference or short circuiting may occur. Therefore, it is necessary to maintain a safe distance (or minimum distance) between different wirings to prevent such issues. The ‘minimum distance to be maintained between different nets (wirings)’may also be referred to as a ‘preset distance’.

The wiring forbidden region may mean a region where wiring cannot be disposed (or connected) (i.e., a region where wiring cannot be drawn). For example, in case that a specific region is where an electronic component is to be mounted, or where electromagnetic shielding or other important constraints exist, the specific region may be set as a wiring forbidden region.

The 45-degree wiring may mean a constraint to make wiring connections at an angle of 45 degrees, not at right angles (90 degrees). For example, the 45-degree wiring may be for reducing signal reflection and for allowing signals to be delivered smoothly, and particularly, in case of high-speed signals or sensitive signals, the wiring may be designed (or connected) at an angle of 45 degrees.

A wiring length constraint may mean a constraint that limits the maximum length of a path connecting terminals. This may be important in high-frequency devices, since in case that a signal propagates along lengthy wiring, the amplitude of the signal decreases, and simultaneously, noise is amplified, resulting in degradation of circuit performance.

1 2 3 4 5 6 210 2 FIG. Meanwhile, a goal of PCB automatic design may be to connect all terminals T, T, T, T, T, and Tincluded in the net listwhile satisfying all of the constraint conditions described above (see (c) of).

210 210 200 1 2 3 4 More particularly, all terminals (connection points) included in the net listneed to be electrically connected to each other. For example, according to the net listincluded in the PCB data, the first terminal Tand the second terminal Tbelonging to a first net (or net group information) may be electrically connected to each other, and the third terminal Tand the fourth terminal Tbelonging to a second net must be electrically connected to each other.

210 1 2 3 4 For example, in case that a plurality of terminals are electrically connected to each other according to the net list, the wiring connecting the terminals may need to be designed (or connected) to satisfy all of the constraint conditions. For example, wiring connecting the first terminal Tand the second terminal T, and wiring connecting the third terminal Tand the fourth terminal Tmay need to be designed to satisfy all of the various constraint conditions without conflicting with each other.

As such, in PCB design task, wiring task may be the most complicated problem, and the PCB wiring problem may be viewed as a combinatorial optimization problem such as a rectilinear Steiner tree packing problem (RSTPP). Here, a Steiner tree may mean a tree that connects multiple (or plural) terminals, and packing may mean placing multiple Steiner trees in the same space. The goal of the PCB wiring problem may be to minimize the cost (or expense) of all Steiner trees. In particular, the Steiner tree packing problem may be defined as a problem of finding an optimal combination in a limited space while minimizing paths connecting multiple connection points (terminals).

Combinatorial optimization may be a branch of optimization and may be a field of finding a solution satisfying an optimal objective value from a finite set of discrete solution candidates. For example, one of the combinatorial optimization problems may be the traveling salesman problem (TSP), in which, in case that the positions of cities to be visited by a traveling salesman are fixed, the traveling salesman has a problem in that the order of visiting the cities needs to be determined such that the total travel distance is minimized while visiting each city exactly once. For example, the objective value of the traveling salesman problem may be the total travel distance between the cities.

PCB design may also be viewed as one type of combinatorial optimization problem. For example, the goal of the present disclosure may be to derive a structure in which wirings of components are disposed most efficiently without conflicting with each other. In addition, in the present disclosure, because the actual PCB design problem may be regarded as a Steiner tree problem to which various constraint conditions are added, it may also be referred to as “a constraint condition-added (or a constrained) Steiner tree packing problem.”

In this regard, characteristics of the PCB problem may include at least one of path planning (or exploration), trajectory-based multi-agent planning, and multi-layer planning.

Path exploration may mean a task of exploring an optimal path in PCB wiring. For example, while wiring needs to find the shortest path between terminals (connection points), in case that a wiring of another net already exists, it may need to be bypassed (or avoided) to be connected. Therefore, depending on the existing wiring situation, a bypassing and inefficient path compared to an initially intended shortest path may have to be selected.

The trajectory-based multi-agent planning may refer to planning paths such that each net (path) does not overlap others in case that the wiring is composed of multiple nets in PCB design. For example, during the wiring process, it may be necessary to avoid all the paths of other nets that have already been wired, and this may be similar to the problem in which multiple robots move while avoiding each other's paths. However, in the multi-robot path exploration problem, only the current positions may be avoided, whereas in PCB design, there is a difference in that the entire paths that have already been wired need to be considered. In particular, the trajectory-based multi-agent planning may have the goal of ensuring that all wirings are connected independently while preventing conflicts.

3 FIG. 300 300 300 The multi-layer planning may mean that the PCB has a multi-layer structure, and vias may be used (or utilized, applied, etc.) for interlayer movement. For example, as illustrated in, the multi-layer structure may refer to the PCBbeing divided into a plurality of layers (or multiple layers). In the multi-layer structure PCB, in case that a conflict between wirings occurs in a specific layer, the wiring may be moved to another layer to be connected. Here, a via is a hole that connects between a plurality of layers (e.g., two layers) of the PCB, and since a via occupies a large amount of space, excessive use of vias may lead to a shortage of wiring space. In particular, the via used for interlayer movement may have a larger area than general wiring and thus may need to be used carefully.

1 FIG. 170 170 170 Referring back to, the path exploration unitmay be configured to perform a role of exploring an optimal (or optimized) wiring path that satisfies various constraint conditions. The path exploration unitmay perform the role of deriving a wiring path similar to an actual design while satisfying the constraint condition, by using an algorithm (e.g., shortest path exploration algorithm, combinatorial optimization algorithm, etc.) trained with wiring data of a PCB of which design is completed as training data. The path exploration unitmay also be referred to as a “first path exploration unit”.

150 In the present disclosure, in the path exploration process for PCB automatic wiring, at least one algorithm, an artificial neural network, or a generative model (e.g., a diffusion model) may be utilized (or used). In one embodiment, the control unitmay perform reinforcement learning (RL) or supervised learning (SL) for a generative model, with wiring data of a PCB of which design is actually completed as training data. The trained generative model may understand complex patterns and design rules of PCB wiring and may output a result similar to an actual PCB design while satisfying the wiring constraint conditions. The generative model may be a generative model trained based on data using a deep learning-based combinatorial optimization algorithm.

Further, algorithms used to explore an optimal wiring path (or to explore the shortest path) may variously exist. Such an algorithm may include an algorithm related to at least one of shortest path exploration or combinatorial optimization. For example, a Pathfinder algorithm, a Dijkstra's algorithm, an A algorithm, a Lee algorithm, a heuristic algorithm, a RankingCost algorithm, and the like may be included. However, the types of algorithms used (or applied) in the present disclosure are not limited thereto, and any algorithm related to shortest path exploration or combinatorial optimization may be used.

150 1 2 3 4 5 6 210 200 Meanwhile, the control unitmay specify a wiring exploration region for performing wiring for the plurality of terminals T, T, T, T, T, and Tbased on the net listincluded in the PCB dataand may perform gridization of the wiring exploration region by dividing such into a plurality of grid cells based on a preset criterion.

150 1 2 3 4 5 6 200 1 2 3 4 5 6 170 The control unitmay respectively dispose the plurality of terminals T, T, T, T, T, and Tin at least some of the plurality of grid cells based on the PCB dataand may perform a path exploration process (or procedure) for wiring the plurality of terminals T, T, T, T, T, and Tusing the path exploration unit.

170 1 2 3 4 5 6 210 1 2 3 4 5 6 170 170 1 2 3 4 5 6 210 The path exploration unitmay explore the shortest path for wiring the plurality of terminals T, T, T, T, T, and Taccording to the net listin a state in which the plurality of terminals T, T, T, T, T, and Tare disposed in the wiring exploration region. For example, the path exploration unitmay specify a grid cell of the plurality of grid cells that does not satisfy a preset constraint condition based on a result of wiring the plurality of terminals according to the shortest path and may update the cost of the wiring exploration region such that the cost of the specified grid cell is increased. The path exploration unitmay re-explore the shortest path for wiring the plurality of terminals T, T, T, T, T, and Taccording to the net listin the cost-updated wiring exploration region. The further details will be described below.

180 170 The heatmap generation unit (or heatmap conversion unit,) may be configured to perform a role of generating a heatmap based on the wiring path explored from the path exploration unit.

15 FIG. 180 1510 1501 1 2 170 1500 180 180 180 180 For example, as illustrated in, the heatmap generation unitmay generate a heatmapincluding a plurality of grid cells (or regions) using, as a guide, a wiring pathof the first terminal Tand the second terminal Texplored by the path exploration unitbased on a grid. The heatmap generation unitmay also be referred to as a “probability calculation unit.” The heatmap generation unitmay give or calculate probability values for a plurality of grid cells corresponding to the wiring exploration region. The heatmap generation unitmay convert the wiring exploration region into a heatmap. The heatmap generation unitmay convert the wiring exploration region into a heatmap based on the probability value assigned to each of the plurality of grid cells included in the wiring exploration region.

1500 1502 1502 1500 170 a b Among the plurality of grid cells included in the grid, at least some grid cells may include specific grid cells whose costs are increased (or updated) according to preset constraint conditionsand. In addition, at least some grid cells of the plurality of grid cells included in the gridmay include grid cells corresponding to the shortest path explored from the path exploration unit. The grid cells corresponding to the shortest path may also be understood as cells occupied by the shortest path.

180 1510 180 1510 1501 1 2 210 1502 1502 a b The heatmap generation unitmay generate the heatmapusing information on the specific grid cells and information on the grid cells corresponding to the shortest path. For example, the heatmap generation unitmay generate the heatmapincluding (or reflecting) the shortest pathfor wiring the terminals Tand Tgrouped into a first net defined by the net listat a minimum cost, and preset constraint conditionsand(e.g., wiring forbidden region, conflict region, etc.).

180 1501 170 The heatmap generation unitmay assign a higher probability to grid cells corresponding to the shortest path, and may assign a lower probability to grid cells not corresponding to the shortest path, such that grid cells that are closer (or adjacent) to the shortest pathexplored from the path exploration unit, among the plurality of grid cells, have a higher sampling probability.

180 1501 1511 1511 1511 1511 1511 1511 1510 1511 1511 1511 1511 1511 1511 1512 1512 1512 1512 1512 1511 1511 1511 1511 1511 1511 190 a b c d e f a b c d e f a b c d e a b c d e f More particularly, the heatmap generation unitmay give a weight to grid cells including the shortest path(e.g.,,,,,,, etc.). In the heatmap, regions,,,,, andto which the weights are given may be visually displayed differently from regions (e.g.,,,,,, etc.) to which the weights are not given, such that distinction is possible. The regions,,,,, andto which the weights are given may be understood as regions (or zones) having a high probability of being sampled by the sampling-based path exploration unit. The further details will be described below.

190 190 170 190 The sampling-based path exploration unitmay be configured to perform a role of exploring an optimized wiring path that satisfies various constraint conditions, based on sampling. More particularly, the sampling-based path exploration unitmay explore an optimal wiring path satisfying all the constraint conditions using the wiring path explored from the path exploration unitas a guide. The sampling-based path exploration unitmay also be referred to as a “second path exploration unit.”

15 FIG. 190 1 2 1 2 3 4 5 6 1520 1510 180 1521 1521 1521 1521 1520 1501 170 a b c d For example, as illustrated in, the sampling-based path exploration unitmay proceed a path exploration process for wiring the first terminal Tand the second terminal Tamong the plurality of terminals T, T, T, T, T, T, by performing sampling on a continuous coordinate system, based on the heatmapgenerated from the heatmap generation unit. For example, points (or dots,,,) sampled on the continuous coordinate systemmay be probabilistically distributed around the shortest pathexplored from the path exploration unit.

1511 1511 1511 1511 1511 1511 1510 a b c d e f The expression “probabilistically distributed” may mean that there is a high probability that the points to be sampled are positioned in some regions (e.g.,,,,,,, etc.) among the plurality of regions included in the heatmap, to which weights are given. In particular, some regions to which the weights are given may have a high probability of distribution of the points to be sampled.

Here, some regions to which the weights are given may be some regions to which high probability values are assigned as described above, and the corresponding regions may be regions corresponding to the shortest path while satisfying the constraint condition(s), as a result of grid-based wiring.

1512 1512 1512 1512 1512 a b c d e The other remaining regions (e.g.,,,,,, etc.) to which the weights are not given may have a low probability of distribution of the points to be sampled.

The other remaining regions to which the weights are not given may be some regions to which low probability values are assigned as described above, and the corresponding regions may be regions that do not satisfy the constraint condition(s) or regions not corresponding to the shortest path, as a result of the grid-based wiring.

190 1520 1510 As such, the sampling-based path exploration unitmay sample the points required to explore the optimal wiring path on the continuous coordinate systembased on the heatmap.

The continuous coordinate system may mean a coordinate system that precisely defines the position of wiring using real-valued coordinates in PCB design. After the initial grid-based exploration, the continuous coordinate system may be used to express the path that is actually implemented in the final wiring task. In the continuous coordinate system, it is not limited to expressing based on the integer index of a grid cell (e.g., (i, j)), but may designate a detailed position even inside a grid cell through a real-valued coordinate (e.g., (x, y)). Through this, the wiring path may have higher precision beyond cell-level constraints and may be finely adjusted according to the physical requirements of terminals and the net list. The continuous coordinate system may reflect the costs and wiring probability information calculated in the wiring exploration step into the actual wiring path, thereby satisfying complex design requirements such as high-density design, prevention of electrical interference, and minimization of signal delay, and may provide higher consistency with the physical wiring path in reality.

190 The sampling-based path exploration unitmay use an algorithm trained with wiring data of a PCB of which design is completed as training data (e.g., an algorithm related to sampling-based path (or space) exploration, or an algorithm related to hybrid sampling-based path exploration, or an algorithm related to probabilistic sampling-based path exploration, etc.) to perform a role of deriving a wiring path similar to an actual design while satisfying the constraint condition.

Algorithms used to explore an optimal wiring path based on sampling may variously exist. Such algorithms may include, for example, the Rapidly-Exploring Random Tree (RRT) algorithm, the Pathfinder Guided Rapidly-Exploring Random Tree (RRT-PCB) algorithm, the Probabilistic Roadmap (PRM) algorithm, and the like. However, the types of algorithms may not be limited thereto, and any algorithm related to sampling-based path exploration may be used.

Meanwhile, performing sampling refers to the process of selecting specific points in the exploration space during the PCB wiring design process to explore an optimal wiring path, and increasing the sampling probability near a specific path (specific grid cell) based on the grid-based wiring exploration result, thereby enabling efficient path exploration and improvement in wiring quality.

For example, the specific points in the exploration space may be points included in grid cells corresponding to the shortest path in the wiring exploration region. The sampled points may be selected based on the various algorithms described above.

For example, the sampled points may be selected based on at least one of i) random sampling, which randomly selects an arbitrary first point in the exploration space, ii) biased sampling, which adjusts the sampling probability according to a specific condition or criterion, iii) uniform sampling, which divides the entire space evenly and samples uniformly, or iv) probability-based sampling, which gives a high probability to specific regions of the exploration space and makes a selection.

195 170 190 In case that sampling is performed centered on specific grid cells corresponding to the shortest path as a result of the grid-based wiring exploration, it may be regarded as biased sampling being performed. Further, in case that sampling is performed based on probability after giving a high probability to a specific grid cell, it may be regarded as probability-based sampling being performed, and this may also be expressed as exploring according to the heatmap. The solution derivation unitmay be configured to perform a role of deriving (or generating, extracting, etc.) a solution satisfying various constraint conditions based on the exploration result by at least one of the path exploration unitor the sampling-based path exploration unit.

170 195 1501 1 2 1500 170 15 FIG. In an embodiment, a process of exploring a path while updating costs in the path exploration unitmay be repeatedly performed until each signal (e.g., wiring, net, etc.) satisfies a preset constraint condition. For example, as illustrated in, the solution derivation unitmay derive an optimal solution (i.e., the shortest paththat satisfies all of the constraint conditions while wiring the first terminal Tand the second terminal Tat a minimum cost) on the grid, based on the result of the path exploration process performed by the path exploration unit.

190 195 1521 1 2 1520 190 15 FIG. In another embodiment, a process of exploring a path while performing sampling based on a heatmap in the sampling-based path exploration unitmay be repeatedly performed until each wiring path satisfies the preset constraint condition(s). For example, as illustrated in, the solution derivation unitmay derive an optimal solution (i.e., an optimal wiring paththat connects the first terminal Tand the second terminal Twhile satisfying all constraint conditions) that satisfies all constraint conditions on the continuous coordinate system, based on the result of the path exploration process performed by the sampling-based path exploration unit.

160 170 180 190 195 150 However, the processes performed in the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, and the solution derivation unitmay be configured to allow the processes to be performed even by the control unitor a generative model (not illustrated). Hereinafter, for convenience of explanation, the above-described cases will be described without being distinguished.

100 Meanwhile, the wiring systemmay interoperate with an agent server AS to provide a user with various services or functions provided in the present disclosure. Accordingly, the present disclosure may also be referred to as a “PCB automatic design agent” or a “PCB automatic wiring agent.”

100 100 100 The wiring systemmay interoperate with an agent server AS to provide a user with various services or functions provided in the present disclosure. The wiring systemmay also include at least one agent (e.g., artificial intelligence agent (AI agent)). The agent server may be configured to be included in the wiring systemaccording to the present disclosure.

The agent, in particular, the artificial intelligence agent, may refer to a software program capable of interacting with an environment, collecting data, and autonomously determining and performing tasks necessary to achieve a predetermined goal using the data. In the system or agent server according to the present disclosure, computer program code (or instruction) for implementing the above-described software program may be provided. For example, in case that a user sets PCB wiring as a goal, the agent may independently select an optimal action necessary to achieve the goal. For example, an agent may ask the user several questions to receive, as input, the information necessary for PCB wiring, look up information in internal documents, and find solutions to respond. For example, PCB wiring for achieving the goal may be performed through collaboration with pre-trained sub-agents.

100 1 2 3 The agent server AS or the wiring systemmay include a plurality of agents A, A, and A, and each of the agents may be implemented to perform different roles. For example, an agent may receive printed circuit board (PCB) data including information on a net list and a plurality of terminals, from a user, and may control a series of processes for automatically performing PCB wiring based on the PCB data. For example, the agent may perform interaction with a user terminal and may perform PCB wiring. Meanwhile, the plurality of agents may perform PCB wiring by cooperating with each other through communication. For example, one agent may be a main agent that controls each of the agents. Agents other than the main agent may also be referred to as sub-agents.

160 170 180 190 195 160 160 160 The main agent, through communication with sub-agents, may command each sub-agent to perform wiring functions specialized to the sub-agent, or may receive data. A sub-agent may be trained to perform a dedicated function for wiring. For example, a sub-agent may be present corresponding to each of the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, and the solution derivation unit. For example, among the sub-agents, a first sub-agent may perform the role of the data parsing unitby learning the function of data parsing. Alternatively, the first sub-agent may be electrically connected to the data parsing unitand may perform the role of connecting the data parsing unitand the main agent.

170 170 170 In another embodiment, among the sub-agents, a second sub-agent may perform the role of the path exploration unitby learning the path exploration function. Alternatively, the second sub-agent may be electrically connected to the path exploration unitand may perform a role of connecting the path exploration unitand the main agent.

As such, each sub-agent may be configured to perform a dedicated function.

1 2 3 1 2 3 The agent server AS according to the present disclosure may include a plurality of agents. For example, the agent server AS may include at least one of a first agent (e.g., “Agent 1”, A), a second agent (e.g., “Agent 2”, A), or a third agent (e.g., “Agent 3”, A). For example, the agents included in the agent server AS according to the present disclosure may not be limited to the examples described, and may further include other agents (e.g., a fourth agent, a fifth agent, etc.) in addition to the first agent A, the second agent A, and the third agent A. It is obvious that the agents utilized (or applied or used) in the present disclosure may be variously modified as one or a plurality, depending on the purpose of use or the situation (or case).

1 2 3 Each of the plurality of agents A, A, and Amay be configured to perform a different role and to operate according to a user input (or command). The user input may include text, image (or video), voice, and the like. Hereinafter, for convenience of description, the form in which the user input is input will not be distinguished separately and will be described as being referred to as PCB data.

10 In case that the agent server AS receives PCB data from a user terminal, the agent server AS may perform analysis on the received PCB data, and based on the analysis result, may extract at least one of net group information, position information for each of a plurality of terminals, or a constraint condition.

1 2 3 The agent server AS, according to the PCB data, may respectively select (or specify) an agent for wiring the terminals included in the PCB data along an optimal path, from among the plurality of agents A, A, and A.

1 2 3 1 2 3 In an embodiment, in case that the agent server AS needs to explore an optimal path for wiring the plurality of terminals satisfying all of the constraint conditions, based on the PCB data, the agent server AS may respectively select the first agent A, the second agent A, and the third agent Afrom among the plurality of agents A, A, and A.

1 The first agent Amay be an agent configured (or trained) to perform a role of, based on the PCB data, i) specifying a wiring exploration region for performing wiring of the plurality of terminals, ii) performing gridization of the wiring exploration region into a plurality of grid cells based on a preset criterion, iii) disposing the plurality of terminals, respectively, in at least some grid cells of the plurality of grid cells, and iv) exploring the shortest path for wiring the plurality of terminals independently of the constraint condition, in a state in which the plurality of terminals are disposed in the wiring exploration region.

2 1 The second agent Amay be an agent configured to perform the role of, based on a result of wiring the plurality of terminals according to the shortest path explored by the first agent A, i) specifying, from among the plurality of grid cells, a grid cell that does not satisfy at least one constraint condition (e.g., conflict (or crossing) zone, line width and spacing, wiring forbidden zone, etc.), ii) updating a cost of the wiring exploration region such that a cost of the specified grid cell is increased, and iii) re-exploring the shortest path for wiring the plurality of terminals at minimum cost, in the cost-updated wiring exploration region, while satisfying the at least one constraint condition according to the PCB data.

3 2 3 The third agent Amay be an agent configured to perform the role of exploring an optimal path for wiring the plurality of terminals while satisfying all of the at least one constraint condition and a specific constraint condition (e.g., 45-degree angle), based on the result explored by the second agent A. The third agent Amay i) calculate wiring probabilities of the plurality of grid cells using information on grid cells corresponding to the shortest path, and ii) perform wiring of the plurality of terminals according to the PCB data in a continuous coordinate system using the wiring probabilities of the plurality of grid cells, thereby exploring an optimal path for wiring the plurality of terminals while satisfying all of the constraint conditions.

1 2 3 Finally, the agent server AS may integrate wiring exploration (or wiring performing) results of each of the plurality of agents A, A, and A, and may provide the integrated result (i.e., optimized solution) as a response to the user input. More specific details regarding this will be described later.

Meanwhile, the present disclosure may be directed to providing a sampling-based wiring method and system capable of automatically designing a printed circuit board (PCB) using artificial intelligence. More particularly, the present disclosure may be directed to providing a sampling-based wiring method and system capable of efficiently performing PCB automatic wiring while satisfying various constraint conditions required for PCB wiring. Hereinafter, a grid-based wiring method will be described more particularly first.

The PCB wiring automatic design method, according to the present disclosure, may comprise receiving printed circuit board (PCB) data including a net list and information on a plurality of terminals; updating a cost of the wiring exploration region so that a cost of at least some of the wiring exploration region is increased based on a preset constraint condition; exploring the shortest path for wiring the plurality of terminals according to the net list in the cost-updated wiring exploration region; and performing wiring of the plurality of terminals based on wiring probability according to the shortest path.

In the updating of the cost of the wiring exploration region, the cost of the wiring exploration region may be updated so that a cost of at least some of grid cells among a plurality of grid cells gridization-performed based on a preset criterion is increased based on the preset constraint condition.

In the exploring of the shortest path, the shortest path for wiring the plurality of terminals according to the net list may be explored by exploring grid cells whose cost is minimized in the cost-updated wiring exploration region.

The performing of the wiring of the plurality of terminals may comprise calculating wiring probability of the plurality of grid cells by using information on grid cells corresponding to the shortest path among the plurality of grid cells; and performing wiring of the plurality of terminals in a continuous coordinate system by using the wiring probability of the plurality of grid cells.

510 5 FIG. Firstly, a process of receiving printed circuit board (PCB) data including information on a net list and a plurality of terminals may be performed (S, see).

100 100 The wiring systemaccording to the present disclosure may be implemented in various forms such as an application, software, web-site, and program. However, in this disclosure, for convenience of explanation, the implementation of the wiring systemis not limited to any specific form.

150 10 150 1000 100 10 150 1000 150 200 10 10 1 FIG. The control unitmay receive PCB data from the user terminal. For example, as illustrated in, the control unitmay provide a service pagelinked with the wiring systemto the user terminal. The control unit, in order to receive a user input for PCB data, may provide a graphical object (e.g., “Confirm”) linked with a PCB data reception function in a region of the service page. The control unitmay receive PCB datainput from the user terminal, based on the graphical object (e.g., “Confirm”) being selected from the user terminal.

200 210 220 230 230 The PCB datamay include at least one of a net list (e.g., “Net list”,), terminal information (e.g., “Terminal”,), or a constraint condition(s) (e.g., “Wiring constraint condition”,). The constraint condition(s)may also be understood as a preset constraint condition(s).

150 200 140 200 160 The control unitmay store the received PCB datain a storage unit (or memory,) and may input (or transmit) the stored PCB datato the data parsing unit.

160 200 200 410 4 FIG.A The data parsing unit, through a PCB data parsing process, may analyze the PCB data, and may extract information necessary for PCB automatic design from the PCB data(e.g., PCB data parsing, S, see).

160 200 210 220 230 200 160 200 1 2 3 4 5 6 More particularly, the data parsing unitmay analyze (or interpret) the PCB dataand may extract at least one of the net list, terminal information, or wiring constraint condition(s)included in the PCB databased on the analysis result. For example, the data parsing unitmay analyze the PCB dataand may extract at least one of net group information, coordinate information (or position information, coordinate values, etc.) for each of the plurality of terminals T, T, T, T, T, and T, or wiring constraint condition(s).

150 140 200 160 The control unitmay store, in the storage unit, information extracted from PCB datathrough the data parsing unit.

520 530 5 FIG. 5 FIG. Next, a process of specifying a wiring exploration region for performing wiring of a plurality of terminals based on a net list may be performed (S, see), and a process of performing gridization of the wiring exploration region into a plurality of grid cells based on a preset criterion may be performed (S, see).

150 1 2 3 4 5 6 210 140 The control unitmay specify a wiring exploration region for performing wiring of the plurality of terminals T, T, T, T, T, and T, based on the net liststored in the storage unit.

The wiring exploration region may mean a path exploration range or region in which wiring may be performed. This may also be understood as a region in which wiring is possible in PCB design.

150 1 2 3 4 5 6 210 150 210 1 2 3 4 5 6 210 1 2 3 4 5 6 150 1 2 3 4 5 6 210 Particularly, the control unitmay plan wiring of the plurality of terminals T, T, T, T, T, and Tbased on connection relationships defined in the net list. The control unitmay determine, based on the net list, which terminals among the plurality of terminals T, T, T, T, T, and Tare to be wired. For example, it is assumed that the net listincludes a first net group information (e.g., “Net 1: Terminal 1, Terminal 2”) defining that the first terminal Tand the second terminal Tneed to be electrically connected, a second net group information (e.g., “Net 2: Terminal 3, Terminal 4”) defining that the third terminal Tand the fourth terminal Tneed to be electrically connected, and a third net group information (e.g., “Net 3: Terminal 5, Terminal 6”) defining that the fifth terminal Tand the sixth terminal Tneed to be electrically connected. The control unitmay specify a wiring exploration region for performing wiring of the plurality of terminals T, T, T, T, T, and T, based on the net group information included in the net list.

150 In case that the wiring exploration region is specified, the control unitmay divide the specified wiring exploration region into grid units and may perform gridization.

The gridization may be a task of dividing a space into grid units, performing discretization, and expressing each unit as explorable nodes and connection structures. For example, the grid unit may refer to a square or rectangular cell on a two-dimensional plane, in which the crossing points of respective grids become nodes, and lines connecting grids may serve as edges.

The gridization may divide the wiring exploration region into grid units and express it as structured data, and may be understood as a step for constructing an environment in which a generative model (or artificial intelligence algorithm) efficiently explores a path.

A step of performing gridization may include a process (or step) of generating a grid-based data structure by dividing a specified wiring exploration region into discrete grid units according to a preset criterion, or a process of performing gridization of the wiring exploration region by dividing it into rows and columns according to a preset grid size.

6 FIG. 150 600 601 625 600 Particularly, as illustrated in (a) of, the control unitmay perform gridization of a specified wiring exploration regioninto a plurality of grid cellstobased on a preset criterion. The grid cell may mean a division of the wiring exploration regioninto small unit cells through discretization. For example, the preset criterion may be set based on at least one of grid size (or dimension, e.g., 1 mm×1 mm or 8×8, etc.) or unit spacing.

160 In an embodiment, the grid size may be set based on a range reachable through a plurality of grid cells (e.g., four cells) to a terminal that exists at the closest position using the corresponding terminal as a reference. In case that the closest terminal exists, the grid size or distribution may be determined (or set) by considering the range reachable through movement between the plurality of grid cells to the terminal. This may also be understood as being determined in the PCB data parsing process performed through the data parsing unit.

100 100 However, the preset criterion or the grid size (or grid dimension) may not be limited to the mentioned examples and may obviously be variously changed (or set) by an administrator (or user, engineer, etc.) of the grid-based wiring systemor the grid-based wiring systemitself.

540 5 FIG. Based on PCB data, a process of disposing the plurality of terminals, respectively, in at least some of the plurality of grid cells may be performed (S, see).

150 1 2 3 4 5 6 601 625 The control unitmay dispose, respectively, the plurality of terminals T, T, T, T, T, and Tin one of the plurality of grid cellstoincluded in the grid.

150 1 2 3 4 5 6 601 625 200 140 Particularly, the control unitmay dispose, respectively, the plurality of terminals T, T, T, T, T, and Tin at least some of the plurality of grid cellsto, based on the PCB datastored in the storage unit.

200 1 2 3 4 5 6 As described above, the PCB datamay include at least one of net group information, position information for each of the plurality of terminals T, T, T, T, T, and T, or a constraint condition(s).

150 1 2 3 4 5 6 601 625 For example, the control unit, based on the position information for each of the plurality of terminals T, T, T, T, T, and T, may specify (or determine, select, etc.) grid cells in which each terminal may be positioned among the plurality of grid cellsto.

150 1 2 601 625 150 1 2 1 603 2 621 For example, the control unitmay determine grid cells in which the first terminal Tand the second terminal T, belonging to a first net, may be respectively disposed, among the plurality of grid cellsto. The control unit, based on the position information for each of the first terminal Tand the second terminal T, may determine the grid cell in which the first terminal Tmay be disposed as a first grid cell, and may determine the grid cell in which the second terminal Tmay be disposed as a second grid cell.

150 3 4 601 625 150 3 4 3 607 4 615 In another embodiment, the control unitmay determine grid cells in which the third terminal Tand the fourth terminal T, which belong to the second net, may be respectively disposed, among the plurality of grid cellsto. The control unit, based on the position information for each of the third terminal Tand the fourth terminal T, may determine the grid cell in which the third terminal Tis disposed as a third grid cell, and may determine the grid cell in which the fourth terminal Tis disposed as a fourth grid cell.

150 603 621 607 615 1 2 3 4 5 6 1 2 3 4 5 6 603 621 607 615 The control unit, based on the grid cells,,, andin which each of the plurality of terminals T, T, T, T, T, and Tis positioned, may respectively dispose each of the plurality of terminals T, T, T, T, T, and Tin each of the specified grid cells,,, and.

150 210 1 603 2 1 621 1 2 1 For example, the control unit, according to the net list, may dispose the first terminal T, which belongs to the first net, in the first grid cell, and may dispose the second terminal T, which is to be electrically connected to the first terminal T, in the second grid cell. For example, the first terminal Tmay be understood as the point at which wiring starts (i.e., start point, departure point, etc.), and the second terminal Tmay be understood as the point at which the wiring, starting from the first terminal T, is finally connected (i.e., end point, target point, etc.).

150 210 3 607 4 3 615 3 4 3 In another embodiment, the control unit, according to the net list, may dispose the third terminal T, which belongs to the second net, in the third grid cell, and may dispose the fourth terminal T, which is to be electrically connected to the third terminal T, in the fourth grid cell. For example, the third terminal Tmay be understood as the point at which wiring starts, and the fourth terminal Tmay be understood as the point at which the wiring, starting from the third terminal T, is finally connected.

150 210 200 In particular, the control unit, based on the net listincluded in the PCB data, may respectively dispose the terminals to be electrically connected in the respective specific grid cells. As such, the terminals are disposed in the grid cells, and thereafter may be used as a departure point and a target point in the wiring exploration process.

550 5 FIG. Meanwhile, a process of exploring the shortest path for wiring a plurality of terminals according to a net list, in a state where the plurality of terminals are disposed in the wiring exploration region, may be performed (S,).

420 170 4 FIG.A According to a generated grid based on PCB data, the shortest path for wiring a plurality of terminals may be explored (S,). For example, the path exploration unitmay detect a region that violates the constraint condition(s) using an algorithm (shortest path exploration algorithm) trained on various PCB wiring data of which design is actually completed, and may perform re-exploration by giving (or imposing) a penalty to a conflict region.

170 More particularly, the path exploration unitmay determine whether the constraint condition(s) is satisfied among the paths explored for each net and may increase a cost at a grid point where a constraint condition occurs, to enable bypassing the corresponding point in a next iteration process. By repeating such process multiple times, the path may ultimately converge to a path satisfying the constraint condition(s).

The cost may refer to a cost function, which is a weight assigned (or given) to each of a plurality of grid cells included in the grid, or to a path, in order to optimize a wiring path used for exploring a path, evaluating the efficiency of a specific path, and satisfying the constraint condition.

170 170 In particular, the path exploration unitmay, i) give a penalty to a corresponding region in case that each wiring violates constraint condition, and ii) repeat a process of performing re-wiring while avoiding the region where the penalty is given, to derive a wiring result (or solution) that satisfies all of the constraint conditions. For example, the path exploration unitmay be configured to explore the shortest path for PCB wiring in consideration (or reflection) of various industrial requirements (e.g., maintaining spacing between PCB wirings, distance between component pads and wiring, adjusting the number of vertical vias (holes for electrical connection) between PCB layers, etc.).

150 1 2 3 4 5 6 170 1 2 3 4 5 6 600 The control unitmay explore the shortest path for wiring the plurality of terminals T, T, T, T, T, and Tusing the path exploration unit, in a state in which the plurality of terminals T, T, T, T, T, and Tare disposed in the wiring exploration region.

170 1 2 3 4 5 6 210 170 The path exploration unitmay explore the shortest path for wiring the plurality of terminals T, T, T, T, T, and Taccording to the net list. More particularly, the path exploration unitmay explore the shortest path for wiring the terminals grouped into the same net. For example, the shortest path exploration step (or process) may include an initial shortest path exploration step and the shortest path exploration step through re-exploration.

6 FIG. 170 601 625 600 Firstly, as illustrated in (b) of, in the initial shortest path exploration step, the path exploration unitmay give the same cost (e.g., “1”) to each of the plurality of grid cellstoin the wiring exploration region.

601 625 600 170 In a state in which the same cost is given to each of the plurality of grid cellstoin the wiring exploration region, the path exploration unitmay explore the shortest path for wiring the terminals grouped into each net defined by the net list, at a minimum cost.

170 For example, in the initial shortest path exploration step, the path exploration unitmay explore the shortest path having the lowest cost, independently of the constraint condition. In the initial shortest path exploration step, even if there is a conflict (congestion or overlap) between shortest paths connecting terminals grouped into different nets, the shortest path, in which the sum of costs of the path connecting the terminals has the lowest value, may be explored.

170 1 2 3 4 5 6 210 In particular, the path exploration unitmay explore the shortest path having the lowest cost, independently of the constraint condition(s), from a plurality of grid cells (or cost map) to which costs are given. The constraint condition(s) may include a first constraint condition for preventing the wiring of the plurality of terminals T, T, T, T, T, and Taccording to the net listfrom crossing each other.

170 1 2 170 1 2 6 FIG. In an embodiment, the path exploration unitmay explore a first shortest path for wiring the first terminal Tand the second terminal T, which are grouped into the first net defined by the net list, at a minimum cost. For example, the path exploration unitmay explore the first shortest path having the lowest value (e.g., “7”) of the sum of costs of the path (or net) connecting the first terminal Tcorresponding to a start point and the second terminal Tcorresponding to a target point, without considering the constraint condition(s). In particular, the first shortest path having the lowest value (e.g., “7”) may have more than one path. More particularly, the shortest path may include three steps downward, two steps to the left, and two steps downward (as shown in (b) of). In addition, the shortest path may include three steps to the left and fourth steps downward. Furthermore, the shortest path may include four steps downward, two steps to the left, and two steps downward. Still furthermore, the shortest path may include five steps downward and two steps to the left.

170 3 4 170 3 4 6 FIG. In another embodiment, the path exploration unitmay explore a second shortest path for wiring the third terminal Tand the fourth terminal T, which are grouped into the second net defined by the net list, at a minimum cost. For example, the path exploration unitmay explore the second shortest path having the lowest value (e.g., “5”) of the sum of costs of the path (or net) connecting the third terminal Tcorresponding to a start point and the fourth terminal Tcorresponding to a target point, without considering the constraint condition. In particular, the second shortest path having the lowest value (e.g., “5”) may have more than one path. More particularly, the shortest path may include four steps to the right and one step downward (as shown in (b) of). In addition, the shortest path may include one step downward and four steps to the right.

170 The path exploration unitmay wire the plurality of terminals based on the explored shortest path.

170 More particularly, the path exploration unitmay wire the terminals grouped into each net, according to the shortest path explored in the initial shortest path exploration step.

6 FIG. 170 1 2 603 608 613 612 611 616 621 170 1 2 603 602 601 606 611 616 621 170 1 2 603 608 613 618 617 616 621 170 1 2 603 608 613 618 623 622 621 For example, as illustrated in (b) of, the path exploration unitmay wire the first terminal Tand the second terminal Ton the grid cells,,,,,, andcorresponding to (or applicable to) the first shortest path, according to the first shortest path. For another example, the path exploration unitmay wire the first terminal Tand the second terminal Ton the grid cells,,,,,, andcorresponding to (or applicable to) the another first shortest path. For another example, the path exploration unitmay wire the first terminal Tand the second terminal Ton the grid cells,,,,,, andcorresponding to (or applicable to) the another first shortest path. For another example, the path exploration unitmay wire the first terminal Tand the second terminal Ton the grid cells,,,,,, andcorresponding to (or applicable to) the another first shortest path.

170 3 4 607 608 609 610 615 170 3 4 607 612 613 614 615 In another embodiment, the path exploration unitmay wire the third terminal Tand the fourth terminal Ton the grid cells,,,, andcorresponding to the second shortest path, according to the second shortest path. For another example, the path exploration unitmay wire the third terminal Tand the fourth terminal Ton the grid cells,,,, andcorresponding to the another second shortest path.

560 5 FIG. Meanwhile, a process of specifying a grid cell that does not satisfy a preset constraint condition among the plurality of grid cells, based on a result of wiring the plurality of terminals according to the shortest path, may be performed (S, see).

170 The path exploration unitmay specify a wiring that does not satisfy the preset constraint condition among the wirings connecting the plurality of terminals, based on a result of wiring the plurality of terminals according to the shortest path.

170 603 608 611 612 613 616 621 607 608 609 610 615 Particularly, the path exploration unitmay specify a grid cell that does not satisfy the constraint condition(s) among the grid cells,,,,,, andoccupied by the first shortest path, and the grid cells,,,, andoccupied by the second shortest path.

6 FIG. 631 1 2 632 3 4 631 632 With reference to (b) of, the wiringconnecting the first terminal Tand the second terminal T, and the wiringconnecting the third terminal Tand the fourth terminal T, may cross each other and may not satisfy the constraint condition (first constraint condition). This may be because the shortest path is explored based on the lowest cost value independently of the constraint condition(s), and therefore, a crossing may occur between the first wiringaccording to the first shortest path and the second wiringaccording to the second shortest path.

170 601 625 170 603 608 613 612 611 616 621 607 608 609 610 615 608 6 FIG. The path exploration unitmay specify a grid cell that does not satisfy the preset constraint condition among the plurality of grid cellsto. As illustrated in (c) of, the path exploration unitmay analyze the grid cells,,,,,, andoccupied by the first shortest path and the grid cells,,,, andoccupied by the second shortest path, and based on the analysis result, may specify a specific grid cellthat does not satisfy the first constraint condition.

608 631 632 608 The specific grid cellmay be a point (or zone) where the first wiringand the second wiringcross (or conflict) with each other and may correspond to a point that does not satisfy the first constraint condition. In particular, the specific grid cellmay correspond to cells that overlap each other, among the cells occupied by the first shortest path and the second shortest path.

570 580 5 FIG. In case that a grid cell that does not satisfy the constraint condition is specified, a process may be performed of updating the cost of the wiring exploration region such that the cost of the specific grid cell that does not satisfy the constraint condition(s) is increased (S), and of re-exploring the shortest path for wiring the plurality of terminals according to the net list in the cost-updated wiring exploration region (S, see).

170 600 608 The path exploration unitmay update the cost of the wiring exploration regionsuch that the cost of the specific grid cellis increased.

“Updating the cost” may be understood as setting the cost of the specific grid cell higher than the costs of other grid cells so that the specific grid cell corresponding to the overlapping cell is not included in the re-explored shortest path, in the shortest path to be re-explored to be performed after the initial shortest path exploration step. In addition, “increasing the cost” may also be understood as giving a penalty to the specific grid cell.

6 FIG. 170 608 170 608 601 625 As illustrated in (d) of, the path exploration unitmay update the cost of the specific grid cellspecified as a cell that does not satisfy the first constraint condition. For example, the path exploration unitmay set the cost of the specific grid cellamong the plurality of grid cellstoto a higher cost (e.g., “1.5”) than that of other grid cells.

170 601 625 608 603 607 609 610 611 612 613 615 616 621 608 608 603 607 609 610 611 612 613 615 616 621 601 625 608 603 611 612 613 616 621 607 609 610 615 For example, the path exploration unit, in order to explore the shortest path that satisfies the first constraint condition in the re-exploration step, may update the cost of some grid cells among the plurality of grid cellsto, even in addition to the specific grid cell. For example, the cost values of the grid cells,,,,,,,,, andupdated in addition to the specific grid cellmay be updated to lower cost values (e.g., “1.1”) than the cost of the specific grid cell. As an example, the some grid cells,,,,,,,,, andupdated among the plurality of grid cellsto, in addition to the specific grid cell, may include at least some of the grid cells,,,,, andoccupied by the first shortest path or the grid cells,,, andoccupied by the second shortest path.

170 1 2 3 4 5 6 600 Meanwhile, the path exploration unitmay re-explore the shortest path for wiring a plurality of terminals T, T, T, T, T, and Tin the cost-updated wiring exploration region.

170 1 2 3 4 5 6 600 210 More particularly, the path exploration unitmay re-explore the shortest path for wiring the plurality of terminals T, T, T, T, T, and Tin the cost-updated wiring exploration region, according to the net list.

170 608 In the re-exploration step, the path exploration unitmay re-explore the first shortest path of the first net and the second shortest path of the second net so as to avoid the specific grid cellin which the cost has been increased by the cost update.

6 FIG. 170 1 2 608 170 1 2 As illustrated in (e) of, the path exploration unitmay re-explore the shortest path for wiring the first terminal Tand the second terminal Tgrouped into the first net so as to avoid the specific grid cellin which the cost is set high. For example, the path exploration unitmay re-explore the first shortest path for wiring the first terminal Tand the second terminal Tin consideration of the first constraint condition.

170 3 4 608 170 3 4 The path exploration unitmay re-explore the shortest path for wiring the third terminal Tand the fourth terminal Tgrouped into the second net so as to avoid the specific grid cellin which the cost is set high. For example, the path exploration unitmay re-explore the second shortest path for wiring the third terminal Tand the fourth terminal Tin consideration of the first constraint condition.

608 608 601 602 603 606 611 616 621 607 612 613 614 615 6 FIG. Accordingly, the specific grid cellmay not be included in the first shortest path and the second shortest path that are re-explored. With reference to (e) of, it can be confirmed that the specific grid cellis not included among the cells,,,,,, andoccupied by the re-explored first shortest path and the cells,,,, andoccupied by the re-explored second shortest path.

Meanwhile, although a wiring path exploration (or re-exploration) satisfying a specific constraint condition is completed, the wiring path may be explored until other remaining constraint condition in addition to the specific constraint condition are satisfied.

210 The constraint condition may further include a second constraint condition related to at least one of a spacing distance between wirings of each net included in the net listand a line width of each net.

150 230 200 210 In an embodiment, the second constraint condition may be information that is specified and extracted by the control unit, from the constraint conditionincluded in the PCB data, the information being related to at least one of a spacing distance between wirings of each net included in the net listor a line width of each net.

170 The path exploration unitmay specify a second specific grid cell that does not satisfy the second constraint condition, in a state in which a cost of a first specific grid cell specified according to the first constraint condition has been updated.

7 FIG. 708 701 725 700 708 708 708 For example, as illustrated in (a) of, a cost of a specific grid cellrelated to wiring crossing (or conflict) among a plurality of grid cellstoof a wiring exploration regionmay be set higher than costs of other grid cells. Such a specific grid cellmay be understood as a first specific grid cellspecified according to the first constraint condition. For example, the first specific grid cellmay be specified as one or plurality, depending on the number of overlapping cells, based on the first constraint condition.

170 708 More particularly, the path exploration unitmay specify a second specific grid cell related to at least one of a spacing distance between wirings of each net or a line width of each net, in a state in which the cost of the first specific grid cellspecified according to the first constraint condition has been updated.

170 170 731 1 2 731 1 2 7 FIG. For example, the path exploration unitmay specify one of the re-explored first shortest path or the re-explored second shortest path as a final wiring. For example, as illustrated in (a) of, the path exploration unitmay specify a first wiringthat connects the first terminal Tand the second terminal Tbelonging to the first net as a final wiring. The first wiringmay be understood as a wiring that connects the first terminal Tand the second terminal Taccording to the re-explored first shortest path.

170 701 725 170 704 707 709 712 717 722 701 702 703 706 711 716 721 7 FIG. The path exploration unitmay specify (or determine) a grid cell neighboring the shortest path specified as the final wiring, among the plurality of grid cellsto, as a second specific grid cell that does not satisfy the second constraint condition. For example, as illustrated in (b) of, after specifying the first shortest path as the final wiring, based on the second constraint condition, the path exploration unitmay specify grid cells,,,,, and, which are neighboring the grid cells,,,,,, andoccupied by the first shortest path specified as the final wiring, as a second specific grid cell that does not satisfy the second constraint condition.

704 707 709 712 717 722 701 702 703 706 711 716 721 Because the line width of the first net specified as the final wiring and the spacing distance between wirings need to be considered, the grid cells,,,,, andspecified as the second specific grid cells may be specified as grid cells neighboring the grid cells,,,,,, andoccupied by the first net.

170 708 704 707 709 712 717 722 708 704 707 709 712 717 722 Further, path exploration unitmay additionally increase the cost of the second specific grid cells in a state in which the cost of first specific grid cellis increased (or updated). Here, increasing the cost may be understood as setting the cost of second specific grid cells,,,,, andhigher than the costs of other grid cells, such that not only the first specific grid cell, which does not satisfy the first constraint condition, but also the second specific grid cells,,,,, and, which do not satisfy the second constraint condition, are not included in the re-explored shortest path.

7 FIG. 170 704 707 709 712 717 722 701 725 As illustrated in (b) of, the path exploration unitmay set the cost of second specific grid cells,,,,, and, which do not satisfy the second constraint condition to have a higher cost (e.g., “1.1”) than that of other grid cells, among the plurality of grid cellsto.

700 708 704 707 709 712 717 722 170 Meanwhile, in the wiring exploration regionwhere the costs of first specific grid celland second specific grid cells,,,,, andare updated, the path exploration unitmay re-explore the shortest path of another net, not the shortest path of the net specified as the final wiring.

170 708 704 707 709 712 717 722 More particularly, the path exploration unitmay re-explore the second shortest path of the second net, not the first shortest path of the first net specified as the final wiring, based on the increased costs of the first specific grid celland the second specific grid cells,,,,, and.

7 FIG. 170 3 4 708 704 707 709 712 717 722 170 3 4 As illustrated in (c) of, the path exploration unitmay re-explore the shortest path for wiring the third terminal Tand the fourth terminal T, grouped into the second net, so as to avoid the first specific grid celland the second specific grid cells,,,,, andwhose costs are increased. For example, the path exploration unitmay re-explore the second shortest path for wiring the third terminal Tand the fourth terminal Tby considering both the first constraint condition and the second constraint condition.

708 704 707 709 712 717 722 705 710 713 714 715 718 723 708 704 707 709 712 717 722 7 FIG. Accordingly, in the re-explored second shortest path, the first specific grid celland the second specific grid cells,,,,, andmay not be included. With reference to (c) of, among the cells,,,,,, andoccupied by the re-explored second shortest path, it can be confirmed that the first specific grid celland the second specific grid cells,,,,, andare not included.

Meanwhile, the constraint condition(s) may further include a third constraint condition related to a wiring forbidden zone in which wiring is restricted in the wiring exploration region.

150 230 200 In an embodiment, the third constraint condition may be information extracted, by the control unit, by specifying information related to a wiring forbidden zone in which wiring is restricted in the wiring exploration region, from the constraint conditionincluded in the PCB data.

170 708 704 707 709 712 717 722 The path exploration unit, in a state where the costs of the first specific grid celland the second specific grid cells,,,,, andare updated according to the first constraint condition and the second constraint condition, may specify a third specific grid cell that does not satisfy the third constraint condition.

170 708 704 707 709 712 717 722 More particularly, the path exploration unitmay specify the third specific grid cell related to a wiring forbidden zone in which wiring is restricted in a state where the costs of the first specific grid cellspecified according to the first constraint condition and the second specific grid cells,,,,, andspecified according to the second constraint condition are updated.

8 FIG. 170 713 718 701 725 200 For example, as illustrated in (a) of, the path exploration unitmay specify grid cellsand, which are related to a wiring detection zone among the plurality of grid cellsto, as third specific grid cells not satisfying the third constraint condition, based on the position information of the wiring forbidden zone included in PCB data.

170 713 718 708 704 707 709 712 717 722 713 718 713 718 708 704 707 709 712 717 722 The path exploration unitmay further increase the cost of the third specific grid cellsandin a state where the cost of the first specific grid celland the second specific grid cells,,,,,is increased. Here, increasing the cost may be understood as setting the cost of the third specific grid cellsandto be higher than the costs of other grid cells, so that the third specific grid cellsandthat do not satisfy the third constraint condition, as well as the first specific grid celland the second specific grid cells,,,,, and, which do not satisfy the first and second constraint conditions, are not included in the re-explored shortest path.

8 FIG. 170 713 718 701 725 As illustrated in (a) of, the path exploration unitmay set the cost of the third specific grid cellsand, which do not satisfy the third constraint condition, among the plurality of grid cellsto, to have a cost higher than those of other grid cells (e.g., “1.5”).

170 700 708 704 707 709 712 717 722 713 718 The path exploration unitmay re-explore the shortest path of another net, not the shortest path of the net specified as a final wiring, in the wiring exploration regionwhere the costs of the first specific grid cell, the second specific grid cells,,,,, and, and the third specific grid cellsandare updated.

170 708 704 707 709 712 717 722 713 718 More particularly, the path exploration unitmay re-explore the second shortest path of the second net, which is not the first shortest path of the first net specified as the final wiring, based on the increased costs of the first specific grid cell, the second specific grid cells,,,,, and, and the third specific grid cellsand.

8 FIG. 170 3 4 708 704 707 709 712 717 722 713 718 170 3 4 As illustrated in (b) of, the path exploration unitmay re-explore the shortest path for wiring the third terminal Tand the fourth terminal T, grouped as the second net, so as to avoid the first specific grid cell, the second specific grid cells,,,,, and, and the third specific grid cellsand, whose costs are increased. For example, the path exploration unitmay re-explore the second shortest path for wiring the third terminal Tand the fourth terminal T, by considering all of the first constraint condition, the second constraint condition, and the third constraint condition.

708 704 707 709 712 717 722 713 718 705 710 715 720 723 724 725 708 704 707 709 712 717 722 713 718 8 FIG. Accordingly, in the re-explored second shortest path, the first specific grid cell, the second specific grid cells,,,,, and, and the third specific grid cellsandmay not be included. With reference to (b) of, it can be confirmed that among the cells,,,,,, andoccupied by the re-explored second shortest path, the first specific grid cell, the second specific grid cells,,,,,, and the third specific grid cells,are not included.

170 170 732 3 4 732 3 4 8 FIG. The path exploration unitmay specify the second shortest path as the final wiring. For example, as illustrated in (b) of, the path exploration unitmay specify a second wiring, which connects the third terminal Tand the fourth terminal Tbelonging to the second net, as the final wiring. The second wiringmay be understood as a wiring that connects the third terminal Tand the fourth terminal Taccording to the re-explored second shortest path.

Meanwhile, as described above, the constraint conditions may include at least one of i) the first constraint condition that prevents wirings of a plurality of terminals according to a net list from crossing with each other, ii) the second constraint condition related to at least one of a spacing distance between wirings of respective nets included in the net list and a line width of respective nets, or iii) the third constraint condition related to a wiring forbidden zone where wiring is restricted in a wiring exploration region.

In the process of specifying a grid cell that does not satisfy a constraint condition(s) at least one specific grid cell that does not satisfy at least one of the first constraint condition, the second constraint condition, or the third constraint condition among a plurality of grid cells may be specified.

9 FIG. 170 908 909 901 925 900 In an embodiment, it is assumed that among a plurality of constraint conditions, the first constraint condition is set to the highest priority (first priority), and as next priorities, the third constraint condition (second priority) and the second constraint condition (third priority) are set. As illustrated in (a) and (b) of, the path exploration unitmay specify the first specific grid cellsand, which do not satisfy the first constraint condition, with the highest priority among a plurality of grid cellstoin a wiring exploration region, according to a preset priority order.

908 909 170 170 908 909 913 901 925 900 9 FIG. Further, in case that the disclosure of the first specific grid cellsandis completed, the path exploration unitmay sequentially specify cells according to remaining constraint conditions. For example, as illustrated in (b) of, the path exploration unit, after specifying the first specific grid cellsandwhich do not satisfy the first constraint condition, may specify a third specific grid cell, which does not satisfy the third constraint condition, among the plurality of grid cellstoin the wiring exploration region, according to the third constraint condition, which has the next highest priority after the first constraint condition.

Since the process of shortest path exploration has been described in more detail above, the following description will be made briefly in order to avoid redundancy of explanation.

170 900 170 900 908 909 913 9 FIG. The path exploration unitmay update the cost of the wiring exploration regionso that the cost of a specific grid cell that do not satisfy a constraint condition(s) is increased. For example, as illustrated in (c) of, the path exploration unitmay update the cost of the wiring exploration regionso that the costs of the first specific grid cellsand, which do not satisfy the first constraint condition, and the third specific grid cell, which does not satisfy the third constraint condition, are increased (e.g., increased to “1.5”).

170 1 2 3 4 5 6 900 Finally, the path exploration unitmay re-explore shortest paths for wiring the plurality of terminals T, T, T, T, T, and Taccording to the net list, in the cost-updated wiring exploration region, and may specify the re-explored shortest paths as final wirings.

10 FIG. 170 1 2 3 4 5 6 170 1 2 3 4 5 6 908 909 913 170 931 1 2 932 3 4 933 5 6 As illustrated in (a), (b), and (c) of, the path exploration unitmay re-explore shortest paths for wiring the first terminal Tand the second terminal Tgrouped into the first net, the third terminal Tand the fourth terminal Tgrouped into the second net, and the fifth terminal Tand the sixth terminal Tgrouped into the third net. For example, the path exploration unitmay re-explore the first shortest path for wiring the first terminal Tand the second terminal T, the second shortest path for wiring the third terminal Tand the fourth terminal T, and the third shortest path for wiring the fifth terminal Tand the sixth terminal Tso as to avoid the first specific grid cellsandand the third specific grid cell, whose costs are set high. The path exploration unitmay specify a first wiringthat connects the first terminal Tand the second terminal Taccording to the re-explored first shortest path, may specify a second wiringthat connects the third terminal Tand the fourth terminal Taccording to the second shortest path, and may specify a third wiringthat connects the fifth terminal Tand the sixth terminal Taccording to the third shortest path.

As such, by repeatedly exploring wiring paths until all constraint conditions are satisfied, it may be possible to derive (or extract, generate, etc.) an optimal wiring path that satisfies various constraint conditions required for PCB wiring.

200 200 Meanwhile, in case that a PCB defined by the PCB datais composed of a plurality of layers, a wiring exploration region may be formed of a plurality of wiring exploration regions. For example, the PCB datamay include position information about in which wiring exploration region among the plurality of wiring exploration regions each net needs to be positioned.

150 150 1101 1102 1103 1104 11 FIG. The control unitmay perform gridization of the plurality of wiring exploration regions into a plurality of grid cells based on a preset criterion. For example, as illustrated in (a), (b), (c), and (d) of, the control unitmay perform gridization of each of the plurality of wiring exploration regions,,, andinto a plurality of grid cells.

170 Further, in case that a specific net needs to be wired in a specific layer among a plurality of layers, the path exploration unitmay increase the cost of other remaining layers except for the specific layer, in order to induce wiring to be performed in the specific layer rather than in other layers.

170 More particularly, to allow for wiring at a specific layer that requires wiring for a specific net, the path exploration unitmay set the cost of wiring detection regions, corresponding to layers other than the specific layer and excluding the wiring detection region corresponding to that specific layer, to be high.

1101 1102 1103 1104 170 1101 1102 1103 1104 When disposing a plurality of terminals into each of the plurality of wiring exploration regions,,, and, the path exploration unitmay increase the cost of at least one of the plurality of wiring exploration regions,,, and, based on position information of terminals grouped into respective nets.

11 FIG. 170 1102 1103 1101 1102 1103 Here, increasing the cost of a wiring exploration region may mean that, in a state where the same cost is given to each of the plurality of grid cells included in each of the plurality of wiring exploration regions, in case that a specific net (e.g., a first net) defined by a net list needs to be positioned in a specific wiring exploration region (e.g., a first wiring exploration region) among the plurality of wiring exploration regions, the cost of grid cells included in other wiring exploration regions (e.g., a second wiring exploration region and a third wiring exploration region) may be increased so that the specific net is not disposed in wiring exploration regions other than the first wiring exploration region among the plurality of wiring exploration regions. For example, as illustrated in (a), (b), and (c) of, the path exploration unitmay update the costs of all of the plurality of grid cells included in a second wiring exploration regionand a third wiring exploration regionso that a first net is not disposed in wiring exploration regions other than a first wiring exploration region(the second wiring exploration regionand the third wiring exploration region) (e.g., update to “2”).

1101 1104 1101 1102 1103 1104 170 1102 1103 1101 1102 1103 1104 1102 1103 1101 1104 In addition, in case that a plurality of nets (e.g., the first net and the second net) need to be positioned (or disposed) respectively in the first wiring exploration regionand a fourth wiring exploration regionamong the plurality of wiring exploration regions,,, and, the path exploration unitmay increase the costs of all grid cells included in the remaining wiring exploration regionsandso that (with respect to the plurality of wiring exploration regions,,,) the first net and the second net are not disposed in wiring exploration regions (i.e., the second and third wiring exploration regionsand) other than the first wiring exploration regionand the fourth wiring exploration region(e.g., increase to “2”).

210 1101 1104 170 1102 1103 1 2 1102 1103 1101 In an embodiment, it is assumed that, based on the net list, the first net needs to be positioned in the first wiring exploration region, and the second net needs to be positioned in the fourth wiring exploration region. The path exploration unitmay increase the costs of all grid cells included in remaining wiring exploration regionsand, so that the first terminal Tand the second terminal Tgrouped into the first net are not disposed in wiring exploration regions (i.e., the second and third wiring exploration regions,) other than the first wiring exploration region(e.g., increased to “2”).

170 1102 1103 3 4 1102 1103 1104 In another embodiment, the path exploration unitmay increase the costs of all grid cells included in remaining wiring exploration regionsandso that the third terminal Tand the fourth terminal Tgrouped into the second net are not disposed in wiring exploration regions (i.e., the second and third wiring exploration regions,) other than the fourth wiring exploration region(e.g., increased to “2”).

1102 1103 170 1 2 3 4 5 6 200 170 1 2 1101 3 4 1104 Further, in a state where the cost of the remaining wiring exploration regionsandis increased, the path exploration unitmay dispose each of the plurality of terminals T, T, T, T, T, and Tin at least some of the plurality of grid cells, based on the PCB data. For example, the path exploration unitmay dispose the first terminal Tand the second terminal Tgrouped into the first net in the first wiring exploration regionand may dispose the third terminal Tand the fourth terminal Tgrouped into the second net in the fourth wiring exploration region.

As such, when performing wiring for a PCB composed of a plurality of layers, wiring may be efficiently designed by setting signal disposal or forbidden regions by layer through cost adjustment. In particular, by effectively reflecting wiring constraints required for PCB design through cost setting, signal interference may be reduced and a design rule may be satisfied in multi-layer PCB design.

190 170 430 195 440 4 FIG.A 4 FIG.A The sampling-based path exploration unitmay explore an optimal (or optimized) wiring path that satisfies all preset constraint conditions (e.g., line width, line spacing, wiring forbidden region, 45-degree wiring, etc.), with shortest paths (or wiring paths) for a plurality of terminals explored by the path exploration unitas a guide (S, see). The solution derivation unitmay derive the explored optimal wiring path as a final solution (S, see). The further details will be described below.

Meanwhile, the present disclosure is directed to providing a sampling-based wiring method and system capable of performing efficient PCB automatic wiring while satisfying all constraint conditions, based on sampling. More particularly, the present disclosure is directed to providing a sampling-based wiring method and system capable of deriving an optimal wiring path satisfying all constraint conditions, with a wiring path explored based on a grid as a guide, and the following will describe in more detail the sampling-based wiring method.

14 FIG. Meanwhile, before describing a wiring method in a continuous coordinate system according to the present disclosure, a sampling-based path exploration algorithm (e.g., a rapidly-exploring random tree algorithm (or RRT algorithm)) will be described with reference to.

14 FIG. 1401 1400 1401 1400 1410 1400 1403 1403 1403 a b c As illustrated in (a) of, a sampling-based path exploration algorithm may sample an arbitrary first point(or point, node) in an exploration region(or space). The arbitrary first pointmay be a departure point, which is a reference for initiating exploration or generating a new path candidate and may serve as a basis for expanding a tree. This may be understood as a process of expanding an exploration regionin order to rapidly expand a path to a target point. For example, in the exploration region, there may exist at least one constraint condition (e.g., obstacle regions,,) that is to be satisfied during the exploration process.

1401 1401 1401 1402 1401 1401 1402 a a a The sampling-based path exploration algorithm may specify (or explore, figure out, etc.) a specific pointexisting at the closest position to the arbitrary first pointamong points included (or positioned) in an existing tree (i.e., already explored path). This process may be understood as selecting a reference point to depart from an existing point in order to expand the tree. The specific pointmay be a point that serves as a reference for new connections in the existing tree, and a virtual line segment(or dotted line) connecting the arbitrary first pointand the specific pointmay be generated. Based on this line segment, a new candidate point may be sampled (or generated, set, etc.) by expanding by a preset distance (or expansion distance) in the subsequent step.

1402 1401 1401 1401 1401 1401 1401 a b a b 14 FIG. new new rand int The sampling-based path exploration algorithm may designate a point, spaced apart by a preset distance on the line segmentconnecting the arbitrary first pointand the specific point, as a new candidate. As illustrated in (b) of, the sampling-based path exploration algorithm may sample a new candidate point(q) by expanding from the arbitrary first pointtoward the specific pointby a preset distance γ. For example, the new candidate point(q) may be located between qand q.

1401 1403 1403 1403 1401 b a b c b For example, the sampling-based path exploration algorithm may determine (or verify) whether the new candidate pointsatisfies (no violation of constraint conditions) or does not satisfy (violation of constraint conditions) preset constraint conditions,, and, and based on a result of the determination, may determine whether to add the new candidate pointto the tree.

14 FIG. 1401 1403 1403 1403 1401 1403 1403 1403 1401 b a b c b a b c b In an embodiment, as illustrated in (c) of, as a result of the determination, in case that the new candidate pointsatisfies the preset constraint conditions,, and(e.g., the new candidate pointdoes not invade obstacles or wiring forbidden regions,, and), the sampling-based path exploration algorithm may add the new candidate pointto the tree. In particular, in case that a path of the new candidate point satisfies all constraint conditions (e.g., obstacle avoidance, forbidden region, etc.), it may be incorporated into a part of the tree.

14 FIG. 1401 1403 1403 1403 1401 1403 1403 1403 1401 1403 1403 1403 1401 1400 c a b c c a b c c a b c d In another embodiment, as illustrated in (d) and (e) of, as a result of the determination, in case that a sampled new candidate pointdoes not satisfy the preset constraint conditions,, and(e.g., the new candidate pointinvades obstacles or wiring forbidden regions,, and), the sampling-based path exploration algorithm may not add the new candidate point, which does not satisfy the constraint conditions,, and, to the tree, and instead, performs a process of resampling another new candidate pointin the exploration region.

1401 1401 1401 1403 1403 1403 1401 d d d a b c d For example, the resampling process may be repeatedly performed until a valid point satisfying the constraint conditions is found by resampling a new point. More particularly, the resampling process may be repeatedly performed until a path of a resampled new candidate pointsatisfies the preset constraint conditions. As a result of the determination for the resampled new candidate point, in case that the resampled new candidate pointsatisfies the preset constraint conditions,, and, the sampling-based path exploration algorithm may add the resampled new candidate pointto the tree.

In particular, the sampling-based path exploration algorithm, as a method of exploring a path in a continuous coordinate system (continuous or continued space), performs a process of i) stochastically (or randomly) sampling an arbitrary first point (node) in a path exploration region, ii) specifying a closest point in an existing path (tree) to the sampled point, and sampling a new candidate point (or new point) on a line segment connecting the specified point and the sampled point, and iii) expanding the tree toward a target point while exploring an optimal path that satisfies constraint conditions.

Meanwhile, as described above, in a grid-based wiring path exploration method (or process), a process of receiving PCB data including a net list and information on a plurality of terminals, a process of specifying a wiring exploration region for performing wiring of the plurality of terminals based on the net list, a process of performing gridization of the wiring exploration region into a plurality of grid cells based on a preset criterion, a process of updating the cost of the wiring exploration region such that the costs of at least some of the plurality of grid cells are increased based on preset constraint conditions, and a process of exploring shortest paths for wiring the plurality of terminals according to the net list by exploring grid cells with minimized costs in the cost-updated wiring exploration region may be performed.

8 FIG. 170 700 1 2 210 3 4 701 702 703 706 711 716 721 705 710 715 720 723 724 725 For example, as illustrated in (b) of, the path exploration unitmay, in the cost-updated wiring exploration region, explore grid cells with minimized costs, and then explore the first shortest path for wiring the first terminal Tand the second terminal Tbelonging to the first net according to the net list, and the second shortest path for wiring the third terminal Tand the fourth terminal Tbelonging to the second net. The first shortest path may include grid cells,,,,,, and, in which the sum of costs is minimized (e.g., “7.7”), and the second shortest path may include grid cells,,,,,, and, in which the sum of costs is minimized (e.g., “7”).

1 2 3 4 5 6 1310 13 FIG. In order to perform wiring for the plurality of terminals T, T, T, T, T, and Tin the continuous coordinate system, a process of calculating wiring probabilities of the plurality of grid cells using information of grid cells corresponding to shortest paths may be performed (S, see).

150 170 The control unitmay specify grid cells corresponding to shortest paths explored from the path exploration unit.

8 FIG. 150 701 702 703 706 711 716 721 170 701 725 700 For example, as illustrated in (b) of, the control unitmay specify the grid cells,,,,,, andoccupied by the first shortest path explored from the path exploration unit, among the plurality of grid cellstoincluded in the wiring exploration region, as grid cells corresponding to the first shortest path.

701 702 703 706 711 716 721 1 2 210 For example, the grid cells,,,,,, andcorresponding to the first shortest path may be understood as grid cells satisfying preset constraint conditions while wiring terminals grouped into the first net (i.e., the first terminal Tand the second terminal T) at a minimum cost, according to the net list.

150 705 710 715 720 723 724 725 170 701 725 700 In another embodiment, the control unitmay specify the grid cells,,,,,, andoccupied by the second shortest path explored from the path exploration unit, among the plurality of grid cellstoincluded in the wiring exploration region, as grid cells corresponding to the second shortest path.

705 710 715 720 723 724 725 3 4 210 For example, the grid cells,,,,,, andcorresponding to the second shortest path may be understood as grid cells satisfying preset constraint conditions while wiring terminals grouped into the second net (i.e., the third terminal Tand the fourth terminal T) at a minimum cost, according to the net list.

140 Such shortest paths (the first shortest path and the second shortest path) and information on grid cells corresponding to the shortest paths (e.g., position information of grid cells, information on cost occupied by the shortest paths, etc.) may be stored in the storage unit (or memory).

150 The control unitmay calculate wiring probabilities of a plurality of grid cells using information of grid cells corresponding to the shortest paths.

150 180 The control unitmay calculate (or give, assign) wiring probabilities of respective grid cells among the plurality of grid cells using the heatmap generation unit.

180 The heatmap generation unitmay calculate wiring probability values of other grid cells among the plurality of grid cells, excluding grid cells corresponding to the shortest paths using information on the grid cells corresponding to the shortest paths.

180 Particularly, the heatmap generation unitmay calculate wiring probabilities of grid cells corresponding to the shortest paths higher than wiring probabilities of other grid cells, among the plurality of grid cells, so that wiring of a plurality of terminals is performed in the continuous coordinate system centered on the grid cells corresponding to the shortest paths.

180 701 702 703 706 711 716 721 705 710 715 720 723 724 725 For example, the heatmap generation unitmay calculate probability values of remaining grid cells excluding the grid cells,,,,,, andcorresponding to the first shortest path, and the grid cells,,,,,, andcorresponding to the second shortest path, as “0.2”.

180 180 701 702 703 706 711 716 721 705 710 715 720 723 724 725 Alternatively, the heatmap generation unitmay calculate wiring probability values of grid cells (among the plurality of grid cells) corresponding to the shortest paths higher than wiring probability values of remaining grid cells. For example, the heatmap generation unitmay calculate probability values of the grid cells,,,,,, andcorresponding to the first shortest path, and probability values of the grid cells,,,,,, andcorresponding to the second shortest path, as “0.8”, which is higher than probability values (e.g., “0.2”) of remaining grid cells.

180 However, although grid cells correspond to the shortest paths, the probability values calculated for respective grid cells corresponding to the shortest paths may differ. The heatmap generation unitmay calculate respective probability values of grid cells corresponding to shortest paths differently according to respective selection frequencies (or number of selections) of the grid cells corresponding to the shortest paths, in the shortest path exploration step. For example, selection frequencies of the grid cells may be understood as including all selection frequencies in the initial shortest path exploration step and the shortest path exploration step through re-exploration.

180 180 180 180 100 100 In an embodiment, the heatmap generation unitmay give different weights according to selection frequencies of respective grid cells corresponding to the shortest paths. The heatmap generation unitmay give a highest weight (e.g., a first weight) to at least one grid cell among the grid cells corresponding to the shortest path, which satisfies a preset criterion (e.g., five times or more) of selection frequency. On the other hand, the heatmap generation unitmay give a weight (e.g., a second weight) lower than a weight given to grid cells that satisfy the preset criterion, to grid cells that do not satisfy a preset criterion of selection frequency (e.g., less than five times), among grid cells corresponding to the shortest paths. For example, the heatmap generation unitmay calculate a probability value of a grid cell to which the first weight is given as “0.95”, and may calculate a probability value of a grid cell to which the second weight is given as “0.8”, which is lower than the probability value of the grid cell to which the first weight is given, based on the different weights given to the respective grid cells corresponding to the shortest paths. However, weights given to grid cells are not limited to the mentioned weights (the first weight and the second weight), and may further include various weights (e.g., a third weight, a fourth weight, etc.) according to a preset criterion. The preset criterion (or preset weighting criterion) is not limited thereto, and it is obvious that it may be variously changed by an administrator of the wiring systemor by the wiring systemitself.

Meanwhile, based on wiring probabilities (or probability values) calculated for each of a plurality of grid cells, visual appearances of each of the plurality of grid cells may be displayed differently. Such data in which this information is displayed may be referred to as a “heatmap”.

180 180 The heatmap generation unitmay convert a wiring exploration region into a heatmap. For example, the heatmap generation unitmay assign a probability value to each of the plurality of grid cells included in the wiring exploration region, and may generate a heatmap using the probability values assigned to each of the plurality of grid cells.

16 FIG. 180 1603 1613 1601 1602 1603 1607 1608 1613 1619 1625 1623 1628 1612 1617 1618 1623 1624 1628 1629 1630 As illustrated in, the heatmap generation unitmay assign a first probability value (e.g., “0.95”) to at least one grid cellandamong grid cells,,,,,,, andcorresponding to a first shortest path to which a first weight is given, and at least one grid cellandamong grid cells,,,,,,, andcorresponding to a second shortest path to which a first weight is given.

180 1601 1602 1607 1608 1619 1625 1601 1602 1603 1607 1608 1613 1619 1625 1612 1617 1618 1624 1629 1630 1612 1617 1618 1623 1624 1628 1629 1630 The heatmap generation unitmay assign a second probability value (e.g., “0.8”) to the grid cells,,,,, andamong the grid cells,,,,,,, andcorresponding to the first shortest path to which a second weight is given, and the grid cells,,,,, andamong the grid cells,,,,,,, andcorresponding to the second shortest path to which a second weight is given.

180 1604 1605 1606 1609 1610 1611 1614 1615 1616 1620 1621 1622 1626 1627 The heatmap generation unitmay assign a third probability value (e.g., “0.2”) to remaining grid cells,,,,,,,,,,,,, andexcluding grid cells corresponding to the shortest paths (i.e., to which a third weight is given).

180 1600 1601 1630 In particular, the heatmap generation unitmay generate a heatmapusing probability values (e.g., a first probability value, a second probability value, a third probability value, etc.) assigned to each of the plurality of grid cellsto.

1600 1601 1630 Such a heatmapmay be defined as different regions according to probability values assigned to each of the plurality of grid cellsto.

1603 1613 1623 1628 1600 170 Firstly, the grid cells,,, and, to which the first probability value, which is the highest probability value, is given, may be defined as hot cells. For example, the hot cells may be regions having high importance or value (e.g., cells with high sampling probability) in the heatmap, and may be displayed in red or intense colors. The hot cells may correspond to the shortest path explored through the path exploration unitor may be cells adjacent to the shortest path.

1601 1602 1607 1608 1612 1617 1618 1619 1624 1625 1629 1630 1600 The grid cells,,,,,,,,,,, and, to which the second probability value lower than the first probability value is given, may be defined as medium cells. For example, the medium cells may be cells with medium importance, and in the heatmap, the medium cells may be displayed in a medium brightness color lighter than the hot cells (e.g., orange, light brown, etc.).

170 1600 In addition, cells occupied by the shortest path explored from the path exploration unitmay also be defined as path cells. For example, in order to visually emphasize a wiring path, the path cells may be displayed in a color (e.g., yellow) different from the hot cells and medium cells on the heatmap.

1604 1605 1606 1609 1610 1611 1614 1615 1616 1620 1621 1622 1626 1627 1600 The grid cells,,,,,,,,,,,,, and, to which the third probability value lower than the first probability value and the second probability value is given, may be defined as cold cells. For example, the cold cells may be regions having low importance or probability value, and in the heatmap, the cold cells may be displayed in a blue color or a color lighter (weaker) than the hot cells or medium cells.

1604 1605 1606 1609 1610 1611 1614 1615 1616 1620 1621 1622 1626 1627 1615 1616 1621 1622 1600 For example, among the grid cells,,,,,,,,,,,,, and, to which the third probability value is given, the cells,,, and, corresponding to regions where wiring is impossible, may be defined as obstacle cells. For example, the obstacle cells may visually represent regions where wiring is impossible, and in the heatmap, the obstacle cells may be displayed in a filled grid pattern or a fixed specific color (e.g., red).

16 FIG. 7 FIG. 8 FIG. 1601 1630 1600 1601 1 2 1602 3 4 1601 1602 170 Further, as illustrated in, the plurality of grid cellstoof the heatmapmay include a first wiringconnecting the first terminal Tand the second terminal Tspecified as a final wiring, and a second wiringconnecting the third terminal Tand the fourth terminal T. For example, the first wiringand the second wiringmay also be understood as final wiring paths finally specified according to the shortest paths explored from the path exploration unit, as described above (see (a) ofand (b) of).

1601 1630 1600 Meanwhile, each of the plurality of grid cellstoincluded in the heatmapmay be displayed with a different visual appearance according to a wiring probability calculated for each of the plurality of grid cells.

16 FIG. 1601 1602 1603 1607 1608 1613 1619 1625 1603 1613 1601 1602 1607 1608 1619 1625 For example, as illustrated in, among the grid cells,,,,,,, andcorresponding to the first shortest path, the hot cellsandto which a first weight is given may be displayed with a first visual appearance (e.g., a dark color). In contrast, the medium cells,,,,, and, to which a second weight other than the first weight is given, may be displayed with a second visual appearance (e.g., a light color) different from the first visual appearance.

1612 1617 1618 1623 1624 1628 1629 1630 1623 1628 1612 1617 1618 1624 1629 1630 In another embodiment, among the grid cells,,,,,,, andcorresponding to the second shortest path, the hot cellsandto which a first weight is given may be displayed with the first visual appearance (e.g., a dark color). In contrast, the medium cells,,,,, and, to which a second weight other than the first weight is given, may be displayed with a second visual appearance (e.g., a light color) different from the first visual appearance.

1604 1605 1606 1609 1610 1611 1614 1615 1616 1620 1621 1622 1626 1627 In another embodiment, the cold cells,,,,,,,,,,,,, and, which are other than grid cells corresponding to the shortest path (i.e., to which a third weight is given), may be displayed with a third visual appearance (e.g., a lighter color than the hot cells and medium cells) different from the first visual appearance and the second visual appearance.

Through this, it is possible to reduce unnecessary exploration by increasing sampling probability around a path explored based on a grid, and to induce rapid convergence by focusing on a zone with a high possibility of path generation. This allows a subsequent sampling-based exploration process to proceed more efficiently and enables a path satisfying constraint conditions to be explored quickly.

Further, a user may more intuitively recognize important data for optimal wiring path selection and layer-specific wiring plan establishment through the heatmap. Through this, the user may solve complex wiring problems in the PCB design process and reduce time and cost occurring in the PCB wiring design process.

1320 13 FIG. Meanwhile, a process of performing wiring of a plurality of terminals according to a net list in a continuous coordinate system using wiring probabilities of a plurality of grid cells may proceed (see S,).

150 1600 The control unitmay explore an optimal wiring path satisfying preset constraint conditions based on the heatmap.

150 1 2 3 4 5 6 190 Particularly, the control unitmay explore an optimal wiring path connecting the plurality of terminals T, T, T, T, T, and T, while satisfying all constraint conditions using the sampling-based path exploration unit.

190 1 2 3 4 5 6 1600 The sampling-based path exploration unitmay explore an optimal wiring path for wiring the plurality of terminals T, T, T, T, T, and Tin the continuous coordinate system based on the heatmap.

190 170 As described above, points sampled in the continuous coordinate system by the sampling-based path exploration unitmay be probabilistically distributed around the shortest path explored from the path exploration unit.

17 FIG. 1700 1701 1702 1703 1706 1707 1712 1713 1717 1718 1719 1723 1724 1725 1728 1729 1730 1731 1732 1700 1701 1702 1703 1706 1707 1712 1713 1717 1718 1719 1723 1724 1725 1728 1729 1730 1731 1703 1713 1723 1728 1706 1707 1712 1717 1718 1719 1724 1725 1729 1730 1703 1713 1723 1728 As illustrated in, points sampled on a continuous coordinate systemmay be probabilistically distributed in regions,,,,,,,,,,,,,,, andaround a first shortest pathand a second shortest path. For example, on the continuous coordinate system, distribution probabilities of points sampled in regions,,,,,,,,,,,,,,, andaround the first shortest pathmay exist differently for each region according to wiring probabilities calculated above. For example, in regions,,, andcorresponding to grid cells for which a wiring probability is calculated as “0.95”, distribution probability of sampled points may be highest, and in regions,,,,,,,,, andcorresponding to grid cells for which a wiring probability is calculated as “0.8”, distribution probability of sampled points may be smaller than that of the regions,,, and.

Meanwhile, in case that a new point (or node) expanded from an existing tree is added to the tree, a cost of each of a plurality of paths may be compared, and among the plurality of paths, a path having a minimum cost may be selected to optimize the tree.

18 FIG. 190 1802 1801 As illustrated in (a) of, the sampling-based path exploration unitmay sample a new pointby expanding from a departure pointby a preset distance.

190 1801 1802 1801 1801 1801 1802 1801 1802 1801 1801 a b a b For example, the sampling-based path exploration unit, in order to explore a path connecting (or wiring) the departure pointand the new pointwhile satisfying a specific constraint condition(s) (e.g., 45-degree angle), may sample a plurality of pointsandconnecting the departure pointand the new pointto satisfy the specific constraint condition(s). For example, the departure pointand the new pointmay be connected to the new sample pointsand, respectively.

190 1802 190 1801 1801 1801 1802 1801 1802 1801 1801 190 1801 1802 1801 1801 1802 1801 a b a b a b The sampling-based path exploration unitmay perform reconnecting (rewiring) for optimizing the tree. More particularly, in case that the new pointis added, the sampling-based path exploration unitmay sample the plurality of pointsandconnecting the departure pointand the new pointto satisfy a specific constraint condition, and may connect the departure pointand the new pointto each of the plurality of pointsand. For example, the sampling-based path exploration unitmay generate a first path connecting the departure pointand the new pointto a first point, and a second path connecting the departure pointand the new pointto a second point.

190 1801 1801 190 1801 1802 1801 190 a b a The sampling-based path exploration unitmay compare costs of each of the plurality of pathsandand may specify a path with a minimized cost among the plurality of paths. For example, it is assumed that among the plurality of paths, a first path has a cost of “2”, and a second path has a cost of “2.2”. The sampling-based path exploration unitmay specify the first path that may wire (or connect) the departure pointand the new pointat a minimum cost and may newly sample the first pointincluded in the specified first path and add it to the existing tree. In particular, the sampling-based path exploration unitmay reconstruct the tree with a path with a minimized cost and may progressively explore an optimal path by repeating such a process.

18 FIG. Further, as illustrated in (b) of, when connecting a wiring path, a sharp path may occur where the path takes a sharp turn. This may be understood as a phenomenon that occurs in case that a specific constraint condition(s) is not satisfied (or not complied with). However, by setting the path to be connected while satisfying the specific constraint condition(s), during the process of connecting the path, the sharp path may be converted (or corrected, modified, etc.) into a path that satisfies the specific constraint condition(s).

190 In particular, the sampling-based path exploration unitmay continuously minimize the cost of a path through rewiring, explore an optimized path, and, while expanding a tree so as to satisfy both a specific constraint condition(s) and other constraint conditions different from the specific constraint condition(s), may gradually explore an optimal path.

Based on the above-described contents, hereinafter, a more detailed description will be given regarding a method of performing wiring of a plurality of terminals in a continuous coordinate system according to a net list.

The process of performing wiring of a plurality of terminals in a continuous coordinate system may include a process of constructing a wiring tree centered on points that satisfy constraint conditions among points specified through sampling and completing the wiring of the plurality of terminals using the wiring tree.

1 2 1 2 3 4 5 6 Firstly, a description will be given of a process of performing wiring in a continuous coordinate system of the first terminal Tand the second terminal Tbelonging to a first net among the plurality of terminals T, T, T, T, T, and T.

190 1600 The sampling-based path exploration unitmay perform sampling of points to be included in the wiring of the plurality of terminals, centered on a region having a high probability value among the wiring exploration region defined by the heatmap. Here, performing sampling centered on the region having a high probability value may be understood as performing sampling centered on a hot cell to which a first probability value is assigned, or on a path cell. Alternatively, it may also be understood as performing sampling centered on a medium cell to which a second probability value is assigned.

190 1 2 1 1 2 The sampling-based path exploration unitmay set the first terminal Tas a start point, and set the second terminal T, which is different from the first terminal Tamong the terminals Tand Tgrouped into the first net, as a target point.

19 FIG. 190 1901 1900 1 2 As illustrated in (a) of, the sampling-based path exploration unitmay sample an arbitrary first pointcorresponding to the starting point on a continuous coordinate systemin order to explore an optimal path for wiring the first terminal Tand the second terminal T.

1901 1600 1 1 2 The arbitrary first pointmay be a point positioned in a region (or cell) on the heatmaphaving a high probability value (e.g., a hot cell or a path cell to which a first probability value is assigned), from a point at which the first terminal Tamong the terminals Tand Tgrouped as a first net defined by a net list is positioned.

190 1901 1900 170 100 100 The sampling-based path exploration unitmay sample the arbitrary first pointon the continuous coordinate systembased on a preset criterion. The preset criterion by which the arbitrary first point is sampled may exist in various forms. For example, the preset criterion may include at least one of i) a distance smaller than a grid cell size (e.g., length) of a grid, ii) a distance shorter than a preset distance γ, iii) a position closest to a node (starting terminal) from which wiring starts, among nodes in an existing tree (shortest path explored from the path exploration unit), iv) a position from which a path satisfying a specific constraint condition(s) (e.g., 45-degree angle) may be explored, or v) a position from which a path that does not violate a preset constraint condition(s) (e.g., wiring forbidden zone, conflict zone, etc.) may be explored. However, the preset criterion is not limited thereto, and it is obvious that it may be variously set (or modified) by an administrator (or user, engineer, etc.) of the wiring systemor by the wiring systemitself.

190 1901 1600 The sampling-based path exploration unitmay specify a second point, spaced apart from the first pointby a preset distance, among regions having high probability values defined by the heatmap, as a wiring candidate point.

190 1902 1903 1901 190 1902 1903 1900 1902 1903 The sampling-based path exploration unitmay specify a plurality of reference pointsandamong the points included in the existing tree in order to connect the first pointsuch that a specific constraint condition(s) is satisfied. The sampling-based path exploration unitmay sample the specified plurality of reference pointsandon the continuous coordinate system. For example, each of the plurality of reference pointsandmay be understood as a point that serves as a reference for exploring a path in consideration of a specific constraint condition(s).

190 1901 1902 1903 190 1911 1902 1901 190 1912 1903 1901 1902 1903 The sampling-based path exploration unitmay generate paths that respectively connect the first pointto the plurality of reference pointsand. For example, the sampling-based path exploration unitmay generate a first paththat connects a first reference pointto the first point, and the sampling-based path exploration unitmay generate a second paththat connects a second reference pointto the first point, among a plurality of candidate pointsand.

190 1911 1912 1901 1902 1903 190 1902 1911 1903 1912 1902 1902 1901 1903 1903 1901 19 FIG. a a a a The sampling-based path exploration unitmay specify, on each of a plurality of pathsandconnecting the first pointand the plurality of reference pointsand, a point spaced (or separated) by a preset distance as a new wiring candidate point. As illustrated in (b) of, the sampling-based path exploration unitmay specify a point, spaced apart by a preset distance γ on the first path, as a new first candidate point, and may specify a point, spaced apart by the preset distance on the second path, as a new second candidate point. For example, the pointmay be located between the reference pointand the first point, and the pointmay be located between the reference pointand the first point.

190 1902 1903 1900 190 191 1902 1903 1902 1903 a a a a a a The sampling-based path exploration unitmay sample a plurality of candidate points (or wiring candidate points,and) on the continuous coordinate system. For example, the sampling-based path exploration unitusing a verification unitmay determine (or verify) whether each of the new plurality of candidate pointsandsatisfies or does not satisfy the preset constraint condition and depending on whether each of the plurality of candidate pointsandsatisfies the preset constraint condition(s), may perform different wiring processes.

The different wiring process may include a first wiring process in which, in case that one of the plurality of candidate points satisfies the constraint condition(s), the candidate point satisfying the constraint condition(s) is included in the wiring tree of the first net, and a new wiring candidate point spaced apart by the preset distance from the candidate point is sampled.

In contrast, the different wiring process may include a second wiring process in which, in case that none of the plurality of candidate points satisfies the constraint condition(s), the candidate point not satisfying the constraint condition(s) is not included in the wiring tree of the first net, and a new wiring candidate point spaced apart by the preset distance from the candidate point is sampled.

1 2 1 1 2 190 1600 Accordingly, under the condition where the first terminal Tis set as a start point and the second terminal T, which is different from the first terminal T, among the terminals Tand Tgrouped in the first net, is set as a target point, the sampling-based path exploration unitmay repeatedly perform at least one of the first wiring process or the second wiring process until a wiring tree of the first net continuing from the start point to the target point is constructed, centered on the region having a high probability value defined by heatmap.

19 FIG. 19 FIG. 190 1902 1902 1903 1902 1910 1902 1902 1902 a a a a a b a For example, as illustrated in (c) of, as a result of the determination, the sampling-based path exploration unit, based on the first candidate pointamong the plurality of candidate pointsandsatisfying the preset constraint condition(s) (e.g., the first candidate pointdoes not invade the wiring forbidden region), may perform the first wiring process of adding the first candidate pointto the wiring tree of the first net, and sampling a new wiring candidate point(illustrated in (e) of) spaced apart by the preset distance from the first candidate point.

190 1902 1902 1902 a b a In particular, the sampling-based path exploration unitmay allow the first candidate pointto be included as a second point in the wiring tree of the first net and may sample a new candidate pointspaced apart by the preset distance from the second point.

190 1903 1902 1903 1903 1910 1901 1903 a a a a a In contrast, as a result of the determination, the sampling-based path exploration unit, based on the second candidate pointamong the plurality of candidate pointsandnot satisfying the preset constraint condition(s) (e.g., the second candidate pointinvades the wiring forbidden region), may perform the second wiring process of resampling a new wiring candidate point spaced apart by the preset distance from the first point, without allowing the second candidate pointto be included in the wiring tree of the first net.

190 1901 In particular, the sampling-based path exploration unitmay sample a new wiring candidate point spaced apart by a preset distance from the first point, without allowing the second candidate point (or second point) to be included in the wiring tree of the first net, in case that the second candidate point does not satisfy the preset constraint condition(s).

190 1 2 The sampling-based path exploration unitmay repeatedly perform the above-described process (first wiring process or second wiring process) to explore an optimal path for wiring the first terminal Tand the second terminal T.

190 1901 1902 1901 1902 1902 a a a For example, the sampling-based path exploration unitmay switch the direction of a connection path in at least a portion between the first pointand the second point, such that the connection path connecting the first pointand the second pointsatisfies a constraint condition(s) (e.g., a 45-degree angle), in case that the second pointis included in the wiring tree of the first net.

For example, in the wiring tree of the first net, the direction of the connection path may be switched from a first direction to a second direction, and the angle between the first direction and the second direction may form about 45 degrees.

190 190 1902 1902 1902 1902 1902 1902 19 FIG. a b c d e f In particular, the sampling-based path exploration unitmay connect at least one candidate point added to the existing tree in consideration of the constraint condition(s). As illustrated in (d) and (e) of, the sampling-based path exploration unitmay connect a plurality of candidate points (e.g.,,,,,,, etc.) added to the existing tree, to a path satisfying the constraint condition(s).

190 2020 1 2 Finally, the sampling-based path exploration unitmay explore (or generate) an optimal wiring paththat wires the first terminal Tand the second terminal Twhile satisfying all constraint conditions.

3 4 1 2 3 4 5 6 Next, a process of performing wiring of the third terminal Tand the fourth terminal T, which belong to the second net, among the plurality of terminals T, T, T, T, T, and T, in the continuous coordinate system, will be described.

190 1600 The sampling-based path exploration unitmay perform sampling of points to be included in the wiring of the plurality of terminals, centered on a region having a high probability value among the wiring exploration region defined by the heatmap. Here, performing sampling centered on the region having a high probability value may be understood as performing sampling centered on a hot cell to which a first probability value is assigned, or on a path cell. Alternatively, it may also be understood as performing sampling centered on a medium cell to which a second probability value is assigned.

190 3 4 3 3 4 The sampling-based path exploration unitmay set the third terminal Tas a start point, and set the fourth terminal T, which is different from the third terminal Tamong the terminals Tand Tgrouped into the second net, as a target point.

20 FIG. 190 2001 2000 3 4 As illustrated in (a) of, the sampling-based path exploration unitmay sample an arbitrary first pointcorresponding to the starting point on a continuous coordinate systemin order to explore an optimal path for wiring the third terminal Tand the fourth terminal T.

2001 1600 3 3 4 The arbitrary first pointmay be a point positioned in a region (or cell) on the heatmaphaving a high probability value (e.g., a hot cell or a path cell to which a first probability value is assigned), from a point at which the third terminal Tamong the terminals Tand Tgrouped as the second net defined by a net list is positioned.

190 2001 1600 The sampling-based path exploration unitmay specify a second point, spaced apart from the first pointby a preset distance, among regions having high probability values defined by the heatmap, as a wiring candidate point.

190 2002 2003 2001 190 2002 2003 2000 2002 2003 The sampling-based path exploration unitmay specify a plurality of reference pointsandamong the points included in the existing tree (the wiring tree of the second net) in order to connect the first pointsuch that a specific constraint condition(s) is satisfied. The sampling-based path exploration unitmay sample the specified plurality of reference pointsandon the continuous coordinate system. For example, each of the plurality of reference pointsandmay be understood as a point that serves as a reference for exploring a path in consideration of a specific constraint condition(s).

190 2001 2002 2003 190 2011 2002 2001 2012 2003 2001 2002 2003 The sampling-based path exploration unitmay generate paths that respectively connect the first pointto the plurality of reference pointsand. For example, the sampling-based path exploration unitmay generate a first paththat connects a first reference pointto the first point, and a second paththat connects a second reference pointto the first point, among a plurality of candidate pointsand.

190 2011 2012 2001 2002 2003 190 2002 2011 2003 2012 2002 2001 2002 2003 2001 2003 20 FIG. a a a a The sampling-based path exploration unitmay specify, on each of a plurality of pathsandconnecting the first pointand the plurality of reference pointsand, a point spaced (or separated) by a preset distance as a new wiring candidate point. As illustrated in (b) of, the sampling-based path exploration unitmay specify a point, spaced apart by a preset distance γ on the first path, as a new first candidate point, and may specify a point, spaced apart by the preset distance on the second path, as a new second candidate point. For example, the new pointmay be located between the first pointand the reference point, and the new pointmay be located between the first pointand the reference point.

190 2002 2003 2000 190 191 2002 2003 2002 2003 a a a a a a The sampling-based path exploration unitmay sample a plurality of candidate points (or wiring candidate points,and) on the continuous coordinate system. For example, the sampling-based path exploration unitusing a verification unitmay determine (or verify) whether each of the new plurality of candidate pointsandsatisfies or does not satisfy the preset constraint condition, and depending on whether each of the plurality of candidate pointsandsatisfies the preset constraint condition, may perform different wiring processes.

The different wiring process may include a first wiring process in which, in case that one of the plurality of candidate points satisfies the constraint condition(s), the candidate point satisfying the constraint condition(s) is included in the wiring tree of the second net, and a new wiring candidate point spaced apart by the preset distance from the candidate point is sampled.

In contrast, the different wiring process may include a second wiring process in which, in case that none of the plurality of candidate points satisfies the constraint condition(s), the candidate point not satisfying the constraint condition(s) is not included in the wiring tree of the second net, and a new wiring candidate point spaced apart by the preset distance from the candidate point is sampled.

3 4 3 3 4 190 1600 Accordingly, under the condition where the third terminal Tis set as a start point and the fourth terminal T, which is different from the third terminal T, among the terminals Tand Tgrouped in the second net, is set as a target point, the sampling-based path exploration unitmay repeatedly perform at least one of the first wiring process or the second wiring process until a wiring tree of the second net continuing from the start point to the target point is constructed, centered on the region having a high probability value defined by heatmap.

20 FIG. 20 FIG. 190 2002 2002 2003 2002 2010 2002 2002 2002 a a a a a b a For example, as illustrated in (c) of, as a result of the determination, the sampling-based path exploration unit, based on the first candidate pointamong the plurality of candidate pointsandsatisfying the preset constraint condition(s) (e.g., the first candidate pointdoes not invade the wiring forbidden region), may perform the first wiring process of adding the first candidate pointto the wiring tree of the second net, and sampling a new wiring candidate point(illustrated in (e) of) spaced apart by the preset distance from the first candidate point.

190 2002 2002 2002 a b a In particular, the sampling-based path exploration unitmay allow the first candidate pointto be included as a second point in the wiring tree of the second net and may sample a new candidate pointspaced apart by the preset distance from the second point.

190 2003 2002 2003 2003 2010 2001 2003 a a a a a In contrast, as a result of the determination, the sampling-based path exploration unit, based on the second candidate pointamong the plurality of candidate pointsandnot satisfying the preset constraint condition(s) (e.g., the second candidate pointinvades the wiring forbidden region), may perform the second wiring process of resampling a new wiring candidate point spaced apart by the preset distance from the first point, without allowing the second candidate pointto be included in the wiring tree of the second net.

190 2001 In particular, the sampling-based path exploration unitmay sample a new wiring candidate point spaced apart by a preset distance from the first point, without allowing the second candidate point (or second point) to be included in the wiring tree of the second net, in case that the second candidate point does not satisfy the preset constraint condition(s).

190 3 4 The sampling-based path exploration unitmay repeatedly perform the above-described process (first wiring process or second wiring process) to explore an optimal path for wiring the third terminal Tand the fourth terminal T.

190 2001 2002 2001 2002 2002 a a a For example, the sampling-based path exploration unitmay switch the direction of a connection path in at least a portion between the first pointand the second point, such that the connection path connecting the first pointand the second pointsatisfies a constraint condition(s) (e.g., a 45-degree angle), in case that the second pointis included in the wiring tree of the second net.

For example, in the wiring tree of the second net, the direction of the connection path may be switched from a first direction to a second direction, and the angle between the first direction and the second direction may form about 45 degrees.

190 190 2002 2002 2002 2002 2002 20 FIG. a b c d e In particular, the sampling-based path exploration unitmay connect at least one candidate point added to the existing tree in consideration of the constraint condition. As illustrated in (d) and (e) of, the sampling-based path exploration unitmay connect a plurality of candidate points (e.g.,,,,,, etc.) added to the existing tree, to a path satisfying the constraint condition(s).

190 2020 3 4 Finally, the sampling-based path exploration unitmay explore (or generate) an optimal wiring paththat wires the third terminal Tand the fourth terminal Twhile satisfying all constraint conditions.

22 FIG. 150 2100 2200 140 150 2200 170 2100 190 140 140 140 140 Further, as illustrated in, the control unitmay store solutionsandderived from the solution derivation unit in the storage unit. The control unitmay store a first solutionderived based on the shortest path explored through the path exploration unit, and a second solutionderived based on an optimal path explored through the sampling-based path exploration unit, in the storage unit. As an example, a space where solutions are stored in the storage unitmay also be referred to as a solution pool. All paths (or solutions) explored (or discovered) in the path exploration process are stored in the storage unit, and in case that a path that does not satisfy a constraint condition(s) is explored during a subsequent path exploration, at least one alternative path may be used to satisfy the constraint condition(s) using at least one path stored in the storage unit.

23 FIG. 150 2310 2320 2330 150 2301 2302 2303 2310 2320 2330 2310 2320 2330 2310 2320 2330 Furthermore, as illustrated in, in connecting a single net (wiring group), a conflict phenomenon may occur. For example, the control unitmay increase the cost of a conflict region and guide the next process to explore a path that avoids the corresponding region. For example, in case that exploring a wiring path that satisfies a specific constraint condition(s) (e.g., about 45 degrees), in case where a conflict occurs among a first net, a second net, and a third net, the control unitmay increase the cost of conflict points,, andof the first net, the second net, and the third net, and may guide the first net, the second net, and the third netto bypass the corresponding points during respective next wiring exploration processes. Through this, an optimized wiring path that satisfies all constraint conditions may be generated for each of the first net, the second net, and the third net.

100 100 100 Meanwhile, as described above, the wiring systemmay interoperate with the agent server AS and may provide various services or functions provided to a user. The wiring systemmay also include at least one agent (e.g., artificial intelligence agent (AI agent)). The agent server AS may be included in the wiring system.

100 The agent may interact with a user through a chatbot (or conversational artificial intelligence, conversational agent, etc.) interoperating with the wiring system. For example, at least one of the main agent or a sub-agent may be implemented in the form of a chatbot. For example, in case that the main agent interacts with a user, the main agent may receive a user input through the chatbot or may provide information (or data) to the user through the chatbot. However, in the present disclosure, it is apparent that the implementation form of the chatbot is merely an example and may be implemented in various forms beyond the chatbot.

10 10 10 Firstly, in the agent, a process of receiving PCB wiring target information through a conversation of the user meditated by the user terminalmay be performed. The agent may provide to the user terminala question related to PCB data so that printed circuit board (PCB) data including a net list (Net list) and information on a plurality of terminals is specified and may specify the PCB data based on an answer received from the user terminal. The agent may specify target information based on the specified PCB data.

24 FIG. 2401 10 2400 100 For example, as illustrated in (a) of, in order to receive a user input corresponding to a PCB wiring target, the agent may provide guidance information (e.g., “Hello user:) I am an agent who will assist your PCB design. How may I help you?”,) to the user terminalthrough the chatbotinteroperating with the wiring system.

10 451 10 2400 2410 2410 2410 2410 2410 4 FIG.B a b c The agent may receive PCB data input from the user terminal(S, see). For example, in a certain region of the user terminal(or a service page) where the chatbotis provided, a region for receiving a user input (or input receiving region,) may be provided. This input receiving regionmay include at least one of a text input region configured to receive a user's text input in text form, a graphical object (or a first graphical object,) linked to a function of receiving data in an image (or video) format, a graphical object (or a second graphical object,) linked to a function of receiving data in file format (e.g., XML, JSON, YAML, Gerber, ODB, CAD file, etc.), or a graphical object (or a third graphical object,) linked to a user input receiving function.

2402 10 2410 2410 2402 2402 2402 2402 c a b b The agent may receive PCB datacorresponding to a user input from the user terminal, based on a selection of the third graphical objectincluded in the input receiving region. The PCB datamay include, for example, at least one of an image (circuit diagram,) of a specific PCB that a user wants to design, or text datarequesting design (or wiring path exploration) of the specific PCB (e.g., “I want to add terminals at the displayed point and wire them, please find a path satisfying a 45-degree angle without conflicting with the wiring of other terminals”). The text datamay include information related to at least one of a net list, a plurality of terminals, or a constraint condition.

2402 2400 2402 453 4 FIG.B The agent may transmit the PCB datareceived through the chatbotto the agent server AS. The agent server AS may perform an analysis for the PCB data(S, see), and based on an analysis result, may extract at least one of net group information, position information for each of a plurality of terminals, or a constraint condition(s).

2402 160 170 180 190 195 100 160 170 180 190 195 For example, the agent server AS may specify target information based on the PCB data. The agent server AS may generate a task plan based on PCB wiring target information. The agent, according to the task plan, may cooperate with at least one of the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, or the solution derivation unitof the wiring system, to perform wiring according to PCB wiring target information. Such an agent may include a main agent generating the task plan, and a plurality of sub-agents cooperating with the main agent and respectively interoperating with one of the data parsing unit, the path exploration unit, the heatmap generation unit, the sampling-based path exploration unit, or the solution derivation unit.

The main agent, according to the task plan, may deliver a task command to at least one of the plurality of sub-agents, and at least one sub-agent receiving the task command may perform, in accordance with the task command, wiring design according to PCB wiring target information.

2403 2403 1 2 3 2402 1 2 3 1 2 3 2403 2403 455 a b a b 4 FIG.B More particularly, the agent server AS may select (or specify) each agent for “wiring new terminals at specific positionsandwith optimal paths that do not conflict with the wiring of other terminals and satisfy a 45-degree angle” among a plurality of agents A, A, and A. For example, the agent server AS, based on the PCB data, may select a first agent A, a second agent A, and a third agent Aamong a plurality of agents (or sub-agents, A, A, A) having different specialized functions, to wire a plurality of terminals satisfying user-input constraint conditions (e.g., wiring crossing forbidden, 45-degree angle, etc.) at specific positionsand(S, see).

1 2 3 2402 457 4 FIG.B For example, each of the selected plurality of agents A, A, and Amay understand a user intention included in the PCB dataand may perform customized wiring according to the user intention (S, see).

1 2 3 Each of the selected plurality of agents A, A, and Aaccording to a task plan may specify grid cells corresponding to the shortest path satisfying a preset constraint condition(s) among a plurality of grid cells forming a wiring exploration region based on target information, generate a heatmap reflecting a wiring probability value for each of the plurality of grid cells, using information on the grid cells corresponding to the shortest path, perform wiring design according to PCB wiring target information in a continuous coordinate system based on the probability value defined by the heatmap, and provide a wiring result in the continuous coordinate system to a user terminal.

1 2402 2403 2403 2403 2403 a b a b In an embodiment, the first agent Amay, based on the PCB data, i) specify a wiring exploration region for wiring terminals to specific positionsand, ii) perform gridization of the wiring exploration region into a plurality of grid cells based on a preset criterion, iii) dispose new plurality of terminals respectively in grid cells corresponding to the specific positionsandamong the plurality of grid cells, and iv) explore the shortest path for wiring the plurality of terminals independently of constraint conditions in a state where the plurality of terminals are disposed in the wiring exploration region.

1 2 2402 In another embodiment, based on a result of wiring the plurality of terminals according to the shortest path explored by the first agent A, the second agent Amay i) specify a grid cell that does not satisfy a specific constraint condition(s) (e.g., wiring crossing forbidden) among the plurality of grid cells, ii) update the cost of the wiring exploration region so that the cost of the specified grid cell is increased, and iii) re-explore the shortest path for wiring the plurality of terminals at a minimum cost while satisfying the specific constraint condition(s) according to the PCB datain the cost-updated wiring exploration region.

3 2403 2403 2 3 3 2403 2403 2402 a b a b In another embodiment, the third agent Amay explore an optimal path for wiring the plurality of terminals to the specific positionsandwhile satisfying not only the specific constraint condition(s) but also other constraint conditions (e.g., 45-degree angle), based on the result explored by the second agent A. The third agent Amay i) calculate wiring probabilities of a plurality of grid cells using information on the grid cells corresponding to the shortest path, ii) generate a heatmap reflecting wiring probability values for each of the plurality of grid cells using the information on the grid cells corresponding to the shortest path, and iii) perform wiring design according to PCB wiring target information in a continuous coordinate system based on the probability value defined by the heatmap. For example, the third agent Amay explore an optimal path for wiring the plurality of terminals to the specific positionsandwhile satisfying all constraint conditions, by performing wiring of the plurality of terminals in a continuous coordinate system according to PCB target information specified based on the PCB datausing wiring probabilities of the plurality of grid cells.

10 1 2 3 459 461 1 2 3 2420 4 FIG.B 4 FIG.B 24 FIG. 25 FIG. Finally, the agent server AS may provide a wiring result in the continuous coordinate system to the user terminal. More particularly, the agent server AS may integrate wiring exploration (or wiring performing) results of each of the plurality of agents A, A, and A(S, see), and may provide (or transmit) an integrated result (i.e., an optimal solution) as a response to a user input (S, see). For example, as illustrated in (b) ofand, the agent server AS may integrate wiring exploration (or wiring performing) results of each of the plurality of agents A, A, and A, and may generate an integrated result.

2420 2421 1 2 2403 2403 2402 140 2420 10 2420 140 a b a The generated resultmay include an optimal paththat wires the plurality of terminals Tand Tto the specific positionsand, while satisfying all constraint conditions according to a user's input intention. The agent may store the integrated resultin the storage unit, and may provide guidance information that guides that the integrated result has been generated (e.g., “Terminals are disposed at coordinates ‘(10.20 . . . )’ and ‘(30.20 . . . )’ corresponding to the displayed points, and an optimal path that satisfies a 45-degree angle while the disposed terminals not conflicting with other terminals has been successfully explored. Please check the result!”,) to the user terminal, together with the integrated resultstored in the storage unit.

2422 2420 2420 2422 2400 a b For example, a user may select a graphical objectlinked to a function of storing the finally provided resultto store (or save) the resultor may select a graphical objectlinked to a function of additional inquiry to transmit an additional inquiry or information to the chatbot.

As described above, in case that a user input that desires an already designed (or wired) design or a new design is received, an intention (or context) of the user input may be understood, and an appropriate agent may be selected, and a customized result according to the user intention may be generated through the selected agent and provided to the user.

As described above, according to the sampling-based wiring method and system of the present disclosure, by automating the PCB design process using artificial intelligence, it may be possible to minimize the time consumed in the PCB design process, and to enable reduction of human resources and costs incurred in the PCB design process.

In addition, according to the sampling-based wiring method and system of the present disclosure, an efficient wiring path satisfying various constraint conditions may be derived by exploring the wiring path of the PCB using artificial intelligence. Through this, the efficiency, accuracy, and quality of PCB wiring design can be improved simultaneously, and a user can reduce the time and cost incurred to design PCB wiring.

Further, according to the sampling-based wiring method and system according to the present disclosure, by performing PCB automatic wiring satisfying various constraint conditions required for PCB wiring using artificial intelligence, the productivity and quality of the entire PCB wiring design process may be improved. In particular, the present disclosure may be flexibly applied and used even in a complex PCB wiring design environment.

In addition, according to the sampling-based wiring method and system according to the present disclosure, by efficiently exploring the PCB wiring path based on a grid, an optimized wiring path satisfying complex constraint conditions can be derived while minimizing wiring conflict (or congestion, interference, etc.).

Further, according to the sampling-based wiring method and system according to the present disclosure, by using the result explored based on a grid as a guide, an optimal path accurately satisfying various constraint conditions can be explored. Through this, a user can escape from repetitive wiring path adjustment task and maximize the efficiency in the design process.

In addition, according to the sampling-based wiring method and system according to the present disclosure, by rapidly exploring the shortest path based on a grid and precisely correcting the shortest path explored based on the grid, a complex PCB wiring problem can be solved, and an optimal solution (i.e., an optimal wiring path) satisfying all constraint conditions can be derived.

As such, in the present disclosure, in order to find an optimal path from a start point (terminal) to a target point (terminal), grid-based exploration is performed, and sampling is performed using the wiring path explored based on the grid as a guide, so that an optimized wiring path can be derived. In particular, through a grid and sampling process, processes such as wiring optimization, path exploration, and reflection of constraint conditions may be efficiently and systematically performed. Through this, the present disclosure may be applied to the design of various electronic devices and may be efficiently used in the overall industrial field, and can reduce the cost required in the PCB wiring design process, and minimize the design time and human resources.

Meanwhile, the present disclosure described above may be executed by one or more processes on a computer and implemented as a program that may be stored on a computer-readable medium (or recording medium).

The present disclosure described above may be implemented as computer-readable code or instructions on a medium in which a program is recorded. In particular, the present disclosure may be provided in the form of a program.

Meanwhile, the computer-readable medium includes all kinds of recording devices for storing data readable by a computer system. Examples of computer-readable media include hard disk drives (HDDs), solid state disks (SSDs), silicon disk drives (SDDs), ROMs, RAMs, CD-ROMs, magnetic tapes, floppy discs, optical data storage devices, and the like.

The computer-readable medium may be a server or cloud storage that includes storage and that the electronic device is accessible through communication. For example, the computer may download the program according to the present disclosure from the server or cloud storage, through wired or wireless communication.

100 100 A computer program may reach the systemthrough various suitable delivery mechanisms. The delivery mechanism may be, for example, a computer-readable storage medium, a computer program product, a memory device, a recording medium such as a CD-ROM or DVD, or a product that tangibly implements a computer program. The delivery mechanism may be a signal configured to reliably transmit a computer program through air or an electrical connection. The systemmay propagate or transmit the computer program as a computer data signal.

Further, references to “computer-readable storage medium”, “computer program product”, “tangibly embodied computer program”, etc. or “controller”, “computer”, “processor”, etc., should be understood to also include computers having various architectures such as single/multi-processor architecture, and sequential (Von Neumann)/parallel architecture, as well as specialized circuits such as field-programmable gate array (FPGA), application specific circuit (ASIC), signal processing devices, and other devices. References to a computer program, instructions, codes, etc., should be understood to include software for programmable processors or firmware, such as programmable content of a hardware device, whether it is instructions for a processor, or configuration settings for a fixed-function device, a gate array, or a programmable logic device.

Further, the computer described above is an electronic device equipped with a processor, in particular, a central processing unit (CPU), and is not particularly limited to any type.

Further, the present disclosure is directed to providing a PCB wiring automatic design method and system that is capable of efficiently performing PCB automatic wiring while satisfying various constraint conditions required for PCB wiring, based on a grid.

In addition, the present disclosure is directed to providing a PCB wiring automatic design method and system that is capable of performing efficient PCB automatic wiring while satisfying all constraint conditions, based on sampling.

More specifically, the present disclosure is directed to providing a PCB wiring automatic design method and system that is capable of deriving an optimal wiring path satisfying all constraint conditions, using a wiring path explored based on a grid as a guide.

Further, the present disclosure is directed to providing a PCB wiring automatic design method and system that is capable of generating an optimized wiring path satisfying various constraint conditions.

To solve the aforementioned objects, there is provided a PCB wiring automatic design method in a PCB wiring automatic design system, according to the present disclosure. The system may include at least one processor and at least one memory including a computer program code.

As described above, according to the PCB wiring automatic design method and system according to the present disclosure, by automating the PCB design process using artificial intelligence, it may be possible to minimize the time consumed in the PCB design process, and to enable reduction of human resources and costs incurred in the PCB design process.

In addition, according to the PCB wiring automatic design method and system according to the present disclosure, by exploring the wiring path of the PCB using artificial intelligence, an efficient wiring path satisfying various constraint conditions can be derived. Through this, in the present disclosure, the efficiency, accuracy, and quality of PCB wiring design can be improved simultaneously, and a user can reduce the time and cost incurred to design PCB wiring.

Further, according to the PCB wiring automatic design method and system according to the present disclosure, by performing PCB automatic wiring satisfying various constraint conditions required for PCB wiring, using artificial intelligence, the productivity and quality of the entire PCB wiring design process may be improved. That is, the present disclosure may be flexibly applied and used even in a complex PCB wiring design environment.

In addition, according to the PCB wiring automatic design method and system according to the present disclosure, by efficiently exploring the PCB wiring path based on a grid, an optimized wiring path satisfying complex constraint condition can be derived while minimizing wiring conflict (or congestion, interference, etc.).

Further, according to the PCB wiring automatic design method and system according to the present disclosure, by using the result explored based on a grid as a guide, an optimal path accurately satisfying various constraint conditions can be explored. Through this, a user can rid himself of repetitive wiring path adjustment tasks and maximize the efficiency in the design process.

In addition, according to the PCB wiring automatic design method and system according to the present disclosure, by rapidly exploring a shortest path based on a grid and precisely correcting the shortest path explored based on the grid, a complex PCB wiring problem can be solved, and an optimal solution (i.e., an optimal wiring path) satisfying all constraint conditions can be derived.

As such, in order to find an optimal path from a start point (terminal) to a target point (terminal), grid-based exploration is performed, and sampling is performed using the wiring path explored based on the grid as a guide, so that an optimized wiring path can be derived. That is, in the present disclosure, through a grid and sampling process, processes such as wiring optimization, path exploration, and reflection of constraint conditions may be efficiently and systematically performed. Through this, the present disclosure may be applied to the design of various electronic devices and may be efficiently used in the overall industrial field, and can reduce the cost required in the PCB wiring design process, and minimize the design time and human resources.

Although certain embodiments and implementations have been described herein, other embodiments and modifications will be apparent from this description. Accordingly, the inventive concepts are not limited to such embodiments, but rather to the broader scope of the appended claims and various obvious modifications and equivalent arrangements as would be apparent to a person of ordinary skill in the art.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

January 6, 2026

Publication Date

May 14, 2026

Inventors

Kyung Hyun LEE
Kang Hoon LEE
Young Joon PARK
Hyung Seok SONG
Han Seul JEONG
Sung Dong YOO
Woohyung LIM

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “PRINTED CIRCUIT BOARD (PCB) WIRING AUTOMATIC DESIGN METHOD AND SYSTEM” (US-20260134189-A1). https://patentable.app/patents/US-20260134189-A1

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.