Layout file splicing method, device and computer-readable storage medium

CN118887085BActive Publication Date: 2025-03-18SEMITRONIX
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411368670.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-29
Publication Date
2025-03-18
Estimated Expiration
2044-09-29

AI Technical Summary

Technical Problem

In the prior art, layout files are splicing for a long time, inefficient, and lack effective solutions.

Method used

By obtaining file splicing requirements, including information on stitching and target stitching, obtaining the original layout, creating a target stitch, and traversing the entries in the original layout based on file splicing requirements, storing the entries to be spliced ​​into the target stitch, stitching the target stitching, generating call information and adding it to the target stitching, completing the splicing processing of the target stitching.

Benefits of technology

The splicing time of layout files is shortened, the efficiency of file splicing is improved, memory consumption is reduced, and the search speed is accelerated through a reasonable and efficient data structure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118887085B_ABST
    Figure CN118887085B_ABST
Patent Text Reader

Abstract

The present application relates to a layout file splicing method, device and computer-readable storage medium, wherein the layout file splicing method includes: obtaining file splicing requirements, including: information of graphics elements to be spliced ​​and target graphics elements; obtaining an original layout; creating a target layout; based on the file splicing requirements, traversing graphics elements in the original layout, obtaining graphics elements to be spliced ​​in the original layout and storing them in the target layout; performing splicing processing on the target graphics elements, including: creating target graphics elements in the target layout, generating call information of the target graphics elements for the graphics elements to be spliced ​​based on the file splicing requirements, adding the call information to the target graphics elements, completing the splicing processing of the target graphics elements, solving the problem of long time and low efficiency in layout file splicing, shortening the layout file splicing time, and improving the file splicing efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of file splicing, and in particular to a layout file splicing method, device and computer-readable storage medium. Background Art

[0002] Layout file splicing technology is an important application in the field of microelectronics. It involves splicing multiple layout microscopic images or design modules into a complete layout. The GDSII layout data (Gerber Data Stream II, referred to as GDSII) format is a binary data structure. It is now recognized by the industry as a semiconductor physical layout storage format. It stores data in the form of data streams. At present, the GDSII format has 70 records for storing various layout information, including layout structure information, coordinate information, and layer information. OASIS (Open Artwork System Interchange Standard) is a stream file format. The length of each data block recorded in data blocks can be obtained by parsing its structure, but this length is not clear and needs to be parsed to obtain the length of the data block. The OASIS file format supports larger designs than the traditional GDSII file format and provides better compression ratios and faster reading speeds. The data structure storage type of the layout file determines that when splicing layout files, there will inevitably be problems of long time consumption and low efficiency.

[0003] There is currently no effective solution to the problem that layout file splicing is time-consuming and inefficient. Summary of the invention

[0004] In this embodiment, a layout file splicing method, device and computer-readable storage medium are provided to solve the problem of time-consuming and low efficiency of layout file splicing in related technologies.

[0005] In a first aspect, a layout file splicing method is provided in this embodiment, including:

[0006] Obtain file splicing requirements, including: information about the graphics element to be spliced ​​and the target graphics element;

[0007] Get the original map;

[0008] Create a target layout;

[0009] Based on the file splicing requirements, the primitives in the original layout are traversed and processed to obtain the primitives to be spliced ​​in the original layout and store them in the target layout;

[0010] The target graphics element is stitched together, including: creating the target graphics element in the target layout, generating calling information of the target graphics element to be stitched based on the file stitching requirements, adding the calling information to the target graphics element, and completing the stitching of the target graphics element.

[0011] In some of the embodiments, after obtaining the file splicing requirement, the method further includes: establishing a data relationship between the original layout file path, the to-be-spliced ​​graphic element, and the target graphic element based on the file splicing requirement;

[0012] Using data relationships, determine the order of traversing the primitives in the original layout;

[0013] When the target graphics element is spliced, the original layout that is no longer used in the memory is released in advance according to the data relationship.

[0014] In some of the embodiments, the file splicing requirement also includes splicing parameters; the splicing parameters include rotation processing parameters, mirror processing parameters, duplicate name processing parameters and empty primitive processing parameters;

[0015] Traversal processing, including:

[0016] Based on the file splicing requirements, perform duplicate name processing on the primitives in the original layout, and / or delete unnecessary primitives in the original layout;

[0017] Among them, the duplicate name processing includes: renaming the duplicated element, overwriting the existing duplicated element, or exiting with an error;

[0018] Unnecessary graphics elements refer to graphics elements in the original layout file other than the graphics elements to be spliced.

