Layout data storage method, device, equipment, medium and product

By encoding and associating the graphic and transformation path information in the layout file, and establishing an association information table, the problems of large memory consumption and low inspection efficiency of the layout file are solved, and efficient same-origin inspection is achieved.

CN122152769APending Publication Date: 2026-06-05ORIENTAL CRYSTAL MICROELECTRONICS TECH (SHANGHAI) CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ORIENTAL CRYSTAL MICROELECTRONICS TECH (SHANGHAI) CO LTD
Filing Date
2026-01-22
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

The existing layout files store graphic identifiers, basic unit identifiers, and instance transformation information in string format, resulting in high memory consumption and slow comparison, which affects the efficiency of design rule checking.

Method used

The graphics in the layout file are encoded using a first fixed-length character array. Based on the hierarchical position information, the conversion path information is determined and an association information table is established. The association information table is used to store the data of the layout file.

Benefits of technology

It effectively reduces the memory footprint of layout files and improves the efficiency of same-origin checks in design rule checks, thereby reducing the risk of misjudgment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122152769A_ABST
    Figure CN122152769A_ABST
Patent Text Reader

Abstract

The application discloses a layout data storage method, device, equipment, medium and product. The storage method comprises the following steps: acquiring a layout file; traversing the layout file, encoding the graphics in each basic unit into a character array with a first fixed length to obtain first encoding information corresponding to each graphic, wherein the first encoding information of any two graphics in the layout file is different; determining the conversion path information of the graphics included in each instance based on hierarchical position information, encoding the conversion path information into a character array with a second fixed length to obtain second encoding information corresponding to each graphic, and associating the first encoding information and the second encoding information of each graphic to form an association information table; the conversion path information represents the cumulative position transformation of the graphics in the layout file; and the data of the layout file is stored based on the association information table. The above method can reduce the occupied content of the layout file and reduce the storage pressure.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of data processing technology, and in particular relates to a method, apparatus, device, medium and product for storing map data. Background Technology

[0002] In the process of integrated circuit design and manufacturing, the data in the layout file is the key data describing the physical structure of the chip. Currently, mainstream layout files generally store the following data: the basic unit identifier corresponding to the instance, the graphic identifiers of different graphics included in the basic unit, and instance conversion information, etc. The above different data are often saved as strings or floating-point parameters along with the instance, resulting in the layout file occupying a large amount of memory and the storage pressure of storing the layout file is large. Summary of the Invention

[0003] This application provides a method, apparatus, device, medium, and product for storing layout data, which can reduce the memory occupied by layout files and reduce the storage pressure of storing layout files.

[0004] In a first aspect, embodiments of this application provide a method for storing layout data, including: Obtain the layout file, which contains multiple instances. Each instance corresponds to a basic unit and hierarchical position information. Each basic unit includes at least one graphic. The hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file. Traverse the layout file and encode the graphics in each basic unit with a first fixed-length character array to obtain the first encoding information corresponding to each graphic. The first encoding information of any two graphics in the layout file is different. Based on the hierarchical location information, the transformation path information of the graphics included in each instance is determined. The transformation path information is encoded using a second fixed-length character array to obtain the second encoding information corresponding to each graphic. The first encoding information and the second encoding information of each graphic are associated to form an association information table. The transformation path information represents the cumulative positional changes of the graphic in the layout file. Data from the map file is stored based on the association information table.

[0005] Secondly, embodiments of this application provide a storage device for layout data, comprising: The acquisition module is used to acquire layout files, which contain multiple instances. Each instance corresponds to a basic unit and hierarchical position information. Each basic unit includes at least one graphic. The hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file. The encoding module is used to traverse the layout file and encode the graphics in each basic unit with a first fixed-length character array to obtain the first encoding information corresponding to each graphic. The first encoding information of any two graphics in the layout file is different. The encoding module is also used to determine the transformation path information of the graphics included in each instance based on the hierarchical position information, encode the transformation path information using a second fixed-length character array to obtain the second encoding information corresponding to each graphic, and associate the first encoding information and the second encoding information of each graphic to form an association information table; the transformation path information represents the cumulative positional changes of the graphics in the layout file; The storage module is used to store the layout file data based on the associated information table.

[0006] Thirdly, embodiments of this application provide an electronic device, the device comprising: Processor and memory storing computer program instructions; A method for storing layout data used by a processor to execute computer program instructions as described in the first aspect above.

