Copper laying method and device, storage medium and product
By dividing the copper pouring area according to the preset step size and the total number of vertices, and combining parallel computing and rectangular sub-region processing, the problems of unbalanced multi-threaded load and low efficiency are solved, achieving efficient copper pouring operation and improving computing efficiency and circuit design reliability.
Patent Information
- Application Number
- CN202511375331.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-25
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2045-09-25
AI Technical Summary
Existing copper pouring methods suffer from uneven multi-threaded load and low efficiency, especially in multi-core parallel scenarios. Complex areas become performance bottlenecks, while threads in simple areas complete prematurely, leading to idle resources and no significant improvement in overall speedup.
The copper pour area is divided into multiple sub-regions by a preset step size. The total number of vertices in each sub-region is calculated. If the number of vertices exceeds the threshold, the division is recursively performed until it is less than or equal to the threshold. The calculations are then distributed to different threads for parallel computation, and the results are merged. The copper pour area is divided into rectangular sub-regions by combining the horizontal and vertical step sizes. Isolated copper islands are detected and removed.
It achieves computational load balancing, improves the utilization of multi-core CPUs, shortens the overall computation time, ensures the integrity and accuracy of copper pour shape, reduces unnecessary computation and resource consumption, and improves the reliability of circuit design.
Smart Images