[0019] In some of the embodiments, when creating a target primitive in a target layout, it includes performing duplicate name processing on the primitives in the target layout;

[0020] Duplicate name processing includes: renaming duplicated entities, overwriting existing duplicated entities, or exiting with an error.

[0021] In some of the embodiments, the calling information includes at least one of a rotation processing instruction, a mirror processing instruction, and a movement processing instruction of the graphic element to be spliced.

[0022] In some of the embodiments, the file splicing requirement includes multiple target graphics elements, and the splicing process of all the target graphics elements is completed one by one in sequence;

[0023] The order refers to the processing order of multiple target graphics elements in the file splicing requirements, and / or the processing order of multiple target graphics elements after optimization;

[0024] Among them, the processing order of the optimized multiple target graphics is obtained through an adjustment step; the adjustment step includes: based on the data relationship, adjusting the order of multiple target graphics in the file splicing requirements, when there is a calling relationship between at least two target graphics, the order of the called target graphics is in front, and the order of the target graphics that calls the called target graphics is in the back.

[0025] In some of the embodiments, the file concatenation requirements include:

[0026] Information of the graphics element to be spliced, including the name of the graphics element to be spliced; the graphics element to be spliced ​​includes the graphics element in the original layout and / or the target graphics element;

[0027] Target primitive information, including target primitive name; file splicing requirements also include original layout information; original layout information includes file path and file type; obtain the original layout based on the original layout information.

[0028] In some of these embodiments, the file splicing requirement also includes target layout information;

[0029] The target layout information includes layer deletion processing parameters and file export requirements;

[0030] Based on the file export requirements in the file stitching requirements, select Merge to export a layout file containing at least one target primitive.

[0031] In the second aspect, a layout file splicing device is provided in this embodiment, including an acquisition module, a creation module, a traversal module and a splicing module, wherein:

[0032] The acquisition module is used to obtain the file splicing requirements, including: the information of the graphics element to be spliced ​​and the target graphics element; and obtain the original layout;

[0033] Create a module to create a target layout;

[0034] The traversal module is used to traverse the primitives in the original layout based on the file splicing requirements, obtain the primitives to be spliced ​​and store them in the target layout;

[0035] The splicing module is used to perform splicing processing on the target graphics element, including: creating the target graphics element in the target layout, generating the calling information of the target graphics element to be spliced ​​based on the file splicing requirements, adding the calling information to the target graphics element, and completing the splicing processing of the target graphics element.

[0036] According to a third aspect, a computer-readable storage medium is provided in this embodiment, on which a computer program is stored. When the computer program is executed by a processor, the steps of the layout file splicing method described in the first aspect are implemented.

[0037] Compared with the related art, the layout file splicing method provided in the present embodiment obtains the file splicing requirements, including: information of the graphics element to be spliced ​​and the target graphics element; obtains the original layout; creates the target layout; based on the file splicing requirements, traverses the graphics elements in the original layout, obtains the graphics element to be spliced ​​in the original layout and stores them in the target layout; performs splicing processing on the target graphics element, including: creating the target graphics element in the target layout, generating the call information of the target graphics element for the graphics element to be spliced ​​based on the file splicing requirements, adding the call information to the target graphics element, and completing the splicing processing of the target graphics element, thereby solving the problem of long time and low efficiency in layout file splicing, shortening the layout file splicing time, and improving the file splicing efficiency. During the entire stitching process, no excessive additional memory space will be allocated, and the read layout file data will be directly processed. During reading, only the required graphics elements will be loaded, and unnecessary graphics elements will be eliminated to reduce memory consumption. This layout file stitching method uses a reasonable and efficient data structure to speed up the search speed. Multi-step processing can be multi-threaded to speed up the stitching speed.

[0038] Details of one or more embodiments of the present application are set forth in the following drawings and description to make other features, objects, and advantages of the present application more readily apparent. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0040] Figure 1 It is a hardware structure block diagram of the terminal of the layout file splicing method of this embodiment.

[0041] Figure 2 It is a flow chart of the layout file splicing method of this embodiment.

[0042] Figure 3 This is a data relationship diagram among the original layout file path, the graphics elements to be spliced, and the target graphics elements in this embodiment.

[0043] Figure 4 It is a schematic diagram of rotating and mirroring the graphic elements in this embodiment.

[0044] Figure 5 It is a flow chart of another layout file splicing method of this embodiment.

[0045] Figure 6 It is a structural block diagram of the layout file splicing device of this embodiment. DETAILED DESCRIPTION

