A method, apparatus, storage medium, and product of copper plating

By obtaining the design layout, locating the copper pour layer, selecting the copper pour area on the layer, and then selecting the copper pour area on the layer, the copper pour shape of the obtained copper pour area is processed.

CN120874740BActive Publication Date: 2025-12-05HUAXIN GIANTS (HANGZHOU) MICROELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511375331.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-25
Publication Date
2025-12-05
Estimated Expiration
2045-09-25

AI Technical Summary

Technical Problem

In the existing technology, there are technical problems such as uneven load distribution and unstable copper pouring efficiency in multi-threaded processing. In particular, when multi-threaded processing is used, complex polygonal regions and simple regions are divided into sub-regions of the same size. The problem that the existing technology has not solved is how to handle multi-threaded processing.

Method used

By obtaining the copper pour area, it is divided into multiple sub-regions based on a preset step size. The total number of vertices in each sub-region is calculated. If the total number of vertices is greater than a threshold, the sub-regions are recursively divided until the total number of vertices is less than or equal to the threshold. The copper pour shape of the calculation area is obtained by merging the copper pour shapes of all calculation areas and then copper pour processing is performed.

Benefits of technology

The copper pouring area is divided into multiple rectangular regions by obtaining the preset step size and vertical step size. The total number of vertices in each sub-region is calculated. If the total number of vertices is greater than or equal to the threshold, the copper pouring shape of the calculated region is determined and the pouring process is performed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120874740B_ABST
    Figure CN120874740B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of integrated circuit design, and particularly relates to a copper laying method, equipment, storage medium and product.The copper laying method comprises the following steps: obtaining a copper laying area, the copper laying area comprising a plurality of polygon objects; dividing the copper laying area into a plurality of sub-areas based on a preset step length; calculating the total number of vertices of the polygon objects in each sub-area, and if the total number of vertices is greater than a threshold value, recursively dividing the sub-area until the total number of vertices of the sub-area is less than or equal to the threshold value, to obtain a calculation area with a total number of vertices less than or equal to the threshold value; assigning each calculation area to a different calculation thread for parallel calculation, to obtain the copper laying shape of the calculation area; and merging the copper laying shapes of all the calculation areas to obtain the copper laying shape of the copper laying area and perform copper laying processing.Through recursive division, the calculation amount of the calculation area is balanced, and the problem of uneven load of calculation threads and low copper laying efficiency in existing copper laying calculation is solved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of integrated circuit design, and in particular to a copper pouring method, device, storage medium and product. BACKGROUND

[0002] Copper Pour is an operation of filling the blank area of a circuit board with copper, mainly used to reduce ground impedance, enhance anti-interference ability, improve heat dissipation and improve current carrying capacity. The existing scheme adopts a fixed width cutting strategy, that is, the copper pouring area of the target layer is grid cut according to a fixed width to generate a regular rectangular sub-area, and a polygon difference operation is performed on each sub-area, and finally the complete copper skin shape information is spliced. The difference in polygon complexity in the region is not considered, resulting in the following technical problems:

[0003] Uneven multi-thread load: complex polygon regions and simple regions are divided into sub-regions of the same size, and the time consumption difference is significant. When multi-thread processing, the threads of complex regions become performance bottlenecks, and the threads of simple regions complete early, resulting in idle resources, and the overall speedup ratio is limited.

[0004] Unstable copper pouring efficiency: when there are high-density complex polygons in the design, fixed cutting cannot dynamically adapt the calculation amount, resulting in non-linear growth of copper pouring time with complexity, especially in multi-core parallel scenarios, the efficiency improvement is not obvious. SUMMARY

[0005] To solve the technical problems of uneven calculation thread load and low copper pouring efficiency of the existing copper pouring calculation, the present application provides a copper pouring method, device, storage medium and product.

[0006] The technical problem solving scheme of the present application is to provide a copper pouring method, comprising: obtaining a copper pouring area, the copper pouring area comprising a plurality of polygon objects; dividing the copper pouring area into a plurality of sub-areas based on a preset step length; calculating the total number of vertices of the polygon objects in each sub-area, if the total number of vertices is greater than a threshold, recursively dividing the sub-area until the total number of vertices of the sub-area is less than or equal to the threshold, to obtain a calculation area with a total number of vertices less than or equal to the threshold; assigning each calculation area to different calculation threads for parallel calculation to obtain the copper pouring shape of the calculation area; merging the copper pouring shapes of all calculation areas to obtain the copper pouring shape of the copper pouring area and performing copper pouring processing.