[0007] Fourthly, embodiments of this application provide a computer storage medium storing computer program instructions, which, when executed by a processor, implement the method for storing layout data as described in the first aspect.

[0008] Fifthly, embodiments of this application provide a computer program product, including a computer program that, when processed by a processor, implements the method for storing layout data described in the first aspect.

[0009] The present application's embodiments of the layout data storage method, apparatus, device, medium, and product encode the graphics in the layout file using a first fixed-length character array to obtain first encoding information corresponding to each graphic. Simultaneously, based on hierarchical position information, the transformation path information in the graphics is encoded using a second fixed-length character array to obtain second encoding information. An association information table is established between the first encoding information and the second encoding information. The layout file data is stored using the association information table to obtain a layout file stored based on the association information table. This effectively reduces the memory occupied by the layout file. At the same time, using the association information table can improve the efficiency of fast same-origin checks on two edges to be checked in subsequent design rule checks. Attached Figure Description

[0010] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments of this application will be briefly introduced below. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0011] Figure 1 This is a flowchart illustrating a method for storing layout data provided in some embodiments of this application.

[0012] Figure 2 This is a schematic diagram of an exemplary basic unit provided for some embodiments of this application.

[0013] Figure 3 This is a schematic diagram of an exemplary hierarchical structure tree provided for some embodiments of this application.

[0014] Figure 4 This is a flowchart illustrating another method for storing layout data provided in some embodiments of this application.

[0015] Figure 5 This is a schematic diagram of a layout data storage device provided for some embodiments of this application.

[0016] Figure 6 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0017] The features and exemplary embodiments of various aspects of this application will be described in detail below. To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain this application and not to limit it. For those skilled in the art, this application can be implemented without some of these specific details. The following description of the embodiments is merely to provide a better understanding of this application by illustrating examples.

[0018] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0019] Before describing the technical solutions provided in the embodiments of this application, in order to facilitate understanding of the embodiments of this application, this application first specifically explains the problems existing in the related technologies: Currently, when performing Design Rule Check (DRC) or layout comparison, it is necessary to determine whether any two edges in the layout file belong to the same shape. Therefore, it is necessary to determine whether any two edges in the layout file have the same shape ID, cell name, and instance transition information.

[0020] However, in existing layout files, the aforementioned graphic identifiers, basic unit identifiers, and instance transformation information are all stored in the form of strings. It is conceivable that the above storage format causes the layout file to occupy too much memory at the time, and at the same time, it is impossible to determine whether the two edges to be checked are of the same origin through quick comparison during DRC checks.

[0021] Based on this, embodiments of this application provide a method, apparatus, device, medium, and product for storing layout data, which can solve the above-mentioned problems. The following is a detailed description of a method for storing layout data provided by embodiments of this application.

[0022] In some embodiments, such as Figure 1 As shown, this application embodiment provides a method for storing layout data, which may include the following steps S110-S140: S110: Obtain the layout file, which includes multiple instances. Each instance corresponds to a basic unit and hierarchical position information. Each basic unit includes at least one graphic. The hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file.

[0023] A layout file can be obtained, which may contain multiple instances. Each instance corresponds to a basic unit. For example, for instance K, its corresponding basic unit K is as follows: Figure 2 As shown, cell K may include at least one graphic, such as... Figure 2 In this context, cell K includes two shapes. It's conceivable that these shapes can include both polygons and edges.

[0024] Additionally, this instance also corresponds to hierarchical location information, which can be used to indicate the instance's hierarchical coordinates within the layout file. In some examples, this hierarchical location information can be the instance's hierarchical coordinates within the layout file's hierarchical structure tree, which can be used to determine the instance's position within the layout file.

[0025] S120: Traverse the layout file, encode the graphic in each basic unit with a first fixed-length character array, and obtain the first encoding information corresponding to each graphic. The first encoding information of any two graphics in the layout file is different.

[0026] The graphics in each basic unit of the layout file can be encoded using a first fixed-length character array (e.g., 16 bits). For example, the first graphic in cell K can be encoded as 1A, the second graphic as 1B, and so on. Furthermore, each graphic can be encoded using integer encoding, such as... Figure 2 In this example, the first graphic in cell K is encoded as 1, and the second graphic is encoded as 2. Further details will not be provided here.

