CN114186526A - Automatic punching method and device for integrated circuit based on R tree MBR algorithm - Google Patents

Automatic punching method and device for integrated circuit based on R tree MBR algorithm Download PDF

Info

Publication number
CN114186526A
CN114186526A CN202111512370.XA CN202111512370A CN114186526A CN 114186526 A CN114186526 A CN 114186526A CN 202111512370 A CN202111512370 A CN 202111512370A CN 114186526 A CN114186526 A CN 114186526A
Authority
CN
China
Prior art keywords
distance
determining
integrated circuit
overlapping
overlapping area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111512370.XA
Other languages
Chinese (zh)
Inventor
叶佐昌
王燕
秦仟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202111512370.XA priority Critical patent/CN114186526A/en
Publication of CN114186526A publication Critical patent/CN114186526A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

The application relates to the technical field of integrated circuits, in particular to an integrated circuit automatic punching method and device based on an R tree MBR algorithm. The automatic punching method of the integrated circuit based on the R tree MBR algorithm comprises the following steps: performing spatial index on each generated metal rectangle, and determining an overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer; ensuring that all overlapping regions pass DRC rule checks; the integrated circuit is automatically punctured according to the overlapping area checked by the DRC rule. By adopting the scheme, the overlapping area meeting the conditions can be automatically retrieved through the spatial index, and then the overlapping area is automatically punched according to the DRC rule, so that the circuit design efficiency is improved, and the time to market of a circuit product is shortened.

Description