[0007] Preferably, the copper pouring area is obtained, comprising: obtaining a design layout; obtaining a copper pouring layer based on the design layout; and framing the copper pouring area on the copper pouring layer.

[0008] Preferably, the preset step length comprises a horizontal step length and a vertical step length, and the copper cladding area is divided into a plurality of rectangular sub-areas based on the horizontal step length and the vertical step length.

[0009] Preferably, the total number of vertices of each sub-area is calculated by: obtaining polygon objects intersecting with the sub-area; and traversing all vertices of the polygon objects to count the total number of vertices intersecting with the sub-area.

[0010] Preferably, the sub-area is recursively divided by: if the size of the current sub-area is smaller than a preset minimum area size, the recursive division of the sub-area is terminated.

[0011] Preferably, each calculation area is assigned to a different calculation thread for parallel calculation to obtain the copper cladding shape of the calculation area, by: obtaining polygon objects intersecting with the calculation area; and subtracting the polygon objects intersecting with the calculation area from the calculation area to obtain the copper cladding shape of the calculation area.

[0012] Preferably, after the copper cladding shapes of all the calculation areas are merged to obtain the copper cladding shape of the copper cladding area and the copper cladding processing is performed, the copper skin of the copper cladding area is subjected to electrical connection detection, and if there is an island copper without electrical connection to a preset target network, the island copper is removed.

[0013] To solve the above technical problems, the present application provides another technical solution as follows: an electronic device comprising a memory, a processor and a computer program stored in the memory, wherein the processor executes the computer program to implement the copper cladding method according to any one of the above.

[0014] To solve the above technical problems, the present application provides another technical solution as follows: a computer storage medium, characterized in that computer program instructions are stored thereon, and the computer program instructions are executed to implement the copper cladding method according to any one of the above.

[0015] To solve the above technical problems, the present application provides another technical solution as follows: a computer program product comprising a computer program, characterized in that the computer program is executed by a processor to implement the copper cladding method according to any one of the above.

[0016] Compared with the prior art, the copper cladding method, device, storage medium and product provided by the present application have the following advantages:

[0017] 1. The copper laying method provided by the embodiment of the present application first divides the copper laying area into multiple sub-areas based on a preset step length, ensures that the basic granularity of calculation is controllable, and then recursively divides the sub-areas based on the total number of vertices to control the total number of vertices of each sub-area, thereby dynamically adjusting the size of the sub-area, decomposing the complex copper laying area into multiple calculation areas with approximately the same total number of vertices, ensuring that the processing time of each calculation area is similar, and distributing all the calculation areas 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, the idle waiting of threads is avoided during parallel calculation, and the calculation efficiency is greatly improved. Finally, the calculation results of each calculation area are merged to ensure the integrity and accuracy of the overall copper laying shape, thereby efficiently completing the copper laying.

[0018] 2. The copper laying method provided by the embodiment of the present application first acquires a design layout, then locates the copper laying layer, and finally frames the copper laying area on the layer, thereby clearly defining the application scenario and operation starting point of the copper laying. Through interactive operation with the user, the user is given the ability to flexibly define the processing range, so that the copper laying operation can accurately focus on the specific level and range required by the design, rather than being forced to process the entire design layout. This avoids invalid copper laying in non-target layers or non-target areas, reduces unnecessary calculation and resource consumption, improves the pertinence and accuracy of the copper laying, and ensures that the copper laying work is highly matched with the actual demand of the design layout.

[0019] 3. The copper laying method provided by the embodiment of the present application combines horizontal and vertical step lengths to simply and efficiently divide the copper laying area into multiple rectangular sub-areas, so that the shape of the sub-area is regular and uniform. The user can adjust the parameters of the two step lengths to control the basic granularity of calculation, providing a stable and controllable starting point for subsequent recursive division. The rectangular structure facilitates boundary definition and geometric calculation, simplifying the division logic of the sub-area and the subsequent recursive division operation. At the same time, the regular rectangular sub-area is easier to implement uniform distribution of calculation tasks, laying a good foundation for subsequent parallel calculation and improving the efficiency of overall division and processing.