[0027] It is conceivable that after encoding each graphic as described above, the initial encoding information of any two graphics in the layout file will be different. For example, for any basic unit, the initial encoding information of all the graphics it includes will be different; for any two basic units, the encoding information of graphics with the same shape will also be different. That is, each graphic in the layout file has a unique identifier.

[0028] S130: Based on the hierarchical location information, determine the transformation path information of the graphics included in each instance, encode the transformation path information using a second fixed-length character array to obtain the second encoding information corresponding to each graphic, and associate the first encoding information and the second encoding information of each graphic to form an association information table; the transformation path information represents the cumulative positional changes of the graphics in the layout file.

[0029] Here, the aforementioned hierarchical positional information can actually characterize the hierarchical logical relationship between different instances in the layout file, that is, the parent-child containment relationship between different instances. For example, based on the hierarchical positional information of instance K and instance A respectively, it can be determined that instance A can actually contain instance K, that is, instance A and instance K have a parent-child containment relationship. Therefore, it can be determined that K→A can serve as the transformation path information for all graphics in the corresponding cell K of instance K, that is, this path transformation information records the cumulative positional changes of the graphic.

[0030] Here, for each level in this hierarchical logical relationship, when a parent cell references a child cell (i.e., when an instance is created), transformations such as displacement, rotation, and mirroring are applied. The aforementioned cumulative position transformation refers to the final actual position of the graphic in the layout, that is, the cumulative result of the graphic's transformation from its original hierarchical position through each level of the path transformation information until its final hierarchical position. Simultaneously, it's conceivable that during the layout file generation process, there exists a "same-case-different-cases" mechanism, meaning that a graphic in one cell might be pushed to a higher-level cell for storage. This cumulative position transformation also fully records the path trajectory and transformation history during this storage process. The aforementioned path transformation information can be encoded, for example, using a character array to encode it as 1L, or directly using integer data to encode it as 1, obtaining the second encoded information.

[0031] Simultaneously, the first and second encoded information can be associated to obtain multiple sets of associated information, constructing an associated information table that includes these multiple sets of associated information. For example, regarding... Figure 2 In cell K, figures 1 and 2 both have a transformation path information of 1. Therefore, based on the format of first encoding information + second encoding information, the following association information can be established: 1|1, 2|1, 1|1 represents that the transformation path information of figure 1 is 1, and 2|1 represents that the transformation path information of figure 2 is 1. This further yields an association information table that includes the above multiple sets of association relationships. This association information table lists all possible transformation path information for all figures.

[0032] S140: Store layout file data based on the associated information table.

[0033] Based on the above association table, data in the layout file can be stored. That is, the graphic identifier in the layout file can be replaced by the first encoding information, and the basic unit identifier in the layout file can be replaced by a combination of multiple first encoding information. For example, if the basic unit cell_K contains graphic 1 and graphic 2, then the identifier of cell_K is replaced with [1, 2].

[0034] Simultaneously, the second encoding information can be used to record the transformation path information of all instances in the layout file. The transformation path information represents the cumulative positional transformations that the graphic undergoes from its original hierarchical position to its final hierarchical position. Based on the above steps, a layout file stored based on the association information table is obtained. In the final layout file stored based on the association information table, only the second encoding information representing the first encoding information of the graphic, the combination of the first encoding information representing the cell, and the complete transformation path of the instance are included.

[0035] Based on this, it can be conceived that in the subsequent DRC stage, for any two edges, we can check whether they have the same first and second encoding information in the association table, thereby determining whether they are from the same origin. This would improve DRC efficiency.

[0036] This application embodiment encodes the graphics in the layout file using a first fixed-length character array to obtain first encoding information for each graphic. Simultaneously, based on the hierarchical position information, the transformation path information in the graphics is encoded using a second fixed-length character array to obtain second encoding information. An association information table is established for the first and second encoding information. Using the association information table to store the layout file data can effectively reduce the memory occupied by the layout file. At the same time, using the association information table can improve the efficiency of fast same-origin checks on two edges to be checked in the subsequent DRC stage.

[0037] It is conceivable that layout files are organized in a hierarchical design structure and stored as such Figure 3 The hierarchical structure tree shown is as follows: Figure 3 In the hierarchical structure tree, there is a top-level node TOP and multiple child nodes, where each child node represents an instance, for example... Figure 3 In the diagram, K represents instance K; each instance corresponds to a cell. As shown in the diagram, each cell can include at least one graphic or include at least one graphic and a lower-level instance.

