A method and system for accelerating layout loading based on extended layout format

By dividing large cells into rectangular regions and using multi-threaded parallel processing, the slow loading and compatibility issues of layout files were resolved, achieving fast loading and memory optimization.

CN115796110BActive Publication Date: 2026-02-06ZHUHAI RUIJING JUYUAN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211547551.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-05
Publication Date
2026-02-06
Estimated Expiration
2042-12-05

AI Technical Summary

Technical Problem

In existing technologies, layout files are slow to load and incompatible with other third-party EDA software, especially when large cells are present, resulting in even slower loading speeds and high memory consumption.

Method used

A method based on extended layout format is adopted, which divides large cells into rectangular regions to generate new layout data, and uses window regions to perform intersection search to load the information of intersecting rectangular regions. Combined with multi-threaded parallel processing, fast loading is achieved.

Benefits of technology

Without affecting compatibility with third-party EDA software, the loading speed and memory utilization efficiency of large cell layout files have been improved, enabling fast loading and processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115796110B_ABST
    Figure CN115796110B_ABST
Patent Text Reader

Abstract

The application discloses a method and system for accelerating layout loading based on an extended layout format, comprising the following steps: reading layout data, obtaining and saving information of each CELL; judging whether the number of patterns contained in each CELL is greater than a preset number value; if yes, determining that the CELL is a large CELL, dividing the large CELL to obtain a CELL with multiple rectangular regions, and generating new layout data; reading the new layout data, performing intersection search to obtain a CELL intersecting with a window region; for the large CELL in the intersecting CELL, obtaining and loading information of a rectangular region in the large CELL intersecting with the window region, directly loading information of other CELLS in the intersecting CELL, and completing processing and viewing of the new layout data. The application improves the loading speed of a layout file containing a large CELL without affecting loading of third-party EDA software.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of semiconductor design, in particular to a method and system for accelerating layout loading based on an extended layout format. BACKGROUND

[0002] After a series of designs such as circuit logic, a semiconductor chip will finally be converted into a layer of geometric patterns before photolithography production, and these geometric patterns are the layout required in chip production.

[0003] Layout information is saved in a computer disk according to a certain file format. Currently, the mainstream layout formats are GDSII and OASIS. The two layout formats can be freely selected and converted to each other. The format selected by the present application is OASIS.

[0004] A significant feature of the geometric patterns of the layout when distributed is that there are often a large number of identical pattern regions repeatedly appearing. Each repeatedly appearing pattern region is referred to as a CELL. These repeated CELL region patterns only need to save one set of data in the file format. When other regions need to place the pattern as a whole, only the position offset needs to be indicated. Each placement corresponding to the CELL is referred to as an instance of the CELL. The spatial distribution of the CELL and the file format distribution map are shown in Figure 1 and Figure 2 It can be seen from Figure 1 that the entire layout is composed of 4 ACELLs, 3 BCELLs, and 1 CCELL. Taking CELLA as an example, although CELLA is instantiated 4 times in the spatial distribution, if CELLA contains 1000 patterns, then 1000*4=4000 patterns are generated in the layout spatial perspective, but CELLA only needs to save one set of data in the layout OASIS file.

[0005] With the increasing integration of chips, a single chip layout file is often quite large and contains a considerable number of patterns. Therefore, when opening the layout file with EDA software, a considerable amount of time is spent, at least 10 minutes or more, and the memory occupation is also very large, completely loading into several hundred G of memory. However, in actual use, opening the layout file is often only to view partial information of the layout or to perform partial browsing, measurement, and error correction, etc.

[0006] In view of the time and memory problems caused by the large layout mentioned above, there are currently two main solutions in the industry:

[0007] Solution 1:

[0008] Full use of OASIS StrictMode mode for multi-thread parallel CELL loading and parsing and local on-demand loading of CELL data in layout to achieve fast loading speed and small memory occupation.

[0009] As shown in Figure 3 When a CELL occupies most of the entire layout pattern quantity, or the entire layout has only one CELL, loading this large CELL data is basically equal to loading the entire layout, and pure use of StrictMode mode cannot achieve the effect of fast loading and viewing.

[0010] Scheme 2:

[0011] Customize a layout format to achieve the purpose of acceleration and local loading, but the disadvantage is also obvious: other third-party EDA software cannot open and view this layout.

[0012] From the above, the problems existing in the prior art are that when there is a large CELL in the layout file, the layout file is slow to load and cannot be compatible with other third-party EDA software. SUMMARY