[0020] 4. The copper laying method provided by the embodiment of the present application acquires polygon objects that intersect with the sub-area, and then iterates through the vertices to count the total number of intersecting vertices. The total number of intersecting vertices between the polygon and the sub-area accurately quantifies the calculation complexity of the sub-area, providing a clear basis for recursive division. Only the complex sub-area with a total number of vertices exceeding a threshold is further divided, which can avoid excessive processing of simple sub-areas and ultimately achieve balanced calculation load of each sub-area, ensuring that the task amount of each thread is relatively balanced during subsequent parallel calculation, avoiding the situation of idle waiting of threads, and improving the overall calculation efficiency.

[0021] 5、The copper laying method provided by the embodiment of the present application sets a termination mechanism for the recursive process by introducing a preset minimum region size, and terminates the recursive division operation when the size of a sub-region is smaller than the preset minimum region size, effectively preventing the algorithm from falling into infinite recursion or generating invalid small regions in an extremely complex region, avoiding the generation of a large number of small regions due to excessive division, increasing the additional overhead of calculation and merging, and ensuring the robustness and practicality of the algorithm; meanwhile, the setting of the preset minimum region size can control the minimum size of the sub-region, reduce unnecessary consumption of computing resources on the premise of ensuring the calculation accuracy, and balance the calculation efficiency and processing cost.

[0022] 6、The copper laying method provided by the embodiment of the present application obtains the copper laying shape of the calculation region by polygon difference operation, that is, subtracting the polygon object intersecting the calculation region, thereby focusing on the local details in the calculation region and accurately processing the geometric relationship in each calculation region to ensure the accuracy of the copper laying shape of each calculation region; meanwhile, the parallel calculation mode enables the processing of multiple calculation regions to be performed synchronously, significantly shortens the overall calculation time, and greatly improves the efficiency while ensuring the copper laying accuracy.

[0023] 7、The copper laying method provided by the embodiment of the present application performs electrical connection detection on the copper skin after the copper laying processing, and removes the isolated copper that is not connected to the preset target network, thereby eliminating unnecessary parasitic effects or electromagnetic interference introduced by the isolated copper, ensuring the effective connectivity of the final copper skin and the target network, improving the reliability and stability of the circuit design, and reducing potential problems in subsequent circuit debugging.

[0024] 8、The embodiment of the present application further provides an electronic device including a memory, a processor and a computer program stored on the memory, wherein the processor executes the computer program to implement the copper laying method according to any one of the above. It has the same beneficial effects as the copper laying method according to any one of the above, which will not be repeated here.

[0025] 9、The embodiment of the present application further provides a computer storage medium having computer program instructions stored thereon, wherein the computer program instructions are executed to implement the copper laying method according to any one of the above. It has the same beneficial effects as the copper laying method according to any one of the above, which will not be repeated here.

[0026] 10、The embodiment of the present application further provides a computer program product including a computer program, wherein the computer program is executed by a processor to implement the copper laying method according to any one of the above. It has the same beneficial effects as the copper laying method according to any one of the above, which will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS

[0027] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or prior art description will be briefly introduced as follows. Obviously, the drawings in the following description only represent some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained from these drawings without any creative effort.

[0028] Figure 1 is a step flow chart of a copper laying method provided by the embodiment of the present application.

[0029] Figure 2 is a step flow chart of obtaining a copper laying area in a copper laying method provided by the embodiment of the present application.

[0030] Figure 3 is a step flow chart of calculating a total number of sub-area vertices in a copper laying method provided by the embodiment of the present application.

[0031] Figure 4 is a step flow chart of calculating a copper laying shape in a copper laying method provided by the embodiment of the present application.

[0032] Figure 5 is a structural schematic diagram of an electronic device provided by the embodiment of the present application.

[0033] Figure 6 is a structural schematic diagram of a computer storage medium provided by the embodiment of the present application.

[0034] Figure 7 is a structural schematic diagram of a computer program product provided by the embodiment of the present application.

[0035] The drawing identification description is as follows:

[0036] 1, electronic device; 11, memory; 12, processor; 2, computer storage medium; 3, computer program product. DETAILED DESCRIPTION

[0037] In order to make the purpose, technical solutions and advantages of the present application more clear, the present application will be further described in detail in combination with the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application, and are not used to limit the present application.

[0038] In the embodiments provided by the present application, it should be understood that "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that the determination of B according to A does not mean that B is determined only according to A, but B can also be determined according to A and / or other information.