[0038] In layout design, many structures are "repetitive" (such as transistor layouts from the same process, power / ground rings on the same layer, and pads aligned in the same group). Redrawing them each time is extremely inefficient and prone to human error. Therefore, a standard transistor layout can be encapsulated as a cell. When the transistor needs to be placed in different locations, only this cell needs to be instantiated, generating different instances of the same cell. That is, different instances share the same cell, only occupying different positions in the layout or applying different transformation parameters. For example... Figure 3 In this context, cell K forms 4 different instances K.

[0039] Therefore, based on the above hierarchical structure tree, it is intuitive to see structures that share or differentiate. For example, Figure 3 In this context, instances K and C share a common structure (cell A corresponding to instance A and cell TOP corresponding to the top-level node TOP). Therefore, for example... Figure 3 The instance K marked by the dashed box on the left has node paths KA-TOP and K-TOP.

[0040] Based on this, and using the hierarchical location information, the transformation path information for each graphic can be determined, which may include: The node path of each instance in the hierarchical structure tree is determined based on the hierarchical location information of each instance, and the transformation path information of each graph is determined based on the node path.

[0041] It can determine the specific position of each instance in the hierarchical structure tree based on the hierarchical position information of each instance, and determine the corresponding node path based on the specific position of each instance in the hierarchical structure tree. For example, for a... Figure 3 For instance K marked on the left, the node paths of KA-TOP and K-TOP are determined. Furthermore, the node path corresponding to each instance can be defined as the path transformation information for each graph within that instance. For example, for... Figure 3 The path transformation information for each graphic in the cell K of the example K is KA-TOP and K-TOP.

[0042] It can be inferred that the aforementioned path transformation information also has another layer of meaning: in generating the hierarchical structure tree, due to the "same-for-same, exclude-for-different" mechanism, the cell corresponding to the instance of the bottom-level node will push part of the graphics it includes to the cell corresponding to its parent node for storage. For example, when a cell X is generated and the hierarchical structure tree is calculated, cell X initially includes 4 instances, but three of these instances show in the calculation result that they include graphics 5 and 6, while the fourth instance only includes graphics 6. Due to the "same-for-same, exclude-for-different" mechanism, the fourth instance, which only includes graphics 6, will be pushed to the cell corresponding to the parent node of cell X for storage. Thus, the aforementioned transformation path information not only represents the node path of the graphics in the hierarchical structure tree, but also implicitly contains the change in the affiliation of the graphics during the "same-for-same, exclude-for-different" process. That is, it records whether the graphics are retained from the bottom-level cell or pushed to a higher-level parent node for storage during the hierarchical calculation process. This provides a precise source tracing basis for subsequent same-origin judgment DRC checks and incremental updates.

[0043] This application embodiment quickly determines the path transformation information corresponding to each graphic in the hierarchical structure tree by using a method based on hierarchical location information, node path, and transformation path information, which facilitates subsequent encoding of the path transformation information to obtain the second encoded information.

[0044] In some embodiments, the layout file includes instance transformation information corresponding to each instance; based on the hierarchical location information, the transformation path information for each graphic is determined, including: The node path of each instance in the hierarchical structure tree is determined based on the hierarchical location information of each instance; the transformation path information of each graph is determined based on the instance transformation information and the node path of each instance.

[0045] Similarly, by considering the hierarchical location information of each instance, the specific position of each instance in the hierarchical structure tree can be determined, and based on the specific position of each instance in the hierarchical structure tree, the corresponding node path can be determined. For example, for a given instance... Figure 3 The node paths of KA-TOP and K-TOP are determined by marking instance K in the middle.

[0046] For each instance, its corresponding instance transformation information can be obtained. This information can record the displacement parameters, rotation angle, mirror transformation, etc., of each instance. The combination of the instance transformation information and the node path for each instance serves as the transformation path information for each graphic in the cell corresponding to that instance. For example, for... Figure 3 The path transformation information for each graphic in cell K corresponding to the marked instance K is [KA-TOP, instance transformation information] and [K-TOP, instance transformation information].

[0047] In some examples, the above instance transformation information can be stored in structured data.

[0048] This application embodiment determines the transformation path information of each graphic based on instance transformation information and the node path of each instance. This enables the transformation path information to include not only the cumulative position changes of the graphic, but also the instance transformation information of the graphic. This can reduce the memory footprint of the layout file while maintaining the comprehensiveness of the data stored in the layout file.