[0013] In order to overcome the shortcomings of the prior art, the present application provides a method and system for accelerating layout loading based on an extended layout format, which is used to solve the technical problems of slow layout file loading and incompatibility with other third-party EDA software in the prior art, so as to improve the loading speed of the layout file containing a large CELL without affecting the loading of the third-party EDA software.

[0014] To solve the above problems, the technical scheme adopted by the present application is as follows:

[0015] A method for accelerating layout loading based on an extended layout format, comprising the following steps:

[0016] Reading layout data, traversing the CELL contained in the layout data, obtaining the information of each CELL and saving it;

[0017] Obtaining the pattern quantity contained in each CELL according to the information of the CELL;

[0018] Judging whether the pattern quantity contained in each CELL is greater than a preset number value;

[0019] If yes, the CELL is determined as a large CELL, and rectangular regions are divided in the large CELL according to a preset area value, so that the CELL with multiple rectangular regions is obtained, and information of the rectangular regions is generated and saved, so that new layout data is obtained;

[0020] The new layout data is read, and intersection search is performed by using a window region, so that a CELL intersecting with the window region is obtained;

[0021] It is determined whether the CELL intersecting with the window region belongs to a large CELL;

[0022] For the large CELL in the intersecting CELL, a rectangular region in the large CELL intersecting with the window region is obtained, and information of the intersecting rectangular region is loaded, and for other CELLs in the intersecting CELL, information of the other CELLs is directly loaded;

[0023] The new layout data is processed and viewed according to the loaded information of the rectangular region and the information of the other CELLs.

[0024] As a preferred embodiment of the present application, when the information of the rectangular region is generated and saved, the following is included:

[0025] Data offset information and boundary information of each rectangular region are written by using an attribute section in the layout data;

[0026] The information of the rectangular region includes the data offset information and the boundary information.

[0027] As a preferred embodiment of the present application, when the data offset information of each rectangular region is written by using the attribute section in the layout data, the following is included:

[0028] First, the data offset information of each rectangular region is written as 0 for placeholder, and after data of all rectangular regions is written into a layout format data section, real data offset information of each rectangular region is obtained, and the real data offset information is written back to the corresponding rectangular region.

[0029] As a preferred embodiment of the present application, when the new layout data is processed and viewed, the following is included:

[0030] The loaded information of the rectangular region and the information of the other CELLs are released, and intersection search is performed by using a new window region, so that the new layout data is processed and viewed.

[0031] As a preferred embodiment of the present application, when the rectangular region in the large CELL intersecting with the window region is obtained, the following is included:

[0032] According to the data offset information and the boundary information of the rectangular region, it is determined whether the corresponding rectangular region intersects with the window region, and if yes, information of the intersected rectangular region is loaded.

[0033] As a preferred embodiment of the present application, when the information of the intersected rectangular region and the information of the other CELL are loaded, the following steps are included:

[0034] The information of the intersected rectangular region and the information of the other CELL are loaded in multi-thread parallel mode using the StrictMode mode of the new layout data.

[0035] As a preferred embodiment of the present application, when the information of each CELL is obtained and saved, the following steps are included:

[0036] The CELL is processed according to the StrictMode mode of the layout data, and the data offset information and the boundary information of the CELL are obtained and saved;

[0037] The information of the CELL includes the data offset information and the boundary information.

[0038] As a preferred embodiment of the present application, if a CELL is determined to be a large CELL, the CELL additionally saves the data offset information and the boundary information of the rectangular region based on the saved data offset information and the boundary information of the CELL.

[0039] As a preferred embodiment of the present application, when the new layout data is read, the following steps are included:

[0040] The data offset information and the boundary information of the CELL in the new layout data are read.

[0041] And the data offset information and the boundary information of the rectangular region are read for the large CELL in the CELL.

[0042] A system for accelerating layout loading based on an extended layout format, comprising:

[0043] A data generation module is configured to read layout data, traverse the CELLs contained in the layout data, obtain and save the information of each CELL, obtain the number of patterns contained in each CELL according to the information of the CELL, determine whether the number of patterns contained in each CELL is greater than a preset number value, if yes, determine that the CELL is a large CELL, and divide the large CELL into rectangular regions according to a preset area value to obtain a CELL with multiple rectangular regions.

[0044] A format extension encoding module is configured to generate and save the information of the rectangular region to obtain new layout data.

[0045] The data loading module is used for reading the new layout data, performing intersection search by using a window region to obtain a CELL intersecting with the window region, judging whether the CELL intersecting with the window region belongs to a large CELL, obtaining a rectangular region in the large CELL intersecting with the window region for the large CELL in the intersecting CELL, loading information of the intersecting rectangular region, directly loading information of other CELL for other CELL in the intersecting CELL, and processing and viewing the new layout data according to the loaded information of the rectangular region and the information of the other CELL.

