An automatic punching method and device for integrated circuits based on R-tree MBR algorithm
By automating the determination of the drilling area of integrated circuits using the R-tree MBR algorithm, the problem of low efficiency in manual drilling in integrated circuit design is solved, resulting in a more efficient design process and a shorter time to market.
Patent Information
- Application Number
- CN202111512370.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-08
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2041-12-08
AI Technical Summary
In the current integrated circuit design process, the drilling operation needs to be completed manually, which has a low degree of automation, resulting in high design costs and long cycles.
An automatic hole-punching method for integrated circuits based on the R-tree MBR algorithm is adopted. By spatially indexing each generated metal rectangle, the overlapping area with the adjacent layer is determined, and the hole is automatically punched according to the DRC rule.
It has increased the automation level of integrated circuit design, shortened the time to market for circuit products, and improved design efficiency.
Smart Images

Figure CN114186526B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of integrated circuit technology, and in particular to an automatic drilling method and apparatus for integrated circuits based on the R-tree MBR algorithm. Background Technology
[0002] Integrated circuit design is costly and time-consuming. Developing a single chip often requires hundreds of specialized integrated circuit engineers and takes a year or even longer. This is because the current integrated circuit design process is lengthy. For example, for digital integrated circuits, it requires RTL design, RTL synthesis, placement and clock tree synthesis, and routing. Each step requires the involvement of specialized engineers. For instance, the vias currently used in the industry are added manually by professionals, resulting in low automation and inefficiency. Summary of the Invention
[0003] This application aims to at least partially address one of the technical problems in the related art.
[0004] Therefore, the first objective of this application is to propose an automatic drilling method for integrated circuits based on the R-tree MBR algorithm, in order to solve the technical problems of low automation and low efficiency in the current process of drilling integrated circuits, which requires manual drilling.
[0005] The second objective of this application is to propose an automatic punching device for integrated circuits based on the R-tree MBR algorithm.
[0006] The third objective of this application is to propose a terminal.
[0007] The fourth objective of this application is to provide a non-transitory computer-readable storage medium.
[0008] The fifth objective of this application is to provide a computer program product.
[0009] To achieve the above objectives, the first aspect of this application proposes an automatic hole-punching method for integrated circuits based on the R-tree MBR algorithm, comprising:
[0010] Spatial indexing is performed on each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of the adjacent layer;
[0011] Ensure that all overlapping areas pass the DRC rule check;
[0012] Automatic drilling is performed on the integrated circuit based on the overlapping areas checked by the DRC rules.
[0013] Optionally, in one embodiment of this application, ensuring that all overlapping regions pass the DRC rule check includes:
[0014] Merge overlapping, contained, and adjacent regions;
[0015] If the number of overlapping areas is determined to be no greater than the preset minimum number of through holes, an error is reported and the overlapping areas are redefined.
[0016] If the spacing between the overlapping areas is not less than a preset first spacing, an error is reported and the overlapping areas are redefined.
[0017] The distance between the overlapping area and the metal layer is determined to be no less than a preset second distance. If it is less than the preset second distance, an error is reported and the overlapping area is redefined.
[0018] Optionally, in one embodiment of this application, determining that the spacing between the overlapping regions is not less than a preset first spacing, and if it is less than the preset first spacing, reporting an error and re-determining the overlapping regions, includes:
[0019] When performing integrated circuit wiring, if the spacing between the overlapping areas is less than a preset first spacing, and the overlapping areas belong to the same wiring, then the overlapping areas are merged using the minimum bounding rectangle.
[0020] If the overlapping areas do not belong to the same wiring or if the merging of the overlapping areas fails when performing the minimum bounding rectangle merging, an error will be reported and the overlapping areas will be re-determined.
[0021] Optionally, in one embodiment of this application, determining that the distance between the overlapping region and the metal layer is not less than a preset second distance, and if it is less than the preset second distance, reporting an error and re-determining the overlapping region, includes:
[0022] When performing integrated circuit wiring, if the spacing between the overlapping area and the metal layer is less than a preset second spacing, the overlapping area is expanded until the spacing between the overlapping area and the metal layer is not less than the preset second spacing.
[0023] If the expansion fails, an error will be reported and the overlapping area will be redefined.
[0024] Optionally, in one embodiment of this application, before spatially indexing each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers, the method further includes:
[0025] Save each generated metal rectangle and add it to the spatial index of the R-tree.
[0026] Optionally, in one embodiment of this application, the overlapping region includes:
[0027] When laying out integrated circuits, the overlapping area between the metal rectangles formed by devices and the metal rectangles formed by devices in adjacent layers; and,
[0028] When routing integrated circuits, the metal rectangle formed during the routing process overlaps with the metal rectangle formed by devices in adjacent layers, or with the metal rectangle formed during the routing process of adjacent layers.
[0029] In summary, the method proposed in the first aspect of this application determines the overlapping area between each generated metal rectangle and the metal rectangles of adjacent layers by performing spatial indexing on each generated metal rectangle; ensures that all overlapping areas pass the DRC rule check; and automatically drills vias into the integrated circuit based on the overlapping areas that pass the DRC rule check. This application, through spatial indexing, can automatically retrieve overlapping areas that meet the conditions, and then automatically drill vias into the overlapping areas according to the DRC rules, thereby improving circuit design efficiency and shortening the time to market for circuit products.
[0030] To achieve the above objectives, a second aspect of this application provides an automatic drilling device for integrated circuits based on the R-tree MBR algorithm, comprising:
[0031] The determination module is used to perform spatial indexing on each generated metal rectangle and determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers.
[0032] The inspection module is used to ensure that all overlapping areas pass the DRC rule check;
[0033] The punching module is used to automatically punch holes in the integrated circuit according to the overlapping areas checked by the DRC rules.
[0034] In summary, the apparatus proposed in the second aspect of this application uses a determining module to spatially index each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers; an checking module ensures that all overlapping areas pass the DRC rule check; and a punching module automatically punches holes in the integrated circuit based on the overlapping areas that have passed the DRC rule check. This application, through spatial indexing, can automatically retrieve overlapping areas that meet the conditions, and then automatically punch holes in the overlapping areas according to the DRC rules, thereby improving circuit design efficiency and shortening the time to market for circuit products.
[0035] To achieve the above objectives, a third aspect of this application provides a terminal, comprising:
[0036] At least one processor; and
[0037] A memory communicatively connected to the at least one processor; wherein,
[0038] The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method described in any one of the preceding aspects.
[0039] To achieve the above objectives, a fourth aspect of this application provides a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to perform the method described in any one of the preceding aspects.
[0040] To achieve the above objectives, a fifth aspect of this application provides a computer program product including a computer program that, when executed by a processor, implements the method described in any one of the preceding aspects.
[0041] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description
[0042] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein:
[0043] Figure 1 A flowchart illustrating an automatic hole-punching method for integrated circuits based on the R-tree MBR algorithm, provided for embodiments of this application;
[0044] Figure 2 This is a schematic diagram illustrating the process of automatic hole punching under DRC rule requirements provided in an embodiment of this application.
[0045] Figure 3 This is a schematic diagram of the layout for fully automated MOSFET punching provided in an embodiment of this application;
[0046] Figure 4 This is a schematic diagram of the VCO fully automatic drilling layout provided in an embodiment of this application;
[0047] Figure 5 This is a schematic diagram of the layout of a PLL fully automatic punching system provided in an embodiment of this application;
[0048] Figure 6 This is a schematic diagram of the layout of the ADC fully automatic hole punching provided in an embodiment of this application;
[0049] Figure 7 This is a schematic diagram of an automatic drilling device for integrated circuits based on the R-tree MBR algorithm, provided in an embodiment of this application.
[0050] Figure 8 This is a schematic diagram of the structure of a terminal provided in an embodiment of this application;
[0051] Figure 9 This is a schematic diagram of the structure of the operating system and user space provided in the embodiments of this application;
[0052] Figure 10 yes Figure 9 Architecture diagram of the Android operating system in China;
[0053] Figure 11 yes Figure 9 Architecture diagram of the iOS operating system. Detailed Implementation
[0054] The embodiments of this application are described in detail below, examples of which are illustrated in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application. Rather, the embodiments of this application include all variations, modifications, and equivalents falling within the spirit and scope of the appended claims.
[0055] The present application will now be described in detail with reference to specific embodiments.
[0056] Figure 1 This is a flowchart illustrating an automatic hole punching method for integrated circuits based on the R-tree MBR algorithm, provided as an embodiment of this application.
[0057] like Figure 1 As shown in the figure, an automatic hole punching method for integrated circuits based on the R-tree MBR algorithm provided in this application includes the following steps:
[0058] Step 101: Perform spatial indexing on each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers;
[0059] Step 102: Ensure that all overlapping regions pass the DRC rule check;
[0060] Step 103: Automatically punch holes in the integrated circuit based on the overlapping areas checked by DRC rules.
[0061] Specifically, when each metal rectangle is generated, the spatial index is used to retrieve metal rectangles from adjacent layers that collide with the generated metal rectangle. The overlapping area between the generated metal rectangle and the metal rectangles from adjacent layers is the area where holes need to be punched.
[0062] Specifically, the overlapping regions are collected, the overlapping regions are pointed to the circuit nodes pointed to by their corresponding metal layers, and the overlapping regions are added to the spatial index for storage.
[0063] Furthermore, the circuit nodes of the collided metal rectangle are the same as those of the generated metal rectangle.
[0064] Specifically, when the circuit module is built, the R-tree for the vias is also created, meaning that data for all overlapping areas requiring vias is obtained. At this point, DRC rule checks are performed on all overlapping areas to ensure circuit connectivity while meeting DRC rule requirements.
[0065] Specifically, if an overlapping area fails the DRC rule check, then the overlapping area that does not conform to the DRC rule is excluded or moved.
[0066] In this embodiment of the application, ensuring that all overlapping regions pass the DRC rule check includes:
[0067] Merge overlapping, contained, and adjacent regions;
[0068] The number of overlapping areas is determined to be no greater than the preset minimum number of through holes. If it is greater than the preset minimum number of through holes, an error is reported and the overlapping areas are redefined.
[0069] Ensure that the spacing between overlapping areas is not less than a preset first spacing. If it is less than the preset first spacing, report an error and redetermine the overlapping areas.
[0070] The distance between the overlapping area and the metal layer is determined to be no less than the preset second distance. If it is less than the preset second distance, an error is reported and the overlapping area is redefined.
[0071] In this embodiment of the application, determining that the spacing between overlapping regions is not less than a preset first spacing, and if it is less than the preset first spacing, an error is reported and the overlapping regions are re-determined, including:
[0072] When routing integrated circuits, if the spacing between overlapping areas is less than a preset first spacing and the overlapping areas belong to the same routing line, the overlapping areas will be merged using the minimum bounding rectangle.
[0073] If the overlapping areas do not belong to the same wiring or if the merging of the overlapping areas fails when performing the minimum bounding rectangle merging, an error will be reported and the overlapping areas will be redefined.
[0074] In this embodiment of the application, determining that the distance between the overlapping region and the metal layer is not less than a preset second distance, and if it is less than the preset second distance, an error is reported and the overlapping region is redefined, including:
[0075] When wiring integrated circuits, if the spacing between the overlapping area and the metal layer is less than the preset second spacing, the overlapping area is expanded until the spacing between the overlapping area and the metal layer is not less than the preset second spacing.
[0076] If the expansion fails, an error will be reported and the overlapping area will be redefined.
[0077] In this embodiment of the application, before spatially indexing each generated metal rectangle and determining the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers, the method further includes:
[0078] Save each generated metal rectangle and add it to the spatial index of the R tree.
[0079] Specifically, for each circuit module, its circuit traces can be viewed as the result of many rectangles pieced together. Simultaneously, each circuit trace can be considered an electrical interface connecting the device to the outside world, and each circuit trace can be treated as a circuit node. Therefore, when the circuit traces (hereinafter referred to as rectangles) of a circuit module's metal layer are generated, they can be added to the spatial index of the R-tree.
[0080] In this embodiment of the application, the overlapping region includes:
[0081] When laying out integrated circuits, the overlapping area between the metal rectangles formed by devices and the metal rectangles formed by devices in adjacent layers; and,
[0082] When routing integrated circuits, the metal rectangle formed during the routing process overlaps with the metal rectangle formed by devices in adjacent layers, or with the metal rectangle formed during the routing process of adjacent layers.
[0083] As an example, the automatic punching process provided in this application embodiment, under the condition of meeting DRC rule requirements, is as follows: Figure 2 As shown, the specific steps include:
[0084] Step 201: Obtain the topology of the front-end circuit and determine the geometry of the back-end layout based on the topology of the front-end circuit.
[0085] Step 202: Perform integrated circuit layout, obtain a metal rectangle database, and determine the overlapping area database based on the metal rectangle database;
[0086] Step 203: Examine any overlapping region and merge overlapping, contained, and adjacent regions.
[0087] Step 204: Determine if a via(S) exists, i.e., whether the spacing between all overlapping areas is not less than the preset minimum spacing; if a via(S) exists, report an error and redo the integrated circuit layout; if a via(S) does not exist, proceed to step 205.
[0088] Step 205: Determine if there is a mix(EN), that is, whether all overlapping areas have a spacing of less than a preset spacing with respect to the metal layer while not less than the minimum number of vias; if there is a mix(EN), report an error and redo the integrated circuit layout; if there is no mix(EN), repeat steps 203-205 until all overlapping areas have been checked.
[0089] Step 206: Perform integrated circuit wiring and determine the overlapping areas generated during the integrated circuit wiring process;
[0090] Step 207: Examine any overlapping region and merge overlapping, contained, and adjacent regions.
[0091] Step 208: Determine if via(S) and mix(EN) exist. If they do not exist, proceed to step 207; if they do exist, proceed to step 209.
[0092] Step 209: Determine if repair is possible. If repair is not possible, report an error and re-wire the integrated circuit. If repair is possible, repeat steps 207-209 until all overlapping areas have been checked.
[0093] Step 210: The module construction ends. Based on the overlapping areas checked by the DRC rules, the integrated circuit of the module construction is automatically punched.
[0094] Specifically, the layout of the fully automated MOSFET punching provided in this application embodiment is as follows: Figure 3 As shown; the layout of the VCO fully automatic drilling system is as follows. Figure 4 As shown; the layout of the PLL fully automatic punching is as follows. Figure 5 As shown; the layout of the ADC fully automatic hole punching is as follows. Figure 6 As shown in the illustration, the method provided in this application embodiment can be applied to various integrated circuit scenarios and achieves good results.
[0095] In summary, the method proposed in this application determines the overlapping area between each generated metal rectangle and the metal rectangles of adjacent layers by performing spatial indexing on each generated metal rectangle; ensures that all overlapping areas pass the DRC rule check; and automatically punches vias in the integrated circuit based on the overlapping areas that pass the DRC rule check. This application, through R-tree spatial indexing, can automatically retrieve overlapping areas that meet the conditions, and then automatically punch vias in the overlapping areas according to the DRC rules, avoiding the need for circuit designers to manually punch vias one by one, thereby improving circuit design efficiency and shortening the time to market for circuit products; at the same time, since fully automatic punching strictly follows the DRC rules, there is no need for repeated checks, further improving circuit design efficiency.
[0096] To achieve the above embodiments, this application also proposes an automatic drilling device for integrated circuits based on the R-tree MBR algorithm.
[0097] Figure 7 This is a schematic diagram of an automatic drilling device for integrated circuits based on the R-tree MBR algorithm, provided in an embodiment of this application.
[0098] like Figure 7 As shown, an automatic drilling device for integrated circuits based on the R-tree MBR algorithm includes:
[0099] The determination module 701 is used to perform spatial indexing on each generated metal rectangle and determine the overlapping area between the generated metal rectangle and the metal rectangles of the adjacent layer.
[0100] Inspection module 702 is used to ensure that all overlapping areas pass the DRC rule check;
[0101] The punching module 703 is used to automatically punch holes in integrated circuits based on overlapping areas checked by DRC rules.
[0102] In summary, the apparatus proposed in this application uses a determining module to spatially index each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers; an inspection module ensures that all overlapping areas pass the DRC rule check; and a punching module automatically punches holes in the integrated circuit based on the overlapping areas that pass the DRC rule check. This application, through spatial indexing, can automatically retrieve overlapping areas that meet the conditions, and then automatically punch holes in the overlapping areas according to the DRC rules, thereby improving circuit design efficiency and shortening the time to market for circuit products.
[0103] This application also provides a computer storage medium that can store multiple instructions, which are adapted to be loaded and executed by a processor as described above. Figures 1-6 The automatic hole punching method for integrated circuits based on the R-tree MBR algorithm described in the illustrated embodiment can be found in the following documentation for its specific execution process. Figures 1-6 The specific details of the illustrated embodiments will not be elaborated here.
[0104] This application also provides a computer program product storing at least one instruction, which is loaded and executed by the processor as described above. Figures 1-6 The automatic hole punching method for integrated circuits based on the R-tree MBR algorithm described in the illustrated embodiment can be found in the following documentation for its specific execution process. Figures 1-6 The specific details of the illustrated embodiments will not be elaborated here.
[0105] Please refer to Figure 8This diagram illustrates a structural block diagram of a terminal provided in an exemplary embodiment of this application. The terminal in this application may include one or more components such as a processor 110, a memory 120, an input device 130, an output device 140, and a bus 150. The processor 110, memory 120, input device 130, and output device 140 are connected via the bus 150. The processor loads and executes as described above. Figures 3-9 The network connection method described in the illustrated embodiment can be found in the following document for a detailed execution process. Figures 3-9 The specific details of the illustrated embodiments will not be elaborated here.
[0106] Processor 110 may include one or more processing cores. Processor 110 connects to various parts of the terminal using various interfaces and lines, and performs various functions and processes data of terminal 100 by running or executing instructions, programs, code sets, or instruction sets stored in memory 120, and by calling data stored in memory 120. Optionally, processor 110 may be implemented using at least one hardware form of digital signal processing (DSP), field-programmable gate array (FPGA), or programmable logic array (PLA). Processor 110 may integrate one or more of the following: central processing unit (CPU), graphics processing unit (GPU), and modem. The CPU primarily handles the operating system, user interface, and applications; the GPU is responsible for rendering and drawing the displayed content; and the modem handles wireless communication. It is understood that the modem may also not be integrated into processor 110 and may be implemented separately using a communication chip.
[0107] The memory 120 may include random access memory (RAM) or read-only memory (ROM). Optionally, the memory 120 may include non-transitory computer-readable storage medium. The memory 120 may be used to store instructions, programs, code, code sets, or instruction sets. The memory 120 may include a program storage area and a data storage area. The program storage area may store instructions for implementing an operating system, instructions for implementing at least one function (such as touch functionality, sound playback functionality, image playback functionality, etc.), instructions for implementing the various method embodiments described below, etc. The operating system may be the Android system, including systems deeply developed based on the Android system, the iOS system developed by Apple Inc., including systems deeply developed based on the iOS system, or other systems. The data storage area may also store data created by the terminal during use, such as phonebook data, audio and video data, chat log data, etc.
[0108] See Figure 9 As shown, the memory 120 can be divided into operating system space and user space. The operating system runs in the operating system space, while native and third-party applications run in the user space. To ensure that different third-party applications can achieve good running performance, the operating system allocates corresponding system resources for each application. However, different application scenarios within the same third-party application have different requirements for system resources. For example, in local resource loading scenarios, third-party applications have high requirements for disk read speed; in animation rendering scenarios, third-party applications have high requirements for GPU performance. Since the operating system and third-party applications are independent of each other, the operating system often cannot promptly perceive the current application scenario of a third-party application, resulting in the operating system's inability to adapt system resources accordingly to the specific application scenario of the third-party application.
[0109] In order for the operating system to distinguish the specific application scenarios of third-party applications, it is necessary to establish data communication between the third-party applications and the operating system. This would allow the operating system to obtain the current scenario information of the third-party applications at any time, and then perform targeted system resource adaptation based on the current scenario.
[0110] Taking the Android operating system as an example, the programs and data stored in memory 120 are as follows: Figure 10As shown, the memory 120 can store the Linux kernel layer 320, the system runtime library layer 340, the application framework layer 360, and the application layer 380. The Linux kernel layer 320, system runtime library layer 340, and application framework layer 360 belong to the operating system space, while the application layer 380 belongs to the user space. The Linux kernel layer 320 provides low-level drivers for various terminal hardware components, such as display drivers, audio drivers, camera drivers, Bluetooth drivers, Wi-Fi drivers, and power management. The system runtime library layer 340 provides key feature support for the Android system through several C / C++ libraries. For example, the SQLite library provides database support, the OpenGL / ES library provides 3D graphics support, and the Webkit library provides browser kernel support. The system runtime library layer 340 also provides the Android runtime library, which mainly provides core libraries that allow developers to write Android applications using the Java language. The Application Framework Layer 360 provides various APIs that may be used when building applications. Developers can also use these APIs to build their own applications, such as activity management, window management, view management, notification management, content provider, package management, call management, resource management, and location management. At least one application runs in the Application Layer 380. These applications can be native applications that come with the operating system, such as contacts, SMS, clock, and camera apps; or third-party applications developed by third-party developers, such as games, instant messaging, photo editing, and network connectivity applications.
[0111] Taking the operating system as an example (iOS), the programs and data stored in memory 120 are as follows: Figure 11As shown, the iOS system includes: Core OS layer 420, Core Services layer 440, Media layer 460, and Cocoa Touch layer 480. Core OS layer 420 includes the operating system kernel, drivers, and low-level program frameworks. These low-level program frameworks provide hardware-level functionality for use by the program frameworks located in Core Services layer 440. Core Services layer 440 provides system services and / or program frameworks required by applications, such as Foundation framework, account framework, advertising framework, data storage framework, network connectivity framework, geolocation framework, motion framework, etc. Media layer 460 provides applications with audiovisual interfaces, such as interfaces related to graphics and images, audio technology, video technology, and AirPlay (wireless playback of audio and video transmission technologies). Cocoa Touch layer 480 provides various commonly used interface-related frameworks for application development and is responsible for user touch interaction on the terminal. Examples include local notification services, remote push services, advertising frameworks, game tool frameworks, message user interface (UI) frameworks, UIKit frameworks, map frameworks, and so on.
[0112] exist Figure 11 The framework shown includes, but is not limited to, the base framework in the core service layer 440 and the UIKit framework in the touchable layer 480. The base framework provides many basic object classes and data types, offering the most basic system services to all applications, and is independent of the UI. The UIKit framework, on the other hand, provides a basic UI class library for creating touch-based user interfaces. iOS applications can use the UIKit framework to provide their UI, thus providing the application's infrastructure for building user interfaces, drawing, handling user interaction events, responding to gestures, and so on.
[0113] The methods and principles for implementing data communication between third-party applications and the operating system in the iOS system can be referenced from the Android system, and will not be elaborated here.
[0114] The input device 130 is used to receive input instructions or data, and includes, but is not limited to, a keyboard, mouse, camera, microphone, or touch device. The output device 140 is used to output instructions or data, and includes, but is not limited to, a display device and a speaker. In one example, the input device 130 and the output device 140 can be combined into a touch screen, which is used to receive touch operations from the user using a finger, stylus, or any suitable object on or near it, and to display the user interface of various applications. The touch screen is usually located on the front panel of the terminal. The touch screen can be designed as a full-screen, curved screen, or irregularly shaped screen. The touch screen can also be designed as a combination of a full-screen and a curved screen, or a combination of an irregularly shaped screen and a curved screen; this application embodiment does not limit this.
[0115] In addition, those skilled in the art will understand that the structure of the terminal shown in the above figures does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements. For example, the terminal may also include radio frequency circuits, input units, sensors, audio circuits, wireless fidelity (WiFi) modules, power supplies, Bluetooth modules, etc., which will not be described in detail here.
[0116] In this embodiment, the executing entity for each step can be the terminal described above. Optionally, the executing entity for each step is the terminal's operating system. The operating system can be Android, iOS, or other operating systems; this embodiment does not limit this.
[0117] The terminal in this embodiment may also be equipped with a display device, which can be various devices capable of display functions, such as: cathode ray tube display (CR), light-emitting diode display (LED), e-ink screen, liquid crystal display (LCD), plasma display panel (PDP), etc. Users can use the display device on the terminal 100 to view displayed text, images, videos, and other information. The terminal may be a smartphone, tablet computer, gaming device, AR (Augmented Reality) device, automobile, data storage device, audio playback device, video playback device, laptop, desktop computing device, wearable device such as electronic watch, electronic glasses, electronic helmet, electronic bracelet, electronic necklace, electronic clothing, etc.
[0118] Those skilled in the art will clearly understand that the technical solutions of this application can be implemented using software and / or hardware. In this specification, "unit" and "module" refer to software and / or hardware capable of independently performing or cooperating with other components to perform specific functions. Hardware may include, for example, a Field-Programmable Gate Array (FPGA), an Integrated Circuit (IC), etc.
[0119] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.
[0120] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions in other embodiments.
[0121] In the several embodiments provided in this application, it should be understood that the disclosed apparatus can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some service interface; the indirect coupling or communication connection between devices or units may be electrical or other forms.
[0122] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0123] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0124] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage device (CMD). Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned memory includes various media capable of storing program code, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0125] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, which may include: a flash drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc.
[0126] The foregoing description is merely an exemplary embodiment of this disclosure and should not be construed as limiting the scope of this disclosure. Any equivalent changes and modifications made in accordance with the teachings of this disclosure shall still fall within the scope of this disclosure. Other embodiments of this disclosure will be readily apparent to those skilled in the art upon consideration of the specification and practice of the disclosure herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not described herein. The specification and embodiments are to be considered exemplary only, and the scope and spirit of this disclosure are defined by the claims.
Claims
1. An automatic hole punching method for integrated circuits based on the R-tree MBR algorithm, characterized in that, The method includes: Spatial indexing is performed on each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of the adjacent layer; Ensure all overlapping areas pass the DRC rule check, where overlapping, contained, and adjacent overlapping areas are merged. Determine that the number of overlapping areas is not greater than a preset minimum number of vias. If it is greater than the preset minimum number of vias, an error is reported and the overlapping areas are re-determined. Determine that the spacing between overlapping areas is not less than a preset first spacing. If it is less than the preset first spacing, an error is reported and the overlapping areas are re-determined. Determine that the spacing between overlapping areas and the metal layer is not less than a preset second spacing. If it is less than the preset second spacing, an error is reported and the overlapping areas are re-determined. Automatic drilling is performed on the integrated circuit based on the overlapping areas checked by the DRC rules; Before spatially indexing each generated metal rectangle to determine the overlapping area between the generated metal rectangle and the metal rectangles of adjacent layers, the method further includes: Save each generated metal rectangle and add it to the spatial index of the R-tree.
2. The method as described in claim 1, characterized in that, The step of determining that the spacing between the overlapping regions is not less than a preset first spacing, and if it is less than the preset first spacing, then reporting an error and redetermining the overlapping regions, includes: When performing integrated circuit wiring, if the spacing between the overlapping areas is less than a preset first spacing, and the overlapping areas belong to the same wiring, then the overlapping areas are merged using the minimum bounding rectangle. If the overlapping areas do not belong to the same wiring or if the merging of the overlapping areas fails when performing the minimum bounding rectangle merging, an error will be reported and the overlapping areas will be re-determined.
3. The method as described in claim 1, characterized in that, The step of determining that the distance between the overlapping region and the metal layer is not less than a preset second distance, and if it is less than the preset second distance, then reporting an error and re-determining the overlapping region, includes: When performing integrated circuit wiring, if the spacing between the overlapping area and the metal layer is less than a preset second spacing, the overlapping area is expanded until the spacing between the overlapping area and the metal layer is not less than the preset second spacing. If the expansion fails, an error will be reported and the overlapping area will be redefined.
4. The method as described in claim 1, characterized in that, The overlapping region includes: When laying out integrated circuits, the overlapping area between the metal rectangles formed by devices and the metal rectangles formed by devices in adjacent layers; and, When routing integrated circuits, the metal rectangle formed during the routing process overlaps with the metal rectangle formed by devices in adjacent layers, or with the metal rectangle formed during the routing process of adjacent layers.
5. An automatic punching device for integrated circuits based on the R-tree MBR algorithm, characterized in that, The device includes: The determination module is used to perform spatial indexing on each generated metal rectangle and determine the overlapping area between the generated metal rectangle and the metal rectangles of the adjacent layer. Before performing spatial indexing on each generated metal rectangle and determining the overlapping area between the generated metal rectangle and the metal rectangles of the adjacent layer, the module further includes: saving each generated metal rectangle and adding the metal rectangle to the spatial index of the R-tree. The inspection module is used to ensure that all overlapping areas pass the DRC rule check. It merges overlapping, containing, and adjacent overlapping areas, determines that the number of overlapping areas is not greater than a preset minimum number of vias. If it is greater than the preset minimum number of vias, an error is reported and the overlapping areas are re-determined. It also determines that the spacing between overlapping areas is not less than a preset first spacing. If it is less than the preset first spacing, an error is reported and the overlapping areas are re-determined. Finally, it determines that the spacing between the overlapping area and the metal layer is not less than a preset second spacing. If it is less than the preset second spacing, an error is reported and the overlapping areas are re-determined. The punching module is used to automatically punch holes in the integrated circuit according to the overlapping areas checked by the DRC rules.
6. A terminal, comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; characterized in that, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-4.
7. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-4.
8. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-4.
Citation Information
Patent Citations
Space database indexing method of regional double-tree structure
CN102609530A
Method for area indexing of integrated circuit layout data
CN104572682A