A winding method based on resistance sensitivity
By considering resistance sensitivity in the winding method, dividing regional grids and creating structural blocks, the problem that the existing technology cannot cope with different application scenarios is solved, and a more optimized winding design and efficiency improvement is achieved.
Patent Information
- Application Number
- CN202110281188.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-31
- Filing Date
- 2021-03-16
- Publication Date
- 2025-03-07
- Estimated Expiration
- 2041-03-16
AI Technical Summary
The existing technology has not yet considered resistance-sensitive winding methods, and cannot effectively respond to the needs of different application scenarios, which limits the further development of integrated circuit design.
A resistance-sensitive winding method is proposed. By obtaining winding information, dividing device areas and area grids, calculating the winding width of each area grid, and creating a starting point, end point and intermediate structure block to form a winding path.
This method considers resistance sensitivity when winding, which can meet the winding needs in different scenarios, optimize the design and improve efficiency.
Smart Images

Figure CN114692559B_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the field of semiconductor design and production, and in particular relates to a winding method based on resistance sensitivity. Background Art
[0002] With the rapid development of integrated circuit technology, integrated circuits have entered the ultra-deep submicron era, which makes the characteristic size of electronic devices smaller and smaller, the scale of chips larger and larger, and more and more components can be integrated on a single chip, and the complexity has increased dramatically. The wiring method in the layout has long been unable to meet the needs of integrated circuit design by manually designed wiring methods. Computer automatic wiring has occupied an increasingly large proportion in layout design and wiring. The quality of design and wiring directly affects the realization of functions and the quality of electrical performance. The wiring algorithm has an extremely important influence on the speed and efficiency of wiring. How to design an algorithm that requires less time and space, has lower complexity and higher efficiency has become a huge problem facing semiconductor computer-aided design. For detailed wiring, the more common methods of traditional planar wiring algorithms are:
[0003] Lee's Maze Routing Algorithm: This routing algorithm is a single network routing algorithm. First, the routing plane is divided into uniform grids of the same size. Starting from the starting grid, the cost values of the adjacent grids in the horizontal and vertical directions and the four unoccupied grids are set. This step is iterated, and the cost values increase in ascending order. Finally, the target grid is searched, and the shortest path is obtained by tracing back from the target grid to the starting grid. This algorithm works well for single network routing, but it has problems of low efficiency and large storage requirements.
[0004] Sequential Routing: This algorithm is a multi-network routing algorithm. First, the routing order of the networks to be routed is set, and the networks to be routed are routed in order. When a network is routed, the congestion of the global routing resources is updated, which will cause the subsequent networks to be routed to be forced to use the congested routing resources. This routing algorithm is extremely sensitive to the order of routing, and usually causes the network that is routed first to affect the network that is routed later.
[0005] From the above, we can see that there is currently no winding method that takes resistance sensitivity into consideration to meet the needs of different application scenarios, which is also very unfavorable for the further development of integrated circuit design. Summary of the invention
[0006] The present invention is based on the above-mentioned problems of the prior art, and aims to provide a winding method based on resistance sensitivity. All explanations or definitions of the terms and related technical principles involved in the following description of this application are only exemplary and not restrictive.
[0007] The present invention provides a resistance-sensitive winding method, comprising: step S1. obtaining winding information, including a device area, a pad area, a device to be wound and all networks to be wound; wherein, the device to be wound is in the device area; the pad area has a plurality of pads, and one side of the pad area shares an edge with a side of the device area; the network to be wound includes pads and pins to be connected by winding, and the pins are on the device to be wound; a winding width and a winding interval are preset; step S2. dividing the device area into a device grid and a regional grid, the regional grid including a first grid and a second grid (the number of pins in the first grid is the number of pins of the device to be wound); the device grid is a grid generated after expanding the location area of the device to be wound; the first grid is a grid created in the device area between the device grid and the pad area; the second grid is a grid in the device area except the device grid and a grid created in the area outside the first grid; step S3. obtaining information of the regional grid, including: a network to be wound that needs to pass through the regional grid, and a winding space in the regional grid; according to the winding space and the number of networks to be wound that need to pass through the regional grid, respectively calculating the winding width of each regional grid; step S4. creating a winding path of the network to be wound by dividing the regional grid, including: in a regional grid connected to a pad in the network to be wound, creating a starting structure block connected to the pad; in a first grid connected to a pin in the network to be wound, creating an end structure block connected to the pin; creating a plurality of intermediate structure blocks between the starting structure block and the end structure block, the width of the intermediate structure block is set according to the winding width of the regional grid where it is located, and completing the winding path of the network to be wound including the starting structure block, the intermediate structure block and the end structure block.
[0008] In a specific case, step S2 is expanded according to the winding width and winding interval preset in step S1, and the number of pins of the device to be wound.
[0009] Among them, the process of expanding the position area of the device to be wound to generate the device grid is specifically: the position area of the device to be wound is recorded as (x1, y1, x2, y2), wherein (x1, y1) and (x2, y2) are the lower left corner coordinates and the upper right corner coordinates of the device to be wound respectively; the number of pins of the device to be wound is recorded as k; the winding width preset in the step S1 is recorded as width, and the winding interval is recorded as space; the device grid of the expanded winding device is recorded as (dx1, dy1, dx2, dy2); then dx1=x1-(k+1)×(width+space); dx2=x2+(k+1)×(width+space); dy1=y1-(2×k+1)×(width+space); dy2=y2+(2×k+1)×(width+space).
[0010] In the present invention, the first grid is a rectangular grid created by the device area between the device grid and the pad area, and of the two opposite sides of the first grid, one side overlaps with the side of the device grid and is equal in length, and the other side overlaps with the side of the pad area.
[0011] In the present invention, the second grid refers to: a grid created in the device region between two adjacent first grids or a grid created in the device region between the first grid closest to the edge of the device region and the edge of the device region.
[0012] In the present invention, in the step S3, all the networks to be wound are traversed, and the information of the regional grid is acquired according to the relative position relationship between the pins and pads in the networks to be wound and the regional grid.
[0013] In the present invention, in step S3, the winding width of the regional grid is calculated by the formula: ; Wherein: mesh_width represents the winding width of the regional grid; the result of (zx2-zx1) is the distance value between the two edges of the regional grid in the direction along the path of the network to be wound; space represents the winding interval preset in the step S1; n represents the number of networks to be wound that need to pass through the regional grid.
[0014] In the present invention, the starting point structure block includes a first starting point structure block and a second starting point structure block; the first starting point structure block is connected to the pad, and the length of the first starting point structure block is set according to the winding order of the network to be wound (i.e., the network to be wound to which the starting point structure block belongs) in the regional grid where the starting point structure block is located and the winding width of the regional grid; the width of the first starting point structure block is set according to the length of the pin edge of the pad; the second starting point structure block is connected to the first starting point structure block; the length of the second starting point structure block is set according to the distance from the first starting point structure block along the winding path of the network to be wound to the edge of the regional grid where the starting point structure block is located; the width of the second starting point structure block is set according to the winding width of the regional grid.
[0015] In the present invention, the terminal structure block includes a first terminal structure block and a second terminal structure block; the first terminal structure block is connected to the pin, and the length of the first terminal structure block is set according to the winding order of the network to be wound in the first grid where the terminal structure block is located and the winding width of the first grid; the width of the first terminal structure block is set according to the length of the pin outlet edge of the pin; the second terminal structure block is connected to the first terminal structure block, and the length of the second terminal structure block is set according to the distance from the first terminal structure block along the winding path of the network to be wound to the extended line of the edge of the location area of the device to be wound; the width of the second terminal structure block is set according to the winding width of the first grid.
[0016] In the present invention, in step S4, after all the starting structure blocks and the ending structure blocks are created, the starting structure blocks and the ending structure blocks of the network to be wound are acquired and matched according to the pad and pin information of the network to be wound.
[0017] In the present invention, in step S4, creating several intermediate structure blocks includes: if one of the structure blocks in the projection of the second starting structure block and the second terminal structure block on the straight line perpendicular to the direction of the winding path completely overlaps with the other structure block, then taking the straight line along the direction of the winding path and passing through the midpoint of the overlapping area as the center line, creating several intermediate structure blocks connected in sequence; if one of the structure blocks in the projection of the second starting structure block and the second terminal structure block on the straight line perpendicular to the direction of the winding path does not completely overlap with the other structure block or does not overlap, then first creating several transfer intermediate structure blocks connected in sequence starting from the second terminal structure block, until one of the structure blocks in the projection of the last transfer intermediate structure block and the second starting structure block on the straight line perpendicular to the direction of the winding path completely overlaps with the other structure block; then taking the straight line along the direction of the winding path and passing through the midpoint of the overlapping area as the center line, creating several intermediate structure blocks connected in sequence.
[0018] In the present invention, the winding order of the starting point structure block created in step S4 is: the smaller the distance from the pad position in the network to be wound along the winding path to the edge of the regional grid connected to the pad that is perpendicular to the winding path, the earlier the winding is performed.
[0019] In the present invention, the winding order of creating the end point structure block and / or the winding order of creating the intermediate structure block in step S4 is consistent with the winding order of creating the start point structure block.
[0020] Beneficial effects of the present invention: According to a resistance-sensitive winding method involved in the present invention, resistance sensitivity is taken into consideration during winding, which can meet the winding requirements in the required scenarios and optimize the design. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 It is a schematic diagram of the resistance-sensitive winding method of the present invention.
[0022] Figure 2 It is a schematic diagram of device_area in the first embodiment of the present invention.
[0023] Figure 3 , Figure 4 and Figure 5 Schematic diagram of device area division in embodiment 1 of the present invention
[0024] Figure 6 It is a schematic diagram of the position information of the pin and the pad in the fifth embodiment.
[0025] FIG. 7( a ) and FIG. 7( b ) are schematic diagrams showing different positions of the pin and the pad in the fifth embodiment of the present invention.
[0026] Figure 8 It is a schematic diagram of creating an intermediate structure block in the sixth embodiment of the present invention.
[0027] Fig. 9 This is another schematic diagram of creating an intermediate structure block in Embodiment 6 of the present invention. DETAILED DESCRIPTION
[0028] The above and / or additional aspects and advantages of the present invention will become apparent and easily understood from the description of the embodiments with reference to the following drawings.
[0029] The embodiments disclosed in the present invention will be described in more detail below with reference to the accompanying drawings. Although certain embodiments disclosed in the present invention are shown in the accompanying drawings, it should be understood that the present invention can be implemented in various forms and should not be construed as being limited to the embodiments described herein. Instead, these embodiments are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments disclosed in the present invention are only for exemplary purposes and are not intended to limit the scope of protection disclosed in the present invention. The operations of the embodiments are described in a specific order in the following embodiments. The description of these orders is intended to better understand the details in the embodiments in order to fully understand the present invention, but the description of these orders does not necessarily correspond one-to-one with a resistance-sensitive winding method of the present invention, nor can it be used to limit the scope of the present invention.
[0030] It should be noted that the flowcharts and block diagrams in the accompanying drawings illustrate the operation process that may be implemented according to the method of the embodiment of the present invention. It should also be noted that in some alternative implementations, the functions marked in the boxes may also occur in a different order than the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed alternately, depending on the purpose to be achieved by the steps involved. In addition, each box in the block diagram and / or flow chart, and the combination of boxes in the block diagram and / or flow chart, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and manual operations.
[0031] Embodiment 1
[0032] like Figure 1 As shown, in the first embodiment of the present invention, a resistance-sensitive winding method is disclosed, comprising: step S1. obtaining winding information, including a device area, a pad area, a device to be wound, and all networks to be wound; Figure 2 As shown, wherein the device to be wound is in the device area; there are a plurality of pads in the pad area, and one side of the pad area is co-edge with one side of the device area; the network to be wound includes pads and pins to be connected by winding, and the pins are on the device to be wound; a winding width and a winding interval are preset; step S2. The device area is divided into a device grid and a regional grid, and the regional grid includes a first grid and a second grid; as Figure 3-5As shown, the device grid is a grid generated by expanding the location area of the device to be wound; the first grid is a grid created in the device area between the device grid and the pad area; the second grid is a grid created in the device area except the device grid and the first grid; step S3. obtaining information of the regional grid, including: the network to be wound that needs to pass through the regional grid, and the winding space in the regional grid; according to the winding space and the number of networks to be wound that need to pass through the regional grid, respectively calculate the winding width of each regional grid; step S4. creating a winding path of the network to be wound by regional grid, including: in the regional grid connected to the pad in the network to be wound, creating a starting structure block connected to the pad; in the first grid connected to the pin in the network to be wound, creating an end structure block connected to the pin; creating a number of intermediate structure blocks between the starting structure block and the end structure block, the width of the intermediate structure block is set according to the winding width of the regional grid where it is located, and completing the winding path of the network to be wound including the starting structure block, the intermediate structure block and the end structure block. In this embodiment, the starting structure block includes a first starting structure block and a second starting structure block; the first starting structure block is connected to the pad, and the length of the first starting structure block is set according to the winding order of the network to be wound (i.e., the network to be wound to which the starting structure block belongs) in the regional grid where the starting structure block is located and the winding width of the regional grid; the width of the first starting structure block is also set according to the length of the edge of the pad used to connect the pin; the second starting structure block is connected to the first starting structure block; the length of the second starting structure block is set according to the distance from the first starting structure block along the winding path of the network to be wound to the edge of the regional grid where the starting structure block is located; the width of the second starting structure block is set according to the winding width of the regional grid. The terminal structure block includes a first terminal structure block and a second terminal structure block; the first terminal structure block is connected to the pin, and the length of the first terminal structure block is also set according to the winding order of the network to be wound in the first grid where the terminal structure block is located and the winding width of the first grid; the width of the first terminal structure block is set according to the length of the pin outlet edge; the second terminal structure block is connected to the first terminal structure block, and the length of the second terminal structure block is set according to the distance from the first terminal structure block along the winding path of the network to be wound to the extended line of the edge of the location area of the device to be wound; the width of the second terminal structure block is set according to the winding width of the first grid.
[0033] For the convenience of explanation and description, in the embodiment, the device area is recorded as device_area, the device to be wound is recorded as device, the network to be wound is recorded as net, the first grid is recorded as no free zone, the second grid is recorded as free zone, the preset winding width is recorded as width, the winding interval is recorded as space, the number of pins of the device to be wound is recorded as k, the pad is recorded as pad, and the pin is recorded as pin. The starting structure block is recorded as polygons1, the end structure block is recorded as polygons2, the first starting structure block is recorded as polygon11, the second starting structure block is polygon12, the structure block is recorded as polygon, the first end structure block is recorded as polygon21, and the second end structure block is recorded as polygon22. Wherein polygon11, polygon12, polygon21, and polygon22 can be composed of one or more polygons connected in sequence respectively, without limitation.
[0034] In this embodiment, the device grid is created in the following manner: assuming that the location area of the device to be wound is (x1, y1, x2, y2), wherein (x1, y1) is the coordinate of the lower left corner of the device to be wound, and (x2, y2) is the coordinate of the upper right corner of the device to be wound; then the device grid of the wound device after expansion is (dx1, dy1, dx2, dy2): dx1 = x1-(k+1)×(width+space); dx2=x2+(k+1)×(width+space); dy1=y1-(2×k+1)×(width+space); dy2=y2+(2×k+1)×(width+space).
[0035] In this embodiment, Figure 3As shown, the first grid is a rectangular grid created by the device area between the device grid and the pad area, and one of the two opposite sides of the first grid overlaps with the side of the device grid and is equal in length, and the other side overlaps with the side of the pad area. The number of pins in the first grid is the number of pins of the device to be wound. In this embodiment, if the pad area is on the left side of the device area as an example, the position information of the device area is assumed to be (da_x1, da_y1, da_x2, da_y2), where (da_x1, da_y1) is the lower left corner coordinate of the device area, and (da_x2, da_y2) is the upper right corner coordinate of the device area; then the position information of the no free zone can be set to (no_free_zone_x1, no_free_zone_y1, no_free_zone_x2, no_free_zone_y2), where (no_free_zone_x1, no_free_zone_y1) is the lower left corner coordinate of the no free zone, and (no_free_zone_x2, no_free_zone_y2) is the upper right corner coordinate of the no free zone, specifically: no_free_zone_x1 = da_x1; no_free_zone_x2 = dx1; no_free_zone_y1 = dy1;no_free_zone_y2=dy2.
[0036] The second grid refers to: a grid created in the device region between two adjacent first grids or a grid created in the device region between the first grid closest to the edge of the device region and the edge of the device region. In this embodiment, it includes: a second grid created in the device region between two adjacent first grids or a second grid created in the device region between the edge of the device region and the first grid closest to the edge of the device region. Based on the above, three embodiments of the second grid are provided below for reference, namely, Embodiments 2, 3 and 4.
[0037] Embodiment 2
[0038] In this embodiment, the device area between two adjacent first grids is created as a second grid; assuming that the two adjacent first grids are zone1 and zone2 from bottom to top, and the position information of zone1 is (zone1_x1, zone1_y1, zone1_x2, zone1_y2), and the position information of zone2 is (zone2_x1, zone2_y1, zone2_x2, zone2_y2), then in the position information of the second grid: free_zone_x1=da_x1; free_zone_x2=da_x2-space; free_zone_y1=zone1_y2; free_zone_y2=zone2_y1.
[0039] Embodiment 3
[0040] In this embodiment, the device area between the lower edge of the device area and the bottom first grid is created as a second grid; assuming that the bottom first grid is zone0, and the position information of zone0 is (zone0_x1, zone0_y1, zone0_x2, zone0_y2), then in the position information of the second grid: free_zone_x1=da_x1; free_zone_x2=da_x2-space; free_zone_y1=da_y1; free_zone_y2=zone0_y1.
[0041] Embodiment 4
[0042] Create the device area between the upper edge of the device area and the top first grid as the second grid; suppose the top first grid is zonen, and the position information of zonen is (zonen_x1, zonen_y1, zonen_x2, zonen_y2), then in the position information of the second grid: free_zone_x1=da_x1; free_zone_x2=da_x2-space; free_zone_y1=zonen_y2; free_zone_y2=da_y2.
[0043] Embodiment 5
[0044] Embodiment 5 is a specific example of step S3 based on embodiment 1. Step S3: Traverse all the networks to be wound, and obtain the information of the regional grid according to the relative position relationship between the pins, pads and the regional grid in the network to be wound, including the network to be wound that needs to pass through the regional grid. According to the winding space in the grid area and the number of networks to be wound that need to pass through the regional grid, the winding width mesh_width of each regional grid is calculated respectively, and the calculation formula is: Among them, the result of (zx2 - zx1) is the distance value between two sides of the regional grid in the direction along the path of the wire-to-be-wound network; space represents the preset wire-winding interval in step S1; n represents the number of wire-to-be-wound networks of the regional grid that the wire winding needs to pass through.
[0045] The following provides the extraction of the wire-to-be-wound network information in the regional grid for reference. As Figure 6 shown, let the ordinate of the lower edge of the regional grid be zy1, and the ordinate of the upper edge be zy2; in the wire-to-be-wound network, let the position information of the pin be pin_pos, the ordinate of the lower edge of the pin be pin_lly, the ordinate of the upper edge of the pin be pad_ury, the position information of the pad be pad_pos, the ordinate of the lower edge of the pad be pad_lly, and the ordinate of the upper edge of the pad be pad_ury; among them, pin_pos = (pin_lly + pin_ury) / 2, pad_pos = (pad_lly + pad_ury) / 2.
[0046] Taking the wire-to-be-wound network with pad on pin as an example:
[0047] If pin_pos < zy1: As shown in Fig. 7(a), when the ordinate of the upper edge of the pad is greater than the ordinate of the upper edge of the regional grid, that is, pad_ury > zy2, then this wire-to-be-wound network is a wire-to-be-wound network that the wire winding needs to pass through this regional grid. As shown in Fig. 7(b), when the ordinate of the upper edge of the pad is between the upper and lower edges of the regional grid, that is, zy1 < pad_ury < zy2, then this wire-to-be-wound network is a wire-to-be-wound network that the wire winding needs to pass through this regional grid;
[0048] Taking the wire-to-be-wound network with pad under pin as an example:
[0049] If pin_pos > zy2: When the ordinate of the lower edge of the pad is greater than the ordinate of the lower edge of the regional grid, that is, pad_lly > zy1, then this wire-to-be-wound network is a wire-to-be-wound network that the wire winding needs to pass through this regional grid; when the ordinate of the lower edge of the pad is between the upper and lower edges of the regional grid, that is, zy1 < pad_lly < zy2, then this wire-to-be-wound network is a wire-to-be-wound network that the wire winding needs to pass through this regional grid.
[0050] Example Six
[0051] Example Six is a specific example expansion of step S4 on the basis of Example One. Step S4: Create the winding path of the wire-to-be-wound network by dividing into regional grids. In this example, it specifically includes:
[0052] Step S41: In the area grid connected to the pad in the to-be-wired network, create a starting polygon connected to the pad; and the width of the starting polygon is set according to the wiring width mesh_width of this area grid. The starting polygon includes polygon11 and polygon12; polygon11 is connected to the pad, the length of polygon11 is set according to the wiring order of the wiring network in this area grid and the wiring width mesh_width of this area grid, and the width of polygon11 is set according to the length of the out-pin side of the pad; polygon12 is connected to polygon11, the length of polygon12 is set according to the distance from polygon11 along the wiring path of the to-be-wired network to the edge of this area grid, and the width of polygon12 is set according to the wiring width mesh_width of this area grid. It should be understood that the widths of most structural blocks are different. For example, polygon11 and polygon12, the width is only set according to the wiring width in this area grid, but it is not limited to the value of the wiring width.
[0053] For the example of the to-be-wired grid where the pad is on the left and ranked first, the specific method of creating polygon11 and polygon12 is as follows: Let the position information of polygon11 be (Px11, Py11, Px12, Py12), then: Px11 = pad_urx; Px12 = pad_urx + space + mesh_width; Py11 = pad_lly; Py12 = pad_ury; Let the position information of polygon12 be (Px21, Py21, Px22, Py22), then: Px21 = pad_urx + space; Px22 = pad_urx + space + mesh_width. If pin_pos > pad_pos, then Py21 = pad_ury, Py22 = zy2; if pin_pos < pad_pos, then Py21 = zy1, Py22 = pad_lly; where the position information of the pad is (pad_llx, pan_lly, pad_urx, pad_ury); the space is a preset wiring interval; the mesh_width is the wiring width of this area grid; zy1 is the ordinate of the lower edge of this area grid, and zy2 is the ordinate of the upper edge of this area grid.
[0054] Step S42: In the first grid connected to the pin in the network to be wound, create an end polygon connected to the pin; and the width of the end polygon is set according to the winding width mesh_width of the first grid. The end polygon includes polygon21 and polygon22; the polygon21 is connected to the pin, the length of polygon21 is set according to the winding sequence of the winding network in the first grid and the winding width mesh_width of the first grid, and the width of polygon21 is set according to the length of the pin-out edge of the pin; the polygon22 is connected to the polygon21, the length of polygon22 is set according to the distance from polygon21 along the winding path of the network to be wound to the extension line of the edge of the location area of the device to be wound, and the width of polygon22 is set according to the winding width mesh_width of the first grid.
[0055] Step S43: According to the pad and pin information of the network to be routed, the starting point polygon and the ending point polygon of the network to be routed in the regional grid are obtained and matched.
[0056] Take the network to be wound with the pad on the left and the pin below the pad as an example: take a regional grid, obtain all polygons1 (including polygon11 and polygon12) in the regional grid that are directed downward, and then obtain all polygons2 (including polygon21 and polygon22) in the first grid below the regional grid that are directed upward. If the pins and pads of the network to be wound to which polygons2 belongs are the same as the pins and pads of the network to be wound to which polygons1 belongs, then it is considered that polygons1 and polygons2 belong to the same winding path of the network to be wound.
[0057] Step S44: Create several intermediate polygons between the starting polygon and the end polygon to complete the winding path of the network to be wound; and the width of the intermediate polygon is set according to the winding width mesh_width of the regional mesh where the intermediate polygon is located. The specific method of creating the intermediate polygon is as follows:
[0058] If one of polygon12 and polygon22 completely overlaps with the other in the projection perpendicular to the direction of the winding path, a number of sequentially connected intermediate polygons are created: until the last intermediate polygon and the second starting point polygon completely overlap with the other in the projection perpendicular to the direction of the winding path; then a number of sequentially connected intermediate polygons are created with the straight line passing through the midpoint of the overlapping area along the path as the center line, and the line width of the intermediate polygon is set to the winding width mesh_width of the mesh of the area where the intermediate polygon is located.
[0059] like Figure 8 As shown, take the network to be wound with the pad on the left and the pin below the pad as an example: polygon12 and polygon22, one of the polygons completely overlaps with the other in the horizontal direction. Let the horizontal coordinates of the left and right edges of the overlapping area be ox1 and ox2 respectively; let the position information of the middle polygon be (Mx1, My1, Mx2, My2), then: Mx1=ox1; Mx2=ox2; My1=polygon22.y2; My2=polygon12.y1; where polygon22.y2 is the upper right corner ordinate of polygon22; polygon12.y1 is the lower left corner ordinate of polygon12.
[0060] If one of the polygons of polygon12 and polygon22 in the direction perpendicular to the direction of the winding path does not completely overlap or does not overlap with the other, then first create several transfer intermediate polygons connected to polygon22, until the last transfer intermediate polygon and the projection of polygon12 in the direction perpendicular to the direction of the winding path have one polygon completely overlap with the other, and then create several intermediate polygons connected in sequence: the intermediate polygon takes the straight line passing through the midpoint of the overlapping area along the path as the midline, and the line width of the intermediate polygon is set to the winding width mesh_width of the mesh of the area where the intermediate polygon is located.
[0061] like Fig. 9As shown, take the network to be wound with the pad on the left and the pin below the pad as an example: For polygon12 and polygon22, one of the polygons does not completely overlap with the other polygon in the horizontal direction or has no overlapping area: Let the vertical distance between Polygon12 and polygon22 be left_space, the number of all nets containing horizontal polygons be n, and create three transfer intermediate polygons, namely (Px11, Py11, Px12, Py12), (Px21, Py21, Px22, Py22) and (Px31, Py31, Px32, Py32), then: Px11=polygon22.x1; Px12=polygon22.x2; Py11=polygon22.y2; Py12=polygon12.y1-space-mesh_width; Px21=po lygon12.x1; Px22 = polygon22.x2; Py21 = Py12; py22 = Py12 + mesh_width; Px31 = polygon12.x1; Px32 = polygon12.x2; Py31 = py22; Py32 = polygon12.y1-space; where the position information of polygon12 is (polygon12.x1, polygon12.y1, polygon12.x2, polygon12.y2), and the position information of polygon22 is (polygon22.x1, polygon22.y1, polygon22.x2, polygon22.y2); the width of the horizontal polygon between polygon12 and polygon22 is: Mesh_width = (left_space-(n+1)×space) / n. The above is a specific description, and it should be understood that it does not limit which polygon's shadow is completely overlapped.
[0062] It should be noted that in step S4, when creating a starting structure block connected to a pad in a regional grid connected to a pad in a network to be wound, the winding order in the regional grid is determined according to the following order: along the winding path of the network to be wound, the smaller the distance from the pad position to the edge of the regional grid, the earlier the winding is done. The winding order of creating the end structure block and / or the winding order of creating the intermediate polygon are consistent with the winding order of creating the starting structure block.
[0063] It should be pointed out that, in the present invention, descriptions such as "first", "second", "left", "right", "upper", "lower", etc. are only used for descriptive purposes, and do not specifically refer to the order or sequence, nor are they used to limit the present invention. They are only used to distinguish components or operations described with the same technical terms, and cannot be understood as indicating or implying their relative importance or implicitly indicating the number of the indicated technical features. Similarly, some commonly used English nouns or letters used in the present invention for the sake of clarity are only used for exemplary references rather than restrictive interpretations or specific usages, and the protection scope of the present invention should not be limited by their possible Chinese translations or specific letters.
[0064] The above examples are only specific embodiments of the present invention. Obviously, the present invention is not limited to the above examples, and many variations are possible. All variations that can be directly derived or associated with the contents disclosed by a person skilled in the art should be considered as the protection scope of the present invention.
[0065] The above embodiments are preferred examples of the present invention and are not intended to limit the scope of protection of the present invention. For the purpose of clear description, many implementation details are described together in the above description. However, it should be understood that these implementation details should not be used to limit the present invention.
[0066] The technical solutions between some practices described in the embodiments can be combined with each other, but they must be based on the fact that ordinary technicians in the field can implement them. When the combination of technical solutions is contradictory or cannot be implemented, it should be deemed that such combination of technical solutions does not exist and is not within the scope of protection required by the present invention.
Claims
1. A winding method based on resistance sensitivity, characterized in that: include: Step S1. Obtaining winding information, including a device area, a pad area, a device to be wound and all networks to be wound; wherein the device to be wound is in the device area; there are a number of pads in the pad area, and one side of the pad area shares an edge with one side of the device area; the network to be wound includes pads and pins to be connected by winding, and the pins are on the device to be wound; Preset winding width and winding interval; Step S2. Divide the device area into a device grid and a regional grid, wherein the regional grid includes a first grid and a second grid; the device grid is a grid generated by expanding the location area of the device to be wound; the first grid is a grid created in the device area between the device grid and the pad area; the second grid is a grid created in the area of the device area except the device grid and the first grid; Step S3. Obtaining information of the regional grid, including: the network to be wound that the winding needs to pass through the regional grid, and the winding space in the regional grid; according to the winding space and the number of the network to be wound that the winding needs to pass through the regional grid, respectively calculate the winding width of each of the regional grids; Step S4. Creating a winding path for the network to be wound by dividing the regional grids, including: In a regional grid connected to a pad in a network to be routed, creating a starting point structure block connected to the pad; In a first grid connected to a pin in a network to be routed, creating a terminal structure block connected to the pin; Several intermediate structure blocks are created between the starting structure block and the end structure block. The width of the intermediate structure block is set according to the winding width of the regional grid in which it is located, and the winding path of the network to be wound including the starting structure block, the intermediate structure block and the end structure block is completed.
2. A resistance-sensitive winding method according to claim 1, characterized in that: In step S2, the expansion is performed according to the winding width and winding interval preset in step S1, and the number of pins of the device to be wound.
3. A resistance-sensitive winding method according to claim 2, characterized in that: The process of expanding the location area of the device to be wound to generate the device grid is specifically: The location area of the device to be wound is recorded as (x1, y1, x2, y2), wherein (x1, y1) and (x2, y2) are the lower left corner coordinates and the upper right corner coordinates of the device to be wound respectively; the number of pins of the device to be wound is recorded as k; the winding width preset in step S1 is recorded as width, and the winding interval is recorded as space; the device grid of the expanded winding device is recorded as (dx1, dy1, dx2, dy2); Then dx1=x1-(k+1)×(width+space); dx2=x2+(k+1)×(width+space); dy1=y1-(2×k+1)×(width+space); dy2=y2+(2×k+1)×(width+space).
4. A resistance-sensitive winding method according to claim 1, characterized in that: The first grid is a rectangular grid created by the device area between the device grid and the pad area. Of the two opposite sides of the first grid, one side overlaps with the side of the device grid and is equal in length, and the other side overlaps with the side of the pad area.
5. The resistance-sensitive winding method according to claim 1, characterized in that: The second grid refers to: a grid created in the device region between two adjacent first grids or a grid created in the device region between the first grid closest to the edge of the device region and the edge of the device region.
6. A resistance-sensitive winding method according to claim 1, characterized in that: In the step S3, all the networks to be wound are traversed, and the information of the regional grid is acquired according to the relative position relationship between the pins and pads in the networks to be wound and the regional grid.
7. A resistance-sensitive winding method according to claim 1, characterized in that: In step S3, the winding width of the regional grid is calculated by the formula: ; Wherein: mesh_width represents the winding width of the regional mesh; The result of (zx2-zx1) is the distance value between the two edges of the regional grid in the direction along the path of the network to be wound; space represents the winding interval preset in the step S1; n represents the number of networks to be wound that need to pass through the regional grid.
8. A resistance-sensitive winding method according to any one of claims 1 to 7, characterized in that: The starting point structure block includes a first starting point structure block and a second starting point structure block; The first starting point structure block is connected to the pad, and the length of the first starting point structure block is set according to the order of winding the network to be wound in the regional grid where the starting point structure block is located and the winding width of the regional grid; the width of the first starting point structure block is set according to the length of the pin-out edge of the pad; The second starting point structure block is connected to the first starting point structure block; the length of the second starting point structure block is set according to the distance from the first starting point structure block along the winding path of the to-be-wound network to the edge of the grid in the area where the starting point structure block is located; The width of the second starting point structure block is set according to the winding width of the grid in the area.
9. A resistance-sensitive winding method according to claim 8, characterized in that: The endpoint structure block includes a first endpoint structure block and a second endpoint structure block; The first terminal structure block is connected to the pin, and the length of the first terminal structure block is set according to the order of winding the network to be wound in the first grid where the terminal structure block is located and the winding width of the first grid; the width of the first terminal structure block is set according to the length of the pin-out edge of the pin; The second terminal structure block is connected to the first terminal structure block, and the length of the second terminal structure block is set according to the distance from the first terminal structure block along the winding path of the network to be wound to the extended line of the edge of the location area of the device to be wound; the width of the second terminal structure block is set according to the winding width of the first grid.
10. A resistance-sensitive winding method according to claim 9, characterized in that: In the step S4, after all the starting structure blocks and the ending structure blocks are created, the starting structure blocks and the ending structure blocks of the network to be routed are acquired and matched according to the pad and pin information of the network to be routed.
11. A resistance-sensitive winding method according to claim 10, characterized in that: In step S4, creating several intermediate structure blocks includes: If one of the second starting structure block and the second ending structure block completely overlaps with the other structure block in the projection of the straight line perpendicular to the direction of the winding path, a plurality of sequentially connected intermediate structure blocks are created with the straight line along the direction of the winding path and passing through the middle point of the overlapping area as the center line; If one structure block does not completely overlap or does not overlap with the other structure block in the projection of the second starting point structure block and the second terminal structure block on the straight line perpendicular to the direction of the winding path, first create a number of transfer intermediate structure blocks that are connected in sequence starting from the second terminal structure block, until there is a structure block that completely overlaps with the other structure block in the projection of the last transfer intermediate structure block and the second starting point structure block on the straight line perpendicular to the direction of the winding path; then create a number of intermediate structure blocks that are connected in sequence with the straight line along the direction of the winding path and passing through the midpoint of the overlapping area as the center line.
12. A resistance-sensitive winding method according to claim 11, characterized in that: The winding order of the starting structure block created in step S4 is: the smaller the distance from the pad position in the network to be wound along the winding path to the edge of the regional grid connected to the pad that is perpendicular to the winding path, the earlier the winding is done.
13. A resistance-sensitive winding method according to claim 12, characterized in that: In the step S4, the winding order of creating the end point structure block and / or the winding order of creating the intermediate structure block is consistent with the winding order of creating the start point structure block.
Citation Information
Patent Citations
Grid-free model based wiring method of integrated circuit from module to module
CN101916317A
Grid block-based rapid multilayer wiring method
CN101980216A