[0046] Compared with the prior art, the present application has the following beneficial effects:

[0047] The present application is compatible with the OASIS layout format and is extended to generate layout data which can be provided to third-party other EDA software for loading and processing, and can better solve the requirement of fast loading and processing in various different CELL size distribution scenarios when used internally, and also has smaller controllable memory occupation and can be loaded and processed in multiple threads in parallel to further accelerate the loading and processing speed of the layout file.

[0048] The present application will be further described in detail below in combination with the accompanying drawings and specific embodiments. BRIEF DESCRIPTION OF DRAWINGS

[0049] Figure 1 - is a CELL space distribution schematic diagram in a layout file of an embodiment of the present application;

[0050] Figure 2 - is a typical OASIS CELL file distribution schematic diagram of an embodiment of the present application;

[0051] Figure 3 - is a layout file schematic diagram containing a large CELL of an embodiment of the present application;

[0052] Figure 4 - is a system schematic diagram of an embodiment of the present application for accelerating layout loading based on an extended layout format;

[0053] Figure 5 - is a space division schematic diagram of a large CELL of an embodiment of the present application;

[0054] Figure 6 - is a rectangular region information format schematic diagram of a large CELL of an embodiment of the present application;

[0055] Figure 7 - is a loading schematic diagram of new layout data of an embodiment of the present application;

[0056] Figure 8 is a new loading flowchart of layout data of an embodiment of the present application;

[0057] Figure 9 is a new generation flowchart of layout data of an embodiment of the present application;

[0058] Figure 10 is a method step chart of accelerating layout loading based on an extended layout format of an embodiment of the present application. DETAILED DESCRIPTION

[0059] The method for accelerating layout loading based on an extended layout format provided by the present application, as shown in the figure, comprises the following steps: Figure 10

[0060] Step S1: reading layout data, traversing the CELL contained in the layout data, obtaining and saving the information of each CELL;

[0061] Step S2: obtaining the number of patterns contained in each CELL according to the information of the CELL;

[0062] Step S3: judging whether the number of patterns contained in each CELL is greater than a preset number value;

[0063] Step S4: if yes, determining that the CELL is a large CELL, and performing rectangular region division on the large CELL according to a preset area value, obtaining the CELL with multiple rectangular regions, and generating and saving the information of the rectangular regions to obtain new layout data;

[0064] Step S5: reading the new layout data, and performing intersection search using a window region to obtain the CELL intersecting with the window region;

[0065] Step S6: judging whether the CELL intersecting with the window region belongs to the large CELL;

[0066] Step S7: for the large CELL in the intersecting CELL, obtaining the rectangular region in the large CELL intersecting with the window region, and loading the information of the intersecting rectangular region, and for other CELL in the intersecting CELL, directly loading the information of the other CELL;

[0067] Step S8: processing and viewing the new layout data according to the loaded information of the rectangular region and the information of the other CELL.

[0068] In the above steps S1 and S5, the format of the read layout data and the new layout data is OASIS format.

[0069] In the above step S3, the preset number value N is selected as follows:

[0070] ​The size of N can be chosen by simply selecting a suitable value based on experience, for example, we

[0071] Based on past experience, if the data loading time of each cell is to be controlled within 1 second, the number of graphics contained in each cell cannot exceed 500,000. Therefore, the value of N can be selected as 500,000. When the number of graphics in a cell exceeds 500,000, a second division is required.

[0072] In step S4 above, the large cell is divided into rectangular regions according to a preset area value, specifically as follows: Figure 5 As shown, the large cell is divided into rectangular tiles with reasonable aspect ratios, where the area of ​​each tile is M (i.e., a preset area value). For example, the number of graphics contained in each tile cannot exceed the aforementioned N value of 500,000, so an area value M is obtained according to the maximum density scene.

[0073] In step S4 above, when saving the information of the generated rectangular region, the following steps are included:

[0074] Use the attribute segments in the layout data to write the data offset information and boundary information for each rectangular area;

[0075] The information for the rectangular region includes data offset information and boundary information.

[0076] Furthermore, when writing the data offset information for each rectangular region using the attribute segments in the layout data, the following is included:

[0077] First, write the data offset information of each rectangular area to 0 as a placeholder. After all the data of the rectangular areas have been written into the layout format data segment, obtain the actual data offset information of each rectangular area and write the actual data offset information back to the corresponding rectangular area.