Figure CN120874740A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of integrated circuit design technology, and in particular to a copper pouring method, apparatus, storage medium, and product. Background Technology
[0002] Copper pouring is an operation that fills blank areas of a circuit board with copper foil. It is primarily used to reduce ground impedance, enhance interference immunity, improve heat dissipation, and increase current carrying capacity. Existing solutions employ a fixed-width cutting strategy, which involves dividing the copper pour area of the target layer into a grid of fixed widths to generate regular rectangular sub-regions. Polygon subtraction is then performed on each sub-region, and the resulting composite copper foil shape is obtained. However, this approach does not consider the differences in polygon complexity within the regions, leading to the following technical problems: Multi-threaded load imbalance: Complex polygonal regions and simple regions are divided into sub-regions of the same size, with significant differences in computation time. When processing in multiple threads, the thread containing the complex region becomes the performance bottleneck, while the thread in the simple region completes too early, resulting in idle resources and limiting the overall speedup.
[0003] Unstable copper pouring efficiency: When there are high-density complex polygons in the design, fixed cutting cannot dynamically adapt to the amount of computation, resulting in the copper pouring time increasing non-linearly with the increase of complexity, especially in multi-core parallel scenarios where the efficiency improvement is not obvious. Summary of the Invention
[0004] To address the technical problems of uneven computation thread load and low copper pouring efficiency in existing copper pouring calculations, this invention provides a copper pouring method, device, storage medium, and product.
[0005] The present invention provides a copper pouring method to solve the technical problem, comprising: obtaining a copper pouring region, the copper pouring region including multiple polygonal objects; dividing the copper pouring region into multiple sub-regions based on a preset step size; calculating the total number of vertices of the polygonal objects in each sub-region, and if the total number of vertices is greater than a threshold, recursively dividing the sub-region until the total number of vertices in the sub-region is less than or equal to the threshold, so as to obtain a calculation region with a total number of vertices less than or equal to the threshold; assigning each calculation region to different calculation threads for parallel calculation to obtain the copper pouring shape of the calculation region; merging the copper pouring shapes of all calculation regions to obtain the copper pouring shape of the copper pouring region and performing copper pouring processing.
[0006] Preferably, obtaining the copper pour area includes: obtaining a design layout; obtaining a copper pour layer based on the design layout; and selecting a copper pour area on the copper pour layer.
[0007] Preferably, the preset step size includes a horizontal step size and a vertical step size, and the copper pouring area is divided into multiple rectangular sub-regions based on the horizontal step size and the vertical step size.
[0008] Preferably, calculating the total number of vertices in each sub-region includes: obtaining polygon objects that intersect with the sub-region; traversing all vertices of the polygon objects and counting the total number of vertices that intersect with the sub-region.
[0009] Preferably, the recursive division of the sub-region includes: if the size of the current sub-region is less than a preset minimum region size, then the recursive division of the sub-region is terminated.
[0010] Preferably, each computing region is assigned to different computing threads for parallel computation to obtain the copper pour shape of the computing region, including: obtaining polygonal objects that intersect with the computing region; subtracting the polygonal objects that intersect with the computing region from the computing region to obtain the copper pour shape of the computing region.
[0011] Preferably, after merging the copper pour shapes of all the calculation regions to obtain the copper pour shape of the copper pour area and performing copper pour processing, the process includes: performing electrical connection detection on the copper skin of the copper pour area; if there are isolated copper islands that are not electrically connected to the preset target network, then removing the isolated copper islands.
[0012] To solve the above-mentioned technical problems, the present invention provides another technical solution as follows: an electronic device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the copper pouring method as described in any of the above claims.
[0013] To solve the above-mentioned technical problems, the present invention provides another technical solution as follows: a computer storage medium, characterized in that: it stores computer program instructions thereon, wherein when the computer program instructions are executed, they implement the copper pouring method as described in any of the preceding claims.
[0014] To solve the above-mentioned technical problems, the present invention provides another technical solution as follows: a computer program product, comprising a computer program, characterized in that: when the computer program is executed by a processor, it implements the copper pouring method as described in any of the above claims.
[0015] Compared with the prior art, the copper pouring method, equipment, storage medium, and product provided by the present invention have the following advantages: 1. This invention provides a copper pouring method. First, the copper pouring area is divided into multiple sub-regions based on a preset step size, ensuring that the basic granularity of the calculation is controllable. Then, the sub-regions are recursively divided based on the total number of vertices to control the total number of vertices in each sub-region, thereby dynamically adjusting the size of the sub-regions. The complex copper pouring area is decomposed into multiple calculation regions with approximately the same total number of vertices, ensuring that the processing time of each calculation region is similar. All calculation regions are allocated to different threads for parallel calculation, so that each core of the multi-core CPU can be fully utilized. Since the processing time of each calculation thread is similar, thread idle waiting is avoided during parallel calculation, which greatly improves the calculation efficiency. Finally, by merging the calculation results of each calculation region, the integrity and accuracy of the overall copper pouring shape are ensured, thereby completing the copper pouring efficiently.
[0016] 2. The copper pouring method provided in this embodiment of the invention first obtains the design layout, then locates the copper pouring layer, and finally selects the copper pouring area on that layer. This clarifies the application scenario and starting point of the copper pouring operation. Through interactive operation with the user, it empowers the user to flexibly define the processing range, enabling the copper pouring operation to accurately focus on the specific layer and range required by the design, rather than forcibly processing the entire design layout. This avoids invalid copper pouring in non-target layers or non-target areas, reduces unnecessary calculations and resource consumption, improves the targeting and accuracy of copper pouring, and ensures that the copper pouring work is highly matched with the design layout and actual needs.
[0017] 3. The copper pouring method provided in this embodiment of the invention uses a combination of horizontal and vertical step sizes to simply and efficiently divide the copper pouring area into multiple rectangular sub-regions, making the shapes of the sub-regions regular and uniform. Users can control the basic granularity of the calculation by adjusting the parameters of the two step sizes, providing a stable and controllable starting point for subsequent recursive partitioning. The rectangular structure facilitates boundary definition and geometric calculation, simplifies the sub-region partitioning logic and subsequent recursive partitioning operations. At the same time, the regular rectangular sub-regions are more conducive to the uniform distribution of computing tasks, laying a good foundation for subsequent parallel computing and improving the overall partitioning and processing efficiency.
[0018] 4. The copper pouring method provided in this embodiment of the invention obtains polygon objects that intersect with the sub-region, and then traverses its vertices to count the total number of intersecting vertices. By accurately quantifying the computational complexity of the sub-region through the total number of vertices intersecting the polygon with the sub-region, it provides a clear basis for recursive partitioning. Only complex sub-regions with a total number of vertices exceeding the threshold are further partitioned, which can avoid over-processing of simple sub-regions and ultimately achieve a balanced computational load for each sub-region. This ensures that the workload of each thread is relatively balanced during subsequent parallel computation, avoids the situation of thread idle waiting, and improves the overall computational efficiency.
[0019] 5. The copper pouring method provided in this embodiment of the invention introduces a "preset minimum region size" to set a termination mechanism for the recursive process. When the size of the sub-region is smaller than the preset minimum region size, the recursive partitioning operation is terminated. This effectively prevents the algorithm from getting stuck in infinite recursion or generating invalid tiny regions in extremely complex regions, avoids generating a large number of tiny regions due to excessive partitioning, and avoids increasing the additional overhead of calculation and merging, thus ensuring the robustness and practicality of the algorithm. At the same time, by setting the "preset minimum region size", the minimum size of the sub-region can be controlled, reducing unnecessary consumption of computing resources while ensuring calculation accuracy, and balancing calculation efficiency and processing cost.
[0020] 6. The copper pouring method provided in this embodiment of the invention obtains the copper pouring shape of the calculation area by subtracting the polygon objects that intersect with it from the calculation area. This operation focuses on the local details within the calculation area and can accurately handle the geometric relationships within each calculation area, ensuring that the copper pouring shape of each calculation area is accurate. At the same time, the parallel computing method allows the processing of multiple calculation areas to be carried out simultaneously, significantly shortening the overall calculation time and greatly improving efficiency while ensuring copper pouring accuracy.
[0021] 7. The copper pouring method provided in this embodiment of the invention performs electrical connection testing on the copper foil after copper pouring and removes isolated copper that is not connected to the preset target network. This eliminates unnecessary parasitic effects or electromagnetic interference introduced by isolated copper, ensures that the final copper foil is effectively connected to the target network, improves the reliability and stability of the circuit design, and reduces potential problems in subsequent circuit debugging.
[0022] 8. This invention also provides an electronic device comprising a memory, a processor, and a computer program stored in the memory. The processor executes the computer program to implement the copper pouring method as described in any of the preceding claims. It has the same beneficial effects as the copper pouring method described in any of the preceding claims, and will not be repeated here.
[0023] 9. This invention also provides a computer storage medium storing computer program instructions, which, when executed, implement the copper pouring method as described in any of the preceding claims. It has the same beneficial effects as the copper pouring method described in any of the preceding claims, and will not be repeated here.
[0024] 10. This invention also provides a computer program product, including a computer program that, when executed by a processor, implements the copper pouring method as described in any of the preceding claims. It has the same beneficial effects as the copper pouring method described in any of the preceding claims, and will not be repeated here. Attached Figure Description
[0025] To more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0026] Figure 1 This is a flowchart of a copper pouring method provided in an embodiment of the present invention.
[0027] Figure 2 This is a flowchart of the steps for obtaining the copper pouring area in a copper pouring method provided in an embodiment of the present invention.
[0028] Figure 3 This is a flowchart illustrating the steps involved in calculating the total number of vertices in a sub-region during a copper pouring method provided in an embodiment of the present invention.
[0029] Figure 4 This is a flowchart illustrating the steps for calculating the copper pour shape in a copper pouring method provided in an embodiment of the present invention.
[0030] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present invention.
[0031] Figure 6 This is a schematic diagram of the structure of a computer storage medium provided in an embodiment of the present invention.
[0032] Figure 7 This is a schematic diagram of the structure of a computer program product provided in an embodiment of the present invention.
[0033] Explanation of reference numerals in the attached diagram: 1. Electronic equipment; 11. Memory; 12. Processor; 2. Computer storage medium; 3. Computer program product. Detailed Implementation
[0034] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0035] In the embodiments provided by this invention, it should be understood that "B corresponding to A" means that B is associated with A, and B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.
[0036] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of the invention. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. Those skilled in the art should also recognize that the embodiments described in the specification are optional embodiments, and the actions and modules involved are not necessarily essential to the invention.
[0037] In various embodiments of the present invention, it should be understood that the sequence number of each process does not necessarily imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.
[0038] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, or they may sometimes be executed in reverse order, depending on the functions involved. It is particularly important to note that each block in a block diagram and / or flowchart, and combinations of blocks in block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0039] It should be noted that granularity is a tool for describing fuzzy and uncertain objects; granularity simply means taking objects of different sizes. For example, a large object with "coarse granularity" can be divided into several small objects with "fine granularity," or several small objects can be merged into a large coarse granular object.
[0040] Please see Figure 1 This invention provides a copper pouring method, comprising: Step S1: Obtain the copper pour area, which includes multiple polygon objects; Step S2: Divide the copper-paved area into multiple sub-regions based on a preset step size; Step S3: Calculate the total number of vertices of the polygon objects in each sub-region. If the total number of vertices is greater than the threshold, recursively divide the sub-region until the total number of vertices in the sub-region is less than or equal to the threshold, so as to obtain the calculation region where the total number of vertices is less than or equal to the threshold. Step S4: Assign each computing region to different computing threads for parallel computing to obtain the copper pour shape of the computing region; Step S5: Merge the copper pour shapes of all calculated regions to obtain the copper pour shape of the copper pour area and perform copper pour processing.
[0041] It should be noted that the copper pouring method of the present invention is used for copper pouring operations in chip design or PCB board design.
[0042] In some embodiments, the copper pouring method provided by the present invention can simultaneously calculate and process multiple copper pouring areas.
[0043] Optionally, chips or PCBs typically have multiple layers, such as signal layers, metal layers, shielding layers, top layers, and bottom layers. The above copper pouring method can be performed simultaneously or at different times on multiple copper pouring areas at the same layer, such as simultaneously pouring copper on multiple copper pouring areas located on the top layer; the above copper pouring method can also be performed simultaneously or at different times on multiple copper pouring areas at different layers, such as simultaneously pouring copper on copper pouring areas on the top layer and the bottom layer.
[0044] It should be noted that copper foil usually needs to be connected to a specific network, such as a ground network, a +3.3V power network, or a +5V power network. Therefore, when obtaining the copper foil area, it is also necessary to determine the connection network of the copper foil area to determine the electrical connection attributes of the copper foil and avoid connecting the copper foil to non-target networks, which could lead to short circuit risks.
[0045] It should be noted that the number of vertices in a subregion directly determines the technical complexity of the difference operation. The more vertices there are, the more frequent and time-consuming the mathematical operations of calculating polygon intersections, clipping, and merging become. Therefore, dividing subregions by the total number of vertices provides a quantifiable standard that is strongly correlated with computational complexity, enabling the algorithm to perform the division operation quickly and accurately.
[0046] This invention provides a copper pouring method. First, the copper pouring area is divided into multiple sub-regions based on a preset step size, ensuring that the basic granularity of the calculation is controllable. Then, the sub-regions are recursively divided based on the total number of vertices to control the total number of vertices in each sub-region, thereby dynamically adjusting the size of the sub-regions. This decomposes the complex copper pouring area into multiple calculation regions with approximately the same total number of vertices, ensuring that the processing time of each calculation region is similar. All calculation regions are allocated to different threads for parallel calculation, so that each core of the multi-core CPU can be fully utilized. Since the processing time of each calculation thread is similar, thread idle waiting is avoided during parallel calculation, which greatly improves the calculation efficiency. Finally, by merging the calculation results of each calculation region, the integrity and accuracy of the overall copper pouring shape are ensured, thereby completing the copper pouring efficiently.
[0047] Further, please refer to Figure 2 Obtain the copper pour area, including: Step S11: Obtain the design layout; Step S12: Obtain the copper pour layer based on the design layout; Step S13: Select the copper pour area on the copper pour layer.
[0048] It should be noted that the design layout in step S1 can be in formats such as GDSII (Graphic Data System II), OASIS (Open Artwork System Interchange Standard), LEF (Library Exchange Format), or DEF (Design Exchange Format). The design layout contains information such as stack-up structure, traces, pads, vias, and circuit network connections.
[0049] In some embodiments, the hierarchical structure, coordinate system, and physical information of each layer of the design layout are extracted by a parsing tool. The target layer, namely the copper pour layer, is selected according to the design requirements. Specifically, it can be identified and selected by layer name, layer attribute, or other specific information. It should be noted that one or more copper pour layers can be selected according to actual needs.
[0050] Optionally, after obtaining the copper pour layer, the user can interactively draw a polygonal copper pour area on a specific copper pour layer using the mouse; or the algorithm can automatically generate a polygonal copper pour area on a specific copper pour layer based on design rules.
[0051] It should be understood that the copper-paved area can be a rectangle, triangle, regular or irregular polygon, etc.
[0052] As a feasible implementation method, when multiple copper pouring areas are selected on the design layout, these copper pouring areas can be prioritized according to their importance. When computing resources are limited, copper pouring areas with higher priority are processed first to ensure that the core areas are completed first, avoiding delays in the progress of critical areas due to uneven resource allocation, thereby ensuring the reliability of core design functions.
[0053] Optionally, depending on the actual application requirements, multiple copper pour areas can be prioritized based on indicators such as signal density and location within the copper pour area. The specific settings can be configured according to actual needs.
[0054] The copper pouring method provided in this invention first obtains the design layout, then locates the copper pouring layer, and finally selects the copper pouring area on that layer. This clarifies the application scenario and starting point of the copper pouring operation. Through interactive operation with the user, it empowers the user to flexibly define the processing range, enabling the copper pouring operation to precisely focus on the specific layer and range required by the design, rather than forcibly processing the entire design layout. This avoids invalid copper pouring in non-target layers or non-target areas, reduces unnecessary calculations and resource consumption, improves the targeting and accuracy of copper pouring, and ensures that the copper pouring work is highly matched with the design layout and actual needs.
[0055] Furthermore, the preset step size includes a horizontal step size and a vertical step size, and the copper pour area is divided into multiple rectangular sub-regions based on the horizontal and vertical step sizes.
[0056] It should be noted that the horizontal step size refers to the step size in the X-axis direction, and the vertical step size refers to the step size in the Y-axis direction. Depending on the actual application requirements, the lengths of the horizontal and vertical step sizes can be equal or unequal.
[0057] In some embodiments, the copper pouring method of the present invention sets multiple preset step sizes of different sizes to divide the copper pouring area. For areas with dense signal devices, a smaller step size is selected to improve the accuracy of the initial division. For open areas, a larger preset step size can be set to reduce the total number of sub-regions.
[0058] The copper pouring method provided in this invention uses a combination of horizontal and vertical step sizes to simply and efficiently divide the copper pouring area into multiple rectangular sub-regions, resulting in uniform and regular shapes for the sub-regions. Users can control the basic granularity of the calculation by adjusting the parameters of the two step sizes, providing a stable and controllable starting point for subsequent recursive partitioning. The rectangular structure facilitates boundary definition and geometric calculation, simplifies the sub-region partitioning logic and subsequent recursive partitioning operations. At the same time, the regular rectangular sub-regions make it easier to achieve a uniform distribution of computational tasks, laying a good foundation for subsequent parallel computing and improving the overall partitioning and processing efficiency.
[0059] Further, please refer to Figure 3 Calculate the total number of vertices in each sub-region, including: Step S31: Obtain polygon objects that intersect with the sub-region; Step S32: Traverse all vertices of the polygon object and count the total number of vertices that intersect with the sub-region.
[0060] Specifically, polygonal objects refer to objects that need to be avoided when laying copper, including but not limited to traces, pads, vias, devices, or other network copper areas.
[0061] In some embodiments, for each sub-region, the algorithm traverses all polygon objects on the design layout and determines whether the polygon object intersects the current sub-region at least partially. If the polygon object intersects the current sub-region, the polygon object is listed as the polygon object to be processed in the current sub-region.
[0062] Specifically, a large polygonal object, such as a long trace, may be listed as a polygonal object to be processed in multiple adjacent sub-regions at the same time; and the vertices of a polygonal object are only counted in the total number of vertices of the current sub-region if they are located within the current sub-region, that is, a vertex will only belong to one sub-region.
[0063] In some embodiments, when a vertex of a polygonal object is located at the boundary of a sub-region, the vertex is counted using the criterion of "left closed, right open, bottom closed, top open". That is, when a vertex is located at the left or bottom boundary of a sub-region, the vertex is counted in the current sub-region; when a vertex is located at the right or top boundary of a sub-region, the vertex is not counted in the current sub-region.
[0064] Understandably, the copper pouring method provided in this embodiment of the invention obtains polygon objects that intersect with the sub-region, then traverses its vertices to count the total number of intersecting vertices. By accurately quantifying the computational complexity of the sub-region through the total number of vertices intersecting the polygon with the sub-region, it provides a clear basis for recursive partitioning. Only complex sub-regions with a total number of vertices exceeding the threshold are further partitioned, which can avoid over-processing of simple sub-regions and ultimately achieve a balanced computational load for each sub-region. This ensures that the workload of each thread is relatively balanced during subsequent parallel computation, avoids the situation of thread idle waiting, and improves the overall computational efficiency.
[0065] Furthermore, the sub-regions are recursively divided, including: if the size of the current sub-region is smaller than the preset minimum region size, then the recursive division of the sub-regions is terminated.
[0066] In some embodiments, a preset minimum area size, such as pad size, minimum line width, or spacing, is determined based on process nodes and design rules to avoid dividing out tiny areas that do not meet design rules, cannot be manufactured, or are meaningless to calculate.
[0067] Specifically, the preset minimum area size can be adjusted according to the wiring density or criticality of the sub-region. For example, a larger minimum area size can be set for the edge area, while a smaller minimum area size can be set for the core area, in order to balance design rules and calculation efficiency.
[0068] It should be noted that the copper pouring method of the present invention uses a preset minimum area size and a threshold for the total number of vertices in the sub-region as the termination conditions for the recursive division of the sub-region. When the size of the sub-region is less than the preset minimum size or the total number of vertices is less than the preset threshold, the recursive division of the sub-region is terminated to avoid infinite recursion in extreme cases.
[0069] As a feasible implementation method, an upper limit is set for the number of recursions in the copper pouring method. When the number of recursions reaches the upper limit, the recursive division of the sub-region is terminated.
[0070] The copper pouring method provided in this invention introduces a "preset minimum region size" to set a termination mechanism for the recursive process. When the size of the sub-region is smaller than the preset minimum region size, the recursive partitioning operation is terminated. This effectively prevents the algorithm from getting stuck in infinite recursion or generating invalid tiny regions in extremely complex regions, avoiding the generation of a large number of tiny regions due to excessive partitioning, which increases the additional overhead of calculation and merging, and ensuring the robustness and practicality of the algorithm. At the same time, by setting the "preset minimum region size", the minimum size of the sub-region can be controlled, reducing unnecessary consumption of computing resources while ensuring calculation accuracy, and balancing calculation efficiency and processing cost.
[0071] Furthermore, the sub-regions are recursively divided, specifically by dividing the sub-regions according to a preset ratio.
[0072] It should be noted that dividing the sub-regions according to a preset ratio ensures that each division follows a fixed rule, guaranteeing the consistency and predictability of the size and shape of the sub-regions. This division operation is simple to implement, can quickly reduce the complexity of individual sub-regions, facilitates the estimation and management of sub-region complexity, and helps to evenly distribute the computational tasks to different threads, avoiding situations where some threads are overloaded and others are idle, thus improving the overall efficiency of parallel computing.
[0073] Optionally, the sub-region can be divided into two, three, four, etc.
[0074] Specifically, the sub-region can be divided along the X-axis, or along the Y-axis, or simultaneously along both the X-axis and Y-axis.
[0075] In some embodiments, the preset ratio can be a division ratio such as 1:1, 1:2, or 1:3. For example, using a 1:2 ratio to divide a narrow sub-region can avoid generating an overly thin sub-region, making the divided sub-region more regular in shape.
[0076] Further, please refer to Figure 4 Each computational region is assigned to different computational threads for parallel computation, resulting in the copper plating shape of the computational region, including: Step S41: Obtain polygon objects that intersect with the calculation region; Step S42: Subtract the polygonal objects that intersect with the calculation area to obtain the copper pour shape of the calculation area.
[0077] It should be noted that for each calculation region, the overlapping parts of the polygons that intersect with the region are first extracted to identify the areas that need to be avoided. Then, the polygon Boolean difference operation is performed, which is to "subtract the polygon objects that intersect with the calculation region" to obtain the effective area that can be filled with copper.
[0078] Specifically, the computation tasks are managed through a thread pool, with each thread independently processing a computation area. Through multi-threaded parallel computation, the overall processing speed of the copper-paved area is accelerated.
[0079] The copper pouring method provided in this invention uses polygon subtraction to subtract the intersecting polygon objects from the calculation area, thereby obtaining the copper pouring shape of the calculation area. This operation focuses on local details within the calculation area, accurately handles the geometric relationships within each calculation area, and ensures that the copper pouring shape of each calculation area is accurate. At the same time, the parallel computing method allows the processing of multiple calculation areas to be carried out simultaneously, significantly shortening the overall calculation time and greatly improving efficiency while ensuring copper pouring accuracy.
[0080] Furthermore, after merging the copper pour shapes of all computational regions to obtain the copper pour shape of the copper pour area and performing copper pour processing, the process includes: performing electrical connection detection on the copper skin of the copper pour area; if there are isolated copper islands that are not electrically connected to the preset target network, then the isolated copper islands are removed.
[0081] It should be noted that "islanded copper" refers to copper strips that are not electrically connected to the target network, and "islanded copper removal" means deleting the islanded copper strips.
[0082] In some embodiments, a breadth-first search or depth-first search algorithm is used to traverse all copper sheets, starting from the connection point of the preset target network, to determine whether there are isolated copper sheets that are not connected to the target network.
[0083] In other embodiments, users can set an isolated copper area threshold, removing only isolated copper areas smaller than the threshold, while retaining large-area isolated copper areas as heat sinks or shielding pads.
[0084] As one implementation method, after copper pouring is performed in the copper pouring area, the user can select one or more copper pouring areas to update the copper foil; that is, first delete the copper foil in the area, and then re-enter the desired copper pouring parameters for computer copper pouring processing.
[0085] The copper pouring method provided in this invention performs electrical connection testing on the copper foil after copper pouring and removes isolated copper that is not connected to the preset target network. This eliminates unnecessary parasitic effects or electromagnetic interference introduced by isolated copper, ensures that the final copper foil is effectively connected to the target network, improves the reliability and stability of the circuit design, and reduces potential problems in subsequent circuit debugging.
[0086] Please see Figure 5 The present invention also provides an electronic device 1, including a memory 11, a processor 12 and a computer program stored on the memory 11, wherein the processor 12 executes the computer program to implement the copper pouring method as described above.
[0087] Specifically, the electronic device 1 can be a smartphone, tablet computer, computer, or portable computer.
[0088] It should be noted that the processor 12 may include one or more cores for processing data and message matrix units. The processor 12 connects to various parts of the entire electronic device 1 using various interfaces and lines, and performs various functions of the electronic device 1 and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 11, and by calling data stored in the memory 11.
[0089] Optionally, the processor 12 can be implemented using at least one of the following hardware forms: digital signal processing, field-programmable gate array (FPGA), and programmable logic array (PLA). The processor 12 can integrate one or more of the following: a central processing unit (CPU), a graphics processor (GPU), and a modulation / decoder (MDD). Alternatively, the MDD may not be integrated into the processor 12 and can be implemented separately using a communication chip.
[0090] Understandably, the electronic device 1 implements the copper pouring method by executing a corresponding computer program through the processor 12, transforming the method into the function of the actually operable electronic device 1, which is convenient for application in actual integrated circuit design work, improves the work efficiency of designers, and promotes the automation and intelligence of integrated circuit design process. The electronic device 1 in this embodiment also has the same beneficial effects as the copper pouring method described in any of the above, which will not be repeated here.
[0091] Please see Figure 6The present invention also provides a computer storage medium 2, on which computer program instructions are stored, and when the computer program instructions are executed, the copper pouring method as described above is implemented.
[0092] Understandably, the computer storage medium 2 stores the relevant calculation program instructions, which makes the copper pouring method convenient to store, transmit and execute, thus facilitating the promotion of the copper pouring method, lowering the threshold for use and maintaining algorithm consistency. This helps more integrated circuit design scenarios adopt the copper pouring method to improve design quality. The computer storage medium 2 in this embodiment also has the same beneficial effects as the copper pouring method described above, which will not be elaborated here.
[0093] Please see Figure 7 The present invention also provides a computer program product 3, comprising a computer program, characterized in that: when the computer program is executed by a processor, it implements any of the above copper pouring methods.
[0094] Understandably, the computer program product 3 provided in this embodiment includes computer instructions, which can be stored in a computer storage medium. The processor 12 of the electronic device 1 reads the computer instructions from the storage medium and executes the computer instructions, causing the electronic device 1 to perform the copper pouring method described in the various optional implementations above.
[0095] It is understood that, according to the embodiments disclosed in this invention, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication component, and / or installed from a removable medium. When the computer program is executed by a central processing unit (CPU), it performs the functions defined in the methods of this application. It should be noted that the computer-readable medium described in this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. Computer-readable storage media include, but are not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this application, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on a computer-readable medium can be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.
[0096] Computer program code for performing the operations of this application can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0097] The foregoing has provided a detailed description of a copper-laying method, apparatus, storage medium, and product disclosed in the embodiments of the present invention. Specific examples have been used to illustrate the principles and implementation methods of the present invention. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and core ideas of the present invention. Furthermore, those skilled in the art will recognize that, based on the ideas of the present invention, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of the present invention. Any modifications, equivalent substitutions, and improvements made within the principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A copper pouring method, characterized in that, include: Obtain the copper pour area, which includes multiple polygon objects; The copper-paved area is divided into multiple sub-regions based on a preset step size; Calculate the total number of vertices of the polygon objects in each sub-region. If the total number of vertices is greater than a threshold, recursively divide the sub-region until the total number of vertices in the sub-region is less than or equal to the threshold, so as to obtain a calculation region where the total number of vertices is less than or equal to the threshold. Each computing region is assigned to a different computing thread for parallel computation, resulting in the copper pour shape of the computing region; Merge the copper pour shapes of all the calculated regions to obtain the copper pour shape of the copper pour region and perform copper pour processing.
2. The copper pouring method as described in claim 1, characterized in that, Obtain the copper pour area, including: Obtain the design layout; Obtain the copper pour layer based on the design layout; Select the copper pour area on the copper pour layer.
3. The copper pouring method as described in claim 1, characterized in that: The preset step size includes a horizontal step size and a vertical step size, and the copper pouring area is divided into multiple rectangular sub-regions based on the horizontal step size and the vertical step size.
4. The copper pouring method as described in claim 1, characterized in that, Calculate the total number of vertices in each sub-region, including: Obtain polygon objects that intersect with the sub-region; Traverse all vertices of the polygon object and count the total number of vertices that intersect with the sub-region.
5. The copper pouring method as described in claim 1, characterized in that, The recursive division of the sub-region includes: if the size of the current sub-region is smaller than the preset minimum region size, then the recursive division of the sub-region is terminated.
6. The copper pouring method as described in claim 1, characterized in that, Each computing region is assigned to a different computing thread for parallel computation, resulting in the copper pour shape of the computing region, including: Obtain polygon objects that intersect with the computation region; Subtract the polygonal objects that intersect with the computational region from the computational region to obtain the copper-pave shape of the computational region.
7. The copper pouring method as described in claim 1, characterized in that, After merging the copper pour shapes of all the calculation regions to obtain the copper pour shape of the copper pour area and performing copper pour processing, the process includes: performing electrical connection detection on the copper skin of the copper pour area; if there are isolated copper islands that are not electrically connected to the preset target network, then the isolated copper islands are removed.
8. An electronic device, characterized in that: It includes a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the copper pouring method as described in any one of claims 1-7.
9. A computer storage medium, characterized in that: It stores computer program instructions, which, when executed, implement the copper pouring method as described in any one of claims 1-7.
10. A computer program product, comprising a computer program, characterized in that: When the computer program is executed by a processor, it implements the copper pouring method as described in any one of claims 1-7.
Citation Information
Patent Citations
PCB file checking method and device, and equipment
CN113723039A
Direct current resistance model extraction and storage method, computer device and storage medium
CN118821714A
Compensation assistance method and compensation assistance system for fetus-industiral accident of pregnant worker
KR1020240108793A
Inspection method and apparatus for component thermal pad design, and device and medium
WO2025092193A1