Automatic punching method and device for integrated circuit based on R tree MBR algorithm
Technical Field
The application relates to the technical field of integrated circuits, in particular to an integrated circuit automatic punching method and device based on an R tree MBR algorithm.
Background
The integrated circuit has high design cost and long period. The development of a chip often requires hundreds of specialized integrated circuit engineers to complete the development in a year or even longer. The reason is that the existing integrated circuit has a long design flow, and for example, for a digital integrated circuit, processes such as RTL design, RTL synthesis, layout clock tree synthesis, wiring and the like need to be performed. Each link requires the involvement of a specialized engineer. For example, the via hole modes adopted in the current industry are all manually added by practitioners, and have low automation degree and low efficiency.
Disclosure of Invention
The present application is directed to solving, at least to some extent, one of the technical problems in the related art.
Therefore, a first objective of the present application is to provide an automatic punching method for an integrated circuit based on an R tree MBR algorithm, so as to solve the technical problems that manual punching is required when the integrated circuit is punched at present, the automation degree is low, and the efficiency is low.
The second objective of the present application is to provide an automatic punching apparatus for an integrated circuit based on R tree MBR algorithm.
A third object of the present application is to provide a terminal.
A fourth object of the present application is to propose a non-transitory computer-readable storage medium.
A fifth object of the present application is to propose a computer program product.
In order to achieve the above object, an embodiment of the present application provides an automatic puncturing method for an integrated circuit based on an R-tree MBR algorithm, including:
performing spatial index on each generated metal rectangle, and determining an overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer;
ensuring that all overlapping regions pass DRC rule checks;
and automatically punching the integrated circuit according to the overlapped area checked by the DRC rule.
Optionally, in an embodiment of the present application, the ensuring that all the overlapping regions pass the DRC rule check includes:
fusing the overlapped, contained and adjacent overlapped regions;
determining that the number of the overlapping areas is not more than a preset minimum number of through holes, if the number of the overlapping areas is more than the preset minimum number of through holes, reporting an error and re-determining the overlapping areas;
determining that the distance between the overlapping areas is not smaller than a preset first distance, if the distance is smaller than the preset first distance, reporting an error and re-determining the overlapping areas;
and determining that the distance between the overlapping area and the metal layer is not smaller than a preset second distance, and if the distance is smaller than the preset second distance, reporting an error and re-determining the overlapping area.
Optionally, in an embodiment of the present application, the determining that the distance between the overlapping areas is not smaller than a preset first distance, and if the distance is smaller than the preset first distance, reporting an error and re-determining the overlapping areas includes:
when the wiring of the integrated circuit is carried out, if the distance between the overlapping areas is smaller than a preset first distance and the overlapping areas belong to the same wiring, the minimum external rectangles of the overlapping areas are fused;
if the overlapping area does not belong to the same wiring or the fusion fails when the overlapping area performs the fusion of the minimum circumscribed rectangle, an error is reported and the overlapping area is determined again.
Optionally, in an embodiment of the present application, the determining that a distance between the overlapping area and the metal layer is not smaller than a preset second distance, and if the distance is smaller than the preset second distance, reporting an error and re-determining the overlapping area includes:
when the integrated circuit is wired, if the distance between the overlapping area and the metal layer is smaller than a preset second distance, the overlapping area is expanded until the distance between the overlapping area and the metal layer is not smaller than the preset second distance;
if the expansion fails, an error is reported and the overlapping area is redetermined.
Optionally, in an embodiment of the present application, before the spatially indexing each generated metal rectangle and determining an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer, the method further includes:
and saving each generated metal rectangle and adding the metal rectangle into the spatial index of the R tree.
Optionally, in an embodiment of the present application, the overlapping area includes:
when the integrated circuit is patterned, the metal rectangle formed by the device is overlapped with the metal rectangle formed by the device of the adjacent layer; and the number of the first and second groups,
when the integrated circuit is wired, the metal rectangle formed in the wiring process is overlapped with the metal rectangle formed by the device of the adjacent layer or the metal rectangle formed in the wiring process of the adjacent layer.
In summary, in the method provided in the embodiment of the first aspect of the present application, a spatial index is performed on each generated metal rectangle, so as to determine an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer; ensuring that all overlapping regions pass DRC rule checks; and automatically punching the integrated circuit according to the overlapped area checked by the DRC rule. According to the method and the device, the overlapped area meeting the conditions can be automatically retrieved through the space index, and then automatic punching is carried out on the overlapped area according to the DRC rule, so that the circuit design efficiency is improved, and the time to market of a circuit product is shortened.
In order to achieve the above object, an embodiment of a second aspect of the present application provides an apparatus for automatically puncturing an integrated circuit based on an R-tree MBR algorithm, including:
the determining module is used for performing spatial index on each generated metal rectangle and determining the overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer;
the checking module is used for ensuring that all the overlapped areas pass DRC rule checking;
and the punching module is used for automatically punching the integrated circuit according to the overlapped area checked by the DRC rule.
In summary, in the apparatus provided in the embodiment of the second aspect of the present application, the determining module performs spatial indexing on each generated metal rectangle, and determines an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer; the checking module ensures that all the overlapped areas pass DRC rule checking; and the punching module automatically punches the integrated circuit according to the overlapped area checked by the DRC rule. According to the method and the device, the overlapped area meeting the conditions can be automatically retrieved through the space index, and then automatic punching is carried out on the overlapped area according to the DRC rule, so that the circuit design efficiency is improved, and the time to market of a circuit product is shortened.
In order to achieve the above object, a third aspect of the present application provides a terminal, including:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of the preceding aspects.
To achieve the above object, a fourth aspect of the present application provides a non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform the method of any one of the preceding aspects.
To achieve the above object, a fifth aspect of the present application provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, the computer program implements the method of any one of the foregoing aspects.
Additional aspects and advantages of the present 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 the present application.
Drawings
The foregoing and/or additional aspects and advantages of the present application will become apparent and readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
fig. 1 is a flowchart of an automatic punching method for an integrated circuit based on an R-tree MBR algorithm according to an embodiment of the present disclosure;
fig. 2 is a schematic flow chart of automatic puncturing under the requirement of satisfying DRC rules according to an embodiment of the present application;
fig. 3 is a layout schematic diagram of full-automatic punching of an MOS transistor according to the embodiment of the present application;
fig. 4 is a schematic layout diagram of VCO full-automatic puncturing provided in the embodiment of the present application;
fig. 5 is a schematic diagram of a layout of PLL full-automatic punching provided in an embodiment of the present application;
fig. 6 is a schematic diagram of a layout of ADC full-automatic punching provided in the embodiment of the present application;
fig. 7 is a schematic structural diagram of an automatic integrated circuit puncturing device based on an R-tree MBR algorithm according to an embodiment of the present disclosure.
Fig. 8 is a schematic structural diagram of a terminal according to an embodiment of the present application;
FIG. 9 is a schematic structural diagram of an operating system and a user space provided in an embodiment of the present application;
FIG. 10 is an architectural diagram of the android operating system of FIG. 9;
FIG. 11 is an architectural diagram of the IOS operating system of FIG. 9.
Detailed Description
Reference will now be made in detail to embodiments of the present application, examples of which are illustrated in the accompanying drawings, wherein like or similar reference numerals refer to the same or similar elements or elements having the same or similar function throughout. The embodiments described below with reference to the drawings are exemplary only for the purpose of explaining the present application and are not to be construed as limiting the present application. On the contrary, the embodiments of the application include all changes, modifications and equivalents coming within the spirit and terms of the claims appended hereto.
The present application will be described in detail with reference to specific examples.
Fig. 1 is a flowchart of an automatic puncturing method for an integrated circuit based on an R-tree MBR algorithm according to an embodiment of the present disclosure.
As shown in fig. 1, an embodiment of the present application provides an automatic puncturing method for an integrated circuit based on an R-tree MBR algorithm, which includes the following steps:
step 101, performing spatial index on each generated metal rectangle, and determining an overlapping area of the generated metal rectangle and a metal rectangle of an adjacent layer;
step 102, ensuring that all the overlapped areas pass DRC rule check;
step 103, automatic punching is performed on the integrated circuit according to the overlapping area checked by the DRC rule.
Specifically, when each metal rectangle is generated, the metal rectangles of adjacent layers that collide with the generated metal rectangle are retrieved in the spatial index. The overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer is the area needing punching.
Specifically, the overlap region is collected, the overlap region is pointed to the circuit node pointed to by the corresponding metal layer, and the overlap region is added to the spatial index for storage.
Further, the circuit nodes of the metal rectangle that are struck are the same as the circuit nodes of the metal rectangle that is generated.
Specifically, when the circuit module is constructed, the R-tree of the through hole is also constructed, that is, data of all the overlapping areas to be punched are acquired. At this time, DRC rule checks are performed for all the overlapping areas, and the requirements of the DRC rules are satisfied while circuit connectivity is ensured.
Specifically, if the overlap region does not pass the DRC rule check, the overlap region that does not comply with the DRC rule is excluded or moved.
In the embodiment of the present application, all the overlapping regions are guaranteed to pass the DRC rule check, which includes:
fusing the overlapped, contained and adjacent overlapped regions;
determining that the number of the overlapping areas is not more than the preset minimum number of through holes, if the number of the overlapping areas is more than the preset minimum number of through holes, reporting an error and re-determining the overlapping areas;
determining that the distance between the overlapping areas is not smaller than a preset first distance, if the distance is smaller than the preset first distance, reporting an error and re-determining the overlapping areas;
and determining that the distance between the overlapping area and the metal layer is not smaller than a preset second distance, and if the distance is smaller than the preset second distance, reporting an error and re-determining the overlapping area.
In this embodiment of the present application, determining that the distance between the overlapping areas is not smaller than the preset first distance, and if the distance is smaller than the preset first distance, reporting an error and re-determining the overlapping areas includes:
when the wiring of the integrated circuit is carried out, if the distance between the overlapping areas is smaller than a preset first distance and the overlapping areas belong to the same wiring, the minimum external rectangles of the overlapping areas are fused;
if the overlapping area does not belong to the same wiring or the fusion fails when the overlapping area performs the fusion of the minimum circumscribed rectangle, an error is reported and the overlapping area is determined again.
In this embodiment of the present application, determining that a distance between the overlapping area and the metal layer is not smaller than a preset second distance, and if the distance is smaller than the preset second distance, reporting an error and re-determining the overlapping area includes:
when the integrated circuit is wired, if the distance between the overlapping area and the metal layer is smaller than the preset second distance, the overlapping area is expanded until the distance between the overlapping area and the metal layer is not smaller than the preset second distance;
if the expansion fails, an error is reported and the overlapping area is redetermined.
In this embodiment of the present application, before spatially indexing each generated metal rectangle and determining an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer, the method further includes:
and saving each generated metal rectangle and adding the metal rectangle into the spatial index of the R tree.
Specifically, for each circuit module, the circuit traces can be viewed as the result of splicing a plurality of rectangles. Meanwhile, each circuit trace can be regarded as an external electrical interface of the connector, and each circuit trace is regarded as a circuit node (node). Thus, when a circuit trace (hereinafter referred to as a rectangle) of the metal layer of one circuit module is generated, it can be added to the spatial index of the R-tree.
In the embodiment of the present application, the overlapping region includes:
when the integrated circuit is patterned, the metal rectangle formed by the device is overlapped with the metal rectangle formed by the device of the adjacent layer; and the number of the first and second groups,
when the integrated circuit is wired, the metal rectangle formed in the wiring process is overlapped with the metal rectangle formed by the device of the adjacent layer or the metal rectangle formed in the wiring process of the adjacent layer.
Taking a scenario as an example, the flow of automatic puncturing when the DRC rule requirement is satisfied provided in the embodiment of the present application is shown in fig. 2, where the method specifically includes the following steps:
step 201, acquiring a topological structure of a front-end circuit, and determining a geometric structure of a rear-end layout according to the topological structure of the front-end circuit;
202, performing integrated circuit layout, acquiring a metal rectangle database, and determining an overlapping area database according to the metal rectangle database;
step 203, checking any overlapping area, and fusing the overlapping, including and adjacent overlapping areas;
step 204, judging whether via (S) exists or not, namely whether the distances among all the overlapped areas are not less than the preset minimum distance or not; if via (S) exists, reporting error and performing integrated circuit layout again; if there is no via(s), go to step 205;
step 205, judging whether mix (EN) exists or not, namely whether the distance between all the overlapped areas and the metal layer is smaller than a preset distance while the number of all the overlapped areas is not smaller than the minimum through holes; if mix (EN) exists, reporting an error and performing integrated circuit layout again; if not, the steps 203 to 205 are repeated until all the overlapping areas are checked;
step 206, wiring the integrated circuit, and determining an overlapping area generated in the wiring process of the integrated circuit;
step 207, checking any overlapping area, and fusing the overlapping, including and adjacent overlapping areas;
step 208, judging whether via (S) and mix (EN) exist or not, and if not, entering step 207; if yes, go to step 209;
step 209, judging whether the repair can be performed, if the repair cannot be performed, reporting an error and performing the wiring of the integrated circuit again; if the repair can be performed, repeating the steps 207-209 until all the overlapped areas are checked;
and step 210, finishing the building of the module, and automatically punching the integrated circuit built by the end of the module according to the overlapped area checked by the DRC rule.
Specifically, a layout of the fully-automatic punching of the MOS transistor provided by the embodiment of the present application is shown in fig. 3; the layout of the VCO full-automatic punching is shown in FIG. 4; the layout of the PLL full-automatic punching is shown in FIG. 5; the layout of the full-automatic punching of the ADC is shown in FIG. 6. The method provided by the embodiment of the application can be applied to various integrated circuit scenes and achieves good effects.
In summary, in the method provided by the embodiment of the present application, an overlap region between a generated metal rectangle and a metal rectangle of an adjacent layer is determined by performing spatial indexing on each generated metal rectangle; ensuring that all overlapping regions pass DRC rule checks; the integrated circuit is automatically punctured according to the overlapping area checked by the DRC rule. According to the method, the overlapped area meeting the conditions can be automatically retrieved through the spatial index of the R tree, and then the overlapped area is automatically punched according to the DRC rule, so that a circuit designer is prevented from manually punching the overlapped area one by one, the circuit design efficiency is improved, and the time of the circuit product on the market is shortened; meanwhile, due to the fact that full-automatic punching is carried out according to DRC rules strictly, repeated checking is not needed, and circuit design efficiency is further improved.
In order to implement the above embodiments, the present application further provides an automatic punching apparatus for an integrated circuit based on an R tree MBR algorithm.
Fig. 7 is a schematic structural diagram of an automatic integrated circuit puncturing device based on an R-tree MBR algorithm according to an embodiment of the present disclosure.
As shown in fig. 7, an automatic punching apparatus for an integrated circuit based on R-tree MBR algorithm includes:
a determining module 701, configured to perform spatial index on each generated metal rectangle, and determine an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer;
a checking module 702 for ensuring that all overlapping regions pass the DRC rule check;
a puncturing module 703 for automatically puncturing the integrated circuit according to the overlapping area checked by the DRC rule.
In summary, in the apparatus provided in the embodiment of the present application, a determining module performs spatial index on each generated metal rectangle, and determines an overlapping area between the generated metal rectangle and a metal rectangle of an adjacent layer; the checking module ensures that all the overlapped areas pass DRC rule checking; the puncturing module automatically punctures the integrated circuit according to the overlapping area checked by the DRC rule. According to the method and the device, the overlapped area meeting the conditions can be automatically retrieved through the space index, and then automatic punching is carried out on the overlapped area according to the DRC rule, so that the circuit design efficiency is improved, and the time to market of a circuit product is shortened.
An embodiment of the present application further provides a computer storage medium, where the computer storage medium may store a plurality of instructions, and the instructions are suitable for being loaded by a processor and executing the method for automatically puncturing an integrated circuit based on an R tree MBR algorithm according to the embodiment shown in fig. 1 to 6, and a specific execution process may refer to specific descriptions of the embodiment shown in fig. 1 to 6, which is not described herein again.
The present application further provides a computer program product, where at least one instruction is stored in the computer program product, and the at least one instruction is loaded by the processor and executes the method for automatically puncturing an integrated circuit based on an R-tree MBR algorithm according to the embodiments shown in fig. 1 to 6, where a specific execution process may refer to specific descriptions of the embodiments shown in fig. 1 to 6, and details are not described herein.
Referring to fig. 8, a block diagram of a terminal according to an exemplary embodiment of the present application is shown. A terminal in the present application may include one or more of the following components: 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 may be connected by a bus 150. The processor loads and executes the network connection method according to the embodiments shown in fig. 3 to fig. 9, and a specific execution process may refer to specific descriptions of the embodiments shown in fig. 3 to fig. 9, which is not described herein again.
Processor 110 may include one or more processing cores. The processor 110 connects various parts within the entire terminal using various interfaces and lines, and performs various functions of the terminal 100 and processes data by executing or executing instructions, programs, code sets, or instruction sets stored in the memory 120 and calling data stored in the memory 120. Alternatively, the processor 110 may be implemented in hardware using at least one of Digital Signal Processing (DSP), field-programmable gate Array (FPGA), and Programmable Logic Array (PLA). The processor 110 may integrate one or more of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a modem, and the like. Wherein, the CPU mainly processes an operating system, a user interface, an application program and the like; the GPU is used for rendering and drawing display content; the modem is used to handle wireless communications. It is understood that the modem may not be integrated into the processor 110, but may be implemented by a communication chip.
The Memory 120 may include a Random Access Memory (RAM) or a read-only Memory (ROM). Optionally, the memory 120 includes a non-transitory computer-readable medium. The memory 120 may be used to store instructions, programs, code sets, or instruction sets. The memory 120 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for implementing at least one function (such as a touch function, a sound playing function, an image playing function, etc.), instructions for implementing various method embodiments described below, and the like, and the operating system may be an Android (Android) system, including a system based on Android system depth development, an IOS system developed by apple, including a system based on IOS system depth development, or other systems. The storage data area may also store data created by the terminal in use, such as a phonebook, audio-video data, chat log data, etc.
Referring to fig. 9, the memory 120 may be divided into an operating system space, in which an operating system runs, and a user space, in which native and third-party applications run. In order to ensure that different third-party application programs can achieve a better operation effect, the operating system allocates corresponding system resources for the different third-party application programs. However, the requirements of different application scenarios in the same third-party application program on system resources are different, for example, in a local resource loading scenario, the third-party application program has a higher requirement on the disk reading speed; in the animation rendering scene, the third-party application program has a high requirement on the performance of the GPU. The operating system and the third-party application program are independent from each other, and the operating system cannot sense the current application scene of the third-party application program in time, so that the operating system cannot perform targeted system resource adaptation according to the specific application scene of the third-party application program.
In order to enable the operating system to distinguish a specific application scenario of the third-party application program, data communication between the third-party application program and the operating system needs to be opened, so that the operating system can acquire current scenario information of the third-party application program at any time, and further perform targeted system resource adaptation based on the current scenario.
Taking an operating system as an Android system as an example, programs and data stored in the memory 120 are as shown in fig. 10, and a Linux kernel layer 320, a system runtime library layer 340, an application framework layer 360, and an application layer 380 may be stored in the memory 120, where the Linux kernel layer 320, the system runtime library layer 340, and the application framework layer 360 belong to an operating system space, and the application layer 380 belongs to a user space. The Linux kernel layer 320 provides underlying drivers for various hardware of the terminal, such as a display driver, an audio driver, a camera driver, a bluetooth driver, a Wi-Fi driver, a power management, and the like. The system runtime library layer 340 provides a main feature support for the Android system through some C/C + + libraries. For example, the SQLite library provides support for a database, the OpenGL/ES library provides support for 3D drawing, the Webkit library provides support for a browser kernel, and the like. Also provided in the system runtime library layer 340 is an Android runtime library (Android runtime), which mainly provides some core libraries that can allow developers to write Android applications using the Java language. The application framework layer 360 provides various APIs that may be used in building an application, and developers may build their own applications by using these APIs, such as activity management, window management, view management, notification management, content provider, package management, session management, resource management, and location management. At least one application program runs in the application layer 380, and the application programs may be native application programs carried by the operating system, such as a contact program, a short message program, a clock program, a camera application, and the like; or a third-party application developed by a third-party developer, such as a game application, an instant messaging program, a photo beautification program, a network connection program, and the like.
Taking an operating system as an IOS system as an example, programs and data stored in the memory 120 are shown in fig. 11, and the IOS system includes: a Core operating system Layer 420(Core OS Layer), a Core Services Layer 440(Core Services Layer), a Media Layer 460(Media Layer), and a touchable Layer 480(Cocoa Touch Layer). The kernel operating system layer 420 includes an operating system kernel, drivers, and underlying program frameworks that provide functionality closer to hardware for use by program frameworks located in the core services layer 440. The core services layer 440 provides system services and/or program frameworks, such as a Foundation framework, an account framework, an advertisement framework, a data storage framework, a network connection framework, a geographic location framework, a motion framework, and so forth, as required by the application. The media layer 460 provides audiovisual related interfaces for applications, such as graphics image related interfaces, audio technology related interfaces, video technology related interfaces, audio video transmission technology wireless playback (AirPlay) interfaces, and the like. Touchable layer 480 provides various common interface-related frameworks for application development, and touchable layer 480 is responsible for user touch interaction operations on the terminal. Such as a local notification service, a remote push service, an advertising framework, a game tool framework, a messaging User Interface (UI) framework, a User Interface UIKit framework, a map framework, and so forth.
In the framework illustrated in FIG. 11, the framework associated with most applications includes, but is not limited to: a base framework in the core services layer 440 and a UIKit framework in the touchable layer 480. The base framework provides many basic object classes and data types, provides the most basic system services for all applications, and is UI independent. While the class provided by the UIKit framework is a basic library of UI classes for creating touch-based user interfaces, iOS applications can provide UIs based on the UIKit framework, so it provides an infrastructure for applications for building user interfaces, drawing, processing and user interaction events, responding to gestures, and the like.
The Android system can be referred to as a mode and a principle for realizing data communication between the third-party application program and the operating system in the IOS system, and details are not repeated herein.
The input device 130 is used for receiving input instructions or data, and the input device 130 includes, but is not limited to, a keyboard, a mouse, a camera, a microphone, or a touch device. The output device 140 is used for outputting instructions or data, and the output device 140 includes, but is not limited to, a display device, a speaker, and the like. In one example, the input device 130 and the output device 140 may be combined, and the input device 130 and the output device 140 are touch display screens for receiving touch operations of a user on or near the touch display screens by using any suitable object such as a finger, a touch pen, and the like, and displaying user interfaces of various applications. The touch display screen is generally provided at a front panel of the terminal. The touch display screen may be designed as a full-face screen, a curved screen, or a profiled screen. The touch display screen can also be designed to be a combination of a full-face screen and a curved-face screen, and a combination of a special-shaped screen and a curved-face screen, which is not limited in the embodiment of the present application.
In addition, those skilled in the art will appreciate that the configurations of the terminals illustrated in the above-described figures do not constitute limitations on the terminals, as the terminals may include more or less components than those illustrated, or some components may be combined, or a different arrangement of components may be used. For example, the terminal further includes a radio frequency circuit, an input unit, a sensor, an audio circuit, a wireless fidelity (WiFi) module, a power supply, a bluetooth module, and other components, which are not described herein again.
In the embodiment of the present application, the main body of execution of each step may be the terminal described above. Optionally, the execution subject of each step is an operating system of the terminal. The operating system may be an android system, an IOS system, or another operating system, which is not limited in this embodiment of the present application.
The terminal of the embodiment of the application can also be provided with a display device, and the display device can be various devices capable of realizing a display function, for example: a cathode ray tube display (CR), a light-emitting diode display (LED), an electronic ink panel, a Liquid Crystal Display (LCD), a Plasma Display Panel (PDP), and the like. A user may utilize a display device on terminal 100 to view displayed text, images, video, etc. The terminal may be a smart phone, a tablet computer, a gaming device, an AR (Augmented Reality) device, an automobile, a data storage device, an audio playing device, a video playing device, a notebook, a desktop computing device, a wearable device such as an electronic watch, an electronic glasses, an electronic helmet, an electronic bracelet, an electronic necklace, an electronic garment, or the like.
It is clear to a person skilled in the art that the solution of the present application can be implemented by means of software and/or hardware. The "unit" and "module" in this specification refer to software and/or hardware that can perform a specific function independently or in cooperation with other components, where the hardware may be, for example, a Field-ProgrammaBLE Gate Array (FPGA), an Integrated Circuit (IC), or the like.
It should be noted that, for simplicity of description, the above-mentioned method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present application is not limited by the order of acts described, as some steps may occur in other orders or concurrently depending on the application. Further, those skilled in the art should also appreciate that the embodiments described in the specification are preferred embodiments and that the acts and modules referred to are not necessarily required in this application.
In the foregoing embodiments, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed apparatus may be implemented in other manners. For example, the above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units is only one type of division of logical functions, and there may be other divisions when actually implementing, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not implemented. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection of some service interfaces, devices or units, and may be an electrical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable memory. Based on such understanding, the technical solution of the present application may be substantially implemented or a part of or all or part of the technical solution contributing to the prior art may be embodied in the form of a software product stored in a memory, and including several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method described in the embodiments of the present application. And the aforementioned memory comprises: various media capable of storing program codes, such as a usb disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic disk, or an optical disk.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by a program, which is stored in a computer-readable memory, and the memory may include: flash disks, Read-Only memories (ROMs), Random Access Memories (RAMs), magnetic or optical disks, and the like.
The above description is only an exemplary embodiment of the present disclosure, and the scope of the present disclosure should not be limited thereby. That is, all equivalent changes and modifications made in accordance with the teachings of the present disclosure are intended to be included within the scope of the present disclosure. Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure herein. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.