[0046] In order to more clearly understand the purpose, technical solutions and advantages of the present application, the present application is described and illustrated below in conjunction with the accompanying drawings and embodiments.

[0047] Unless otherwise defined, the technical terms or scientific terms involved in this application shall have the general meaning understood by people with general skills in the technical field to which this application belongs. The words "one", "a", "the", "these" and the like in this application do not indicate a quantitative limitation, and they may be singular or plural. The terms "include", "comprise", "have" and any variants thereof involved in this application are intended to cover non-exclusive inclusions; for example, a process, method and system, product or device comprising a series of steps or modules (units) is not limited to the listed steps or modules (units), but may include unlisted steps or modules (units), or may include other steps or modules (units) inherent to these processes, methods, products or devices. The words "connect", "connected", "coupled" and the like involved in this application are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. The "multiple" involved in this application refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there may be three relationships, for example, "A and / or B" may mean: A exists alone, A and B exist at the same time, and B exists alone. Generally, the character " / " indicates that the objects associated with each other are in an "or" relationship. The terms "first", "second", "third", etc. in this application are only used to distinguish similar objects and do not represent a specific ordering of the objects.

[0048] The method embodiment provided in this embodiment can be executed in a terminal, a computer or a similar computing device. For example, running on a terminal, Figure 1 is a hardware structure block diagram of a terminal of the layout file splicing method of this embodiment. Figure 1 As shown, the terminal may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 and a memory 104 for storing data, wherein the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA. The above terminal may also include a transmission device 106 and an input and output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the above terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations shown.

[0049] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the layout file splicing method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, to implement the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the terminal via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0050] The transmission device 106 is used to receive or send data via a network. The above network includes a wireless network provided by a communication provider of the terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (Radio Frequency, referred to as RF) module, which is used to communicate with the Internet wirelessly.

[0051] In this embodiment, a layout file splicing method is provided. Figure 2 is a flow chart of the layout file splicing method of this embodiment, such as Figure 2 As shown, the process includes the following steps:

[0052] Step S201, obtaining file splicing requirements, including: information of the graphics element to be spliced ​​and information of the target graphics element. The graphics element to be spliced ​​includes the graphics element name to be spliced, and the target graphics element information includes the target graphics element name. It should be noted that the graphics element to be spliced ​​can be the originally acquired graphics element or the generated target graphics element.

[0053] In some specific embodiments, the file splicing requirement also includes original layout information and splicing parameters. The original layout information includes the file path and file type; the splicing parameters include rotation processing parameters, mirror processing parameters, duplicate name processing parameters and empty primitive processing parameters.

[0054] GDSII (Graphic Data System Integration) layout data is a file format in electronic design automation software. It is a binary file format used to describe circuit layouts during chip manufacturing. GDSII layout data contains the geometry, hierarchy, material information, etc. of the circuit layout. OASIS (Open Artwork System Interchange Standard) layout data is a stream-formatted file format, divided into data blocks, and the length of each data block can be obtained by parsing its structure. OASIS layout data supports larger designs than traditional GDSII layout data, and provides better compression ratios and faster reading speeds. OASIS layout data also supports more layers and more data types. In this embodiment, the layout refers to a GDSII layout file. In other embodiments, the layout may also refer to an OASIS layout file, or even a layout file in another file format. This application does not make specific limitations.

[0055] First, set up a requirement file (modulelist file), which is used to store file splicing requirements, where the file splicing requirements include the information of the graphics element to be spliced ​​and the target graphics element information.

[0056] Table 1 is the parameter information included in the file stitching requirements of the requirement file. As shown in Table 1, the original layout information includes: file type, file path; the information of the graphics element to be stitched includes the name of the graphics element to be stitched, and the target graphics element information includes the name of the target graphics element; the stitching parameters include graphics element coordinate parameters, rotation stitching parameters and mirror stitching parameters.

[0057] Table 1

[0058]

[0059] Step S202, obtaining the original layout.

[0060] Specifically, according to the original layout information in the file splicing requirements, the original layout is loaded and obtained, the type of the original layout is determined by the file type parameter in the file requirement list, and the file path of the original layout is determined according to the file path in the file requirement list. Among them, the loading process adopts multi-threaded processing to speed up the acquisition speed; during the loading process, the top cells that are not needed in the splicing process can be deleted to reduce memory usage.

[0061] Step S203, creating a target layout; based on the file splicing requirements, traversing the primitives in the original layout, obtaining the primitives to be spliced ​​in the original layout and storing them in the target layout.