[0039] It should be understood that every feature, structure, or characteristic described in relation to an embodiment is within the scope of the present application, and can be combined with any other feature, structure, or characteristic described in relation to an embodiment, in any suitable manner. It should also be understood that the embodiments described in the specification are merely exemplary and that many variations are possible without departing from the scope of the application as defined in the appended claims.

[0040] In various embodiments of the present application, it should be understood that the magnitude of the serial number of the above processes does not mean the inevitable sequence of execution, and the execution sequence of the processes should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0041] The flow diagrams and block diagrams in the drawings are illustrations of the possible architectures, functions, and operations of systems, methods, and computer program products in accordance with various embodiments of the present application. In this regard, each block in the flow diagrams or block diagrams can represent a module, a segment, or a portion of code, which comprises one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or in the reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and / or flow diagrams, and combinations of blocks in the block diagrams and / or flow diagrams, can be implemented by dedicated hardware-based systems that perform the specified functions or operations, or combinations of hardware and software.

[0042] It should be noted that granularity is a tool for describing fuzzy uncertain objects, and granularity is to take objects of different sizes. For example, a large original "coarse-grained" object is divided into several "fine-grained" small objects, or several small objects are combined into a large coarse-grained object.

[0043] Referring to Figure 1 The embodiment of the present application provides a copper laying method, comprising:

[0044] Step S1: obtaining a copper laying area, the copper laying area comprising a plurality of polygon objects;

[0045] Step S2: dividing the copper laying area into a plurality of sub-areas based on a preset step length;

[0046] Step S3: calculating the total number of vertices of the polygon object in each sub-region, if the total number of vertices is greater than a threshold, recursively dividing the sub-region until the total number of vertices of the sub-region is less than or equal to the threshold, to obtain a calculation region with a total number of vertices less than or equal to the threshold;

[0047] Step S4: assigning each calculation region to different calculation threads for parallel calculation to obtain a copper distribution shape of the calculation region;

[0048] Step S5: merging the copper distribution shapes of all calculation regions to obtain a copper distribution shape of the copper distribution region and performing copper distribution processing.

[0049] It should be noted that the copper distribution method of the present application is used for copper distribution operation in chip design or PCB board design.

[0050] In some embodiments, the copper distribution method provided by the present application can simultaneously calculate and perform copper distribution processing on multiple copper distribution regions.

[0051] Optionally, a chip or a PCB board usually has multiple levels, such as a signal layer, a metal layer, a shielding layer, a top layer, a bottom layer, etc., and the above-mentioned copper distribution method can be simultaneously or time-division executed on multiple copper distribution regions of the same level, such as simultaneously performing copper distribution on multiple copper distribution regions located on the top layer; or the above-mentioned copper distribution method can be simultaneously or time-division executed on multiple copper distribution regions of different levels, such as simultaneously performing copper distribution on copper distribution regions of the top layer and the bottom layer.

[0052] It should be noted that the copper skin usually needs to be connected to a specific network, such as a ground network, a +3.3V power supply network, a +5V power supply network, etc., so the connection network of the copper distribution region needs to be determined when the copper distribution region is obtained, to determine the electrical connection property of the copper skin and avoid the copper skin being connected to a non-target network, resulting in a short circuit risk.

[0053] It should be noted that the number of vertices in a sub-region directly determines the technical complexity of the difference operation, the more vertices, the more frequent the mathematical operations of polygon intersection, clipping and merging, and the longer the time consumption, so the total number of vertices is used to divide the sub-region, providing a strong correlation with the calculation complexity and a quantifiable standard for sub-region division, so that the algorithm can quickly and accurately perform the division operation.

[0054] The embodiment of the present application provides a copper plating method, first, a copper plating area is divided into a plurality of sub-areas based on a preset step length, so that the basic granularity of calculation is controllable, then the sub-areas are recursively divided based on the total number of vertices to control the total number of vertices of each sub-area, so that the size of the sub-area is dynamically adjusted, the complex copper plating area is divided into a plurality of calculation areas with the same total number of vertices, the processing time of each calculation area is ensured to be similar, all the calculation areas 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, the idle waiting of the thread is avoided during parallel calculation, and the calculation efficiency is greatly improved; finally, the calculation results of the calculation areas are merged, the integrity and accuracy of the overall copper plating shape are ensured, and the copper plating can be efficiently completed.

[0055] Further, refer to Figure 2 , the copper plating area is obtained, including:

[0056] Step S11: obtaining a design layout;

[0057] Step S12: obtaining a copper plating layer based on the design layout;

[0058] Step S13: framing the copper plating area on the copper plating layer.

[0059] It should be noted that the design layout in step S1 can be in the format of GDSII (Graphic Data System II), OASIS (Open Artwork System Interchange Standard), LEF (Library Exchange Format), DEF (Design Exchange Format), etc., and the design layout contains layer structure, wiring, pad, via, circuit network connection information, etc.

[0060] In some embodiments, the hierarchical structure, coordinate system and physical information of each layer of the design layout are extracted by analyzing tools, and the target layer, i.e. the copper plating layer, is selected according to the design requirement, which can be identified and selected by layer name, layer attribute or other specific information. It should be noted that one or more copper plating layers can be selected according to actual needs.

[0061] Optionally, after obtaining the copper plating layer, the user can draw a polygon copper plating area on a specific copper plating layer by mouse interaction; or the algorithm can automatically generate a polygon copper plating area on a specific copper plating layer based on design rules.

[0062] It should be understood that the copper plating area can be a rectangle, a triangle, a regular or irregular polygon, etc.

[0063] As a feasible implementation, when multiple copper paving areas are framed on the design layout, the multiple copper paving areas can be prioritized according to the importance of the copper paving areas, and the copper paving areas with high priorities are processed preferentially when the computing resources are limited, so that the core area is completed first, and the reliability of the core design function is ensured.

[0064] Optionally, according to actual application requirements, the multiple copper paving areas can also be prioritized according to the signal density and the position of the copper paving areas, which can be set according to actual requirements.

[0065] The copper paving method provided by the embodiment of the application defines the application scenario and operation starting point of copper paving by first acquiring a design layout, then positioning to a copper paving layer, and finally framing a copper paving area on the layer, and gives the user the ability to flexibly define the processing range through interactive operation with the user, so that the copper paving operation can be accurately focused on the specific level and range required by the design, rather than being forced to process the entire design layout, invalid copper paving in non-target layers or non-target areas is avoided, unnecessary calculation and resource consumption are reduced, the pertinence and accuracy of copper paving are improved, and the copper paving work is highly matched with the design layout and actual requirements.

[0066] Further, the preset step length includes a horizontal step length and a vertical step length, and the copper paving area is divided into multiple rectangular sub-areas based on the horizontal step length and the vertical step length.

[0067] It should be noted that the horizontal step length refers to the division step length in the X-axis direction, and the vertical step length refers to the division step length in the Y direction; according to actual application requirements, the lengths of the horizontal step length and the vertical step length can be equal or not equal.

[0068] In some embodiments, the copper paving method of the application sets multiple preset step lengths with different sizes to divide the copper paving area, a smaller step length is selected for a signal device dense area to improve the accuracy of initial division, and a larger preset step length is set for a spacious area to reduce the total number of sub-areas.

[0069] The copper paving method provided by the embodiment of the application combines the horizontal step length and the vertical step length to simply and efficiently divide the copper paving area into multiple rectangular sub-areas, so that the shapes of the sub-areas are regular and unified; the user can adjust the parameters of the two step lengths to control the basic granularity of calculation, and provide a stable and controllable starting point for subsequent recursive division; the rectangular structure facilitates boundary definition and geometric calculation, and can simplify the division logic of the sub-areas and the subsequent recursive division operation, at the same time, the regular rectangular sub-areas are more easily to realize uniform distribution of calculation tasks, lay a good foundation for subsequent parallel calculation, and improve the efficiency of overall division and processing.

[0070] Further, please refer toFigure 3 , calculate the total number of vertices of each sub-region, including:

[0071] Step S31: Obtain the polygon object intersecting with the sub-region;

[0072] Step S32: Traverse all vertices of the polygon object, and count the total number of vertices intersecting with the sub-region.

[0073] Specifically, the polygon object refers to an object that needs to be avoided during copper plating, including but not limited to a trace, a pad, a via, a device, or a copper skin area of other networks.

[0074] In some embodiments, for each sub-region, the algorithm traverses all polygon objects on the design layout, and determines whether the polygon object at least partially intersects with the current sub-region. If the polygon object intersects with the current sub-region, the polygon object is listed as a to-be-processed polygon object of the current sub-region.

[0075] Specifically, a large polygon object, such as a very long trace, can be listed as a to-be-processed polygon object of multiple adjacent sub-regions; and a vertex of the polygon object is only counted in the total number of vertices of the current sub-region when the vertex is located in the current sub-region, that is, a vertex is only attributed to one sub-region.

[0076] In some embodiments, when a vertex of the polygon object is located on the boundary of the sub-region, the vertex is counted according to the judgment criterion of "left closed and right open, lower closed and upper open", that is, when the vertex is located on the left boundary or the lower boundary of the sub-region, the vertex is counted in the current sub-region; when the vertex is located on the right boundary or the upper boundary of the sub-region, the vertex is not counted in the current sub-region.

[0077] Understandably, the copper plating method provided by the embodiments of the present application obtains the polygon object intersecting with the sub-region, and then traverses the vertices to count the total number of intersecting vertices, accurately quantifies the calculation complexity of the sub-region through the total number of intersecting vertices of the polygon and the sub-region, provides a clear basis for recursive division, further divides only the complex sub-region whose total number of vertices exceeds the threshold, avoids over-processing of simple sub-regions, and finally realizes the load balancing of each sub-region, ensures the relatively balanced task amount of each thread during subsequent parallel calculation, avoids the situation of idle waiting of threads, and improves the overall calculation efficiency.

[0078] Further, the recursive division of the sub-region includes: if the size of the current sub-region is smaller than a preset minimum region size, the recursive division of the sub-region is terminated.

[0079] In some embodiments, the preset minimum region size is determined according to a process node and design rules, such as a pad size, a minimum line width or a spacing, etc., to avoid dividing a small region that does not meet the design rules and cannot be manufactured or calculated.

[0080] Specifically, the preset minimum region size can be adjusted according to the wiring density of the sub-region or the criticality of the sub-region, such as setting a larger minimum region size for the edge region and a smaller minimum region size for the core region, to balance the design rules and the calculation efficiency.

[0081] It should be noted that the copper paving method provided in the present application sets the preset minimum region size and the preset threshold of the total number of sub-region vertices as the termination condition of the recursive division of the sub-region, and terminates the recursive division of the sub-region when the size of the sub-region is smaller than the preset minimum size or the total number of vertices of the sub-region is smaller than the preset threshold, to avoid infinite recursion in extreme cases.

[0082] As a feasible implementation, the copper paving method is provided with an upper limit of the number of recursions, and the recursive division of the sub-region is terminated when the number of recursions reaches the upper limit.

[0083] The copper paving method provided in the embodiments of the present application sets the termination mechanism for the recursive process by introducing the preset minimum region size, and terminates the recursive division operation when the size of the sub-region is smaller than the preset minimum region size, to effectively prevent the algorithm from falling into infinite recursion or generating invalid small regions in extremely complex regions, avoid generating a large number of small regions due to excessive division, increase the additional overhead of calculation and merging, and ensure the robustness and practicability of the algorithm. Meanwhile, the preset minimum region size can control the minimum size of the sub-region, reduce unnecessary consumption of calculation resources on the premise of ensuring the calculation accuracy, and balance the calculation efficiency and processing cost.

[0084] Further, the sub-region is divided recursively, specifically, the sub-region is divided according to a preset ratio.

[0085] It should be noted that dividing the sub-region according to the preset ratio can make each division follow a fixed rule, ensure the consistency and predictability of the size and shape of the sub-region, and the division operation is simple to implement, can quickly reduce the complexity of a single sub-region, facilitate the estimation and management of the complexity of the sub-region, and is conducive to uniformly distributing the calculation tasks to different threads in the subsequent process, to avoid the situation that some threads are overloaded and some threads are idle, and to improve the overall efficiency of parallel calculation.

[0086] Optionally, the sub-region can be bisected, trisected, quadrisected, etc.

[0087] Specifically, the sub-region can be divided along the X-axis direction, or divided along the Y-axis direction, or divided along both the X-axis direction and the Y-axis direction.

[0088] In some embodiments, the preset ratio can be 1:1, 1:2, 1:3, etc. For example, if the long and narrow sub-region is divided by a ratio of 1:2, the generated sub-region can be avoided to be too thin, and the shape of the divided sub-region can be more regular.

[0089] Further, referring to Figure 4 Each calculation region is assigned to different calculation threads for parallel calculation, and the copper laying shape of the calculation region is obtained, including:

[0090] Step S41: obtaining a polygon object intersecting with the calculation region;

[0091] Step S42: subtracting the polygon object intersecting with the calculation region from the calculation region to obtain the copper laying shape of the calculation region.

[0092] It should be noted that for each calculation region, the overlapping part of the polygon intersecting with the region is extracted first, and the region that needs to be avoided is determined, and then the polygon Boolean difference operation is performed, that is, the calculation region is subtracted from the polygon object intersecting with the calculation region, so as to obtain the effective region of the fillable copper skin.

[0093] Specifically, the calculation tasks are managed by a thread pool, each thread independently processes a calculation region, and the overall copper laying region processing speed is accelerated by multi-thread parallel operation.

[0094] The copper laying method provided by the embodiment focuses on the local details in the calculation region, can accurately process the geometric relationship in each calculation region, and ensures that the copper laying shape of each calculation region is accurate and correct. At the same time, the parallel calculation mode enables the processing of multiple calculation regions to be performed synchronously, significantly shortens the overall calculation time, and greatly improves the efficiency while ensuring the copper laying accuracy.

[0095] Further, after merging the copper laying shapes of all calculation regions to obtain the copper laying shape of the copper laying region and performing copper laying processing, the method further includes: performing electrical connection detection on the copper skin of the copper laying region, and if there is an island copper that has no electrical connection with the preset target network, removing the island copper.

[0096] It should be noted that the island copper refers to the copper skin that has no electrical connection with the target network, and the "island copper removal" refers to deleting the island copper skin.

[0097] In some embodiments, a breadth-first search or depth-first search algorithm is used to take the connection point of the preset target network as a starting point, traverse all the copper skins, and judge whether there is an island copper that is not connected to the target network.

[0098] In some other embodiments, the user can set an island copper area threshold, and only remove the island copper with an area less than the threshold, while keeping the island copper with a large area as a heat sink or shield.

[0099] As an implementation, after the copper plating process is performed on the copper plating area, the user can select one or more copper plating areas for copper skin update, i.e., delete the copper skin in the area and then re-input the desired copper plating parameters for computer copper plating processing.

[0100] The copper plating method provided in the embodiments of the present application performs electrical connection detection on the copper skin after the copper plating process, and removes the island copper not connected to the preset target network, thereby eliminating unnecessary parasitic effects or electromagnetic interference introduced by the island copper, ensuring effective connection of the final copper skin to the target network, improving the reliability and stability of the circuit design, and reducing potential problems in subsequent circuit debugging.

[0101] Referring to Figure 5 The embodiments of the present application also provide an electronic device 1, which includes a memory 11, a processor 12, and a computer program stored in the memory 11, and the processor 12 executes the computer program to implement the copper plating method according to any one of the above.

[0102] Specifically, the electronic device 1 can be a smart phone, a tablet computer, a computer, or a portable computer, etc.

[0103] It should be noted that the processor 12 can include one or more cores for processing data and a message matrix unit. The processor 12 connects various parts in the entire electronic device 1 through various interfaces and lines, executes instructions, programs, code sets or instruction sets stored in the memory 11, and calls data stored in the memory 11 to perform various functions and process data of the electronic device 1.

[0104] Optionally, the processor 12 can be implemented in at least one of the hardware forms of digital signal processing, field programmable gate array, and editable logic array. The processor 12 can be integrated with one or a combination of a central processing unit, an image processor, and a modem, etc. The modem can also not be integrated into the processor 12, but implemented separately through a communication chip.

[0105] It can be understood that the electronic device 1 implements the copper plating method by executing the corresponding computer program through the processor 12, converts the method into an actual operable function of the electronic device 1, facilitates application in actual integrated circuit design work, improves the work efficiency of designers, and promotes the automation and intelligentization of the integrated circuit design process. The electronic device 1 of the present embodiment also has the same beneficial effects as the copper plating method according to any one of the above, and will not be described here again.

[0106] Please refer to Figure 6 The embodiment of the present application also provides a computer storage medium 2, which stores computer program instructions, and the computer program instructions are executed to realize the copper laying method of any one of the above.

[0107] It can be understood that the computer storage medium 2 stores related computer program instructions, so that the copper laying method can be conveniently stored, transmitted and executed, which provides convenience for the popularization of the copper laying method, reduces the use threshold and maintains the algorithm consistency, helps more integrated circuit design scenarios to adopt the copper laying method to improve the design quality, and the computer storage medium 2 of the embodiment also has the same beneficial effects as the above copper laying method, which will not be repeated here.

[0108] Please refer to Figure 7 The embodiment of the present application also provides a computer program product 3, which comprises a computer program, and the computer program is characterized by: the computer program is executed by a processor to realize the copper laying method of any one of the above.

[0109] It can be understood that the computer program product 3 provided by the embodiment comprises computer instructions, and the computer instructions 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 the processor 12 executes the computer instructions, so that the electronic device 1 executes the copper laying method described in the various optional implementation manners.

[0110] It is appreciated that the processes described above with reference to the flowcharts can be implemented as computer software programs according to the embodiments disclosed in the present disclosure. For example, the embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer readable medium, the computer program comprising program code for executing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network by a communication section, and / or installed from a detachable medium. When the computer program is executed by a central processing unit (CPU), the above-described functions defined in the methods of the present application are executed. It is noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. The computer readable storage medium includes, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any combination of the above. More specific examples of the computer readable storage medium can include, but are not limited to, an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer readable storage medium can be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device. In the present disclosure, the computer readable signal medium can include a data signal carried in a baseband or as part of a carrier wave, in which the computer readable program code is carried. Such a propagated data signal can take any of a variety of forms, including but not limited to electro-magnetic, optical, or any suitable combination thereof. The computer readable signal medium can also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code contained on a computer readable medium can be transmitted by any suitable medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the above.

[0111] Computer program code for carrying out operations of the present application can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).

[0112] The above detailed description of the copper laying method, device, storage medium and product disclosed in the embodiments of the present application is introduced, the principle and implementation mode of the present application are described by applying specific examples in this paper, and the above embodiment is only used to help understand the method of the present application and its core idea. Meanwhile, for the general skilled in the art, according to the idea of the present application, the specific implementation mode and application range will be changed, and the above description should not be understood as the limitation of the present application. Any modification, equivalent replacement and improvement within the principle of the present application should be included in the protection scope of the present application.

Claims

1. A method of copper plating, characterized by, The method comprises the following steps: obtaining a copper-clad area, the copper-clad area comprising a plurality of polygon objects; dividing the copper-clad area into a plurality of sub-areas based on a preset step length; calculating the total number of vertices of the polygon objects in each sub-area, and recursively dividing the sub-area if the total number of vertices is greater than a threshold value until the total number of vertices of the sub-area is less than or equal to the threshold value to obtain a calculation area with a total number of vertices less than or equal to the threshold value; allocating each calculation area to a different calculation thread for parallel calculation to obtain a copper-clad shape of the calculation area; merging the copper-clad shapes of all the calculation areas to obtain a copper-clad shape of the copper-clad area and performing copper-clad processing.

2. The method of claim 1, wherein, The method comprises the following steps: obtaining a design layout; obtaining a copper-clad layer based on the design layout; framing a copper-clad area on the copper-clad layer.

3. The method of claim 1 wherein: The preset step length comprises a horizontal step length and a vertical step length, and the copper-clad area is divided into a plurality of rectangular sub-areas based on the horizontal step length and the vertical step length.

4. The method of claim 1, wherein, The method comprises the following steps: obtaining polygon objects intersecting the sub-area; traversing all vertices of the polygon objects to count the total number of vertices intersecting the sub-area.

5. The method of claim 1 wherein, The method comprises the following steps:

6. The method of claim 1 wherein, if the size of the current sub-area is less than a preset minimum area size, terminating the recursive division of the sub-area. The method comprises the following steps: obtaining polygon objects intersecting the calculation area; 7. The method of claim 1 wherein, subtracting the polygon objects intersecting the calculation area from the calculation area to obtain a copper-clad shape of the calculation area.

8. An electronic device, comprising: After merging the copper-clad shapes of all the calculation areas to obtain a copper-clad shape of the copper-clad area and performing copper-clad processing, the method comprises the following steps:

9. A computer storage medium, characterized in that: detecting electrical connection of copper skins of the copper-clad area, and removing isolated copper if there is isolated copper without electrical connection to a preset target network.

10. A computer program product comprising a computer program, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the copper-clad method according to any one of claims 1-7. The computer program is stored on a computer readable medium, and when executed by a processor, the computer program implements the copper-clad method according to any one of claims 1-7. The computer program, when executed by a processor, implements the copper-clad method according to 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