Method for adjusting path angle in layout, computer storage medium, and electronic device

By capturing and processing layout operation events and automatically adjusting the path angle in the integrated circuit layout, the problems of inefficient and error-prone manual adjustment in the prior art are solved, and more efficient and accurate design is achieved.

CN114092599BActive Publication Date: 2025-02-11SHANGHAI HUADA JIUTIAN INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111427449.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-29
Publication Date
2025-02-11
Estimated Expiration
2041-11-29

AI Technical Summary

Technical Problem

In existing tools, you can only manually drag vertices to change the path angle, which leads to inefficiency and error-prone.

Method used

By capturing operation events in the layout, determine the area to adjust the path and the selected path, select the vertex of the path, obtain the coordinates of the target vertex and the data of the corresponding line segment, and adjust the angle of the latter line segment to set the target angle.

Benefits of technology

Automatic adjustment of path angle is realized, design efficiency is improved, and errors caused by manual operation are avoided.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114092599B_ABST
    Figure CN114092599B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a method for adjusting the angle of a path in a layout, a computer storage medium, and an electronic device, the method comprising: capturing a first operation event in the layout to determine an area in the layout where the path angle is to be adjusted and a selected path in the determined area; capturing a second operation event in the layout to determine multiple selected vertices in the selected path, and assigning a selection mark to each selected vertex; for each of the two vertices of the selected path, based on the corresponding selection marks, selecting one vertex from them one by one as a target vertex; obtaining the coordinates of the target vertex to determine a preceding line segment and a succeeding line segment with the target vertex as a vertex in the layout; keeping the angle and length data of the preceding line segment unchanged, and keeping the length data of the succeeding line segment unchanged, changing the angle data of the succeeding line segment, so that the angle of the succeeding line segment is adjusted to the set target angle, thereby realizing automatic adjustment of the path angle.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of circuit technology, and in particular to a method for adjusting a path angle in a layout, a computer storage medium, and an electronic device. Background Art

[0002] An IC layout is a graphic that contains relevant physical information such as the device type, device size, relative position between devices, and connection relationship between various devices of the integrated circuit. These graphics are composed of graphics located on different drawing layers.

[0003] Integrated circuit layout design refers to mapping the circuit design circuit diagram or circuit description language to the physical description level, so that the designed circuit can be mapped to the wafer for production.

[0004] Integrated circuit layout design includes path design. Path refers to the basic graphics of integrated circuit layout (ICLayout), which is usually used to connect and draw signal lines. The angle of the path will affect the performance of the design. In existing tools, the vertex angle can only be changed by manually dragging the vertex, which is cumbersome and error-prone. Summary of the invention

[0005] The embodiments of the present application provide a method for adjusting a path angle in a layout, a computer storage medium, and an electronic device, so as to overcome or alleviate the above-mentioned technical problems existing in the prior art.

[0006] The technical solution adopted in this application is:

[0007] A method for adjusting a path angle in a layout, comprising:

[0008] Capturing a first operation event in the layout to determine an area in the layout where a path angle adjustment is to be performed and determining a selected path in the area;

[0009] Capturing a second operation event in the layout to determine a plurality of selected vertices in the selected path, and assigning a selected mark to each selected vertex;

[0010] For each of the two vertices of the selected path, one vertex is selected as the target vertex based on the corresponding selection mark;

[0011] Acquire the coordinates of the target vertex to determine a preceding line segment and a succeeding line segment that take the target vertex as a vertex in the layout;

[0012] Acquire the angle and length data of the preceding line segment, and the length and angle data of the succeeding line segment;

[0013] The angle and length data of the preceding line segment are kept unchanged, and the length data of the succeeding line segment is kept unchanged, and the angle data of the succeeding line segment is changed so that the angle of the succeeding line segment is adjusted to a set target angle.

[0014] Optionally, in one embodiment, the capturing of the first operation event in the layout includes: monitoring a selection action of a cursor in the layout, and generating the first operation event in response to the monitored selection action to capture the first operation event.

[0015] Optionally, in one embodiment, the capturing of the first operation event in the layout to determine the area in the layout where the path angle adjustment is to be performed and determining the selected path in the area includes:

[0016] Capturing the first operation event in the layout;

[0017] Determine, according to the captured first operation event, an area in the layout where a path angle adjustment is to be performed;

[0018] According to the path selection event generated in the area where the path angle adjustment is to be performed, the selected path in the area is determined.

[0019] Optionally, in one embodiment, capturing the second operation event in the layout includes: monitoring a click action of a cursor in the layout, and generating the second operation event in response to the monitored click action to capture the second operation event.

[0020] Optionally, in one embodiment, vertex drawing log data is obtained, the vertex log data is parsed, and the drawing order of two vertices of each selected path is determined according to the parsed result;

[0021] The method selects one vertex from each of the two vertices of each selected path as the target vertex based on the corresponding selection mark, including: for each of the two vertices of the selected path, based on the corresponding selection mark, according to the order of drawing, selects the vertex drawn first as the target vertex.

[0022] Optionally, in one embodiment, maintaining the angle and length data of the preceding line segment unchanged, maintaining the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to a set target angle, includes: maintaining the angle and length data of the preceding line segment unchanged, and maintaining the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to the set target angle along a direction smaller than a preset angle.

[0023] Optionally, in one embodiment, the preset angle is 180 degrees.

[0024] Optionally, in one embodiment, the method further includes: obtaining grid capture configuration data, determining whether grid capture is turned on based on the grid capture configuration data, and if turned on, adjusting the angle of the subsequent line segment to a set target angle, aligning the subsequently drawn vertex with the nearest grid vertex position.

[0025] Optionally, in one embodiment, after adjusting the angle of the subsequent line segment to the set target angle, the method further includes: determining whether the adjusted path is self-intersecting; if so, generating an error message, and restoring the self-intersecting path to the angle before adjustment.

[0026] A computer storage medium having a computer executable program stored thereon, wherein the computer executable program is executed to implement any method described in the embodiments of the present application.

[0027] An electronic device comprises a memory and a processor, wherein the memory is used to store a computer executable program, and the processor is used to run the computer executable program to implement any method described in the embodiments of the present application.

[0028] In the technical solution of the embodiment of the present application, the first operation event in the layout is captured to determine the area in the layout where the path angle adjustment is to be performed and the selected path in the area is determined; the second operation event in the layout is captured to determine multiple selected vertices in the selected path, and a selection mark is assigned to each selected vertex; for each of the two vertices of the selected path, one vertex is selected one by one as the target vertex based on the corresponding selection mark; the coordinates of the target vertex are obtained to determine the preceding line segment and the succeeding line segment that take the target vertex as the vertex in the layout; the angle and length data of the preceding line segment, as well as the length and angle data of the succeeding line segment are obtained; the angle and length data of the preceding line segment are kept unchanged, as well as the length data of the succeeding line segment, and the angle data of the succeeding line segment is changed so that the angle of the succeeding line segment is adjusted to the set target angle, thereby realizing automatic adjustment of the path angle and avoiding the problems of inefficiency and easy errors caused by manually dragging vertices to change the path angle. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] Figure 1 This is a schematic diagram of a method for adjusting the path angle in a layout according to an embodiment of the present application;

[0030] Figure 2This is a schematic diagram of the structure of a device for adjusting the path angle in a layout of an embodiment of the present application;

[0031] Figure 3 This is a schematic diagram of the structure of an electronic device according to an embodiment of the present application;

[0032] Figure 4A This is a schematic diagram of the angle of the path before applying the method of the embodiment of the present application;

[0033] Figure 4B This is a schematic diagram of the angle of the path after applying the method of the embodiment of the present application. DETAILED DESCRIPTION

[0034] In order to make the technical problems, technical solutions and advantages to be solved by the present application clearer, a detailed description will be given below with reference to the accompanying drawings and specific embodiments.