Claims (10)

1. An integrated circuit automatic punching method based on an R tree MBR algorithm is characterized by comprising the following steps:
performing spatial index on each generated metal rectangle, and determining an overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer;
ensuring that all overlapping regions pass DRC rule checks;
and automatically punching the integrated circuit according to the overlapped area checked by the DRC rule.
2. The method of claim 1, wherein said ensuring that all overlapping regions pass DRC rule checks comprises:
fusing the overlapped, contained and adjacent overlapped regions;
determining that the number of the overlapping areas is not more than a preset minimum number of through holes, if the number of the overlapping areas is more than the preset minimum number of through holes, reporting an error and re-determining the overlapping areas;
determining that the distance between the overlapping areas is not smaller than a preset first distance, if the distance is smaller than the preset first distance, reporting an error and re-determining the overlapping areas;
and determining that the distance between the overlapping area and the metal layer is not smaller than a preset second distance, and if the distance is smaller than the preset second distance, reporting an error and re-determining the overlapping area.
3. The method of claim 2, wherein the determining that the distance between the overlapping areas is not less than the predetermined first distance, and if the distance is less than the predetermined first distance, reporting an error and re-determining the overlapping areas comprises:
when the wiring of the integrated circuit is carried out, if the distance between the overlapping areas is smaller than a preset first distance and the overlapping areas belong to the same wiring, the minimum external rectangles of the overlapping areas are fused;
if the overlapping area does not belong to the same wiring or the fusion fails when the overlapping area performs the fusion of the minimum circumscribed rectangle, an error is reported and the overlapping area is determined again.
4. The method of claim 2, wherein the determining that the distance between the overlapping area and the metal layer is not less than the predetermined second distance, and if the distance is less than the predetermined second distance, reporting an error and re-determining the overlapping area comprises:
when the integrated circuit is wired, if the distance between the overlapping area and the metal layer is smaller than a preset second distance, the overlapping area is expanded until the distance between the overlapping area and the metal layer is not smaller than the preset second distance;
if the expansion fails, an error is reported and the overlapping area is redetermined.
5. The method of claim 1, wherein prior to spatially indexing each generated metal rectangle and determining an overlap region of the generated metal rectangle and a metal rectangle of an adjacent layer, further comprising:
and saving each generated metal rectangle and adding the metal rectangle into the spatial index of the R tree.
6. The method of claim 1, wherein the overlap region comprises:
when the integrated circuit is patterned, the metal rectangle formed by the device is overlapped with the metal rectangle formed by the device of the adjacent layer; and the number of the first and second groups,
when the integrated circuit is wired, the metal rectangle formed in the wiring process is overlapped with the metal rectangle formed by the device of the adjacent layer or the metal rectangle formed in the wiring process of the adjacent layer.
7. An automatic punching device of an integrated circuit based on an R tree MBR algorithm, which is characterized by comprising:
the determining module is used for performing spatial index on each generated metal rectangle and determining the overlapping area of the generated metal rectangle and the metal rectangle of the adjacent layer;
the checking module is used for ensuring that all the overlapped areas pass DRC rule checking;
and the punching module is used for automatically punching the integrated circuit according to the overlapped area checked by the DRC rule.
8. A terminal, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; it is characterized in that the preparation method is characterized in that,
the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-6.
9. A non-transitory computer readable storage medium having stored thereon computer instructions for causing the computer to perform the method of any one of claims 1-6.
10. A computer program product comprising a computer program which, when executed by a processor, implements the method according to any one of claims 1-6.
CN202111512370.XA 2021-12-08 2021-12-08 Automatic punching method and device for integrated circuit based on R tree MBR algorithm Pending CN114186526A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111512370.XA CN114186526A (en) 2021-12-08 2021-12-08 Automatic punching method and device for integrated circuit based on R tree MBR algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111512370.XA CN114186526A (en) 2021-12-08 2021-12-08 Automatic punching method and device for integrated circuit based on R tree MBR algorithm