[0049] In some embodiments, such as Figure 4 As shown, both the first and second encoding information are integer types. The layout file is traversed, and the graphics in each basic unit are encoded using a first fixed-length character array to obtain the first encoding information corresponding to each graphic, including: S410: Traverse the layout file, assign an incrementing unique integer identifier to the graphic in each basic unit in traversal order, and store it with a first fixed-length integer code to obtain the first encoding information corresponding to each graphic.

[0050] The layout file can be traversed to identify all cells, and each identified cell can be assigned an incrementing unique integer identifier to all the graphics it contains. For example, if cell K contains two graphics, each graphic can be assigned an identifier of 1 and 2 respectively. The integer identifiers are stored using an integer encoding of a first fixed length (e.g., 16 bits).

[0051] The conversion path information is encoded using a second fixed-length character array to obtain the second encoded information corresponding to each graphic, including: S420: For each conversion path information, assign an incrementing unique integer identifier in a preset order and store it with a second fixed-length integer code to obtain the second encoding information corresponding to each graphic.

[0052] For all conversion route information, assign incrementally unique integer identifiers in a preset order, for example, for... Figure 3 The path transformation information KA-TOP and K-TOP corresponding to the marked instance K on the left are assigned integer identifiers of 1 and 2 respectively, and stored using a second fixed-length integer encoding (such as 16 or 24 bits); at the same time, as Figure 3 For the path transformation information K-TOP, KAED-TOP, KAED, KAE, and KA corresponding to the marked instance K on the right, integer identifiers of 3, 4, 5, and 6 are assigned to it, respectively.

[0053] This application embodiment assigns an integer representation to each graphic and an integer identifier to each transformation path information. In other words, all possible instance-to-instance transformations can be recorded through integer identifiers, which can simplify the identifiers to the greatest extent and compress data bytes to the greatest extent. This helps to reduce the memory occupied by the layout file and facilitates the subsequent same-origin check of the layout graphics in the DRC stage.

[0054] It is conceivable that the design of inspection rules for edges with the same origin and edges with different origins may be different in DRC inspection. For example, the inspection range for the spacing between edges with the same origin is different from that for edges with different origins. Therefore, it is particularly important to detect whether two edges to be inspected have the same origin in DRC inspection.

[0055] In some embodiments, after storing the layout file data based on the association information table, the storage method may further include: When performing design rule checks on the graphics in the layout file, the first and second coding information corresponding to the graphics to which the two edges to be checked belong are queried from the data of the layout file stored in the association information table. If it is determined that the first and second coding information of the graphics to which the two edges to be checked belong are the same, it is determined that the two edges to be checked come from the same graphic of the same basic unit, and the design rule of the same source is used to check the two edges to be checked. The same source design rule is a predefined rule applicable to checking different edge spacings within the same graphic.

[0056] During DRC checks, for any two edges to be checked, the first step is to determine if they originate from the same cell. If the two edges originate from the same cell... Based on the association information table, we can query the first and second encoding information of the graphs to which the two edges to be inspected belong, and compare whether the encoding information of the two edges to be inspected is completely the same. If it is determined that they are completely the same, then it can be determined that they are from the same source and belong to the same graph, and the same source design rule can be used to perform DRC check.

[0057] Here, it can be inferred that since the aforementioned association information table was constructed based on the graph and the path transformation information of the graph, the first and second encoding information of all edges within the same graph must be the same. If the association information of two edges to be checked are 2|2 and 2|2 respectively, then it can be determined that they are from the same source.

[0058] In this embodiment of the application, during DRC checks, the association information table is queried to determine whether two edges to be checked have the same first encoding information and second encoding information. If they are found to be the same, they can be directly determined to be from the same source. The same source design rule can be directly used for DRC checks. Based on the above method, the same source edges can be quickly and accurately determined, which improves DRC efficiency and solves the problem of misjudgment that may occur when using traditional string queries.

[0059] In some embodiments, the storage method may further include: If it is determined that at least one of the first encoding information and the second encoding information of the two edges to be inspected are different, it is determined that the two edges to be inspected come from different graphics, and the design rule of non-same source design rule is used to check the design rule of the two edges to be inspected. The non-same source design rule is a predefined rule applicable to the spacing check between different graphics.