[0035] In the technical solution of the embodiment of the present application, the first operation event in the layout is captured to determine the area in the layout where the path angle adjustment is to be performed and the selected path in the area is determined; the second operation event in the layout is captured to determine multiple selected vertices in the selected path, and a selection mark is assigned to each selected vertex; for each of the two vertices of the selected path, one vertex is selected one by one as the target vertex based on the corresponding selection mark; the coordinates of the target vertex are obtained to determine the preceding line segment and the succeeding line segment that take the target vertex as the vertex in the layout; the angle and length data of the preceding line segment, as well as the length and angle data of the succeeding line segment are obtained; the angle and length data of the preceding line segment are kept unchanged, as well as the length data of the succeeding line segment, and the angle data of the succeeding line segment is changed so that the angle of the succeeding line segment is adjusted to the set target angle, thereby realizing automatic adjustment of the path angle and avoiding the problems of inefficiency and easy errors caused by manually dragging vertices to change the path angle.

[0036] The solution of the following embodiment is to optimize the path angle of the layout after the layout is preliminarily designed using design software.

[0037] Figure 1 This is a schematic diagram of a method for adjusting the path angle in a layout according to an embodiment of the present application; Figure 1 Said, it includes:

[0038] S101, capturing a first operation event in a layout to determine an area in the layout where a path angle adjustment is to be performed and determining a selected path in the area;

[0039] Optionally, in this embodiment, capturing the first operation event in the layout includes: monitoring a selection action of a cursor in the layout, and generating the first operation event in response to the monitored selection action to capture the first operation event.

[0040] In this embodiment, the first operation event can be captured quickly and accurately by monitoring the selection action of the cursor in the layout. The selection action of the cursor can be operated by the user or automatically implemented by a script.

[0041] In this embodiment, the cursor may be controlled by a mouse or by a touch screen.

[0042] In this embodiment, the frame selection action may be any action that can delimit a certain area, such as realizing frame selection by using the diagonal vertex positions, or realizing frame selection by continuously drawing a certain range.

[0043] Optionally, in this embodiment, the capturing of the first operation event in the layout to determine the area in the layout where the path angle adjustment is to be performed and determining the selected path in the area includes:

[0044] Capturing the first operation event in the layout;

[0045] Determine, according to the captured first operation event, an area in the layout where a path angle adjustment is to be performed;

[0046] According to the path selection event generated in the area where the path angle adjustment is to be performed, the selected path in the area is determined.

[0047] In this embodiment, the first operation event can be used to determine the area in the entire layout that requires path angle adjustment, while for the area that does not require the adjustment, there is no need to capture the first operation event, thereby improving the speed and efficiency of layout adjustment, reducing the amount of data processing, and improving data processing efficiency.

[0048] In this embodiment, the above description of step S101 is only an example and is not intended to be exclusive. In fact, for those skilled in the art, it is possible to indicate the area in the publication diagram where the path angle is to be adjusted without relying on the cursor or the frame selection action.

[0049] S102, capturing a second operation event in the layout to determine a plurality of selected vertices in the selected path, and assigning a selected mark to each selected vertex;

[0050] Optionally, in this embodiment, capturing the second operation event in the layout includes: monitoring a click action of a cursor in the layout, and generating the second operation event in response to the monitored click action to capture the second operation event.

[0051] In this embodiment, the click action of the cursor in the layout can be realized by the designer through mouse operation, or can be realized by the designer touching the cursor displayed on the display screen.

[0052] In addition, in this embodiment, monitoring the click action of the cursor in the layout is only one way to generate the second operation event, and is not limited to a unique way.

[0053] S103, for each of the two vertices of the selected path, based on the corresponding selection mark, one vertex is selected one by one as the target vertex;

[0054] The method selects one vertex from each of the two vertices of each selected path as the target vertex based on the corresponding selection mark, including: for each of the two vertices of the selected path, based on the corresponding selection mark, according to the order of drawing, selects the vertex drawn first as the target vertex.

[0055] Optionally, in this embodiment, it also includes: obtaining vertex drawing log data, parsing the vertex log data, and determining the drawing order of two vertices of each selected path according to the result of the parsing; the processing step of the vertex log data here can be performed in step S103, or before step S103, such as further performed before step S101.

[0056] Here, drawing the vertex log data based on the vertex is only one possible way to determine the drawing order of the vertices, and those skilled in the art may also determine the drawing order in other ways.

[0057] In this embodiment, for all paths in the area where the path angle adjustment is to be performed, if two paths are connected together, the last vertex of the previous path is the first vertex of the latter path. Therefore, by selecting the first drawn vertex as the target vertex for the two vertices of each selected path based on the corresponding selection mark and in the order of drawing, the angle of each path that needs to be adjusted can be automatically adjusted one by one, thereby improving the efficiency and accuracy of the angle adjustment.

[0058] S104, obtaining the coordinates of the target vertex to determine a preceding line segment and a succeeding line segment that take the target vertex as a vertex in the layout;

[0059] In this embodiment, for the previous line segment (i.e., the previous path), the target vertex is the last vertex, and for the next line segment (i.e., the next path), the target vertex is the first vertex. Therefore, based on this relationship, the next line segment is directly taken as the object to be directly processed to quickly adjust the angle.

[0060] S105, obtaining the angle and length data of the preceding line segment, and the length and angle data of the succeeding line segment;

[0061] In this embodiment, the coordinates of the target vertex can be obtained from the vertex drawing log data. Of course, obtaining from the vertex drawing log data here is only an example and is not a unique limitation.

[0062] In other embodiments, during the vertex drawing process, all data to be used in the embodiments of the present application, such as the coordinates of the target vertex, the angle and length data of each path, can be stored separately so that they can be quickly obtained when used, thereby improving the speed and efficiency of the method execution and facilitating fast and accurate angle adjustment.

[0063] S106: Keep the angle and length data of the previous line segment unchanged, keep the length data of the next line segment unchanged, and change the angle data of the next line segment so that the angle of the next line segment is adjusted to the set target angle.

[0064] Optionally, in the present embodiment, the maintaining the angle and length data of the preceding line segment unchanged, and maintaining the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to a set target angle, includes: maintaining the angle and length data of the preceding line segment unchanged, and maintaining the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to the set target angle along a direction smaller than a preset angle.

[0065] Optionally, in this embodiment, the preset angle is 180 degrees, so as to quickly adjust to the target angle.

[0066] Optionally, in this embodiment, the method also includes: obtaining grid capture configuration data, determining whether grid capture is turned on based on the grid capture configuration data, and if it is turned on, adjusting the angle of the subsequent line segment to a set target angle, and aligning the subsequently drawn vertex with the nearest grid vertex position.

[0067] In this embodiment, when changing the angle data of the subsequent line segment, the position of the target vertex is kept unchanged, that is, its coordinates do not change. Therefore, when changing the angle data of the subsequent line segment, the coordinates of another vertex of the subsequent line segment will change with the change of the angle of the subsequent line segment. Therefore, based on the above-mentioned grid capture configuration data, alignment with the grid vertex position can be achieved, thereby ensuring the accuracy of the layout.

[0068] Optionally, in this embodiment, for example, if the value of the grid capture configuration data is 1, it indicates that it is turned on, otherwise it indicates that it is not turned on, or it is also called closed.

[0069] Optionally, in this embodiment, after adjusting the angle of the subsequent line segment to the set target angle, it includes: determining whether the adjusted path is self-intersecting, if so, generating an error message, and restoring the self-intersecting path to the angle before adjustment.

[0070] In this embodiment, when executing the above method, steps S103-S106 may be executed in parallel with a single path as a reference, or traversed with respect to a single path and executed sequentially.

[0071] Figure 2 Schematic diagram of the structure of a device for adjusting the path angle in a layout of an embodiment of the present application; Figure 2 Said, it includes:

[0072] A first capturing unit 201 is used to capture a first operation event in the layout to determine an area in the layout where a path angle adjustment is to be performed and to determine a selected path in the area;

[0073] A second capturing unit 202 is used to capture a second operation event in the layout to determine a plurality of selected vertices in the selected path, and assign a selected mark to each selected vertex;