[0062] Create an independent target layout to store the stitched results. This step, based on the file stitching requirements, traverses the primitives in the original layout and adds the primitives to be stitched in the original layout to the target layout. Here, the process of traversing and storing the primitives to be stitched in the target layout uses multi-threaded processing to speed up the processing.

[0063] Step S204, performing stitching processing on the target primitives, including: creating the target primitives in the target layout, generating call information of the target primitives for the primitives to be stitched based on the file stitching requirements, adding the call information to the target primitives, and completing the stitching processing of the target primitives.

[0064] Specifically, a target primitive is first created in the target layout. The target primitive is a circuit element that needs to be implemented in the final layout. According to the original layout information, primitive information to be spliced, target primitive information and splicing parameters in the file splicing requirements, the primitives to be spliced, the order and method of splicing, etc. are determined, and the call information of the target primitive to the primitive to be spliced ​​is generated. Call information refers to the data in the layout file used to describe how different parts are related and referenced to each other, including hierarchical information, hierarchical position, rotation, mirroring and other attributes. For example, AREF in GDSII obtains new primitives by referencing other basic primitives or primitives and arranging a large number of repetitive structures according to rules. SREF in GSDII obtains new primitives by referencing other basic primitives or primitives to create a large number of repetitive structures. By adding the call information to the target primitive, the required target primitive can be generated through the call information to complete the splicing process of the target primitive.

[0065] Through the above steps S201 to S204, the file splicing requirements are obtained, including: information of the graphics elements to be spliced ​​and the target graphics elements; the original layout is obtained; the target layout is created; based on the file splicing requirements, the graphics elements in the original layout are traversed, and the graphics elements to be spliced ​​in the original layout are obtained and stored in the target layout; the target graphics elements are spliced, including: creating the target graphics elements in the target layout, based on the file splicing requirements, generating the call information of the target graphics elements to the graphics elements to be spliced, adding the call information to the target graphics elements, and completing the splicing of the target graphics elements. The present application traverses the graphics elements in the original layout according to the file splicing requirements, deletes unnecessary graphics elements, obtains the graphics elements to be spliced, and then adds the call information of the target graphics elements to the graphics elements to be spliced ​​to the target graphics elements, completes the splicing of the target graphics elements, shortens the splicing time, and improves the efficiency of layout file splicing.

[0066] In one embodiment, after obtaining the file splicing requirements, the method further includes: establishing a data relationship between the original layout file path, the to-be-spliced ​​graphics element, and the target graphics element based on the file splicing requirements. Based on the established data relationship, at least one of the following functions can be achieved:

[0067] Using data relationships, determine the order of traversing the primitives in the original layout;

[0068] When the target graphics are stitched together, the original layout that is no longer used in the memory is released in advance based on the data relationship.

[0069] Specifically, according to the original layout information, the information of the graphics element to be spliced ​​and the target graphics element in the file splicing requirements, a data relationship between the original layout file path, the graphics element to be spliced ​​and the target graphics element is established. Figure 3 : is a data relationship diagram of the original layout file path, the graphics element to be spliced, and the target graphics element in this embodiment. Figure 3 As shown, multiple to-be-joined primitives are obtained according to the original layout file path, and a target primitive is obtained according to the multiple to-be-joined primitives. In addition, the generated target primitive can also be used as a subsequent to-be-joined primitive, that is, similar to file path data, to be joined to other target primitives for calling by other target primitives. The relationship between the file path, the to-be-joined primitive, and the target to-be-joined file is determined in advance through data relationships, so as to facilitate quick search of primitive dependencies during the joining process.

[0070] Based on this data relationship, we can achieve:

[0071] The data relationship is used to determine the order in which the primitives in the original layout are traversed. The data relationship also includes the topological sorting relationship between the primitives. Based on this topological sorting relationship, the primitives that need to be used first can be traversed first; this is also the basis for the subsequent traversal and splicing process to be carried out in parallel by multiple threads.

[0072] When splicing the target primitives, the original layout that is no longer used in the memory is released in advance according to the data relationship. After the traversal is completed, when splicing the target primitives, the original layout that is no longer used in the subsequent splicing process can be released in advance to free up memory and reduce memory usage.

[0073] In another embodiment, the traversal processing includes: performing duplicate name processing on the primitives in the original layout based on the splicing parameters in the file splicing requirements, and / or deleting unnecessary primitives in the original layout;

[0074] The duplicate name processing includes: renaming the duplicated primitives, overwriting the existing duplicated primitives or exiting with an error; the unnecessary primitives refer to the primitives in the original layout file other than the primitives to be spliced. The traversal processing can be performed together with the loading and acquisition of the original layout in the aforementioned step S202.

[0075] Specifically, when traversing the primitives in the original layout based on the file splicing requirements, when multiple GDSII / OASIS original layout files are involved, multiple GDSII / OASIS files will be included, in which primitives with duplicate names may appear. The duplicate name parameter (Process Same Cells) is used to process the primitives with the same name, including the renaming mode (Rename) of the primitives with the same name, the overwriting mode (OverWrite) of the existing primitives with the same name, and the error exit (ReportError) mode. Specifically:

[0076] Rename: Automatically add underscore + array to the names of entities with the same name, such as "_1";

[0077] OverWrite: When the same-name primitive appears, the latter primitive overwrites the former one;

[0078] Report Error: When there are entities with the same name, report an error and exit.

[0079] The above-mentioned duplicate name processing is performed according to the specific situation to obtain the graphics elements to be spliced ​​in the original layout file. The duplicate name processing can reduce unnecessary graphics elements for splicing processing, ensure the uniqueness of the graphics elements, reduce the number of graphics elements that need to be spliced, reduce the splicing time, and improve the efficiency of layout file splicing.

[0080] In addition, during the traversal process, you can also delete unnecessary primitives in the original layout, that is, other primitives except the primitives to be spliced. By deleting unnecessary primitives, the efficiency of splicing the layout file can be further improved. Generally, in actual processing, only the unnecessary top cells in the original layout are deleted.

[0081] In some of the embodiments, when creating a target primitive in a target layout, duplicate name processing is performed on the primitives in the target layout; duplicate name processing includes: renaming the duplicated primitive, overwriting the existing duplicated unit, or exiting with an error.

[0082] Specifically, when creating a target primitive in the target layout, the name of the newly created target primitive is duplicated with the name of the primitive to be spliced ​​stored in the target layout file after traversal to ensure the uniqueness of the newly created target primitive name in the target layout file. The duplicate name processing method is the same as the duplicate name processing method for the primitives in the original layout file when traversing the original layout file, including renaming the duplicated primitives, overwriting the existing duplicated primitives or exiting with an error, which will not be repeated here.

[0083] In another embodiment, the calling information includes at least one of a rotation processing instruction, a mirror processing instruction, and a movement processing instruction of the graphic element to be spliced.

[0084] Specifically, in the integrated circuit layout design, call information is the key to achieve accurate splicing of primitives. These information include but are not limited to at least one of rotation processing instructions, mirror processing instructions and movement processing instructions, which ensure the accuracy of the layout and the consistency of the design. Among them, the rotation processing instruction is to rotate the primitive at a specific angle in the layout design to meet the design requirements. The rotation angle supports 0°90°180°270°, and the specific rotation angle can be set according to the actual situation. The rotation processing instruction defines the center point, rotation angle and rotation axis of the primitive rotation to ensure that the primitive can still be correctly aligned and coordinated with the surrounding layout elements after rotation. The mirror processing instruction includes an X-axis mirror splicing instruction, a Y-axis mirror splicing instruction, and an X and Y-axis mirror splicing instruction. According to the splicing requirements predetermined by the user, the splicing primitives to be spliced ​​are spliced, and the position information of the corresponding splicing primitives to be spliced ​​is obtained according to the file splicing requirements, including information according to the X-axis rotation, information according to the Y-axis rotation, rotation information and mirror information, that is, x / y, x_ori / y_ori, rotate, mirror information. Calculate the outline information of the graphics to be stitched, and perform coordinate transformation and stitching in the order of mirror stitching > rotation stitching > placement position (offset), and obtain the call information after the transformation. Figure 4 is a schematic diagram of rotating and mirroring the primitives in this embodiment, such as Figure 4 As shown in the figure, the rotation and mirroring of the stitched primitives are performed along the lower left corner coordinates, such as Figure 4 The conversion rules of x / y and x_ori / y_ori are as follows:

[0085] rotate=0&mirror=none:x=x_ori,y=y_ori;

[0086] Rotate splicing (rotate):

[0087] 90: x=x_ori-cellSizeY, y=y_ori;

[0088] 180: x=x_ori-cellSizeX, y=y_ori-cellSizeY;

[0089] 270: x=x, y=y_ori-cellSizeX;

[0090] Mirror stitching (mirror):

[0091] MX: x=x, y=y_ori-cellSizeY;

[0092] MY: x=x_ori-cellSizeX, y=y_ori;

[0093] MXY: x=x_ori-cellSizeX, y=y_ori-cellSizeY.

[0094] In some embodiments, the file splicing requirement includes multiple target graphics elements, and the splicing processing of all target graphics elements is completed one by one in sequence. The sequence refers to the processing sequence of the multiple target graphics elements in the file splicing requirement, and / or the optimized processing sequence of the multiple target graphics elements;

[0095] Among them, the processing order of the optimized multiple target graphics is obtained through an adjustment step; the adjustment step includes: based on the data relationship, adjusting the order of multiple target graphics in the file splicing requirements, when there is a calling relationship between at least two target graphics, the order of the called target graphics is in front, and the order of the target graphics that calls the called target graphics is in the back.

[0096] Specifically, in the file stitching requirements, multiple target graphics are created. According to the processing order of the multiple target graphics in the file stitching requirements, each target graphics is stitched in turn according to the graphics stitching processing method in the above implementation. In each target graphics, the call information of the corresponding graphics to be stitched is added to complete the stitching processing of all target graphics.

[0097] Specifically, according to the file splicing requirements, a data relationship between the original layout file path, the to-be-spliced ​​primitives and the target primitives is established, wherein the generated target primitives can also be used as the to-be-spliced ​​primitives, that is, the original layout file path source data, and spliced ​​into other target primitives for calling by other target primitives. When there is a calling relationship between at least two target primitives, the two target primitives are sorted, wherein the called target primitive is in front and the target primitive that calls the called target primitive is in the back.

[0098] In another embodiment, in the file splicing requirement: the information of the graphics element to be spliced ​​includes the name of the graphics element to be spliced; the graphics element to be spliced ​​includes the graphics element in the original layout and / or the target graphics element; the target graphics element information includes the target graphics element name; the file splicing requirement also includes the original layout information; the original layout information includes the file path and file type; the original layout is obtained based on the original layout information. The file splicing requirement also includes splicing parameters, and the splicing parameters include rotation processing parameters, mirror processing parameters, duplicate name processing parameters, and empty graphics element processing parameters.

[0099] Specifically, as shown in Table 1 above, the original layout information includes a file path and a file type, wherein the file path is used to determine whether the original layout file is a GDSII layout data type or an OASIS layout data type, or other layout file types. The information of the graphics elements to be spliced ​​includes the names of the graphics elements to be spliced; the graphics elements to be spliced ​​include graphics elements and / or target graphics elements in the original layout. The target graphics element information includes the target graphics element name and coordinate information, wherein the target graphics element name is the name of the target graphics element after splicing is completed, and the coordinate information of the target graphics element includes the location information of the graphics element to be spliced ​​in the call information and the storage location information of the target graphics element itself. The splicing parameters include rotation processing parameters, mirror processing parameters, duplicate name processing parameters and empty graphics element processing parameters, wherein the splicing parameters are used to perform specific splicing processing on the graphics elements to be spliced, and the specific processing process has been described in detail in the above embodiments, which will not be repeated here.

[0100] In another embodiment, the file splicing requirement also includes target layout information; the target layout information includes layer deletion processing parameters and file export requirements; based on the file export requirements in the file splicing requirement, a layout file containing at least one target graphic element is selected for merging and exporting.

[0101] Specifically, the file stitching requirements also include target layout information, which includes layer deletion processing parameters, which are used to specify the layers that need to be deleted during the stitching process. The target layout information also includes file export requirements, which are used to provide a top cell export mode, support merge mode and independent export mode, that is, support the selection of merged export of a layout file containing at least one target cell. The file export process can use multi-threaded processing to speed up the processing. The specific situation can be selected according to the actual needs of the user.

[0102] This embodiment also provides a layout file splicing method. Figure 5 is a flow chart of another layout file splicing method of this embodiment, such as Figure 5 As shown, the process includes the following steps:

[0103] Step S501, obtaining a file splicing requirement, wherein the file splicing requirement includes: information of the image element to be spliced ​​and information of the target image element;

[0104] Step S502, obtaining the original layout;

[0105] Step S503, creating a target layout;

[0106] Step S504, based on the file splicing requirements, establish the data relationship between the original layout file path, the graphics element to be spliced, and the target graphics element;

[0107] Step S505, using the data relationship, determining the order of traversing the primitives in the original layout, and traversing the primitives in the original layout in order;

[0108] Step S506: During the traversal process, based on the file splicing requirements, duplicate names are processed for the primitives in the original layout, and / or unnecessary primitives in the original layout are deleted; primitives to be spliced ​​are obtained and stored in the target layout;

[0109] Step S507, creating a target primitive in the target layout, and performing duplicate name processing on the target primitive and the primitive to be spliced ​​in the target layout;

[0110] Step S508, based on the file splicing requirements, generate the call information of the target primitive for the primitive to be spliced, add the call information to the target primitive, and complete the splicing process of the target primitive; when the target primitive is spliced, release the original layout that is no longer used in the memory in advance according to the data relationship;

[0111] In this embodiment, the file splicing requirement includes multiple target primitives, and the splicing processing of all target primitives is completed one by one according to the processing order of the multiple target primitives in the file splicing requirement. In some embodiments, the processing order of the multiple target primitives in the splicing requirement will be optimized first, and the optimization method is: based on the data relationship, the order of the multiple target primitives in the file splicing requirement is adjusted. When there is a calling relationship between at least two target primitives, the order of the called target primitive is in front, and the order of the target primitive that calls the called target primitive is in the back; then the splicing processing is performed in the optimized order. However, in some other embodiments, the file splicing requirement only includes one target primitive, and there is no problem of splicing order.

[0112] Step S509 , based on the file export requirement in the file splicing requirement, select to merge and export a layout file containing at least one target graphic element.

[0113] Through the above steps S501 to S509, in the entire splicing process of the present application, no excessive additional memory space is allocated, and the read GDSII / OASIS file data is directly processed, and only the required cells are loaded during reading, and unnecessary cells are removed, thereby reducing memory consumption. A reasonable and efficient data structure is used to speed up the search.

[0114] In this embodiment, a data file splicing device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. The terms "module", "unit", "subunit" and the like used below can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware is also possible and conceivable.

[0115] Figure 6 is a structural block diagram of the layout file splicing device of this embodiment, such as Figure 6 As shown, the layout file splicing device 60 includes: an acquisition module 61, a creation module 62, a traversal module 63 and a splicing module 64, wherein:

[0116] The acquisition module 61 is used to obtain the file splicing requirements, including: information of the image element to be spliced ​​and information of the target image element; and obtain the original layout;

[0117] A creation module 62, used for creating a target layout;

[0118] A traversal module 63 is used to traverse the primitives in the original layout based on the file splicing requirements, obtain the primitives to be spliced ​​in the original layout and store them in the target layout;

[0119] The stitching module 64 is used to stitch the target primitives, including: creating the target primitives in the target layout, generating call information of the target primitives for the primitives to be stitched based on the file stitching requirements, adding the call information to the target primitives, and completing the stitching of the target primitives.

[0120] It should be noted that the above modules can be functional modules or program modules, and can be implemented by software or hardware. For modules implemented by hardware, the above modules can be located in the same processor; or the above modules can be located in different processors in any combination.

[0121] In this embodiment, an electronic device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0122] Optionally, in this embodiment, the processor may be configured to perform the following steps through a computer program:

[0123] S1, obtaining file splicing requirements, including: information of the image element to be spliced ​​and information of the target image element;

[0124] S2, obtain the original map;

[0125] S3, create the target layout;

[0126] S4, based on the file splicing requirements, traverse the primitives in the original layout, obtain the primitives to be spliced ​​in the original layout and store them in the target layout;

[0127] S5, performing stitching processing on the target primitives, including: creating the target primitives in the target layout, generating calling information of the target primitives for the primitives to be stitched based on the file stitching requirements, adding the calling information to the target primitives, and completing the stitching processing of the target primitives.

[0128] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementation modes, and will not be repeated in this embodiment.

[0129] In addition, in combination with the data file splicing method provided in the above embodiment, a storage medium can also be provided in this embodiment to implement the method. The storage medium stores a computer program; when the computer program is executed by a processor, any one of the data file splicing methods in the above embodiment is implemented.

[0130] It should be understood that the specific embodiments described herein are only used to explain the application, rather than to limit it. Based on the embodiments provided in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the protection scope of this application.

[0131] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties.

[0132] Obviously, the drawings are only some examples or embodiments of the present application. For ordinary technicians in the field, the present application can also be applied to other similar situations based on these drawings without creative work. In addition, it is understandable that although the work done in this development process may be complicated and lengthy, for ordinary technicians in the field, certain changes in design, manufacturing or production based on the technical content disclosed in this application are only conventional technical means and should not be regarded as insufficient content disclosed in this application.

[0133] The term "embodiment" in this application refers to a specific feature, structure or characteristic described in conjunction with the embodiment that can be included in at least one embodiment of the present application. The appearance of this phrase in various locations in the specification does not necessarily mean the same embodiment, nor does it mean that it is mutually exclusive with other embodiments and is independent or optional. It is clearly or implicitly understood by those of ordinary skill in the art that the embodiments described in this application can be combined with other embodiments without conflict.

[0134] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of patent protection. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the scope of protection of the present application. Therefore, the scope of protection of the present application shall be subject to the attached claims.

Claims

1. A layout file splicing method, characterized in that: include: Obtain file splicing requirements, including: information about the graphics element to be spliced ​​and the target graphics element; Get the original map; Create a target layout; Based on the file splicing requirements, the primitives in the original layout are traversed to obtain the primitives to be spliced ​​in the original layout and store them in the target layout; The target primitive is stitched together, including: creating a target primitive in the target layout, generating call information of the target primitive for the primitive to be stitched based on the file stitching requirements, adding the call information to the target primitive, and completing the stitching of the target primitive.

2. The layout file splicing method according to claim 1, characterized in that: After obtaining the file splicing requirement, the method further includes: establishing a data relationship between the original layout file path, the to-be-spliced ​​graphic element, and the target graphic element based on the file splicing requirement; Determine the order of traversing the primitives in the original layout by using the data relationship; When the target graphic element is spliced, the original layout no longer used in the memory is released in advance according to the data relationship.

3. The layout file splicing method according to claim 1, characterized in that: The file splicing requirement also includes splicing parameters; the splicing parameters include rotation processing parameters, mirror processing parameters, duplicate name processing parameters and empty primitive processing parameters; The traversal process includes: Based on the file splicing requirements, perform duplicate name processing on the graphics elements in the original layout, and / or delete unnecessary graphics elements in the original layout; The duplicate name processing includes: renaming the duplicated graphic element, overwriting the existing duplicated graphic element, or exiting with an error; The unnecessary graphics elements refer to graphics elements in the original layout file other than the graphics elements to be spliced.

4. The layout file splicing method according to claim 1, characterized in that: When creating a target primitive in the target layout, the process includes performing duplicate name processing on the primitives in the target layout; The duplicate name processing includes: renaming the duplicated graphic element, overwriting the existing duplicated graphic element or exiting with an error.

5. The layout file splicing method according to claim 1, characterized in that: The calling information includes at least one of a rotation processing instruction, a mirror processing instruction, and a movement processing instruction of the to-be-joined graphic element.

6. The layout file splicing method according to claim 2, characterized in that: The file splicing requirement includes multiple target graphics elements, and the splicing processing of all the target graphics elements is completed one by one in sequence; The order refers to the processing order of the multiple target graphics elements in the file splicing requirement, and / or the processing order of the multiple target graphics elements after optimization; Among them, the processing order of the optimized multiple target graphics is obtained through an adjustment step; the adjustment step includes: based on the data relationship, adjusting the order of the multiple target graphics in the file splicing requirements, when there is a calling relationship between at least two of the target graphics, the order of the called target graphics is in front, and the order of the target graphics that calls the called target graphics is in the back.

7. The layout file splicing method according to claim 1, characterized in that: The file splicing requirements include: The information of the graphics element to be spliced ​​includes the name of the graphics element to be spliced; the graphics element to be spliced ​​includes the graphics element in the original layout and / or the target graphics element; The target primitive information includes the target primitive name; the file splicing requirement also includes original layout information; the original layout information includes the file path and file type; the original layout is obtained based on the original layout information.

8. The layout file splicing method according to claim 3, characterized in that: The file splicing requirement also includes target layout information; The target layout information includes layer deletion processing parameters and file export requirements; Based on the file export requirement in the file splicing requirement, a layout file containing at least one target graphic element is selected for merging and exporting.

9. A layout file splicing device, characterized in that: include: Get modules, create modules, traverse modules, and splice modules, where: The acquisition module is used to obtain file splicing requirements, including: information of the image element to be spliced ​​and information of the target image element; and obtain the original layout; The creation module is used to create a target layout; The traversal module is used to traverse the primitives in the original layout based on the file splicing requirements, obtain the primitives to be spliced ​​and store them in the target layout; The splicing module is used to perform splicing processing on the target primitive, including: creating a target primitive in the target layout, generating calling information of the target primitive for the primitive to be spliced ​​based on the file splicing requirements, adding the calling information to the target primitive, and completing the splicing processing of the target primitive.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the layout file splicing method described in any one of claims 1 to 8 are implemented.

Citation Information

Patent Citations

  • Method for merging GDSII layout data

    CN102446230A

  • Standard cell library design inspection method and system and readable storage medium

    CN111709213A