[0078] Specifically, such as Figure 6 As shown, in the OASIS layout format encoding, the data offset information (tile offset) and boundary information (tile boundbox) of each tile after the "large CELL" is divided into tiles are written using the attribute segment. The data loading module only needs to read this CELL and tile information in advance. During actual loading, it can load the number of CELL and tile graphics as needed according to the pre-read CELL and tile information.

[0079] In step S4 above, the process of obtaining the new map data is as follows: Figure 9 As shown.

[0080] In step S8 above, when processing and viewing the new map data, the following is included:

[0081] Release the information of the loaded rectangular region and the information of other CELLs, and perform intersection search with the new window region to process and view the new layout data.

[0082] Specifically, according to different scenarios and requirements of the application software, when we process and view the result in the first VIEW window region and then jump to the second VIEW window region to process the layout, if there is a requirement and limitation on the memory, the memory occupied by the first VIEW window region data can be released first, so as to effectively control the occupation of the memory and improve the loading speed of the layout file.

[0083] In the above step S7, when the rectangular region intersecting with the window region in the large CELL is obtained, it includes:

[0084] According to the data offset information and boundary information of the rectangular region, it is determined whether the corresponding rectangular region intersects with the window region, and if so, the information of the intersecting rectangular region is loaded.

[0085] Specifically, as shown in Figure 7 The dashed region in the figure is the VIEW window region currently positioned by the user for viewing or processing, and the VIEW window region only intersects with three tiles of CELL A and CELL C, so only the data of CELL A and part of the TILE data of CELL C need to be loaded to view and process the layout.

[0086] In the above step S7, when the information of the intersecting rectangular region and the information of other CELLs are loaded, it includes:

[0087] The information of the intersecting rectangular region and the information of other CELLs are loaded in multi-thread parallel mode using the StrictMode mode of the new layout data.

[0088] In the above step S1, when the information of each CELL is obtained and saved, it includes:

[0089] According to the StrictMode mode of the layout data, the CELL is processed to obtain and save the data offset information and boundary information of the CELL.

[0090] The information of the CELL includes the data offset information and boundary information.

[0091] Further, if the CELL is determined to be a large CELL, the CELL additionally saves the data offset information and boundary information of the rectangular region on the basis of saving the data offset information and boundary information of the CELL.

[0092] In the above step S5, as shown in Figure 8As shown, when reading new layout data, it includes:

[0093] Reading the data offset information and boundary information of the CELL in the new layout data;

[0094] And reading the data offset information and boundary information of the rectangular region in the large CELL in the CELL.

[0095] The system provided by the application accelerates the layout loading based on the extended layout format, specifically as Figure 4 As shown, it includes:

[0096] The data generation module is used to read the layout data, traverse the CELL contained in the layout data, obtain the information of each CELL and save it, obtain the number of patterns contained in each CELL according to the information of the CELL, judge whether the number of patterns contained in each CELL is greater than a preset number value, if yes, determine that the CELL is a large CELL, and divide the large CELL into rectangular regions according to a preset area value, to obtain a CELL with multiple rectangular regions;

[0097] The format expansion coding module is used to generate and save the information of the rectangular region, to obtain new layout data;

[0098] The data loading module is used to read the new layout data, and uses the window region to perform intersection search, to obtain the CELL intersecting with the window region, judges whether the CELL intersecting with the window region belongs to a large CELL, obtains the rectangular region in the large CELL intersecting with the window region for the large CELL in the intersecting CELL, loads the information of the intersecting rectangular region, and directly loads the information of other CELL for other CELL in the intersecting CELL, and processes and views the new layout data according to the loaded information of the rectangular region and the information of other CELL.

[0099] Specifically, the functions of each module are as follows:

[0100] (1) The data generation module mainly solves the detection and division of the "large CELL" into smaller spatial regions;

[0101] (2) The format expansion module mainly writes the information of the "large CELL" and the spatial division information into the attribute section of the OASIS format based on the StrictMode of the OASIS format, since the OASIS attribute section belongs to user-defined data, the amount of data that can be written is also flexible, and it will not affect the normal reading and analysis of third-party EDA software;

[0102] (3) The data loading module mainly analyzes the expanded OASIS format, and queries and loads the corresponding CELL data through the window VIEW region.

[0103] Compared with the prior art, the present application has the beneficial effects that:

[0104] The present application is compatible with the OASIS layout format and is extended, and the generated layout data can be provided to other EDA software for loading and processing, and when used internally, can better solve the demand for fast loading and processing in various different CELL size distribution scenarios, and the occupied memory is also smaller and controllable, and can also be loaded and processed in multiple threads in parallel, further accelerating the loading and processing speed of the layout file.