Publications (1)

Publication Number Publication Date
CN114186526A true CN114186526A (en) 2022-03-15

Family

ID=80543292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111512370.XA Pending CN114186526A (en) 2021-12-08 2021-12-08 Automatic punching method and device for integrated circuit based on R tree MBR algorithm

Country Status (1)

Country Link
CN (1) CN114186526A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221835A (en) * 2022-07-27 2022-10-21 清华大学 Physical verification method and device for chip design

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221835A (en) * 2022-07-27 2022-10-21 清华大学 Physical verification method and device for chip design

Similar Documents

Publication Publication Date Title
CN107889070B (en) Picture processing method, device, terminal and computer readable storage medium
WO2021190184A1 (en) Remote assistance method and apparatus, and storage medium and terminal
CN111796820B (en) Method and device for constructing front-end page based on integrated assembly and electronic equipment
CN110413347A (en) The processing method of advertisement, device, storage medium and terminal in application program
CN114186527A (en) Method and device for realizing automatic wiring of integrated circuit independent of grid point
CN110702346B (en) Vibration testing method and device, storage medium and terminal
CN114186526A (en) Automatic punching method and device for integrated circuit based on R tree MBR algorithm
CN107562324B (en) Data display control method and terminal
CN111913614B (en) Multi-picture display control method and device, storage medium and display
CN117555459A (en) Application group processing method and device, storage medium and electronic equipment
CN113342330A (en) Front-end engineering generation method and device
CN113282237B (en) Partition creation method, partition creation device, storage medium and computer equipment
CN113450762B (en) Text reading method, text reading device, terminal and storage medium
CN112068895B (en) Code configuration method, device, video playing equipment and storage medium
CN113268221A (en) File matching method and device, storage medium and computer equipment
CN113419650A (en) Data moving method and device, storage medium and electronic equipment
CN113490028A (en) Video processing method, device, storage medium and terminal
CN111859999A (en) Message translation method, device, storage medium and electronic equipment
CN113114849A (en) Alarm clock reminding method and device, storage medium and terminal
CN113312257B (en) Version identification method and device, storage medium and computer equipment
CN113692026B (en) Network connection method, device, terminal and storage medium
CN113778386A (en) Component generation method and device, storage medium and electronic equipment
CN114443204A (en) Interface content generation method and device, storage medium and computer equipment
CN117632746A (en) Pile inserting processing method and device, storage medium and electronic equipment
CN111008006A (en) RFC file modification method and device, storage medium and terminal

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination