Macro-cell winding method and device, electronic equipment and computer readable storage medium
By determining the target macrocell and port in the semiconductor process, obtaining winding parameters, selecting appropriate metal layers and data for pre-winding, and using EDA tools to complete winding and checking, the DRC violation problem during the macrocell winding process is solved, and the success and high efficiency of winding are achieved.
Patent Information
- Application Number
- CN202510732534.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-03
- Publication Date
- 2025-08-29
AI Technical Summary
In semiconductor processes, as nodes shrink, conventional winding tools find it difficult to deal with the overlap or crossover of port positions during macrocell winding, resulting in DRC violations and affecting the winding success rate.
By determining the target macrocell and its port, obtaining winding parameters, selecting appropriate winding metal layers and data, performing pre-winding operations, ensuring that the winding is successful in the case of irregular port shape and arrangement, using the EDA tool to complete winding and performing DRC inspection to correct violations.
It effectively solves the DRC violation problem during macro unit winding, ensures successful winding, avoids port position problems caused by conventional tools, and improves the success rate and quality of winding.
Smart Images

Figure CN120562376A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of semiconductor technology, and in particular to a macro unit winding method, and also to a macro unit winding device, an electronic device, and a computer-readable storage medium. Background Art
[0002] Currently, semiconductor processes have developed to 3nm or even smaller nodes. As process nodes shrink, the minimum spacing of metal wiring is also shrinking, but chip wiring will face various problems and challenges. Conventional technology usually uses related wiring tools to achieve chip wiring. However, for macro cells in the chip, the metal layer and shape of the macro cell port vary depending on the process or supplier. Generally, in order to reduce the wiring density of a single metal layer and facilitate the wiring arrangement of the wiring tool, the ports of the macro cell will be on different metal layers. As the logical capacity of the macro cell increases, in order to control the physical size, the port positions overlap or cross, and the shape and arrangement of the ports change, which indirectly leads to the inability of the wiring tool to perform better wiring, and it is easy to cause DRC (Design Rule Check) violations at the port position.
[0003] Therefore, how to effectively solve the DRC violation problem in the macro cell routing process and ensure the successful implementation of the macro cell routing is an urgent problem to be solved by those skilled in the art. Summary of the Invention
[0004] The purpose of this application is to provide a macro cell winding method, which can effectively solve the DRC violation problem in the macro cell winding process and ensure the successful implementation of the macro cell winding; another purpose of this application is to provide a macro cell winding device, electronic equipment, computer-readable storage medium and computer program product, all of which have the above-mentioned beneficial effects.
[0005] In a first aspect, the present application provides a macro unit wiring method, comprising:
[0006] Determining a target macro unit and each target port in the target macro unit;
[0007] Acquire winding parameters of each target port, where the winding parameters include port parameters of the target port and metal layer parameters of a target metal layer to which the target port belongs;
[0008] Determine a target winding metal layer of the target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters;
[0009] Winding the target port on the target winding metal layer according to the winding data to obtain a pre-winding of the target port;
[0010] The pre-routing of all the target ports is fully routed to implement macrocell routing.
[0011] Optionally, determining the target winding metal layer of the target port according to the metal layer parameters includes:
[0012] determining whether the target metal layer is a minimum metal layer according to the metal layer parameters;
[0013] If the target metal layer is the minimum metal layer, the metal layer above the minimum metal layer is used as the target winding metal layer of the target port;
[0014] If the target metal layer is not the minimum metal layer, the target metal layer is used as the target winding metal layer of the target port.
[0015] Optionally, the winding data includes pre-winding size and pre-winding position;
[0016] Accordingly, determining the winding data of the target port according to the port parameters and the metal layer parameters includes:
[0017] Determining a port position of the target port according to the port parameters;
[0018] Determining a pre-wrap size of the target port according to the metal layer parameters;
[0019] determining a relative position of the pre-wound wire of the target port and the target port;
[0020] The pre-winding position of the target port is determined according to the port position, the pre-winding size, and the relative position.
[0021] Optionally, determining a pre-wrap size of the target port according to the metal layer parameters includes:
[0022] Determine the minimum winding width of the target winding metal layer according to the metal layer parameters, and use the minimum winding width as the pre-winding width;
[0023] Determine the distance between the target port and the nearest other unit according to the metal layer parameters, and determine the pre-winding length according to the distance;
[0024] The pre-winding size is determined according to the pre-winding width and the pre-winding length.
[0025] Optionally, performing complete routing on the pre-routing of all the target ports to implement macrocell routing includes:
[0026] Setting an anti-optimization attribute for the pre-routing of all the target ports;
[0027] An electronic design automation tool is used to perform complete winding on each of the pre-wraps after the attribute setting, so as to realize macro unit winding.
[0028] Optionally, after the pre-routing of all the target ports is completely routed to realize macro unit routing, the method further includes:
[0029] Performing a routing design rule check on the target macrocell to determine whether the target macrocell has a routing violation;
[0030] When a routing violation exists in the target macrocell, the process returns to the step of determining the target routing metal layer of the target port according to the metal layer parameters, and determining the routing data of the target port according to the port parameters and the metal layer parameters, until no routing violation exists in the target macrocell.
[0031] Optionally, performing a routing design rule check on the target macrocell to determine whether the target macrocell has a routing violation includes:
[0032] Performing a routing design rule check on the target macrocell to determine whether a routing short circuit exists in the target macrocell, and determining that a routing violation exists in the target macrocell when a routing short circuit exists in the target macrocell;
[0033] and / or,
[0034] A routing design rule check is performed on the target macrocell to determine whether a routing pitch violation exists in the target macrocell, and when the routing pitch violation exists in the target macrocell, it is determined that a routing violation exists in the target macrocell.
[0035] In a second aspect, the present application further discloses a macro unit winding device, comprising:
[0036] A determination module, configured to determine a target macro unit and each target port in the target macro unit;
[0037] an acquisition module, configured to acquire winding parameters of each of the target ports, wherein the winding parameters include port parameters of the target port and metal layer parameters of a target metal layer to which the target port belongs;
[0038] a calculation module, configured to determine a target winding metal layer of the target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters;
[0039] a pre-winding module, configured to perform winding on the target port on the target winding metal layer according to the winding data to obtain a pre-winding for the target port;
[0040] The complete winding module is used to perform complete winding on the pre-winding of all the target ports to obtain the actual winding of the target macro unit.
[0041] In a third aspect, the present application further discloses an electronic device, comprising:
[0042] memory for storing computer programs;
[0043] A processor is configured to implement the steps of any one of the macrocell routing methods described above when executing the computer program.
[0044] In a fourth aspect, the present application further discloses a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps of any one of the macrocell routing methods described above are implemented.
[0045] In a fifth aspect, the present invention further discloses a computer program product, comprising a computer program / instruction, which implements the steps of any one of the macrocell routing methods described above when executed by a processor.
[0046] The present application provides a macro unit winding method, including: determining a target macro unit and each target port in the target macro unit; obtaining winding parameters of each target port, wherein the winding parameters include port parameters of the target port and metal layer parameters of the target metal layer to which the target port belongs; determining a target winding metal layer of the target port according to the metal layer parameters, and determining winding data of the target port according to the port parameters and the metal layer parameters; winding the target port in the target winding metal layer according to the winding data to obtain a pre-winding of the target port; and completely winding the pre-windings of all the target ports to realize macro unit winding.
[0047] By applying the technical solution provided in this application, for a target macrocell that needs to be wired, each target port is first determined, and each target port is pre-wired according to the wiring parameters of each target port, and then all pre-wires are fully wired, thereby realizing the macrocell winding operation. In other words, during the macrocell winding process, each port is first pre-wired to pre-fix the winding of the macrocell port, and then the entire macrocell is fully wired. This can avoid DRC violation problems caused by directly using conventional wiring tools for macrocell winding when the shape and arrangement of the macrocell ports are irregular, further ensuring the successful implementation of macrocell winding.
[0048] In one embodiment of the present application, after completing the macro cell routing, the target macro cell can also be subjected to a routing design rule check, i.e., a DRC violation check. The target macro cell with a DRC violation can be re-routed to ensure that the target macro cell that has finally completed the routing no longer has a DRC violation problem, further ensuring the successful implementation of the macro cell routing.
[0049] The macro unit winding device, electronic device, computer-readable storage medium and computer program product provided in this application also have the above-mentioned technical effects, and this application will not elaborate on them here. BRIEF DESCRIPTION OF THE DRAWINGS
[0050] In order to more clearly illustrate the technical solutions in the prior art and the embodiments of the present application, the following is a brief introduction to the drawings required for describing the prior art and the embodiments of the present application. Of course, the drawings described below in connection with the embodiments of the present application are only part of the embodiments of the present application. For those skilled in the art, other drawings can be obtained based on the provided drawings without inventive effort, and the obtained other drawings also fall within the scope of protection of the present application.
[0051] Figure 1 A schematic flow chart of a macro unit winding method provided in this application;
[0052] Figure 2 A schematic flow chart of another macro unit wiring method provided in this application;
[0053] Figure 3 A schematic diagram of the principle of a pre-wound wire provided in this application;
[0054] Figure 4 A schematic diagram of the complete winding principle provided by this application;
[0055] Figure 5 A schematic structural diagram of a macro unit winding device provided in this application;
[0056] Figure 6 This is a schematic diagram of the structure of an electronic device provided in this application. DETAILED DESCRIPTION
[0057] The core of this application is to provide a macro cell winding method, which can effectively solve the DRC violation problem in the macro cell winding process and ensure the successful implementation of the macro cell winding; another core of this application is to provide a macro cell winding device, electronic equipment, computer-readable storage medium and computer program product, all of which have the above-mentioned beneficial effects.
[0058] In order to describe the technical solutions in the embodiments of the present application more clearly and completely, the technical solutions in the embodiments of the present application will be introduced below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application.
[0059] An embodiment of the present application provides a macro unit wiring method.
[0060] Please refer to Figure 1 , Figure 1 This is a flow chart of a macro unit wiring method provided in the present application. The macro unit wiring method may include the following S101 to S105.
[0061] S101: Determine a target macro unit and each target port in the target macro unit.
[0062] This step is intended to determine the target macro cell and its target port. It is understandable that conventional wiring tools generally connect the signal ports of the macro cells in the chip to the circuit by wiring. Here, the target macro cell is the macro cell that needs to be connected to the circuit by wiring, and the target port is the macro cell signal port in the target macro cell that is connected to the circuit by wiring. Their number and deployment position in the metal layer are not unique. It should be pointed out that the macro cell generally refers to the RAM (Random Access Memory) unit or ROM (Read-Only Memory) unit in the chip. Of course, the chip may also contain other units besides macro cells, such as logic units.
[0063] S102: Acquire winding parameters of each target port, where the winding parameters include port parameters of the target port and metal layer parameters of the target metal layer to which the target port belongs.
[0064] This step aims to obtain the winding parameters of each target port. Specifically, for each target port in the target macro unit, its winding parameters may include port parameters and metal layer parameters. Among them, the port parameters may include but are not limited to the port name and port position of the target port; the metal layer parameters refer to the relevant parameter information of the target metal layer where the target port is located (the chip to which the target macro unit belongs generally includes multiple metal layers), which may include but are not limited to the metal layer level of the target metal layer, the metal layer winding direction, the minimum metal layer winding width, the minimum metal layer winding spacing, etc.
[0065] In one embodiment of the present application, obtaining the winding parameters of each target port may include executing a preset command in an electronic design automation tool to obtain the winding parameters of each target port. In other words, the winding parameters of the target ports may be automatically obtained using EDA (Electronics Design Automation) tool commands. For example, the EDA tool command "report_attribute $PIN" may be used to automatically capture the winding parameters of all target ports in a target macrocell.
[0066] S103: Determine a target winding metal layer of a target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters.
[0067] This step is intended to determine the target winding metal layer and winding data of the target port. Among them, the target winding metal layer is used to indicate the metal layer suitable for winding of the corresponding target port, which can be determined according to the metal layer parameters of the target port; the winding data is used to indicate the pre-winding information corresponding to the corresponding target port, such as pre-winding size, pre-winding position, pre-winding direction, etc. It should be pointed out that pre-winding here refers to pre-winding of each target port in the target macro unit. Generally speaking, the pre-winding position is close to the corresponding target port, the pre-winding size is small, and the pre-winding direction is perpendicular to the corresponding target port. Obviously, the essence of pre-winding is to preferentially fix the port winding part of the target macro unit.
[0068] In one embodiment of the present application, determining the target winding metal layer of the target port based on the metal layer parameters may include: determining whether the target metal layer is the minimum metal layer based on the metal layer parameters; if the target metal layer is the minimum metal layer, then using the upper metal layer of the minimum metal layer as the target winding metal layer of the target port; if the target metal layer is not the minimum metal layer, then using the target metal layer as the target winding metal layer of the target port.
[0069] The embodiment of the present application proposes a method for determining the target winding metal layer of a target port based on metal layer parameters. Specifically, in order to ensure the aesthetics of the chip winding and prevent the metal layer winding from being exposed on the chip's outer surface, for a target port deployed on the smallest metal layer, the metal layer above the smallest metal layer can be selected for winding, that is, the metal layer above the smallest metal layer is used as the target winding metal layer for this target port; for a target port deployed on other metal layers, the target port can be directly wound on the metal layer to which it belongs, that is, the target metal layer where the target port is located is directly used as its target winding metal layer.
[0070] In one embodiment of the present application, the winding data includes a pre-winding size and a pre-winding position; accordingly, determining the winding data of the target port based on the port parameters and the metal layer parameters may include: determining the port position of the target port based on the port parameters; determining the pre-winding size of the target port based on the metal layer parameters; determining the relative position of the pre-winding of the target port and the target port; determining the pre-winding position of the target port based on the port position, pre-winding size, and relative position.
[0071] The embodiment of the present application provides an implementation method for determining the winding data of the target port based on the port parameters and the metal layer parameters. Specifically, the winding data may include the pre-winding size and the pre-winding position, wherein the pre-winding size can be directly determined according to the metal layer parameters, while the pre-winding position needs to be determined in combination with the port position, the pre-winding size, and the relative position of the target port and the pre-winding. Among them, the port position of the target port can be directly obtained according to the port parameters, mainly referring to the position coordinates of the target port, such as the position coordinates of one or more vertices of the target port; the relative position of the pre-winding of the target port and the target port refers to the position deployment relationship between the target port and the pre-winding, such as the pre-winding and the target port are deployed perpendicular to each other, or tilted N degrees, etc. The specific implementation form can be customized by the technician.
[0072] Among them, determining the pre-winding size of the target port according to the metal layer parameters may include: determining the minimum winding width of the target winding metal layer according to the metal layer parameters, and using the minimum winding width as the pre-winding width; determining the spacing between the target port and the other nearest units according to the metal layer parameters, and determining the pre-winding length according to the spacing; determining the pre-winding size according to the pre-winding width and the pre-winding length.
[0073] The embodiment of the present application provides an implementation method for determining the pre-winding size of the target port based on the metal layer parameters. It should be pointed out that the pre-winding size should meet the size requirements of the corresponding metal layer for winding, including length and width, so as to avoid winding violation problems, i.e., DRC problems, as much as possible. Based on this, the minimum winding width of the target winding metal layer corresponding to the target port can be directly used as the pre-winding width, and the pre-winding length is set to be much smaller than the distance between the target port and the nearest other unit. Among them, the nearest other unit refers to the other unit in the chip that is closest to the target port of the target macro unit, such as a logic unit.
[0074] S104: Winding the target port on the target winding metal layer according to the winding data to obtain a pre-winding of the target port.
[0075] This step aims to achieve pre-routing of the target port. Specifically, for each target port in the target macro unit, after determining its corresponding target winding metal layer and winding data, the target port can be directly wound on the target winding metal layer according to the winding data to obtain its corresponding pre-routing.
[0076] S105: Perform complete routing on the pre-routing of all target ports to implement macrocell routing.
[0077] This step aims to achieve complete wiring of the target macro unit. Its essence is to complete the pre-wiring of each target port in the target macro unit, such as connecting it with other units outside the target macro unit, so as to achieve complete wiring of the target macro unit.
[0078] In one embodiment of the present application, the pre-winding of all target ports is fully wound to achieve macro unit winding, which may include: setting anti-optimization attributes for the pre-winding of all target ports; and using electronic design automation tools to fully wind each pre-winding after the attribute setting to achieve macro unit winding.
[0079] Specifically, the complete routing of the target macro unit can be achieved through EDA tools. However, before using the EDA tool to perform complete routing on the target macro unit, the anti-optimization attribute, that is, the "don't touch" attribute, can be set for each pre-routing in the target macro unit. This prevents the EDA tool from optimizing or deleting each pre-routing during the actual complete routing process, thereby maintaining the shape and position of each pre-routing.
[0080] It can be seen that the macrocell wiring method provided in the embodiment of the present application first determines each target port in the target macrocell that needs to be wound, and pre-wraps each target port according to the winding parameters of each target port, and then completes the winding of all pre-wraps, thereby realizing the macrocell winding operation. In other words, in the macrocell winding process, each port is first pre-wrapped to pre-fix the winding of the macrocell port, and then the entire macrocell is fully wound. This can avoid DRC violation problems caused by directly using conventional winding tools for macrocell winding when the shape and arrangement of the macrocell ports are irregular, further ensuring the successful implementation of macrocell winding.
[0081] Based on the above embodiments:
[0082] In one embodiment of the present application, after the pre-routing of all target ports is completely routed to realize the macro unit routing, it may also include: performing a routing design rule check on the target macro unit to determine whether there is a routing violation in the target macro unit; when there is a routing violation in the target macro unit, returning to the step of determining the target winding metal layer of the target port according to the metal layer parameters, and determining the routing data of the target port according to the port parameters and the metal layer parameters, until there is no routing violation in the target macro unit.
[0083] Specifically, after completing the macrocell routing, the target macrocell can also be subjected to a routing design rule check, i.e., a DRC violation check. Target macrocells with DRC violations can be re-routed to ensure that the target macrocells that have completed the routing no longer have DRC violation issues, further ensuring the successful implementation of the macrocell routing. When returning to S103 to re-route the routing, a technician can manually optimize the script strategy of S103 to optimize the routing data, such as optimizing the pre-winding size, pre-winding position, pre-winding direction, etc., to obtain an optimized pre-winding to avoid routing violation issues after the complete routing.
[0084] Among them, performing a winding design rule check on the target macro unit to determine whether the target macro unit has a winding violation may include: performing a winding design rule check on the target macro unit to determine whether the target macro unit has a winding short circuit, and determining that the target macro unit has a winding violation when the target macro unit has a winding short circuit; and / or performing a winding design rule check on the target macro unit to determine whether the target macro unit has a winding spacing violation, and determining that the target macro unit has a winding violation when the target macro unit has a winding spacing violation.
[0085] Specifically, macrocell routing violations in chips primarily include shorts and spacing violations. A short refers to a short circuit in the wiring at a macrocell port after it is connected to the circuit. A spacing violation refers to a spacing between wires that falls below the minimum standard, leading to signal crosstalk, electromigration, signal delays, and glitches. Therefore, when checking for routing violations in a target macrocell, these two aspects should be the primary focus.
[0086] Based on the above embodiments, an embodiment of the present application provides another macro unit wiring method.
[0087] Please refer to Figure 2 , Figure 2 This is a flow chart of another macro unit winding method provided in this application, and its implementation process is as follows:
[0088] 1. Write a script and use the EDA tool command "report_attribute $PIN" to capture the information (routing parameters) of all ports (PINs) in the target macro unit: port name, port coordinates, number of metal layers, metal layer winding direction, minimum metal layer winding width, minimum metal layer winding spacing, etc.
[0089] 2. Determine the names of all ports of the target macro unit {P1, P2, P3, ...} and the names of the connected wires {net1, net2, net3, ...}.
[0090] 3. Determine the coordinate information of all ports of the target macro unit {(llx1, lly1, urx1, ury1), (llx2, lly2, urx2, ury2), (llx3, lly3, urx3, ury3), ...}, where (llx1, lly1) represents the lower left corner coordinate of the first target port, (urx1, ury1) represents the upper right corner coordinate of the first target port, and the meaning of the remaining coordinates is similar, such as Figure 3 As shown, Figure 3 This is a schematic diagram of the principle of a pre-winding provided in this application.
[0091] 4. Determine the hierarchical names {M1, M2, M3, ...} of the metal layers where all ports of the target macro unit are located.
[0092] 5. Determine the metal layer routing directions {D1, D2, D3, ...} of the metal layers where all ports of the target macro unit are located.
[0093] 6. Determine the minimum routing width {W1, W2, W3, ...} and the minimum routing spacing {P1, P2, P3, ...} of the metal layer where all ports of the target macro unit are located.
[0094] 7. Set the width of the macro unit port pre-wrap to the minimum width of the metal layer winding corresponding to the current port {W1, W2, W3, ...}; set the length of the macro unit port pre-wrap to L. L can be set as a reference based on the spacing of the logic unit closest to the current port (L is much smaller than this spacing), or it can be adjusted according to the actual winding requirements of the project.
[0095] 8. Organize and summarize the data information determined in steps 2 to 7 above into the following array format:
[0096] set arrName(P1) {P1, net1, (llx1, lly1, urx1, ury1), M1, W1, P1, L1, D1};
[0097] set arrName(P2) {P2, net2, (llx2, lly2, urx2, ury2), M2, W2, P2, L2, D2};
[0098] set arrName(P3) {P3, net3, (llx3, lly3, urx3, ury3), M3, W3, P3, L, D1};
[0099] …
[0100] 9. According to the information obtained in step 8, loop through the values of each element P* of the array, and perform pre-winding according to the name of the port connection winding net*, port coordinates (llx*, lly*, urx*, ury*), metal layer P*, minimum winding width P*, pre-winding length L*, and winding direction D*. Write a script and use the EDA tool command "add_shape –width W* -status ROUTED –layer M* -net $net* -pathSeg {llx*, [expr lly*+[expr (ury* - lly*) / 2]], llx*+L*, lly*+W*}" to implement it. Among them, (llx*, [expr lly*+[expr (ury* - lly*) / 2]]) represents taking 1 / 2 of the current port shape as the lower left corner coordinate of the pre-winding, and (llx*+L*, lly*+W*) is the upper right corner coordinate of the pre-winding, so that the pre-winding result can be obtained as follows: Figure 3 shown.
[0101] 10. Based on the result of step 9, set the don't touch attribute for the pre-wound net so that the EDA tool cannot optimize or delete the pre-wound net during the actual winding process, and maintain the shape and position of the pre-wound. This allows the EDA tool to connect the actual winding and the pre-wound during the winding stage to complete the complete winding connection, such as Figure 4 As shown, Figure 4 This is a schematic diagram of the complete winding principle provided by this application.
[0102] 11. Perform a routing DRC check to determine whether there are still DRC routing short circuits or routing spacing violations in the macro unit port area. If there are problems, return to steps 9 and 10 and optimize the script strategy in step 9 until the routing short circuit or routing spacing violation problems are resolved.
[0103] It can be seen that the macrocell wiring method provided in the embodiment of the present application first determines each target port in the target macrocell that needs to be wound, and pre-wraps each target port according to the winding parameters of each target port, and then completes the winding of all pre-wraps, thereby realizing the macrocell winding operation. In other words, in the macrocell winding process, each port is first pre-wrapped to pre-fix the winding of the macrocell port, and then the entire macrocell is fully wound. This can avoid DRC violation problems caused by directly using conventional winding tools for macrocell winding when the shape and arrangement of the macrocell ports are irregular, further ensuring the successful implementation of macrocell winding.
[0104] An embodiment of the present application provides a macro unit winding device.
[0105] Please refer to Figure 5 , Figure 5 This is a schematic structural diagram of a macro unit winding device provided in this application. The macro unit winding device may include:
[0106] Determination module 1, used for determining the target macro unit and each target port in the target macro unit;
[0107] An acquisition module 2 is configured to acquire winding parameters of each target port, where the winding parameters include port parameters of the target port and metal layer parameters of a target metal layer to which the target port belongs;
[0108] Calculation module 3, used to determine the target winding metal layer of the target port according to the metal layer parameters, and determine the winding data of the target port according to the port parameters and the metal layer parameters;
[0109] The pre-winding module 4 is used to wind the target port on the target winding metal layer according to the winding data to obtain the pre-winding of the target port;
[0110] The complete winding module 5 is used to perform complete winding on the pre-winding of all target ports to obtain the actual winding of the target macro unit.
[0111] It can be seen that the macrocell winding device provided in the embodiment of the present application first determines each target port in the target macrocell that needs to be wound, and pre-wraps each target port according to the winding parameters of each target port, and then completes the winding of all pre-wraps, thereby realizing the macrocell winding operation. In other words, during the macrocell winding process, each port is first pre-wound to pre-fix the winding of the macrocell port, and then the entire macrocell is fully wound. This can avoid DRC violation problems caused by directly using conventional winding tools for macrocell winding when the shape and arrangement of the macrocell ports are irregular, further ensuring the successful implementation of macrocell winding.
[0112] In one embodiment of the present application, the calculation module 3 may include:
[0113] a judgment unit, configured to determine whether the target metal layer is a minimum metal layer according to the metal layer parameters;
[0114] The first setting unit is configured to use, if the target metal layer is the minimum metal layer, a metal layer above the minimum metal layer as the target winding metal layer of the target port;
[0115] The second setting unit is configured to use the target metal layer as the target winding metal layer of the target port if the target metal layer is not the minimum metal layer.
[0116] In one embodiment of the present application, the winding data may include pre-winding size and pre-winding position. Accordingly, the calculation module 3 may include:
[0117] A first determining unit, configured to determine a port position of a target port according to the port parameter;
[0118] A second determining unit is used to determine the pre-winding size of the target port according to the metal layer parameters;
[0119] a third determining unit, configured to determine a relative position between the pre-wound wire of the target port and the target port;
[0120] The fourth determining unit is configured to determine the pre-winding position of the target port according to the port position, the pre-winding size, and the relative position.
[0121] In one embodiment of the present application, the above-mentioned second determination unit can be specifically used to determine the minimum winding width of the target winding metal layer according to the metal layer parameters, and use the minimum winding width as the pre-winding width; determine the spacing between the target port and the other nearest units according to the metal layer parameters, and determine the pre-winding length according to the spacing; determine the pre-winding size according to the pre-winding width and the pre-winding length.
[0122] In one embodiment of the present application, the complete winding module 5 can be specifically used to set anti-optimization attributes for the pre-winding of all target ports; and use electronic design automation tools to perform complete winding on each pre-winding after the attribute setting to achieve macro unit winding.
[0123] In one embodiment of the present application, the macro cell winding device may further include an inspection module for performing a winding design rule check on the target macro cell after the above-mentioned pre-wiring of all target ports is completed to realize the macro cell winding, so as to determine whether there is a winding violation in the target macro cell; when there is a winding violation in the target macro cell, returning to the step of determining the target winding metal layer of the target port according to the metal layer parameters, and determining the winding data of the target port according to the port parameters and the metal layer parameters, until there is no winding violation in the target macro cell.
[0124] In one embodiment of the present application, the above-mentioned inspection module can be specifically used to perform a winding design rule check on the target macro unit to determine whether there is a winding short circuit in the target macro unit, and determine that there is a winding violation in the target macro unit when there is a winding short circuit in the target macro unit; and / or, perform a winding design rule check on the target macro unit to determine whether there is a winding spacing violation in the target macro unit, and determine that there is a winding violation in the target macro unit when there is a winding spacing violation in the target macro unit.
[0125] For an introduction to the apparatus provided in the embodiments of this application, please refer to the above method embodiments, which will not be elaborated in this application.
[0126] An embodiment of the present application provides an electronic device.
[0127] Please refer to Figure 6 , Figure 6 This is a schematic diagram of the structure of an electronic device provided in this application, which may include:
[0128] Memory 11, for storing computer programs;
[0129] The processor 10 can implement the steps of any one of the above-mentioned macrocell routing methods when executing a computer program.
[0130] like Figure 6 FIG. 1 is a schematic diagram of the structure of an electronic device, which may include a processor 10, a memory 11, a communication interface 12, and a communication bus 13. The processor 10, the memory 11, and the communication interface 12 communicate with each other via the communication bus 13.
[0131] In the embodiment of the present application, the processor 10 may be a central processing unit (CPU), an application-specific integrated circuit, a digital signal processor, a field programmable gate array, or other programmable logic devices.
[0132] The processor 10 may call a program stored in the memory 11 . Specifically, the processor 10 may execute operations in an embodiment of the macrocell routing method.
[0133] The memory 11 is used to store one or more programs. The program may include program code, and the program code includes computer operating instructions. In the embodiment of the present application, the memory 11 stores at least a program for implementing the following functions:
[0134] Determining a target macro unit and each target port in the target macro unit;
[0135] Obtaining winding parameters of each target port, where the winding parameters include port parameters of the target port and metal layer parameters of the target metal layer to which the target port belongs;
[0136] Determine a target winding metal layer of a target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters;
[0137] Winding the target port on the target winding metal layer according to the winding data to obtain a pre-winding of the target port;
[0138] Perform a complete route to the preroutes for all target ports to implement the macrocell routing.
[0139] In one possible implementation, the memory 11 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required for at least one function, etc.; the data storage area may store data created during use.
[0140] In addition, the memory 11 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device or other volatile solid-state storage device.
[0141] The communication interface 12 may be an interface of a communication module, and is used to connect to other devices or systems.
[0142] Of course, it needs to be explained that Figure 6 The structure shown does not constitute a limitation on the electronic device in the embodiment of the present application. In actual applications, the electronic device may include Figure 6 More or fewer components than shown, or combinations of certain components.
[0143] An embodiment of the present application provides a computer-readable storage medium.
[0144] The computer-readable storage medium provided in the embodiment of the present application stores a computer program, and when the computer program is executed by a processor, the steps of any one of the above-mentioned macro unit wiring methods can be implemented.
[0145] Among them, computer-readable storage media can be any available medium that can be stored by a computer or a data storage device such as a server or data center that integrates one or more available media. For example, it can be magnetic media (such as floppy disks, hard disks, tapes, etc.), optical media (such as DVDs) or semiconductor media (such as solid-state drives) and other media that can store computer program codes.
[0146] For an introduction to the computer-readable storage medium provided in the embodiments of the present application, please refer to the above method embodiments, and this application will not elaborate on them here.
[0147] An embodiment of the present application provides a computer program product.
[0148] The computer program product provided in the embodiments of the present application includes a computer program / instruction, which, when executed by a processor, can implement the steps of any of the above-mentioned macrocell routing methods.
[0149] Specifically, in each of the above embodiments, all or part of the embodiments may be implemented through software, hardware, firmware, or any combination thereof. When implemented through software, all or part of the embodiments may be implemented in the form of a computer program product.
[0150] Among them, the computer program product may include one or more computer programs / instructions, which, when loaded and executed on a computer, may generate, in whole or in part, the processes or functions described in the embodiments of the present application. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. Computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line, etc.) or wireless (e.g., infrared, wireless, microwave, etc.) method.
[0151] For an introduction to the computer program product provided in the embodiments of the present application, please refer to the above method embodiments, which will not be elaborated in this application.
[0152] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. Reference can be made to the common and similar parts between the various embodiments. For the devices disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the description is relatively simple, and the relevant parts can be referred to the method description.
[0153] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0154] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
[0155] The technical solution provided by the present application is described in detail above. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only intended to help understand the method and core ideas of the present application. It should be noted that, for those skilled in the art, without departing from the principles of the present application, several improvements and modifications may be made to the present application, and these improvements and modifications also fall within the scope of protection of the present application.
Claims
1. A macro unit winding method, characterized in that: include: Determining a target macro unit and each target port in the target macro unit; Acquire winding parameters of each target port, where the winding parameters include port parameters of the target port and metal layer parameters of a target metal layer to which the target port belongs; Determine a target winding metal layer of the target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters; Winding the target port on the target winding metal layer according to the winding data to obtain a pre-winding of the target port; The pre-routing of all the target ports is fully routed to implement macrocell routing.
2. The macro unit winding method according to claim 1, characterized in that: Determining a target winding metal layer of the target port according to the metal layer parameters includes: determining whether the target metal layer is a minimum metal layer according to the metal layer parameters; If the target metal layer is the minimum metal layer, the metal layer above the minimum metal layer is used as the target winding metal layer of the target port; If the target metal layer is not the minimum metal layer, the target metal layer is used as the target winding metal layer of the target port.
3. The macro unit winding method according to claim 1, characterized in that: The winding data includes pre-winding size and pre-winding position; Accordingly, determining the winding data of the target port according to the port parameters and the metal layer parameters includes: Determining a port position of the target port according to the port parameters; Determining a pre-wrap size of the target port according to the metal layer parameters; determining a relative position of the pre-wound wire of the target port and the target port; The pre-winding position of the target port is determined according to the port position, the pre-winding size, and the relative position.
4. The macro unit winding method according to claim 3, characterized in that: Determining a pre-wrap size of the target port according to the metal layer parameters includes: Determine the minimum winding width of the target winding metal layer according to the metal layer parameters, and use the minimum winding width as the pre-winding width; Determine the distance between the target port and the nearest other unit according to the metal layer parameters, and determine the pre-winding length according to the distance; The pre-winding size is determined according to the pre-winding width and the pre-winding length.
5. The macro unit winding method according to claim 1, wherein: Perform a complete routing of the pre-routes for all of the target ports to implement the macrocell routing, including: Setting an anti-optimization attribute for the pre-routing of all the target ports; An electronic design automation tool is used to perform complete winding on each of the pre-wraps after the attribute setting, so as to realize macro unit winding.
6. The macro unit winding method according to any one of claims 1 to 5, characterized in that: After the pre-routing of all the target ports is completely routed to achieve macrocell routing, the method further includes: Performing a routing design rule check on the target macrocell to determine whether the target macrocell has a routing violation; When a routing violation exists in the target macrocell, the process returns to the step of determining the target routing metal layer of the target port according to the metal layer parameters, and determining the routing data of the target port according to the port parameters and the metal layer parameters, until no routing violation exists in the target macrocell.
7. The macro unit winding method according to claim 6, characterized in that: Performing a routing design rule check on the target macrocell to determine whether the target macrocell has a routing violation, including: Performing a routing design rule check on the target macrocell to determine whether a routing short circuit exists in the target macrocell, and determining that a routing violation exists in the target macrocell when a routing short circuit exists in the target macrocell; and / or, A routing design rule check is performed on the target macrocell to determine whether a routing pitch violation exists in the target macrocell, and when the routing pitch violation exists in the target macrocell, it is determined that a routing violation exists in the target macrocell.
8. A macro unit winding device, characterized in that: include: A determination module, configured to determine a target macro unit and each target port in the target macro unit; an acquisition module, configured to acquire winding parameters of each of the target ports, wherein the winding parameters include port parameters of the target port and metal layer parameters of a target metal layer to which the target port belongs; a calculation module, configured to determine a target winding metal layer of the target port according to the metal layer parameters, and determine winding data of the target port according to the port parameters and the metal layer parameters; a pre-winding module, configured to perform winding on the target port on the target winding metal layer according to the winding data to obtain a pre-winding for the target port; The complete winding module is used to perform complete winding on the pre-winding of all the target ports to obtain the actual winding of the target macro unit.
9. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the macrocell routing method according to any one of claims 1 to 7 when executing the computer program.
10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the macrocell routing method according to any one of claims 1 to 7 are implemented.