[0105] The above-mentioned embodiments are only preferred embodiments of the present application, and cannot be used to limit the scope of protection of the present application, and any non-essential changes and substitutions made by those skilled in the art on the basis of the present application shall fall within the scope of protection of the present application.

Claims

1. A method for accelerating layout loading based on an extended layout format, characterized in that, Includes the following steps: Read the layout data, traverse the cells contained in the layout data, obtain the information of each cell and save it; The number of graphics contained in each cell is obtained based on the information of the cell; Determine whether the number of graphics contained in each cell is greater than a preset value; If so, the cell is determined to be a large cell, and the large cell is divided into rectangular regions according to the preset area value to obtain a cell with multiple rectangular regions. The information of the rectangular regions is generated and saved to obtain new map data. Read the new map data and perform an intersection search using the view area to obtain the cells that intersect with the view area; Determine whether a cell intersecting with the viewport area is a large cell; For the larger cell among the intersecting cells, obtain the rectangular region within the larger cell that intersects with the window area, and load the information of the intersecting rectangular region. For the other cells among the intersecting cells, directly load the information of the other cells. The new layout data is processed and viewed based on the information of the loaded rectangular area and other cell information.

2. The method for accelerating layout loading based on an extended layout format according to claim 1, wherein, When saving the information generated for the rectangular region, the following steps are included: The data offset information and boundary information of each rectangular region are written using the attribute segments in the layout data; The information of the rectangular region includes data offset information and boundary information.

3. The method of claim 2, wherein, When writing the data offset information for each rectangular region using the attribute segments in the layout data, the process includes: First, the data offset information of each rectangular region is written as 0 as a placeholder. After all the data of the rectangular regions are written into the layout format data segment, the actual data offset information of each rectangular region is obtained, and the actual data offset information is written back to the corresponding rectangular region.

4. The method of claim 1, wherein, Processing and viewing the new map data includes: Release the information of the loaded rectangular area and other cell information, and perform intersection search using the new window area to process and view the new map data in a new way.

5. The method of claim 2, wherein, When acquiring the rectangular region intersecting the viewport region within the large cell, the following steps are included: Based on the data offset information and boundary information of the rectangular region, determine whether the corresponding rectangular region intersects with the viewport region. If so, load the information of the intersecting rectangular region.

6. The method of claim 1, wherein, When loading information about the intersecting rectangular regions and the other cells, the following is included: The StrictMode mode of the new map data is used to load the information of the intersecting rectangular regions and the information of other cells in a multi-threaded parallel manner.

7. The method of claim 2, wherein, When acquiring and saving the information for each cell, the process includes: The CELL is processed according to the StrictMode mode of the layout data to obtain and save the data offset information and boundary information of the CELL; The information in the CELL includes data offset information and boundary information.

8. The method for accelerating layout loading based on an extended layout format according to claim 7, wherein, If the CELL is determined to be a large CELL, the CELL additionally stores data offset information and boundary information of the rectangular region on the basis of storing data offset information and boundary information of the CELL.

9. The method of claim 7, wherein, In reading the new layout data, comprising: reading data offset information and boundary information of the CELL in the new layout data; and reading data offset information and boundary information of the rectangular region for the large CELL in the CELL.

10. A system for accelerating loading of a layout based on an extended layout format, the system comprising: comprising: a data generating module for reading layout data, traversing the CELL contained in the layout data, obtaining and storing information of each CELL; obtaining the number of patterns contained in each CELL according to the information of the CELL; determining whether the number of patterns contained in each CELL is greater than a preset number value; if yes, determining the CELL to be a large CELL, and performing rectangular region division on the large CELL according to a preset area value to obtain a CELL with multiple rectangular regions; a format expansion coding module for generating and storing information of the rectangular region to obtain new layout data; a data loading module for reading the new layout data and performing intersection search by using a window region to obtain a CELL intersecting with the window region; determining whether the CELL intersecting with the window region belongs to a large CELL; for the large CELL in the intersecting CELL, obtaining a rectangular region in the large CELL intersecting with the window region and loading information of the intersecting rectangular region; for other CELL in the intersecting CELL, directly loading information of the other CELL; and processing and viewing the new layout data according to the loaded information of the rectangular region and the information of the other CELL.

Citation Information

Patent Citations

  • Territory preprocessing method for laser direct imaging

    CN103559344A

  • Method for loading super-large-scale graphic files of power distribution network

    CN106095364A