[0060] If it is determined that at least one of the first encoding information and the second encoding information of the graph to which the two edges to be inspected belong is different, then it can be directly determined that the two are from different sources. For example, if the association information of the two edges to be inspected is 2|5 and 2|6 respectively, then the two must be from different sources.

[0061] In some examples, when checking whether any two edges to be inspected have the same origin, we can first determine whether they originate from the same instance by storing the layout file data in an association information table. If they are determined to come from different instances, we can directly determine that they have different origins. Here, we can first determine whether the two edges to be inspected belong to the same instance based on the first encoding information corresponding to them.

[0062] Secondly, if it is determined that the two originate from the same instance, it can be detected that the first encoded information corresponding to the two is the same; if it is determined that they are different, it can be directly determined that the two have different sources.

[0063] Furthermore, if the first encoding information corresponding to the two is the same, then it is further detected whether the second encoding information corresponding to the two is the same. Here, if the second encoding information of the two is the same, it indicates that the two have performed the same instance transformation and can be directly identified as the same source edge.

[0064] This application embodiment can directly determine that two edges to be inspected are from different sources if at least one of the first encoding information and the second encoding information of the graph to which the two edges to be inspected belong is different. In this way, edges to be inspected from different sources can be quickly identified and inspected based on non-same-source design rules, thereby improving DRC efficiency.

[0065] Based on the same inventive concept, embodiments of this application also provide a storage device for layout data.

[0066] In some embodiments, such as Figure 5 As shown in the figure, this application provides a method for storing layout data, including: The acquisition module 501 is used to acquire a layout file, which includes multiple instances. Each instance corresponds to a basic unit and hierarchical position information. Each basic unit includes at least one graphic. The hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file. The encoding module 502 is used to traverse the layout file and encode the graphics in each basic unit with a first fixed-length character array to obtain the first encoding information corresponding to each graphic. The first encoding information of any two graphics in the layout file is different. The encoding module 502 is also used to determine the transformation path information of the graphics included in each instance based on the hierarchical position information, encode the transformation path information using a second fixed-length character array to obtain the second encoding information corresponding to each graphic, and associate the first encoding information and the second encoding information of each graphic to form an association information table; the transformation path information represents the cumulative positional changes of the graphics in the layout file; Storage module 503 is used to store layout file data based on the associated information table.

[0067] In this embodiment, the acquisition module acquires the layout file, and the encoding module encodes the graphics in the layout file using a first fixed-length character array to obtain the first encoding information corresponding to each graphic. At the same time, based on the hierarchical position information, the transformation path information in the graphics is encoded using a second fixed-length character array to obtain the second encoding information. An association information table of the first encoding information and the second encoding information is established, and the layout file data is stored in the association information table by the storage module, which can effectively reduce the memory occupied by the layout file.

[0068] In some embodiments, the layout file is organized in a design hierarchy and stored as a hierarchical structure tree, which includes multiple child nodes, each representing an instance; the encoding module is specifically used for: The node path of each instance in the hierarchical structure tree is determined based on the hierarchical location information of each instance, and the transformation path information of each graph is determined based on the node path.

[0069] In some embodiments, the layout file includes instance transformation information corresponding to each instance; the encoding module is specifically used for: The node path of each instance in the hierarchical structure tree is determined based on the hierarchical location information of each instance; Based on the instance transformation information and the node path of each instance, the transformation path information of each graph is determined.

[0070] In some embodiments, both the first encoded information and the second encoded information are integers; traversing the layout file, the encoding module is specifically used for: Traverse the layout file, assign an incrementing unique integer identifier to the graphic in each basic unit in traversal order, and store it with a first fixed-length integer code to obtain the first code information corresponding to each graphic; For each conversion path information, an incrementally increasing unique integer identifier is assigned according to a preset order, and stored in a second fixed-length integer code to obtain the second encoding information corresponding to each graphic.

[0071] In some embodiments, the apparatus further includes an inspection module for: When performing design rule checks on the graphics in the layout file, based on the data of the layout file stored in the association information table, query the first and second encoding information corresponding to the graphics to which the two edges to be checked belong respectively; If the first and second encoding information of the graphs to which the two edges to be inspected belong are the same, the two edges to be inspected are determined to come from the same graph of the same basic unit, and the design rule is used to check the two edges to be inspected.

[0072] In some embodiments, the inspection module is further configured to: If it is determined that at least one of the first encoding information and the second encoding information of the graph to which the two edges to be inspected belong is different, the two edges to be inspected are determined to come from different graphs, and the design rule check is performed on the two edges to be inspected using the non-same-origin design rule.

[0073] The apparatus described above is used to implement the corresponding layout data storage method in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0074] Figure 6 A schematic diagram of the hardware structure of an electronic device is provided in the application embodiment.

[0075] The electronic device 600 may include a processor 601 and a memory 602 storing computer program instructions.

[0076] Specifically, the processor 601 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.

[0077] Memory 602 may include mass storage for data or instructions. For example, and not limitingly, memory 602 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, memory 602 may include removable or non-removable (or fixed) media. Where appropriate, memory 602 may be internal or external to the integrated gateway disaster recovery device. In a particular embodiment, memory 602 is non-volatile solid-state memory.

[0078] In a particular embodiment, memory 602 includes read-only memory (ROM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically rewritable ROM (EAROM), or flash memory, or a combination of two or more of these.

[0079] Memory may include read-only memory (ROM), random access memory (RAM), disk storage media devices, optical storage media devices, flash memory devices, and electrical, optical, or other physical / tangible memory storage devices. Therefore, typically, memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the method according to the first aspect of this application.

[0080] The processor 601 implements any of the layout data storage methods in the above embodiments by reading and executing computer program instructions stored in the memory 602.

[0081] In one example, the electronic device may also include a communication interface 603 and a bus 604. Wherein, as... Figure 6 The processor 601, memory 602, and communication interface 603 are connected through bus 604 and complete communication with each other.

[0082] The communication interface 603 is mainly used to realize communication between various modules, devices, units and / or equipment in the embodiments of this application.

[0083] Bus 604 includes hardware, software, or both, that couples components of an online data traffic metering device together. For example, and not limitingly, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), HyperTransport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a Microchannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local (VLB) bus, or other suitable buses, or combinations of two or more of these. Where appropriate, bus 604 may include one or more buses. Although specific buses are described and illustrated in embodiments of this application, any suitable bus or interconnect is contemplated herein.

[0084] The electronic devices described above are used to implement the corresponding layout data storage method in any of the foregoing embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0085] Furthermore, in conjunction with the layout data storage methods in the above embodiments, this application embodiment can provide a computer storage medium for implementation. This computer storage medium stores computer program instructions; when these computer program instructions are executed by a processor, they implement any of the layout data storage methods in the above embodiments.

[0086] Furthermore, in conjunction with the layout data storage methods in the above embodiments, this application embodiment can provide a computer program product for implementation. When the instructions of this computer program product are executed by the processor of an electronic device, they implement any of the layout data storage methods in the above embodiments.

[0087] Those skilled in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of this application (including the claims) is limited to these examples; within the framework of this application, the technical features of the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations of different aspects of the embodiments of this application as described above, which are not provided in the details for the sake of brevity.

[0088] The functional blocks shown in the above-described structural diagram can be implemented as hardware, software, firmware, or a combination thereof. When implemented in hardware, they can be, for example, electronic circuits, application-specific integrated circuits (ASICs), appropriate firmware, plug-ins, function cards, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. Programs or code segments can be stored on a machine-readable medium or transmitted over a transmission medium or communication link via data signals carried on a carrier wave. "Machine-readable medium" can include any medium capable of storing or transmitting information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, hard disks, fiber optic media, radio frequency (RF) links, etc. Code segments can be downloaded via computer networks such as the Internet, intranets, etc.

[0089] It should also be noted that the exemplary embodiments mentioned in this application describe methods or apparatuses based on a series of steps or devices. However, this application is not limited to the order of the above steps; that is, the steps can be performed in the order mentioned in the embodiments, or in a different order, or several steps can be performed simultaneously.

[0090] The aspects of this application have been described above with reference to flowchart illustrations and / or block diagrams of methods, apparatus (devices), and computer program products according to embodiments of this application. It should be understood that each block in the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that these instructions, executable via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field-programmable logic circuit. It is also understood that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can also be implemented by dedicated hardware performing the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.

[0091] The above description is merely a specific embodiment of this application. Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the devices, modules, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. It should be understood that the protection scope of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the protection scope of this application.

Claims

1. A method for storing map data, characterized in that, include: Obtain a layout file, which includes multiple instances, wherein each instance corresponds to a basic unit and hierarchical position information, and each basic unit includes at least one graphic; the hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file; The layout file is traversed, and the graphics in each basic unit are encoded with a character array of a first fixed length to obtain the first encoding information corresponding to each graphic. The first encoding information of any two graphics in the layout file is different. Based on the hierarchical position information, the transformation path information of the graphics included in each instance is determined. The transformation path information is encoded using a second fixed-length character array to obtain the second encoding information corresponding to each graphics. The first encoding information and the second encoding information of each graphics are associated to form an association information table. The transformation path information represents the cumulative positional changes of the graphics in the layout file. The map file data is stored based on the associated information table.

2. The method for storing map data according to claim 1, characterized in that, The layout file is organized in a hierarchical structure and stored as a hierarchical structure tree, which includes multiple child nodes, each child node representing an instance; determining the transformation path information for each graphic based on the hierarchical position information includes: Based on the hierarchical location information of each instance, the node path of each instance in the hierarchical structure tree is determined, and based on the node path, the transformation path information of each graph is determined.

3. The method for storing map data according to claim 1, characterized in that, The layout file includes instance conversion information corresponding to each instance; The step of determining the transformation path information for each graphic based on the hierarchical position information includes: The node path of each instance in the hierarchical structure tree is determined based on the hierarchical location information of each instance; Based on the instance transformation information and the node path of each instance, the transformation path information of each graph is determined.

4. The method for storing map data according to claim 1, characterized in that, Both the first encoding information and the second encoding information are integer type information; the step of traversing the layout file and encoding the graphics in each basic unit with a first fixed-length character array to obtain the first encoding information corresponding to each graphic includes: Traverse the layout file, assign an incrementing unique integer identifier to the graphic in each basic unit according to the traversal order, and store it with an integer code of a first fixed length to obtain the first encoding information corresponding to each graphic; The method of encoding the conversion path information using a second fixed-length character array to obtain the second encoded information corresponding to each graphic includes: For each of the transformation path information, an incrementally increasing unique integer identifier is assigned according to a preset order, and stored in an integer code of a second fixed length, to obtain the second encoding information corresponding to each graphic.

5. The method for storing map data according to claim 1, characterized in that, After storing the layout file data based on the associated information table, the storage method further includes: When performing design rule checks on the graphics in the layout file, based on the data of the layout file stored in the association information table, query the first encoding information and the second encoding information corresponding to the graphics to which the two edges to be checked belong respectively; If the first and second encoding information of the graphs to which the two edges to be inspected belong are the same, it is determined that the two edges to be inspected come from the same graph of the same basic unit, and the design rule is used to check the two edges to be inspected.

6. The method for storing map data according to claim 5, characterized in that, Also includes: If it is determined that at least one of the first encoding information and the second encoding information of the graph to which the two edges to be inspected belong is different, the two edges to be inspected are determined to come from different graphs, and the design rule check is performed on the two edges to be inspected using the non-same-origin design rule.

7. A method for storing map data, characterized in that, include: An acquisition module is used to acquire a layout file, which includes multiple instances, wherein each instance corresponds to a basic unit and hierarchical position information, and each basic unit includes at least one graphic; the hierarchical position information is used to indicate the hierarchical coordinates of the instance in the layout file; The encoding module is used to traverse the layout file and encode the graphics in each basic unit with a character array of a first fixed length to obtain the first encoding information corresponding to each graphic, wherein the first encoding information of any two graphics in the layout file is different; The encoding module is further configured to determine the transformation path information of the graphics included in each instance based on the hierarchical position information, encode the transformation path information using a second fixed-length character array to obtain the second encoding information corresponding to each graphics, and associate the first encoding information of each graphics with the second encoding information to form an association information table; the transformation path information represents the cumulative positional changes of the graphics in the layout file; A storage module is used to store the data of the layout file based on the associated information table.

8. An electronic device, characterized in that, The device includes: a processor and a memory storing computer program instructions; The processor reads and executes the computer program instructions to implement the layout data storage method as described in any one of claims 1 to 6.

9. A readable storage medium, characterized in that, The readable storage medium stores computer program instructions, which, when executed by a processor, implement the method for storing layout data as described in any one of claims 1 to 6.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is processed by a processor, it implements the method for storing layout data as described in any one of claims 1 to 6.