A unit edge violation elimination method, device, storage medium and electronic equipment
Patent Information
- Application Number
- CN202310229833.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-10
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2043-03-10
AI Technical Summary
以往的处理方式是将其嵌入Abacus算法的流程当中,在放置单元时需要考虑该位置是否违反Cell Context违规,往往会导致时间和位移上的增加
[0014]本公开的单元边缘违规消除方法,通过以当前违规单元为中心创建一个窗口;在所述窗口内对所述当前违规单元进行移动,得到所述当前违规单元移动后的新位置;在所述新位置对所述当前违规单元进行DRC规则检查,得到所述DRC规则检查结果;根据所述DRC规则检查结果将所述当前违规单元与所述窗口内符合DRC规则的单元进行交换;当所述当前违规单元与所述窗口内符合DRC规则的单元交换后,若所述当前违规单元符合DRC规则,结束所述当前违规单元在所述窗口内合法位置搜寻,否则,扩大所述窗口范围进行下一轮次的窗口内合法位置搜寻。能够通过采用可变窗口规定违规单元移动和交换范围,能够解决违规单元边缘违规的同时优化线长、时间和位移,为后续集成电路布线等环节奠定良好的基础。
Smart Images

Figure CN116502593B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of automatic design technology for physical design of very large-scale integrated circuits (VLSI), and specifically relates to a method, apparatus, storage medium and electronic device for eliminating cell edge violations, and more specifically to a method, apparatus, storage medium and electronic device for eliminating cell edge violations based on searching for legal positions within a window. Background Technology
[0002] As chip nodes continue to shrink and chip integration increases, the number of circuit design rules and constraints continues to grow, leading to increasingly complex design requirements. In the circuit placement phase, current research, based on new cell specifications and various advanced constraints, has generated new algorithms and frameworks. To meet diverse functional needs, various rules and constraints have emerged in the legalization phase, and handling these constraints has become a hot research topic in recent years. Cell edge violations, as an important rule, require that cells violating edge types cannot be placed adjacently, categorized into horizontal and vertical directions. Previous approaches have embedded this into the Abacus algorithm, requiring consideration of whether the cell location violates Cell Context violations during placement, often resulting in increased time and displacement. To address this issue, we propose a method based on searching for legal positions within a window during the post-legalization phase. Summary of the Invention
[0003] This invention overcomes one of the shortcomings of the prior art and provides a method, apparatus, storage medium and electronic device for eliminating cell edge violations based on searching for legal positions within a window. By using a variable window to define the movement and exchange range of violating cells, it can solve the edge violations of violating cells while optimizing line length, time and displacement, laying a good foundation for subsequent integrated circuit wiring and other processes.
[0004] According to one aspect of this disclosure, a method for eliminating cell edge violations is proposed, the method comprising: Create a window centered on the currently violating unit; The currently violating unit is moved within the window to obtain its new position after movement. Perform a DRC rule check on the current violating unit at the new location to obtain the DRC rule check result; Based on the DRC rule check results, the currently violating unit is swapped with the unit in the window that conforms to the DRC rule; When the currently violating unit is swapped with a unit within the window that conforms to the DRC rule, if the currently violating unit conforms to the DRC rule, the search for the currently violating unit in a legal position within the window ends; otherwise, the window range is expanded for the next round of searching for a legal position within the window.
[0005] In one possible implementation, moving the currently violating unit within the window includes: Within the window, starting from the current location of the violating unit, the current violating unit is moved to the left and right by a preset length, respectively.
[0006] In one possible implementation, the currently violating unit is swapped with a unit within the window that conforms to the DRC rule based on the DRC rule check result, including: If the DRC rule check result is that the DRC rule is not met, the current violating unit is swapped with a unit in the window that meets the DRC rule; otherwise, the new position is taken as a valid position, and the search for the current violating unit in a valid position in the window ends, and the coordinates of the current violating unit are updated.
[0007] In one possible implementation, before swapping the currently violating unit with a unit within the window that conforms to the DRC rule, the following steps are included: Find all cells within the window that conform to the DRC rule, and check the distance between the cells that conform to the DRC rule and the currently violating cell, sorting them from closest to furthest.
[0008] In one possible implementation, swapping the currently violating unit with a unit within the window that conforms to the DRC rule includes: Each time, the currently violating unit is swapped with the nearest unit that conforms to the DRC rule.
[0009] In one possible implementation, the window range is adjusted by the current violation unit coordinates and the number of loop iterations for searching legal positions.
[0010] In one possible implementation, each time the currently violating unit is swapped with the nearest unit that conforms to the DRC rule, it includes: , , , in, This represents the x-coordinate of the currently violating unit. Let x represent the cell whose x-coordinate is closest to cell i that conforms to the DRC rule, and let C represent the set index of all cells that conform to the DRC rule within the window of this round. This represents the difference between the x-coordinate of cell i that conforms to the DRC rule and the x-coordinate of the currently violating cell. This indicates the unit that will ultimately be exchanged for the currently violating unit, and the unit that conforms to the DRC rules. This represents the set of all interchangeable cells that conform to the DRC rules and the cell that is currently violating the rules.
[0011] According to one aspect of this disclosure, a cell edge violation elimination device is provided, the device comprising: Create a module to create a window centered on the currently violating unit; The moving module is used to move the currently violating unit within the window to obtain the new position of the currently violating unit after the move; The DRC rule checking module is used to perform DRC rule checking on the current violating unit at the new location and obtain the DRC rule checking result. The exchange module is used to exchange the currently violating unit with the unit in the window that conforms to the DRC rule based on the DRC rule check result; The location search and judgment module is used to, when the current violating unit is exchanged with a unit in the window that conforms to the DRC rule, if the current violating unit conforms to the DRC rule, end the search for the current violating unit in a legal position in the window; otherwise, expand the window range to conduct the next round of legal position search in the window.
[0012] According to one aspect of this disclosure, a storage medium is provided on which a computer program is stored, characterized in that the program is executed by a processor to implement the above-described method.
[0013] According to one aspect of this disclosure, an electronic device is proposed, comprising: a processor and a memory storing a computer program, the processor being configured to implement the method described above when the computer program is executed.
[0014] This disclosed method for eliminating cell edge violations involves creating a window centered on the currently violating cell; moving the currently violating cell within the window to obtain its new position; performing a DRC rule check on the currently violating cell at its new position to obtain the DRC rule check result; swapping the currently violating cell with a cell within the window that conforms to the DRC rule based on the DRC rule check result; and, if the currently violating cell conforms to the DRC rule after being swapped with a cell within the window, ending the search for a legal position of the currently violating cell within the window if the current violating cell still conforms to the DRC rule, otherwise expanding the window range for the next round of searching for a legal position within the window. By using a variable window to define the movement and swapping range of violating cells, this method can solve edge violations of violating cells while optimizing line length, time, and displacement, laying a solid foundation for subsequent integrated circuit routing and other processes.
[0015] Other optional features and technical effects of the embodiments of the present invention are partly described below and partly apparent from reading this document. Attached Figure Description
[0016] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The elements shown are not limited to the scale shown in the drawings, and the same or similar reference numerals in the drawings denote the same or similar elements, wherein: Figure 1 A flowchart of a method for eliminating cell edge violations according to an embodiment of the present disclosure is shown; Figure 2 A schematic diagram of a unit edge violation elimination device according to an embodiment of the present disclosure is shown; Figure 3 A schematic diagram of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation
[0017] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to specific embodiments and accompanying drawings. Here, the illustrative embodiments and descriptions of this invention are used to explain the invention, but are not intended to limit the invention.
[0018] The term "comprising" and its variations as used herein signify open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "at least partially based on". The terms "one example embodiment" and "one embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0019] Furthermore, the steps illustrated in the flowcharts of the accompanying drawings can be executed in a computer, such as a set of computer-executable instructions. Also, although a logical order is shown in the flowcharts, in some cases the steps shown or described may be performed in a different order than that presented here.
[0020] Figure 1 A flowchart of a cell edge violation removal method according to an embodiment of the present disclosure is shown. This method can be applied in the post-legalization stage to process cell edge violations.
[0021] To resolve violations at the unit edges, the following requirements must be met: In the horizontal direction, adjacent units with left and right edges conforming to the specified type must maintain a certain distance; in the vertical direction, units with upper and lower edges conforming to the specified type and overlapping in the vertical direction must eliminate the vertical overlap; eliminate violations without causing other violations; and choose the option with the smallest possible displacement when exchanging or moving units.
[0022] Specific implementation schemes are as follows: Figure 1 As shown, the method may include: Step S1: Create a window centered on the currently violating unit.
[0023] The window size is adjusted by the coordinates of the current violating unit and the number of search iterations for legal positions; that is, the window size is related to the coordinates of the current violating unit and the number of search iterations for legal positions. If the coordinates of the current violating unit are x and y, the top, bottom, left, and right boundaries of the window created for the current iteration can be defined as follows: , , , , Here, `times` is a marker for the number of valid position search cycles. If a suitable position cannot be found within the window of this valid position search cycle, `times` is incremented; `mult` x and mult y These represent the magnification factor in the horizontal and vertical directions, respectively.
[0024] The search process involves finding a legal location for the currently violating unit within a created window. If a suitable location cannot be found within the window for the current violating unit in this round, the window is expanded for the next round of searching.
[0025] Step S2: Move the currently violating unit within the window to obtain its new position after the move.
[0026] In one example, within the window of that round, starting from the current violating unit's location, the current violating unit is moved left and right by a preset length (e.g., the size can be the length of a site).
[0027] Step S3: Perform DRC rule checks on the current violating unit at the new location to obtain the DRC rule check results.
[0028] During the DRC rule check, the rows within the window are first sorted, and the rows closer to the violating unit are processed first. Among the processed rows, we first try to move them to find a suitable position, and then try to exchange them with other units in the window.
[0029] Within the window range of this round, the principle of prioritizing positions with smaller displacements and movement operations can be used to find a legal new position for the currently violating cell. At each position, it is necessary to check whether the current cell violates the DRC rule and obtain the DRC rule check result to determine whether it conforms to the DRC rule.
[0030] Step S4: Based on the DRC rule check results, swap the currently violating unit with the unit in the window that conforms to the DRC rules.
[0031] In one example, this step may include: if the DRC rule check result is that the DRC rule is not met, then swap the current violating cell with a cell in the window that meets the DRC rule; otherwise, take the new position as the legal position and end the search for the current violating cell in the legal position in the window and update the coordinates of the current violating cell.
[0032] Step S5: When the current violating unit is swapped with a unit in the window that conforms to the DRC rule, if the current violating unit conforms to the DRC rule, the search for the current violating unit in a legal position in the window ends; otherwise, the window range is expanded to perform the next round of searching for a legal position in the window.
[0033] Before swapping the currently violating unit with a unit within the window that conforms to the DRC rule, all units within the window that conform to the DRC rule are searched, and the distance between the currently violating unit and the units that conform to the DRC rule are checked, sorted from closest to furthest. Each time, the currently violating unit is swapped with the nearest unit that conforms to the DRC rule. The process continues until it is determined that the edge violation of the currently violating unit cannot be resolved after swapping with all units within the window, at which point the process exits and proceeds to the next window iteration. The window range is expanded by modifying the legal position search cycle marker `times`.
[0034] Each time the currently violating unit is swapped with the nearest unit that conforms to the DRC rule, the following steps are included: , , , in, This represents the x-coordinate of the currently violating unit. Let x represent the cell whose x-coordinate is closest to cell i that conforms to the DRC rule, and let C represent the set index of all cells that conform to the DRC rule within the window of this round. This represents the difference between the x-coordinate of cell i that conforms to the DRC rule and the x-coordinate of the currently violating cell. This indicates the unit that will ultimately be exchanged for the currently violating unit, and the unit that conforms to the DRC rules. This represents the set of all interchangeable cells that conform to the DRC rules and the cell that is currently violating the rules.
[0035] The cell edge violation elimination method of this invention is a violation processing technique based on a changing window. It can solve all cell edge violations, providing strong support and laying a solid foundation for subsequent processes such as VLSI routing. Compared with the previously used Abacus algorithm, which determines whether a cell violates an edge violation at a certain location before placement, it can achieve a shorter running time.
[0036] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.
[0037] Figure 2 A schematic diagram of a unit edge violation elimination device according to an embodiment of the present disclosure is shown, such as... Figure 2 As shown, the unit edge violation elimination device may include: Create module 201 to create a window centered on the currently violating unit; The moving module 202 is used to move the currently violating unit within the window to obtain the new position of the currently violating unit after the movement; DRC rule checking module 203 is used to perform DRC rule checking on the current violating unit at the new location and obtain the DRC rule checking result; The exchange module 204 is used to exchange the currently violating unit with the unit in the window that conforms to the DRC rule according to the DRC rule check result; The location search and judgment module 205 is used to, when the current violating unit is exchanged with a unit in the window that conforms to the DRC rule, if the current violating unit conforms to the DRC rule, end the search for the current violating unit in the window in a legal position; otherwise, expand the window range to conduct the next round of search for legal positions in the window.
[0038] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0039] In some embodiments, the area power consumption optimization system apparatus for very large-scale integrated circuits can incorporate the area power consumption optimization method features of any embodiment of very large-scale integrated circuits, and vice versa, which will not be elaborated here.
[0040] In an embodiment of the present invention, an electronic device is provided, comprising: a processor and a memory storing a computer program, wherein the processor is configured to perform a method for area and power consumption optimization of a very large-scale integrated circuit according to any embodiment of the present invention when running the computer program.
[0041] Figure 3 The diagram illustrates a method for implementing embodiments of the present invention or an electronic device 1000 for implementing embodiments of the present invention. In some embodiments, it may include more or fewer electronic devices than illustrated. In some embodiments, it may be implemented using a single or multiple electronic devices. In some embodiments, it may be implemented using cloud-based or distributed electronic devices.
[0042] Figure 3 This is a schematic diagram of the structure of the electronic device 10 provided in an embodiment of this application. For example... Figure 3 As shown, the electronic device 1000 includes a processor 1001, which can perform various appropriate operations and processes based on programs and / or data stored in read-only memory (ROM) 1002 or programs and / or data loaded from storage portion 1008 into random access memory (RAM) 1003. The processor 1001 may be a multi-core processor or may contain multiple processors. In some embodiments, the processor 1001 may include a general-purpose main processor and one or more special coprocessors, such as a central processing unit (CPU), graphics processing unit (GPU), neural network processor (NPU), digital signal processor (DSP), etc. Various programs and data required for the operation of the electronic device 1000 are also stored in RAM 1003. The processor 1001, ROM 1002, and RAM 1003 are interconnected via bus 1004. An input / output (I / O) interface 1005 is also connected to bus 1004.
[0043] The processor and memory described above are used together to execute a program stored in the memory. When the program is executed by a computer, it can implement the methods, steps, or functions described in the above embodiments.
[0044] The following components are connected to I / O interface 1005: an input section 1006 including a keyboard, mouse, touchscreen, etc.; an output section 1007 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 1008 including a hard disk, etc.; and a communication section 1009 including a network interface card such as a LAN card, modem, etc. The communication section 1009 performs communication processing via a network such as the Internet. A drive 1010 is also connected to I / O interface 1005 as needed. A removable medium 1011, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on drive 1010 as needed so that computer programs read from it can be installed into storage section 1008 as needed. Figure 3 The diagram only shows a portion of the components and does not imply that the computer system 1000 only includes... Figure 3 The components shown.
[0045] The systems, devices, modules, or units described in the above embodiments can be implemented by a computer or its associated components. The computer may be, for example, a mobile terminal, smartphone, personal computer, laptop computer, in-vehicle human-machine interface device, personal digital assistant, media player, navigation device, game console, tablet computer, wearable device, smart TV, Internet of Things system, smart home, industrial computer, server, or a combination thereof.
[0046] Although not shown, in this embodiment of the invention, a storage medium is provided storing a computer program configured to execute, when run, any file-difference-based compilation method of this embodiment of the invention.
[0047] Storage media in embodiments of the present invention include articles that are permanent and non-permanent, removable and non-removable, capable of storing information by any method or technology. Examples of storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device.
[0048] The methods, programs, systems, apparatuses, etc., in embodiments of the present invention can be executed or implemented in one or more networked computers, or practiced in a distributed computing environment. In the embodiments of this specification, in these distributed computing environments, tasks can be performed by remote processing devices connected via a communication network.
[0049] Those skilled in the art will understand that the embodiments described in this specification can be provided as methods, systems, or computer program products. Therefore, those skilled in the art will realize that the functional modules / units or controllers and related method steps described in the above embodiments can be implemented in software, hardware, or a combination of both.
[0050] Unless explicitly stated otherwise, the actions or steps of the methods and procedures described in the embodiments of the present invention do not necessarily have to be performed in a specific order and can still achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0051] This document describes several embodiments of the present invention; however, for the sake of brevity, the descriptions of the embodiments are not exhaustive, and identical or similar features or parts between the embodiments may be omitted. In this document, "one embodiment," "some embodiments," "example," "specific example," or "some examples" refers to embodiments applicable to at least one, but not all, of the present invention. The above terms do not necessarily refer to the same embodiments or examples. Without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described herein, as well as the features of the different embodiments or examples.
[0052] The exemplary systems and methods of the present invention have been specifically shown and described with reference to the above embodiments, which are merely examples of the best mode for implementing the systems and methods. Those skilled in the art will understand that various changes can be made to the embodiments of the systems and methods described herein without departing from the spirit and scope of the invention as defined in the appended claims when implementing the systems and / or methods.
Claims
1. A method for eliminating violations at the edge of a unit, characterized in that, The method includes: Create a window centered on the currently violating unit; The currently violating unit is moved within the window to obtain its new position after movement. Perform a DRC rule check on the current violating unit at the new location to obtain the DRC rule check result; Based on the DRC rule check results, the currently violating unit is swapped with a unit within the window that conforms to the DRC rules, including: If the DRC rule check result is that the DRC rule is not met, the current violating unit is swapped with a unit in the window that meets the DRC rule; otherwise, the new position is taken as a legal position, and the search for the current violating unit in a legal position in the window ends and the coordinates of the current violating unit are updated. When the currently violating unit is swapped with a unit within the window that conforms to the DRC rule, if the currently violating unit conforms to the DRC rule, the search for the currently violating unit in a legal position within the window ends; otherwise, the window range is expanded for the next round of searching for a legal position within the window.
2. The method for eliminating unit edge violations according to claim 1, characterized in that, Moving the currently violating unit within the window includes: Within the window, starting from the current location of the violating unit, the current violating unit is moved to the left and right by a preset length, respectively.
3. The method for eliminating unit edge violations according to claim 1, characterized in that, Before swapping the currently violating unit with a unit within the window that conforms to the DRC rules, the following steps are included: Find all cells within the window that conform to the DRC rule, and check the distance between the cells that conform to the DRC rule and the currently violating cell, sorting them from closest to furthest.
4. The method for eliminating unit edge violations according to claim 1, characterized in that, Swap the currently violating unit with a unit within the window that conforms to the DRC rules, including: Each time, the currently violating unit is swapped with the nearest unit that conforms to the DRC rule.
5. The method for eliminating unit edge violations according to claim 1, characterized in that, The window range is adjusted by the current coordinates of the violating unit and the number of search cycles for the legal location.
6. A device for eliminating irregularities at the edge of a unit, characterized in that, The device includes: Create a module to create a window centered on the currently violating unit; The moving module is used to move the currently violating unit within the window to obtain the new position of the currently violating unit after the move; The DRC rule checking module is used to perform DRC rule checking on the current violating unit at the new location and obtain the DRC rule checking result. The exchange module is used to exchange the currently violating unit with a unit within the window that conforms to the DRC rule based on the DRC rule check result, including: If the DRC rule check result is that the DRC rule is not met, the current violating unit is swapped with a unit in the window that meets the DRC rule; otherwise, the new position is taken as a legal position, and the search for the current violating unit in a legal position in the window ends and the coordinates of the current violating unit are updated. The location search and judgment module is used to, when the current violating unit is exchanged with a unit in the window that conforms to the DRC rule, if the current violating unit conforms to the DRC rule, end the search for the current violating unit in a legal position in the window; otherwise, expand the window range to conduct the next round of legal position search in the window.
7. A storage medium having a computer program stored thereon, characterized in that, The program is executed by the processor to implement the method as described in any one of claims 1-5.
8. An electronic device, characterized in that, include: A processor and a memory storing a computer program, the processor being configured to implement the method of any one of claims 1-5 when the computer program is executed.
Citation Information
Patent Citations
Hybrid row high-standard unit circuit legalization method considering advanced process constraints
CN111539166A
Method and system for predicting design rule inspection violation difficult to repair
CN114444434A