A method for quickly laying out Pins around a Boundary
By filtering and calculating the endpoint distance of Path/Wire, automatically adjusting the Pin to the Boundary, solving the problem of manual adjustments that is time-consuming and error-prone, and achieving an efficient Pin layout.
Patent Information
- Application Number
- CN202311234914.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-22
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2043-09-22
AI Technical Summary
In integrated circuit design, manually adjusting the Pin to the boundary is time-consuming and error-prone, especially when adjusting multiple Pin.
By determining the Pin in the circuit that needs to be adjusted, filter out the Path/Wire with the same Net as it, calculate the distance of the endpoint from the target Boundary, select the shortest endpoint, and quickly lay the Pin around the target Boundary.
Automatic adjustment of Pin is realized, saving design time and avoiding position errors caused by manual adjustment.
Smart Images

Figure CN117272912B_ABST
Abstract
Description
Technical Field
[0001] This patent application belongs to the field of circuit design technology, and in particular relates to a method for quickly placing pins around boundaries. Background Art
[0002] During the integrated circuit design process, layout engineers sometimes need to pin out design modules when drawing the layout to facilitate connections with other modules. In traditional EDA tools, if engineers want to move pins around the boundary, they can only adjust them manually. If multiple pins need to be adjusted, it takes a lot of time and may cause pin position errors due to negligence or fatigue. Summary of the Invention
[0003] This patent application provides a method for quickly placing Pins around Boundary to overcome or alleviate the defects of the prior art.
[0004] This embodiment of the present application provides a method for quickly placing Pins around a boundary, which includes:
[0005] Determine the pin that needs to be adjusted in the circuit;
[0006] Filter out the Path / Wire with the same Net as the Pin from the corresponding layout;
[0007] Calculate the distance between the endpoints of the Path / Wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the Path / Wire;
[0008] Based on the endpoint with the shortest distance, the endpoint closest to the target boundary is determined to quickly layout the Pin around the target boundary.
[0009] In the solution provided by the present invention, the pin that needs to be adjusted in the circuit is determined; the path / wire with the same net as the pin is screened out from the corresponding layout; the distance between the endpoint of the path / wire and the target boundary is calculated to screen out the endpoint with the shortest distance from the endpoints of the path / wire; based on the endpoint with the shortest distance, the endpoint closest to the target boundary is determined to quickly layout the pin around the target boundary, thereby achieving automatic adjustment of the pin to the vicinity of the target boundary, saving time in circuit design, and avoiding errors in pin position caused by manual adjustment. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 A flowchart of a method for quickly placing Pins around a Boundary provided in an embodiment of the present application.
[0011] Figure 2 A schematic diagram of constructing a reference vector for the path.
[0012] Figure 3 A diagram showing that the endpoints of a wire / path may be outside the target boundary (with four vertices C, D, E, and F).
[0013] Figure 4 This is an exemplary diagram for determining distance for this application. DETAILED DESCRIPTION
[0014] The following will be combined with the drawings in the embodiments of this patent application to clearly describe the technical solutions in the embodiments of this patent application. Obviously, the embodiments described are part of the embodiments of this patent application, not all of the embodiments. Based on the embodiments in this patent application, all other embodiments obtained by ordinary technicians in this field are within the scope of protection of this patent application.
[0015] The terms "first," "second," and the like in the specification and claims of this patent application are used to distinguish similar objects, and are not used to describe a specific order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments of this patent application can be implemented in an order other than that illustrated or described herein, and that the objects distinguished by "first," "second," and the like are generally of the same type, and do not limit the number of objects. For example, the first object can be one or more. In addition, the term "and / or" in the specification and claims indicates at least one of the connected objects, and the character " / " generally indicates that the objects connected are in an "or" relationship.
[0016] Figure 1 A flowchart of a method for quickly placing Pins around Boundary provided in an embodiment of the present application. Figure 1 As shown, it includes:
[0017] S101, determining the pin that needs to be adjusted in the circuit;
[0018] S102. Filter out the Path / Wire with the same Net as the Pin from the corresponding layout;
[0019] S103, calculating the distance between the endpoints of the path / wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the path / wire;
[0020] S104: Based on the endpoint with the shortest distance, determine the endpoint closest to the target boundary, so as to quickly layout the Pin around the target boundary.
[0021] Optionally, the method for quickly placing pins around a boundary further includes: extracting pins in the circuit and displaying the extracted pins to select the pins that need to be adjusted.
[0022] Optionally, the method of quickly placing Pins around a Boundary further includes: adjusting the size of the Path.
[0023] Optionally, adjusting the size of the Path includes:
[0024] Adjust the width and height of the Pin to be equal to the width of the Path / Wire where the Pin is located; and / or
[0025] Adjust the Pin's layer to match the layer where the Pin is located in the Path / Wire.
[0026] In this embodiment, by adjusting the pin size according to the path / wire width, possible DRC problems can be avoided.
[0027] Optionally, calculating the distance between the endpoints of the Path / Wire and the target boundary to select the endpoint with the shortest distance from the endpoints of the Path / Wire includes:
[0028] Determine the vertices of the target boundary and construct a plurality of boundary vectors based on the vertices;
[0029] Based on the plurality of boundary vectors, the endpoint with the shortest distance is selected from the endpoints of the Path / Wire.
[0030] In this embodiment, the boundary vectors may be four vectors constructed by four vertices of the target Boundary, and the four vectors are respectively parallel to four sides of the target Boundary.
[0031] Optionally, the filtering out the endpoint with the shortest distance from the endpoints of the Path / Wire based on the plurality of boundary vectors includes:
[0032] Construct a reference vector based on the endpoints of the Path / Wire;
[0033] The endpoint with the shortest distance is selected from the endpoints of the Path / Wire based on the reference vector and the plurality of edge vectors.
[0034] Optionally, constructing a reference vector based on the endpoints of the Path / Wire includes:
[0035] For the wire, one of its two endpoints is used as a starting point and the other as an end point to construct a reference vector corresponding to the wire;
[0036] For the Path, a reference vector corresponding to the Path is constructed according to the number of its endpoints.
[0037] In the target boundary (with four vertices C, D, E, F), for the path, according to the number of its endpoints, when constructing the reference vector corresponding to the path, for example, if the path has only two endpoints, then one of the two endpoints is used as the starting point and the other as the end point, thereby constructing a corresponding reference vector; when the path has three or more endpoints, a vector can be constructed based on the first two endpoints and the common endpoints adjacent to them. For this reason, when the path has more than or equal to three endpoints, only two vectors need to be constructed. For example, Figure 2 A schematic diagram of constructing a reference vector for the path, such as Figure 2 As shown, when a path has three endpoints (A, Z, B), a reference vector is formed between each of them, and a total of two corresponding reference vectors are constructed. .
[0038] Optionally, the filtering out the endpoint with the shortest distance from the endpoints of the path / wire based on the reference vector and the plurality of edge vectors includes:
[0039] Determining an intersection point between the reference vector and the plurality of edge vectors;
[0040] Based on the intersection, the endpoint with the shortest distance is selected from the endpoints of the Path / Wire.
[0041] Optionally, determining the intersection of the reference vector and the plurality of edge vectors includes:
[0042] Extending the reference vector to obtain an extended reference vector;
[0043] An intersection point between the extended reference vector and the plurality of edge vectors is determined.
[0044] Optionally, determining the intersection of the extended reference vector and the plurality of edge vectors includes:
[0045] Determine the first intersection point of the extended reference vector and some of the edge vectors, and / or the second intersection point of the extended edge vectors obtained by extending the remaining edge vectors, wherein the first intersection point is located between the two endpoints of the partial edge vector, and the second intersection point is located outside any endpoint of the remaining edge vector.
[0046] In this embodiment, the endpoints of the wire / path are not necessarily all located inside the target boundary, and it is also possible that at least one is located outside. For example, Figure 3 A diagram showing that the endpoints of a wire / path may be outside the target boundary (with four vertices C, D, E, and F), such as Figure 3 As shown, A and B are inside, and the other endpoint is outside, so the intersection points are p1 and p2.
[0047] Optionally, the filtering out the endpoint with the shortest distance from the endpoints of the Path / Wire based on the intersection includes:
[0048] The distance between each endpoint of the reference vector and the first intersection point and / or the second intersection point is calculated, and the endpoint of the reference vector corresponding to the shortest distance is selected as the endpoint closest to the target boundary.
[0049] Optionally, calculating the distance between each endpoint of the reference vector and the first intersection point and the second intersection point, and selecting the endpoint of the reference vector corresponding to the shortest distance includes:
[0050] Calculate the distance between each endpoint in the reference vector and the first intersection point and the second intersection point, and sort all the calculated distances to obtain a distance queue, so as to select the endpoint of the reference vector corresponding to the shortest distance based on the distance queue.
[0051] Figure 4 An exemplary diagram for determining distance for this application. Figure 4 As shown, the path has two endpoints A and B, and the two endpoints form a reference vector , forming two intersection points p1 and p2 with the target boundary, calculating the distance between each endpoint in the reference vector and the intersection points p1 and p2, and sorting all the calculated distances to obtain a distance queue, so as to select the endpoint of the reference vector corresponding to the shortest distance based on the distance queue.
[0052] Optionally, determining the endpoint closest to the target boundary based on the endpoint with the shortest distance to quickly place the Pin around the target boundary includes:
[0053] The endpoint closest to the target boundary is used as the target position;
[0054] Move the Pin to the target location to quickly place the Pin around the target boundary.
[0055] See above Figure 4 As shown, based on the above embodiment of the present application, the processing process is briefly as follows:
[0056] 1. Construct vectors based on each point of the target boundary .
[0057] 2. Take the coordinates of the two endpoints of the Path / Wire in the two-dimensional coordinate system, record them as endpoint A (x1, y1) and endpoint B (x2, y2), and construct the reference vector as ; Calculate vector and The intersection of , we get the intersection points P1, P2.
[0058] 3. According to the Pythagorean theorem, calculate the distances of points A and B from points P1 and P2 respectively. By comparing them, we can determine whether the closest point to P1 or P2 is endpoint A or endpoint B. The shortest distance is recorded as L. n .
[0059] 4. Repeat steps 2 and 3 to obtain L1, L2, L3…L n , sort and take the minimum value as L min , and then we can get the endpoint closest to the boundary, denoted as P.
[0060] An embodiment of the present application provides an electronic device, comprising a memory and a processor. The memory stores computer-executable instructions. When the computer-executable instructions are executed by the processor, the following steps are performed:
[0061] Determine the pin that needs to be adjusted in the circuit;
[0062] Filter out the Path / Wire with the same Net as the Pin from the corresponding layout;
[0063] Calculate the distance between the endpoints of the Path / Wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the Path / Wire;
[0064] Based on the endpoint with the shortest distance, the endpoint closest to the target boundary is determined to quickly layout the Pin around the target boundary.
[0065] For the steps of the above electronic device embodiment, exemplary explanations can be found in the above Figure 1 Records of.
[0066] An embodiment of the present application provides a computer program product storing computer-executable instructions. When the computer-executable instructions are executed, the following steps are performed:
[0067] Determine the pin that needs to be adjusted in the circuit;
[0068] Filter out the Path / Wire with the same Net as the Pin from the corresponding layout;
[0069] Calculate the distance between the endpoints of the Path / Wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the Path / Wire;
[0070] Based on the endpoint with the shortest distance, the endpoint closest to the target boundary is determined to quickly layout the Pin around the target boundary.
[0071] For exemplary explanations of the steps of the above computer program product embodiment, please refer to the above Figure 1 Records of.
[0072] Based on the above Figure 1 The embodiment provides a method for quickly placing pins around a boundary. Some steps can be optimized or omitted. To this end, another method for quickly placing pins around a boundary is provided, which includes:
[0073] Filter out the paths / wires with the same net as the pins that need to be adjusted from the layout corresponding to the pins in the circuit;
[0074] Calculate the distance between the endpoints of the Path / Wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the Path / Wire;
[0075] Based on the endpoint with the shortest distance, the Pin is quickly placed around the target Boundary.
[0076] Based on the endpoint with the shortest distance, the Pin is quickly placed around the target boundary. For example, this may include: based on the endpoint with the shortest distance, determining the endpoint closest to the target boundary, so as to quickly place the Pin around the target boundary.
[0077] For an exemplary description of the relevant steps in this embodiment, please refer to the above Figure 1 Description of Examples.
[0078] The embodiment of the present application further provides a device for quickly placing Pins around a boundary, comprising:
[0079] The first unit is used to determine the pin that needs to be adjusted in the circuit;
[0080] The second unit is used to filter out the Path / Wire with the same Net as the Pin from the corresponding layout;
[0081] The third unit is configured to calculate the distance between the endpoints of the path / wire and the target boundary, so as to select the endpoint with the shortest distance from the endpoints of the path / wire;
[0082] The fourth unit is used to determine the endpoint closest to the target Boundary based on the endpoint with the shortest distance, so as to quickly place the Pin around the target Boundary. Figure 1 Description.
[0083] The embodiments of the present patent application are described above in conjunction with the accompanying drawings, but the present patent application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this patent application, ordinary technicians in this field can also make many forms without departing from the purpose of this patent application and the scope of protection of the claims, all of which fall within the scope of protection of this patent application.
Claims
1. A method for quickly placing Pins around a boundary, characterized in that: include: Determine the pin that needs to be adjusted in the circuit; Filter out the Path / Wire with the same Net as the Pin from the corresponding layout; Determine the vertices of the target boundary and construct several boundary vectors based on the vertices; For the wire, one of its two endpoints is used as the starting point and the other as the end point to construct a reference vector corresponding to the wire; For the Path, construct a reference vector corresponding to the Path according to the number of its endpoints; Filtering out an endpoint with the shortest distance from endpoints of the Path / Wire based on the reference vector and the plurality of boundary vectors; Based on the endpoint with the shortest distance, the endpoint closest to the target boundary is determined to quickly layout the Pin around the target boundary.
2. The method for quickly placing Pins around a boundary according to claim 1, characterized in that: The method for quickly placing pins around the boundary further includes: extracting pins in the circuit and displaying the extracted pins to select the pins that need to be adjusted.
3. The method for quickly placing Pins around a boundary according to claim 1, characterized in that: The method for quickly laying out the Pins around the Boundary further includes: adjusting the size of the Path and / or the layout.
4. The method for quickly placing Pins around a boundary according to claim 3, characterized in that: The selecting the endpoint with the shortest distance from the endpoints of the path / wire based on the reference vector and the plurality of boundary vectors includes: Determining an intersection point between the reference vector and the plurality of boundary vectors; Based on the intersection, the endpoint with the shortest distance is selected from the endpoints of the Path / Wire.
5. The method for quickly placing Pins around a boundary according to claim 4, characterized in that: Determining the intersection of the reference vector and the plurality of boundary vectors includes: Extending the reference vector to obtain an extended reference vector; An intersection point between the extended reference vector and the plurality of boundary vectors is determined.
6. The method for quickly placing Pins around a boundary according to claim 5, characterized in that: Determining the intersection of the extended reference vector and the plurality of boundary vectors includes: Determine a first intersection point between the extended reference vector and some of the boundary vectors, and / or a second intersection point between the extended boundary vectors obtained by extending the remaining boundary vectors, wherein the first intersection point is located between the two endpoints of the partial boundary vector, and the second intersection point is located outside any endpoint of the remaining boundary vector.
7. The method for quickly placing Pins around a boundary according to claim 6, characterized in that: The step of selecting the endpoint with the shortest distance from the endpoints of the Path / Wire based on the intersection includes: The distance between each endpoint of the reference vector and the first intersection point and / or the second intersection point is calculated, and the endpoint of the reference vector corresponding to the shortest distance is selected as the endpoint closest to the target boundary.
8. The method for quickly placing Pins around a boundary according to claim 7, characterized in that: The step of calculating the distance between each endpoint of the reference vector and the first intersection point and the second intersection point, and selecting the endpoint of the reference vector corresponding to the shortest distance, includes: Calculate the distance between each endpoint in the reference vector and the first intersection point and the second intersection point, and sort all the calculated distances to obtain a distance queue, so as to select the endpoint of the reference vector corresponding to the shortest distance based on the distance queue.
9. The method for quickly placing Pins around a boundary according to claim 8, characterized in that: The determining, based on the endpoint with the shortest distance, the endpoint closest to the target boundary, so as to quickly place the pin around the target boundary, includes: The endpoint closest to the target boundary is used as the target position; Move the Pin to the target location to quickly place the Pin around the target boundary.
Citation Information
Patent Citations
Method for adjusting path angle in layout, computer storage medium and electronic equipment
CN114092599A
Method for placing pins in integrated circuit layout design
CN115983183A