[0074] A vertex marking unit 203, for selecting one vertex from each of the two vertices of each selected path as a target vertex based on the corresponding selection mark;

[0075] A coordinate acquisition unit 204 is used to acquire the coordinates of the target vertex to determine a preceding line segment and a succeeding line segment that take the target vertex as a vertex in the layout;

[0076] A data acquisition unit 205 acquires the angle and length data of the preceding line segment, and the length and angle data of the succeeding line segment;

[0077] The angle adjustment unit 206 is used to keep the angle and length data of the previous line segment unchanged, keep the length data of the next line segment unchanged, and change the angle data of the next line segment so that the angle of the next line segment is adjusted to a set target angle.

[0078] Optionally, in this embodiment, the first capturing unit 201 is specifically used to: monitor the selection action of the cursor in the layout, and generate the first operation event in response to the monitored selection action to capture the first operation event.

[0079] Optionally, in this embodiment, the first capturing unit 201 is specifically used for:

[0080] Capturing the first operation event in the layout;

[0081] Determine, according to the captured first operation event, an area in the layout where a path angle adjustment is to be performed;

[0082] According to the path selection event generated in the area where the path angle adjustment is to be performed, the selected path in the area is determined.

[0083] Optionally, in this embodiment, the second capturing unit 202 is specifically used to: monitor a click action of the cursor in the layout, and generate the second operation event in response to the monitored click action to capture the second operation event.

[0084] Optionally, in this embodiment, the vertex marking unit 203 is further used to: obtain vertex drawing log data, parse the vertex log data, and determine the drawing order of two vertices of each selected path according to the parsing result;

[0085] The vertex marking unit 203 is further specifically configured to: for each of the two vertices of the selected path, based on the corresponding selection marks and in accordance with the order of drawing, select the vertex drawn first as the target vertex.

[0086] Optionally, in this embodiment, the coordinate acquisition unit 204 is specifically used to: keep the angle and length data of the previous line segment unchanged, and keep the length data of the next line segment unchanged, change the angle data of the next line segment, so that the angle of the next line segment is adjusted to the set target angle along a direction less than the preset angle.

[0087] Optionally, in this embodiment, the preset angle is 180 degrees.

[0088] Optionally, in this embodiment, the device also includes a configuration data acquisition unit, which is used to: obtain grid capture configuration data, determine whether grid capture is turned on based on the grid capture configuration data, and if it is turned on, adjust the angle of the subsequent line segment to a set target angle, and align the subsequently drawn vertex with the nearest grid vertex position.

[0089] Optionally, in this embodiment, the device also includes a self-intersection judgment unit, which is used to judge whether the adjusted path self-intersects after the angle of the subsequent line segment is adjusted to the set target angle. If it self-intersects, an error message is generated and the self-intersecting path is restored to the angle before adjustment.

[0090] An embodiment of the present application provides a computer storage medium, on which a computer executable program is stored. The computer executable program is executed to implement any method described in the embodiments of the present application.

[0091] Figure 3 Schematic diagram of the structure of the electronic device of the present application embodiment; Figure 3 As shown, the electronic device includes a memory 301 and a processor 302, the memory is used to store a computer executable program, and the processor is used to run the computer executable program to implement any method described in the embodiments of the present application.

[0092] Figure 4A This is a schematic diagram of the angle of the path before applying the method of the embodiment of the present application; Figure 4B This is a schematic diagram of the angle of the path after applying the method of the embodiment of the present application; see Figure 4A and Figure 4B , for the path below and the path on the upper right, the corresponding angles have changed, which is equivalent to achieving layout optimization. Figure 4A , 4B The middle horizontal line is used to display the X-axis in the coordinate system of the drawing area.

[0093] The above-described embodiments are only specific implementation methods of the present application, which are used to illustrate the technical solutions of the present application, rather than to limit them. The protection scope of the present application is not limited thereto. Although the present application is described in detail with reference to the above-described embodiments, ordinary technicians in the field should understand that any technician familiar with the technical field can still modify the technical solutions recorded in the above-described embodiments within the technical scope disclosed in the present application, or can easily think of changes, or make equivalent replacements for some of the technical features therein; and these modifications, changes or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims

1. A method for adjusting the path angle in a layout, characterized in that: include: Capturing a first operation event in the layout to determine an area in the layout where a path angle adjustment is to be performed and determining a selected path in the area; Capturing a second operation event in the layout to determine a plurality of selected vertices in the selected path, and assigning a selected mark to each selected vertex; For each of the two vertices of the selected path, one vertex is selected as the target vertex based on the corresponding selection mark; Acquire the coordinates of the target vertex to determine a preceding line segment and a succeeding line segment that take the target vertex as a vertex in the layout; For the first line segment, the target vertex is the last vertex, and for the second line segment, the target vertex is the first vertex. Based on this relationship, the second line segment is directly processed to quickly adjust the angle. Acquire the angle and length data of the preceding line segment, and the length and angle data of the succeeding line segment; Keeping the angle and length data of the preceding line segment unchanged, and keeping the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment, so that the angle of the succeeding line segment is adjusted to a set target angle; The method further comprises: obtaining grid capture configuration data, determining whether grid capture is enabled according to the grid capture configuration data, and if enabled, aligning the later drawn vertex with the nearest grid vertex position when adjusting the angle of the later line segment to a set target angle; When the angle data of the latter line segment is changed, the coordinates of another vertex of the latter line segment will change as the angle of the latter line segment changes, and alignment with the grid vertex position is achieved based on the above-mentioned grid capture configuration data.

2. The method according to claim 1, characterized in that The capturing of the first operation event in the layout includes: monitoring a selection action of a cursor in the layout, and generating the first operation event in response to the monitored selection action, so as to capture the first operation event.

3. The method according to claim 1, characterized in that The capturing of the first operation event in the layout to determine the area in the layout where the path angle adjustment is to be performed and determining the selected path in the area includes: Capturing the first operation event in the layout; Determine, according to the captured first operation event, an area in the layout where a path angle adjustment is to be performed; According to the path selection event generated in the area where the path angle adjustment is to be performed, a selected path in the area is determined.

4. The method according to claim 1, characterized in that: The capturing of the second operation event in the layout includes: monitoring a click action of a cursor in the layout, and generating the second operation event in response to the monitored click action, so as to capture the second operation event.

5. The method according to claim 1, characterized in that include: Acquire vertex drawing log data, parse the vertex drawing log data, and determine the drawing order of two vertices of each selected path according to the parsing result; The method selects one vertex from each of the two vertices of each selected path as the target vertex based on the corresponding selection mark, including: for each of the two vertices of the selected path, based on the corresponding selection mark, according to the order of drawing, selects the vertex drawn first as the target vertex.

6. The method according to any one of claims 1 to 5, characterized in that: The method of keeping the angle and length data of the preceding line segment unchanged, keeping the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to a set target angle includes: keeping the angle and length data of the preceding line segment unchanged, and keeping the length data of the succeeding line segment unchanged, and changing the angle data of the succeeding line segment so that the angle of the succeeding line segment is adjusted to a set target angle along a direction smaller than a preset angle.

7. The method according to claim 6, characterized in that The preset angle is 180 degrees.

8. The method according to claim 7, characterized in that After the angle of the subsequent line segment is adjusted to the set target angle, the method includes: determining whether the adjusted path is self-intersecting, and if so, generating an error message, and restoring the self-intersecting path to the angle before the adjustment.

9. A computer storage medium, characterized in that The computer storage medium stores a computer executable program, and the computer executable program is run to implement any one of the methods of claims 1-8.

10. An electronic device, characterized in that: The electronic device comprises a memory and a processor, wherein the memory is used to store a computer executable program, and the processor is used to run the computer executable program to implement any one of the methods of claims 1-8.

Citation Information

Patent Citations

  • Computer readable recording medium with a wiring design program stored thereon and wiring design device

    US20080301617A1