Method and model for semiconductor process device simulation, electronic equipment and storage medium

By discrete the geometric shape of semiconductor technology devices into tetrahedral mesh and using red and black tree data structure to achieve the mapping of half-face and grid points, the problem of high complexity of traditional mesh division methods is solved, and simulation accuracy and operation are improved efficiency.

CN119150390APending Publication Date: 2024-12-17QUANXIN INTELLIGENT MFG TECH CO LTD

Patent Information

Application Number
CN202411648267.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-18
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

In traditional semiconductor simulation, the mesh division method has defects such as cumbersome operation, time complexity and spatial complexity, and it is difficult to efficiently handle the dynamic modification and operation of three-dimensional tetrahedral mesh.

Method used

Using a tetrahedral mesh, by identifying each face as a half face with a direction, the half face corresponds to the grid point according to the predetermined mapping relationship, and using the red and black tree data structure to realize the mapping relationship between the half face and grid point, simplifying the tetrahedral mesh. Operation and dynamic modification.

Benefits of technology

The calculation accuracy of the finite volume method in the semiconductor simulation process is improved, the time complexity and spatial complexity in the grid generation process is improved, the grid operation is simplified, and the field pointer and maintenance problems in traditional data structures are avoided.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119150390A_ABST
    Figure CN119150390A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to a method and a model for semiconductor process device simulation, electronic equipment and a storage medium. The method includes discretizing a geometry of a semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; each face of the tetrahedron is marked as a half face in the first direction, and the half face is opposite to a first grid point, outside the half face, of the tetrahedron; mapping the half surface to the first grid point according to a preset mapping relation; and operating the tetrahedrons in the tetrahedral mesh on the basis of the mapping relation between the half surfaces and the first grid points. According to the technical scheme, the calculation precision of the finite volume method in the semiconductor simulation process can be improved, and the time complexity of the grid generation process can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to integrated circuits, and more particularly, to methods, models, electronic devices, and storage media for semiconductor process device simulation. Background Art

[0002] Semiconductor process device simulation (Tecnology Computer Aided Design, TCAD for short) technology is used to simulate semiconductor process devices. It is usually necessary to simulate the growth process and electrical characteristics of transistors, such as complementary metal oxide semiconductor (CMOS) transistors and fin field effect transistors (Fin Field-Effect Transistor, FinFET for short). The simulation process requires the calculation of multiple physical fields, such as doping concentration field, stress-strain field, temperature field, potential-current field, etc. These physical fields need to be spatially discretized to obtain the distribution of the field in space, and are used to solve the discretized partial differential equation (PDE), so the geometric shape of the semiconductor device needs to be converted into a grid.

[0003] In traditional semiconductor simulation, the meshing method used to convert the geometric shape of semiconductor devices into a mesh has defects such as cumbersome operation and high time and space complexity. Summary of the invention

[0004] According to an example embodiment of the present disclosure, a solution for semiconductor process device simulation is provided to at least partially overcome the above or other potential drawbacks.

[0005] According to one aspect of the present disclosure, a method for semiconductor process device simulation is provided. The method includes: discretizing the geometric shape of the semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as having a half-face along a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; mapping the half-face to the first grid point according to a predetermined mapping relationship; and operating the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point.

[0006] In a second aspect of the present disclosure, a semiconductor process device simulation model is provided, which includes: a mesh generation module, configured to: discretize the geometric shape of the semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identify each face of the tetrahedron as a half-face having a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; map the half-face to the first grid point according to a predetermined mapping relationship; and operate the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point; a process simulation module, configured to simulate a process for manufacturing a semiconductor process device based on an output of the mesh generation module; and a device simulation module, configured to simulate the electrical characteristics of the semiconductor process device based on the output of the mesh generation module.

[0007] In some embodiments, a tetrahedron has a common face with another adjacent tetrahedron, and the grid generation module is further configured to: identify the common face as also having an inverse half-face along a second direction opposite to the first direction, the inverse half-face being opposite to a second grid point of the other tetrahedron outside the inverse half-face; and map the inverse half-face to the second grid point according to a predetermined mapping relationship.

[0008] In some embodiments, the predetermined mapping relationship is a right-hand screw rule or a left-hand screw rule, and wherein mapping the half-surface to the first grid point according to the predetermined mapping relationship or mapping the reverse half-surface to the second grid point according to the predetermined mapping relationship respectively includes: applying the right-hand screw rule or the left-hand screw rule to each grid point along the half-surface or the reverse half-surface to point to the first grid point or the second grid point respectively.

[0009] In some embodiments, the operations on tetrahedrons in the tetrahedral mesh include at least one of: neighbor query operations; and tetrahedral unit addition and deletion operations.

[0010] In some embodiments, the neighbor query operation includes: determining the reverse half-surface based on the relationship between the half-surface and the reverse half-surface; determining a second grid point opposite to the reverse half-surface based on the reverse half-surface and the mapping relationship; and determining an adjacent tetrahedron based on the reverse half-surface and the second grid point.

[0011] In some embodiments, the neighbor query operation includes an interface query operation, which includes: determining whether there is an inverse half-face of a half-face of a tetrahedron based on the relationship between the half-face and the inverse half-face; and determining that the half-face is an outer surface of the tetrahedron in response to the half-face of the tetrahedron not having an inverse half-face.

[0012] In some embodiments, the neighbor query operation includes an interface query operation, which includes: determining a neighbor tetrahedron based on a relationship between a half-face and an anti-half-face; determining whether a first indicator indicating a material property of the neighbor tetrahedron is the same as a second indicator indicating a material property of the tetrahedron; and in response to the first indicator being different from the second indicator, determining that the half-face is an interface between different materials.

[0013] In some embodiments, the tetrahedral mesh is obtained by the Delaunay triangulation meshing method, and the addition of tetrahedral units includes: inserting a point in the tetrahedral mesh; deleting the tetrahedron where the insertion point is located; connecting the insertion point with the adjacent triangular faces to form a new tetrahedron; and performing a flanging operation on the relevant tetrahedral mesh so that the new tetrahedron satisfies the Delaunay criterion.

[0014] In some embodiments, the mesh generation module is further configured to: after adding or deleting a tetrahedral unit, determine whether there is an adjacent tetrahedron based on the relationship between the half-face and the anti-half-face, so as to update the neighbor information.

[0015] In some embodiments, mapping the half-face or the reverse half-face to the first lattice point or the second lattice point according to a predetermined mapping relationship includes: representing the half-face by ordering the lattice points on a face of the tetrahedron along a first rotation direction; representing the reverse half-face by ordering the lattice points along a second rotation direction opposite to the first rotation direction; inputting the index set for each lattice point into a mapping function in a red-black tree data structure as a key value, the mapping function being used to implement the predetermined mapping relationship; and mapping the key value by the mapping function to obtain a first lattice point opposite to the half-face or a second lattice point opposite to the reverse half-face In some embodiments, the red-black tree data structure is implemented by the std::map container of the C++ standard library.

[0016] In some embodiments, the mesh generation module is further configured to: set an index for each grid point; and uniquely represent the half-surface with a sorting having a minimum index value among the sortings of the indices of the grid points representing the half-surface.

[0017] In a third aspect of the present disclosure, an electronic device is provided. The electronic device includes a processor; and a memory coupled to the processor, the memory having instructions stored therein, and when the instructions are executed by the processor, the device performs an action, the action including: discretizing the geometric shape of a semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as a half-face having a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; mapping the half-face to the first grid point according to a predetermined mapping relationship; and operating the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point.

[0018] In some embodiments, the tetrahedron has a common face with another adjacent tetrahedron, and the method further includes: identifying the common face as also having an inverse half-face along a second direction opposite to the first direction, the inverse half-face being opposite to a second lattice point of the other tetrahedron outside the inverse half-face; and mapping the inverse half-face to the second lattice point according to a predetermined mapping relationship.

[0019] In some embodiments, the predetermined mapping relationship is a right-hand screw rule or a left-hand screw rule, and wherein mapping the half-surface to the first grid point according to the predetermined mapping relationship or mapping the reverse half-surface to the second grid point according to the predetermined mapping relationship respectively includes: applying the right-hand screw rule or the left-hand screw rule to each grid point along the half-surface or the reverse half-surface to point to the first grid point or the second grid point respectively.

[0020] In some embodiments, the operations on tetrahedrons in the tetrahedral mesh include at least one of: neighbor query operations; and tetrahedral unit addition and deletion operations.

[0021] In some embodiments, the neighbor query operation includes: determining the reverse half-surface based on the relationship between the half-surface and the reverse half-surface; determining a second grid point opposite to the reverse half-surface based on the reverse half-surface and the mapping relationship; and determining an adjacent tetrahedron based on the reverse half-surface and the second grid point.

[0022] In some embodiments, the neighbor query operation includes an interface query operation, which includes: determining whether there is an inverse half-face of a half-face of a tetrahedron based on the relationship between the half-face and the inverse half-face; and determining that the half-face is an outer surface of the tetrahedron in response to the absence of an inverse half-face of the half-face of the tetrahedron.

[0023] In some embodiments, the neighbor query operation includes an interface query operation, which includes: determining a neighbor tetrahedron based on a relationship between a half-face and an anti-half-face; determining whether a first indicator indicating a material property of the neighbor tetrahedron is the same as a second indicator indicating a material property of the tetrahedron; and in response to the first indicator being different from the second indicator, determining that the half-face is an interface between different materials.

[0024] In some embodiments, the tetrahedral mesh is obtained by the Delaunay triangulation meshing method, and the addition of tetrahedral units includes: inserting a point in the tetrahedral mesh; deleting the tetrahedron where the insertion point is located; connecting the insertion point with the adjacent triangular faces to form a new tetrahedron; and performing a flanging operation on the relevant tetrahedral mesh so that the new tetrahedron satisfies the Delaunay criterion.

[0025] In some embodiments, after a tetrahedral unit is added or deleted, it is determined whether there is an adjacent tetrahedron based on the relationship between the half-face and the anti-half-face to update the neighbor information.

[0026] In some embodiments, mapping a half-face or an inverse half-face to a first lattice point or a second lattice point according to a predetermined mapping relationship includes: representing the half-face by ordering the lattice points on a face of the tetrahedron along a first rotation direction; representing the inverse half-face by ordering the lattice points along a second rotation direction opposite to the first rotation direction; inputting the index set for each lattice point into a mapping function in a red-black tree data structure as a key value, the mapping function being used to implement the predetermined mapping relationship; and mapping the key value by the mapping function to obtain a first lattice point opposite to the half-face or a second lattice point opposite to the inverse half-face.

[0027] In some embodiments, the red-black tree data structure is implemented by the std::map container of the C++ standard library.

[0028] In some embodiments, the method further comprises: setting an index for each grid point; and uniquely representing the half-surface with a sorting having a minimum index value among the sortings of the indices of the grid points representing the half-surface.

[0029] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, the method according to the first aspect of the present disclosure is implemented.

[0030] It will be understood from the following description that the technical solution of the present disclosure can improve the calculation accuracy of the finite volume method in the semiconductor simulation process, and can improve the time complexity and space complexity in the grid generation process.

[0031] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the disclosure, nor is it intended to limit the scope of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Figure 1 A mesh schematic diagram of a simulated 3D MOSFET is shown; Figure 2 A gridded schematic diagram of a simulated 3D FINFET is shown; Figure 3 A schematic diagram of a triangular mesh and a dual Voronoi diagram unit cell is shown; Figure 4 A schematic diagram showing an example environment in which embodiments of the present disclosure can be implemented; Figure 5 A flow chart showing a method for semiconductor process device simulation according to some embodiments of the present disclosure is shown; Figure 6 A schematic diagram showing a mesh representation of a tetrahedron structure according to some embodiments of the present disclosure is shown; Figure 7 A schematic diagram showing a mesh representation and mapping relationship of a tetrahedron structure according to some embodiments of the present disclosure; Figure 8 A schematic diagram showing a mesh of a modified tetrahedral structure according to some embodiments of the present disclosure; Fig. 9 A schematic diagram showing a mesh of adding and deleting a tetrahedral structure according to some embodiments of the present disclosure; Fig.10 A schematic diagram of a process of forming a tetrahedral mesh with constraints according to some embodiments of the present disclosure is shown; Fig.11 A schematic diagram showing a conversion between a two-tetrahedron structure and a three-tetrahedron structure according to some embodiments of the present disclosure; Fig.12 A schematic diagram of the overall framework of a TCAD simulation model according to some embodiments of the present disclosure is shown; Fig.13 A block diagram of a computing device capable of implementing various embodiments of the present disclosure is shown.

[0033] In the various drawings, the same or corresponding reference numerals represent the same or corresponding parts. DETAILED DESCRIPTION

[0034] The principles of the present disclosure will be described below with reference to the various exemplary embodiments shown in the accompanying drawings. It should be understood that the description of these embodiments is only to enable those skilled in the art to better understand and further implement the present disclosure, and is not intended to limit the scope of the present disclosure in any way. It should be noted that similar or identical reference numerals may be used in the figures where feasible, and similar or identical reference numerals may represent similar or identical functions. Those skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods described herein may be adopted without departing from the principles of the present invention described herein.

[0035] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects.

[0036] As mentioned earlier, the simulated physical fields need to be spatially discretized, so the geometry of the semiconductor device needs to be converted into a mesh. Figure 1A meshed schematic diagram of a simulated 3D MOSFET is shown. Figure 2 A schematic diagram of meshing of a simulated 3D FINFET is shown. The semiconductor process device is discretized into a tetrahedral mesh including a plurality of tetrahedrons through meshing, so that the semiconductor process device can be simulated through the tetrahedral mesh.

[0037] When simulating diffusion and current in semiconductor process device simulation, in order to satisfy the flux conservation, that is, the net flux balance of local inflow and outflow of each unit cell, it is necessary to construct a Voronoi diagram unit cell based on the grid. The two-dimensional Voronoi diagram unit cell is connected by the perpendicular bisectors of the triangle edges, while the three-dimensional Voronoi diagram unit cell is connected by the perpendicular bisectors of the tetrahedron faces. See Figure 3 , Figure 3 A schematic diagram of a triangular mesh and a dual Voronoi diagram cell is shown. Voronoi diagram cells are often used in finite volume methods, which require a balance of fluxes flowing into and out of each Voronoi diagram cell.

[0038] In mesh generation algorithms and data structures, the classic half-edge data structure is only applicable to two-dimensional meshes and cannot handle three-dimensional tetrahedral meshes and non-manifold triangle meshes. Non-manifold here refers to a triangle edge on the two-dimensional surface of a three-dimensional object that connects more than two triangles.

[0039] For three-dimensional grids, there is currently no universal data structure that can meet the needs of large-scale and rapid addition, deletion, query and modification operations. In order to meet the above requirements, several major open source grid software on the market often need to design and implement extremely complex data structures. Excessive complexity will seriously affect the maintainability and readability of the software, so performance and maintainability have become a pair of contradictory indicators that are difficult to balance.

[0040] Some libraries, such as the half-face data structure in OpenVolumnMesh, are static data structures. Their application scenarios are downstream simulation calculations based on existing static meshes (such as finite element and finite volume methods), and are not suitable for dynamic mesh modification. The data structure in the meshing tool Tetgen is an array-based data structure with extremely high complexity. Dynamic cell insertion and neighbor update and search operations are very troublesome, making them difficult to maintain.

[0041] Since editing a tetrahedron in an array-based tetrahedron mesh data structure requires at least eight pointer modifications to flip a face, and more pointer modifications to flip an edge, it is quite complicated and error-prone to use this data structure to perform operations such as face flipping, edge flipping, and inserting new vertices on a large-scale tetrahedron mesh data structure, resulting in wild pointers. It can be seen that the traditional solution has defects such as complex operation, low efficiency, and poor data structure maintainability.

[0042] In view of this, the present disclosure provides an improved solution.

[0043] The embodiments of the present disclosure provide an improved method for simulating semiconductor process devices. The method includes: discretizing the geometric shape of the semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as having a half-face along a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; mapping the half-face to a first grid point according to a predetermined mapping relationship; and operating the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point. The embodiments of the present disclosure conveniently implement operations on tetrahedrons in the tetrahedral mesh by mapping the half-faces to the grid points, thereby significantly improving the efficiency of the operations.

[0044] The following will refer to the attached Figures 4 to 13 The embodiments of the present disclosure are described in detail.

[0045] Figure 4 Schematic diagram of an example environment 400 in which embodiments according to the present disclosure can be implemented. Figure 4 As shown, the example environment 400 includes a computing device 410 and a client 420 .

[0046] In some embodiments, the computing device 410 may interact with the client 420. For example, the computing device 410 may receive an input message from the client 420 and output a feedback message to the client 420. In some embodiments, the input message from the client 420 may be data of a semiconductor device, such as data related to a geometric shape. The computing device 410 may perform corresponding mathematical operations on the data of the semiconductor device and output corresponding operation results to the client 420.

[0047] In some embodiments, computing device 410 may include, but is not limited to, a personal computer, a server computer, a handheld or laptop device, a mobile device (such as a mobile phone, a personal digital assistant (PDA), a media player, etc.), consumer electronics, a minicomputer, a mainframe computer, cloud computing resources, etc.

[0048] It should be understood that the structure and function of the example environment 400 are described for exemplary purposes only and are not intended to limit the scope of the subject matter described herein. The subject matter described herein can be implemented in different structures and / or functions. The environment is merely illustrative and is not intended to limit the application environment of the embodiments of the present disclosure.

[0049] In order to explain the principle of the present disclosure more clearly, the following will refer to Figure 5 Let's describe it in more detail.

[0050] Figure 5 A flow chart of a method 500 for semiconductor process device simulation according to some embodiments of the present disclosure is shown.

[0051] At block 502 , a geometry of a semiconductor process device is discretized to generate a tetrahedral mesh including a plurality of tetrahedrons.

[0052] In some embodiments, the semiconductor process device may be meshed using the Delaunay triangulation method to generate a tetrahedral mesh including multiple tetrahedrons, which may be called a Delaunay triangulation network. The Delaunay triangulation network is a collection of a series of connected but non-overlapping triangles, and the circumscribed circles of these triangles do not contain any other points in the face region. It has the following two characteristics: (1) The circumscribed circle of each Delaunay triangle does not contain any other points in the surface, which is called the empty circumscribed circle property of the Delaunay triangulation. This feature has been used as a criterion for creating a Delaunay triangulation. (2) Maximum and minimum angle property: When the diagonals of a convex quadrilateral formed by two adjacent triangles are exchanged, the minimum angle of the six internal angles will no longer increase.

[0053] The advantages of Delaunay triangulation are good structure, simple data structure, low data redundancy, high storage efficiency, harmony with irregular ground features, ability to represent linear features and superimpose regional boundaries of arbitrary shapes, easy updating, adaptability to data of various distribution densities, etc.

[0054] In some embodiments of the present disclosure, the Delaunay triangulation method will be used as an example for explanation. In addition to the Delaunay triangulation method, other methods may also be used, such as a meshing method such as a wavefront method and a grid method, or a meshing method in which these meshing methods are mixed. The present disclosure does not limit this, and other meshing methods may also be used as needed.

[0055] At block 504, each face of the tetrahedron is identified as having a half-face along a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face. That is, the faces of the tetrahedron are identified as faces with directions.

[0056] See also Figure 6 , Figure 6 A schematic diagram of a mesh representation of a tetrahedral structure according to some embodiments of the present disclosure is shown. Specifically, Figure 6 , a mesh representation of a tetrahedral structure 600 is shown, wherein the tetrahedral structure 600 includes two adjacent tetrahedrons, namely, tetrahedron (abcd), referred to as a first tetrahedron 610 , and tetrahedron (acbe), referred to as a second tetrahedron 620 , both of which have a common face (abc), referred to as a common face 602 . Figure 6 Here, a, b, c, d, and e represent grid points (referred to as grid points).

[0057] One side of the common surface 602 may be called a half-surface, and the other side may be called an anti-half-surface, and the two are in opposite directions. In some embodiments, a half-surface or an anti-half-surface is represented by lattice points of the surface being arranged in a clockwise direction or a counterclockwise direction.

[0058] At block 506 , the half-surface is mapped to the first grid points according to a predetermined mapping relationship.

[0059] Reference Figure 7 , Figure 7 Graph 2 shows the half faces of the first tetrahedron 610 and the second tetrahedron 620 and the mapping relationship between the corresponding half faces and the grid points. Figure 7 In the direction of abc, The face represented by is called half-face 704, and the direction of half-face 704 is toward lattice point d. In some embodiments, the half-face is mapped to the first lattice point according to a predetermined mapping relationship, such as the right-hand screw rule. For example, the right-hand screw rule can be applied along the order of the lattice points of the half-face to point to a lattice point outside the face, that is, the lattice point of the tetrahedron where the face is located and opposite to the face. The remaining lattice point of the tetrahedron pointed to by the half-face according to the right-hand screw rule is called the opposite point (opposite point, abbreviated as oppo point). Therefore, for the tetrahedron (abcd) (represented as For half face Pointing to the relative point d. It should be understood that the embodiments of the present disclosure are not limited to the right-hand screw rule, and the left-hand screw rule may also be applied.

[0060] like Figure 7 As shown, along the acb direction, that is, by The surface represented is called the reverse half-surface (referred to as reverse half-surface) 706, and the direction of half-surface 706 points to the grid point e. It can be seen that a surface (common surface) can be divided into half-surface 704 and reverse half-surface 706 due to different directions. Pointing to the relative point e, the two correspond to neighbor tetrahedrons (acbe), which are represented in the figure as The reverse half-surface 706 can be mapped to the grid point e (which can become the second grid point) according to a predetermined mapping relationship. The half-surface 704 points to the grid point d according to the right-hand screw rule, and the reverse half-surface 706 points to the grid point e according to the right-hand screw rule. as well as etc. can all be called data structures. Figure 6 and 7 The tetrahedron in can be considered as a graphical explanation of the data structure.

[0061] As mentioned above, Figure 6 The common surface 602 shown in FIG. Figure 7 Represented as two half-surfaces with directions and In the above representation, the face is represented by the sequentially arranged vertices (grid points) of the triangle or an ordering of the vertices, and the tetrahedron is represented by the grid points opposite to the face. It can be seen that if a face is a common face of a tetrahedron and another adjacent tetrahedron, the common face can be identified as having an inverse half-face along a second direction opposite to the first direction, and the inverse half-face is opposite to the second grid point of the other tetrahedron outside the inverse half-face.

[0062] In some embodiments, the predetermined mapping relationship can be implemented by a mapping function in a red-black tree data structure. The half-plane or the reverse half-plane can be mapped to the first grid point or the second grid point according to the predetermined mapping relationship in the following manner: the half-plane is represented by the sorting of each grid point along the first rotation direction; the reverse half-plane is represented by the sorting of each grid point along the second rotation direction; the index set for each grid point is input as a key value into the mapping function in the red-black tree data structure, and the mapping function is used to implement the predetermined mapping relationship; and the mapping function maps the key value to obtain the first grid point opposite to the half-plane or the second grid point opposite to the reverse half-plane.

[0063] In some embodiments, a red-black tree can be used to concisely and efficiently represent the mapping relationship between the half-face and the oppo. The red-black tree can be implemented by the std::map container of the C++ standard library. std::map is a red-black tree structure. The mesh object msh can be represented as std::map<HalfFace, int > The type of HalfFace is a custom data class represented by 3 integers. HalfFace is a topological data structure of a tetrahedral mesh. In some embodiments, the custom HalfFace can be put into a red-black tree as a key of the red-black tree. std::map<HalfFace,int> It can represent the mesh topology, which includes the grid connection relationship of all tetrahedral units. HalfFace is the number of the three grid points in the half face, and the int behind it is the number of the fourth grid point. The four grid points together form a tetrahedral unit. Multiple tetrahedral units are placed in std::map to form the topology of the entire mesh. In practice, abcdef uses integer numbers as indexes, that is, abcdef here corresponds to different integer grid point numbers.

[0064] In some embodiments, HalfFace needs to customize the size comparison function so that the half face can be inserted into the red-black tree as a key value (because the red-black tree needs to reorder the elements in the tree according to the size of the elements), thereby performing fast mapping in the red-black tree.

[0065] The function for comparing the size of two half-surfaces can be defined as follows: For example, there are two half-surfaces, and , we can compare the indices of the three grid points of the two half-surfaces respectively. If the first number a is smaller than the first number d, we can directly judge ; If a and d are equal, then compare the second numbers b and e in the half face. If b > e, then it can be judged as , and so on. , it can be put into a red-black tree as a "key". The red-black tree requires that the elements in the key can be comparable in size, because the red-black tree needs to construct a binary tree sorted according to the size of the key to achieve fast mapping from key to value.

[0066] In fact, the size comparison function is to put the key into the red-black tree container, because the red-black tree requires the keys to be comparable. If the half-face is used as the key, the size comparison operator "<" needs to be defined for the half-face, so that the program can return true or false when running the conditional statement "half-face A < half-face B". The Map stores both the data of the grid itself and the neighbor data. The data structure in the Map is a data composed of a red-black tree. When querying, the vertex corresponding to the half-face can be found within the O(logN) time complexity. This method does not need to traverse each element one by one like a list to search.

[0067] In some embodiments, in addition to the red-black tree data structure, a hash table can also be used. That is, the red-black tree is replaced by a half-surface data structure based on a hash table, such as std::map<HalfFace, int> Changed to std::unordered_map<HalfFace, int> .

[0068] Similarly, for the hash table std::unordered_map container, the elements placed in the container need a custom equivalence operator "==" so that the program can execute the conditional judgment statement "A == B" on whether A and B are equal, and the hash function of the elements needs to be defined before they can be placed in the hash table unordered_map container.

[0069] In some embodiments, the half-face is uniquely represented by the sorting with the smallest index value of the grid points. Specifically, an index is set for each grid point; the half-face is uniquely represented by the sorting with the smallest index value in each sorting of the index of each grid point representing the half-face. For example, the three sortings of abc, bca, and cab correspond to the same half-face. In order to ensure uniqueness, the sorting method with the smallest grid point index can be taken as the half-face. For example, if a is the smallest, abc is taken as the unique representation of the half-face. For example, HalfFace(b, c, a) automatically becomes HalfFace(a, b, c) (because according to the right-hand screw rule, these two are the same half-face). For the reverse half-face: HalfFace(a, b, c) != HalfFace(a, c, b). In this way, the uniqueness of the half-face and the reverse half-face can be ensured, thereby ensuring the accuracy of the tetrahedral mesh operation.

[0070] Through the mapping relationship between the above half-surfaces and the corresponding grid points, a new half-surface data structure is constructed, which can conveniently implement various operations on the grid.

[0071] At block 508 , tetrahedrons in the tetrahedral mesh are operated based on the mapping relationship between the half-faces and the first grid points.

[0072] In the process of mesh generation, it is usually necessary to dynamically modify the mesh to improve the mesh quality. The process of modifying the mesh involves flipping faces and edges. Flipping edges requires more pointer modifications because there is no upper limit on the number of tetrahedrons connected by an edge in a tetrahedral mesh. Therefore, the grid connection relationship between all tetrahedrons connected by an edge needs to be modified.

[0073] In some embodiments, the operations on the tetrahedrons in the tetrahedral mesh may include neighbor query operations, which may include interpolation operations, edge flipping operations, and interface query operations.

[0074] In some embodiments, when searching for a tetrahedron's neighbor tetrahedron in a red-black tree-type half-face data structure, the relationship between the half-face and the anti-half-face can be quickly obtained, and the queried neighbors will be automatically updated after the grid changes dynamically. Specifically, when querying a tetrahedron's coplanar neighbor tetrahedron, the anti-half-face of a half-face can be obtained, and then the anti-half-face can be mapped to the corresponding grid point (which can be called the oppo point) to obtain the neighbor tetrahedron. The anti-half-face can be obtained first, such as the half-face in the tetrahedron (abcd) The surface normal of the reverse half surface obtained according to the right-hand screw rule needs to be opposite to the original surface normal. The specific method is to reverse b and c to obtain the half surface Specifically, the numbers of the grid points abc can be stored in advance. The grid point numbers and connection relationships belong to topological information, and the operations on the half-surface and the anti-half-surface only need to process the topological information.

[0075] After obtaining the reverse half-face, the corresponding oppo point of the reverse half-face can be found through the key-value pair of the red-black tree. The red-black tree uses the half-face and the oppo point as the key-value pair for mapping the half-face to the oppo point and for fast insertion and deletion of the half-face. The reverse half-face of the half-face is used for querying neighbor tetrahedrons. For example, after obtaining the reverse half-face After that, you can put the reverse half as the key into std::map<HalfFace, int> In the variable msh, we can get the corresponding oppo point by msh.at(HalfFace(a, c, b)). Assume that the corresponding oppo point is point e (e.g. Figure 6 , Figure 7 As shown), then point e and half surface This constitutes the neighbor tetrahedron (acbe) to be queried. Specifically, The half face points to d according to the right-hand screw rule, so msh[HalfFace(a, b, c)] = d; the opposite is The half face points to e according to the right-hand screw rule, so msh[HalfFace(a, c, b)] = e.

[0076] In some embodiments, the correspondence between the half-face abc and the grid point d can be pre-stored in the software. After abc is input, the assignment can be performed based on the correspondence. In the software, the assignment statement "msh[HalfFace(a, b, c)] = d" can be used to assign d to the value mapped by the key HalfFace(a, b, c) in the red-black tree, so the next time the statement "msh[HalfFace(a, b, c)]" is executed, d can be obtained. The assignment and query operations in the red-black tree can be implemented by the bracket operator "[]", that is, msh[xxx] = x is assignment (storage), and msh[xxx] is query).

[0077] It can be seen that in some embodiments, the grid point search is performed by fast mapping of the red-black tree. If HalfFace(a, b, c) is mapped to the opposite point d, then in the red-black tree, through the bracket operator "[]", that is, "msh[HalfFace(a, b, c)]", the grid point d can be quickly found within O(logN) time complexity. The right-hand screw rule is only used to distinguish between the half-face abc and the opposite half-face acb. In the red-black tree, there is no need to care about the right-hand screw rule. The red-black tree only needs to map abc to d and acb to e.

[0078] Since a tetrahedron has four faces, it has at most four coplanar neighbors in the grid. You can find the neighbor tetrahedron (acbe) from the tetrahedron (abcd) by the above method. If you want to find the other three neighbors, that is, , or Coplanar neighbors can also be achieved using the above method, that is, first construct the anti-half-surface through the half-surface, and then find the oppo point through the anti-half-surface to find the neighbor tetrahedron.

[0079] The application scenarios of tetrahedron neighbor query are mainly the insertion point operation, flange operation, and interface query operation in the Delaunay meshing method.

[0080] In some embodiments, the neighbor query operation may include: determining the reverse half-surface based on the relationship between the half-surface and the reverse half-surface; determining a second grid point opposite to the reverse half-surface based on the reverse half-surface and the mapping relationship; and determining an adjacent tetrahedron based on the reverse half-surface and the second grid point.

[0081] In meshing applications, there are usually two interfaces, one is the exterior surface and the other is the interface between two regions of different materials.

[0082] For the first type of surface, that is, the outer surface, the triangular face of the outer surface corresponds to only one tetrahedral unit, while any triangle inside will correspond to two tetrahedral units. When looking for neighboring tetrahedrons of the outer surface triangle, if a half-face in the red-black tree does not have an inverse half-face, it means that the half-face has no neighbor tetrahedron, then this half-face can be judged as an outer surface. In short, for the interface query of the first type of surface, it can be determined whether there is an inverse half-face of the half-face of the tetrahedron based on the relationship between the half-face and the inverse half-face, and if there is no inverse half-face of the half-face of the tetrahedron, it is determined that the half-face is the outer surface of the tetrahedron. In some embodiments, it can be judged by whether there is a key in the red-black tree, and the find function of std::map can be used to determine whether there is a key in the red-black tree.

[0083] For the second interface, that is, the interface between two different material regions (that is, two different connected domains formed by different meshes), the triangular half-faces on the material interface have neighbors, but the material region attributes to which the neighbor tetrahedrons belong are different. In some embodiments, a mapping table from half-faces to material numbers can be established to record what materials each tetrahedron belongs to. Multiple adjacent tetrahedrons with the same material attributes constitute a connected domain. After finding the neighbor tetrahedron by finding neighbors through half-faces and anti-half-faces, it is determined whether the material region attributes of a neighbor tetrahedron are the same as those of the current tetrahedron. If the material region attributes are different, it means that the current face belongs to the interface between material regions. In short, for the interface query of the second interface, the neighbor tetrahedron can be determined based on the relationship between the half-face and the anti-half-face; determine whether the indicator (which can be an integer number) indicating the material attributes of the neighbor tetrahedron and the tetrahedron is the same; and when the indicator of the neighbor tetrahedron and the tetrahedron is different, determine that the half-face is an interface between different materials.

[0084] There are usually two cases for point insertion, one is to insert feature points of the geometric body contour itself, and the other is to insert points for local mesh encryption to meet semiconductor simulation requirements (for example, where the physical field gradient is large, the mesh needs to be denser, so more points need to be added internally). In some embodiments, point insertion can be implemented in the following way: add a new grid point to the grid point list of the msh object (the grid point index value is increased by one (n+1), and the grid point coordinate information x, y, z is attached to the newly added grid point), where n is a positive integer.

[0085] According to the empty circle criterion in the Delaunay criterion, the circumscribed sphere of a tetrahedron cannot contain any other grid points except the tetrahedron. The circumscribed sphere of the tetrahedron where the newly inserted grid point is located must contain the grid point, so the tetrahedron where it is located does not meet the Delaunay criterion and needs to be deleted. In addition, the circumscribed spheres of several tetrahedrons of the tetrahedron's neighbors may contain the grid point, so it is possible that several neighboring tetrahedrons must also be deleted.

[0086] Usually there are a lot of tetrahedrons in the grid. After deleting a few tetrahedrons that are clustered together inside the grid, a geometric cavity will be formed. Then the grid points of this cavity need to be reconnected to form a new tetrahedron.

[0087] See also Figure 8 , Figure 8 Schematic diagram of a modified tetrahedral structure mesh according to some embodiments of the present disclosure is shown. Figure 8 As shown in the figure, the tetrahedral elements in the tetrahedral mesh have been modified and their shape and structure have changed. For example, the elongated elements have been turned into elements with a more symmetrical aspect ratio after the flanging operation. This has the advantage of improving the calculation accuracy of the finite volume method in TCAD semiconductor simulation and making the gradient calculation of the physical field and the solution of partial differential equations in TCAD semiconductor simulation more stable.

[0088] In some embodiments, the operations on the tetrahedrons in the tetrahedral mesh may include operations of adding tetrahedral units and deleting tetrahedral units. In some embodiments, the operations of adding tetrahedral units and deleting tetrahedral units may include: inserting points, turning edges, restoring constrained edges, and restoring constrained faces.

[0089] See also Fig. 9 , Fig. 9 A schematic diagram showing the addition and deletion of a mesh of a tetrahedral structure according to some embodiments of the present disclosure is shown.

[0090] like Fig. 9 As shown in the figure, if you delete tetrahedron acbe and add tetrahedron acbf, then the neighbor of tetrahedron abcd on the acb face becomes acbf.

[0091] For abcd, when searching for neighbors, f can be found through msh[HalfFace(a, c, b)], so the neighbor is acbf. Therefore, if the tetrahedron changes from acbe to acbf, then when searching for neighbors, the tetrahedron abcd will automatically find the neighbor acbf through the half face, that is, msh[HalfFace(a, c, b)] = f.

[0092] In the embodiment of the present disclosure, all tetrahedrons of the grid are stored in the form of half-faces and their mapping points, and any tetrahedron can be found starting from the half-faces.

[0093] In the embodiments of the present disclosure, it is not necessary to record who the neighbors of abce are, that is, there is no need for a list to record neighbor information. When a unit needs to be added, four half-faces need to be added to the red-black tree at the same time. These four half-faces use the half-face and the oppo point as the key-value pairs of the red-black tree. When deleting a tetrahedron, the four half-faces of the tetrahedron are deleted at the same time. By adding and deleting 4 half-faces at one time, a tetrahedron can be added or deleted in the grid. After adding or deleting a tetrahedron, the neighbor tetrahedrons of the tetrahedron will also be automatically updated, and there is no need to maintain a list of neighbor tetrahedrons to perform neighbor query operations.

[0094] When querying, the red-black tree library searches for the grid point facing acb, and f is automatically found, so the neighbor is acbf. This is equivalent to finding its neighbors directly through the reverse half-face of the half-face after the update, so the neighbors will also be automatically updated.

[0095] In the traditional solution, all neighbors need to be written into a list, which records who the neighbors of ABC are. After the tetrahedron is modified, the neighbor list also needs to be modified. The operation is very troublesome, especially when there are a large number of addition and deletion operations.

[0096] The addition and deletion of tetrahedrons are mainly used in the meshing process of Delaunay tetrahedrons. The process mainly involves inserting points, restoring constraint edges and constraint faces by flanging, and improving mesh quality. When inserting points, the tetrahedron where the newly inserted point is located needs to be deleted, so the tetrahedron deletion operation in the above-mentioned red-black tree half-face data structure is required. After deleting the tetrahedron, the newly inserted point needs to be reconnected with the adjacent triangular faces to form a tetrahedron. At this time, the operation of adding tetrahedrons in the above-mentioned red-black tree half-face data structure is required. In addition, after the insertion point is connected to form a new tetrahedron, the local tetrahedral mesh needs to be flanging to ensure that the newly inserted tetrahedron meets the Delaunay criterion. At this time, it is necessary to delete tetrahedrons to form new cavities and add tetrahedrons to fill the cavities. Therefore, the operations of adding and deleting tetrahedrons in the above-mentioned red-black tree half-face data structure are also involved.

[0097] Fig.10 A schematic diagram showing a process of forming a constrained tetrahedral mesh according to some embodiments of the present disclosure is shown.

[0098] like Fig.10 As shown, Fig.10The upper left corner represents the original grid points and their boundaries 1000 formed in step 1; the upper right corner represents the unconstrained grid obtained after interpolation in step 2. The so-called unconstrained grid means that the contour line of the object does not necessarily appear in the grid lines. For example, the contour line 1002 in the upper left corner does not appear in the grid in the upper right corner. The constrained grid means that the contour line of the object must appear in the grid line. It should be noted that the outer contour of the triangular mesh obtained by the interpolation method is always convex, and it is impossible to obtain concave or hole shapes because the concave or holes are filled with triangles. In step 3, the triangles in the grid in step 2 are flanging operations so that the constrained edges on the boundaries reappear in the grid, thereby obtaining the grid in the lower left corner. In step 4, after deleting the cells in the concave or hole and the outside, the final constrained grid is formed, as shown in the lower right corner.

[0099] The constraint edge can be understood as the outline of the original geometric body. Restoring the constraint edge can be achieved by flipping the edge from the second step to the third step in the above figure. The constraint surface can be understood as the surface and internal interface of a three-dimensional geometric body, which is a similar concept to the outline of a two-dimensional geometric body.

[0100] Fig.11 A schematic diagram showing conversion between two tetrahedron and three tetrahedron structures according to some embodiments of the present disclosure is shown.

[0101] The flipping operation of a 3D mesh involves operations such as 2-3 flipping (two tetrahedrons become three tetrahedrons) and 3-2 flipping (three tetrahedrons become two tetrahedrons). In the flipping operation, after finding the neighbor tetrahedron, the whole composed of the current tetrahedron and the neighbor tetrahedron is reconstructed by reconnecting the grid points to obtain a new tetrahedron. Therefore, neighbor query plays an important role in the flipping operation.

[0102] When a tetrahedron is added or deleted, the neighbor tetrahedron will be automatically updated, and there is no need to maintain a list of neighbor tetrahedrons to query neighbors. Figure 6 and Figure 7 For example, suppose there is only one tetrahedron (abcd) in the grid, then the half face reverse half This key value does not exist in the red-black tree, that is, , so we can know that the neighbor tetrahedron that shares the triangle face abc with the tetrahedron (abcd) does not exist.

[0103] Then, a new tetrahedron (acbe) can be inserted. This is equivalent to inserting four new half-faces into the red-black tree. At this time, the neighbor information of the tetrahedron (abcd) will be automatically updated. When searching for neighbor tetrahedrons that share the triangle face abc with the tetrahedron (abcd), the half-faces will be found. reverse half The key value exists in the red-black tree through You can get the reverse half The oppo point e of , thus finding the updated neighbor tetrahedron (acbe).

[0104] In some embodiments, the tetrahedral mesh is obtained by discretizing the semiconductor process device through the Delaunay triangulation meshing method, and wherein, adding tetrahedral units can be achieved by: inserting a point in the tetrahedral mesh; deleting the tetrahedron where the insertion point is located; connecting the insertion point with the adjacent triangular face to form a new tetrahedron; and performing a flanging operation on the relevant tetrahedral mesh so that the new tetrahedron satisfies the Delaunay criterion.

[0105] The above embodiments disclose a method for simulating semiconductor process devices. It should be noted that the examples given in the above embodiments are only for illustrating the solutions of the embodiments of the present disclosure, and are not intended to limit the solutions of the present disclosure.

[0106] A semiconductor process device simulation model is also disclosed in an embodiment of the present disclosure, including: a mesh generation module, configured to: discretize the geometric shape of the semiconductor process device to generate a tetrahedral mesh; identify each face of a tetrahedron in the tetrahedral mesh as a half-face with a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; map the half-face to the first grid point according to a predetermined mapping relationship; and operate the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point; a process simulation module, configured to simulate the process of manufacturing a semiconductor process device based on the output of the mesh generation module; and a device simulation module, configured to simulate the electrical characteristics of the semiconductor process device based on the output of the mesh generation module.

[0107] In some embodiments, the mesh generation module may be configured to perform various methods for semiconductor process device simulation according to the present disclosure.

[0108] Refer to the following Fig.12 Give a description. Fig.12 A schematic diagram of the overall framework of a TCAD simulation model according to some embodiments of the present disclosure is shown. Fig.12 The arrow lines in the figure can represent dependency relationships, that is, from high-level dependent modules to low-level dependent modules. It can be seen that the red-black tree half-face data structure disclosed in the present invention provides a basic data structure for the entire algorithm framework.

[0109] Fig.12 The left side shows the relationship between semiconductor process device simulation and mesh generation module. TCAD simulation is usually divided into process simulation and device simulation, such as Fig.12As shown on the left side of . Process simulation is used to simulate the growth process of transistors, which involves changes in geometric structures, diffusion of doping concentration fields, and ion implantation. The grid module is needed to spatially discretize the geometric structure to solve the partial differential equations of concentration field diffusion and provide high-resolution ion distribution for ion implantation. After the final shape of the transistor is obtained through the process flow, device simulation is needed to obtain the electrical properties of the transistor, such as potential field, current field, capacitance, resistance and other characteristics. The simulation of electrical properties also requires the grid generation module to customize the generation of grids with different density distributions, so as to spatially discretize various electrical fields to solve partial differential equations.

[0110] Fig.12 The right side of shows the relationship between the red-black tree-type half-face data structure and the overall framework of the meshing algorithm. Specifically, it shows the Delaunay meshing algorithm architecture. The five top-level modules represent the five execution steps in the tetrahedral meshing algorithm, namely step (1) Bower-Watson interpolation method, which is used to construct the basic unconstrained tetrahedral mesh; step (2) restore the constraint edges; step (3) restore the constraint faces so that the triangular faces of the mesh can perfectly present the outer surface and interface contours; step (4) mesh optimization, by reducing the oblong units in the mesh through the flanging method to optimize the mesh quality; step (5) delete redundant tetrahedrons, that is, delete the tetrahedrons that fill the concave and holes produced in the previous interpolation method. The interpolation method in step (1) and the deletion of redundant tetrahedrons in step (5) directly depend on the insertion, deletion and neighbor search operations of tetrahedrons (such as Fig.12 The recovery constraint edge-face and mesh optimization in steps 2 to 4 depend on the edge-face flipping operation, which in turn depends on the insertion, deletion and neighbor search operations of tetrahedrons (such as Fig.12 The operations of inserting, deleting and searching for neighbors of tetrahedrons are dependent on the red-black tree-type half-face data structure designed in the present disclosure. The dependency mentioned here can be understood as the dependency relationship between objects in the code, or as the function call relationship. For example, restoring the constraint edge-face requires calling the edge-flip function, and edge-flip requires calling the tetrahedron insertion, deletion, neighbor search and other functions.

[0111] The present disclosure optimizes the data structure and algorithm of Delaunay triangulation for TCAD semiconductor simulation, making the grid more consistent with Delaunay properties, that is, increasing the proportion of cells that meet the Delaunay criterion. The high-quality Voronoi diagram unit cell of the Delaunay grid dual can improve the calculation accuracy of the finite volume method in TCAD semiconductor simulation.

[0112] In some embodiments of the present disclosure, a half-face data structure of a tetrahedral mesh is implemented in a red-black tree manner. Based on the red-black tree half-face data structure, the mesh can be dynamically modified, that is, tetrahedrons can be quickly inserted, deleted, and tetrahedron neighbors can be queried. Compared with the array-type half-face structure, the red-black tree-type half-face structure is faster in insertion and deletion, and the time complexity O(log N) is better than the O(N) of the array-type half-face structure, where N represents the amount of input data. After the mesh is modified, the data structure automatically updates the neighbors, avoiding the memory overhead of maintaining the neighbor list specifically, and avoiding the time cost of updating the neighbor list. Compared with the traditional half-face data structure, it is more concise and easy to maintain. Usually, the pointer-based half-face data structure is prone to the problem of wild pointers due to complex logic, and the array-based half-face data structure needs to maintain multiple arrays at the same time, which is prone to problems due to the mismatch of synchronous updates between arrays. The red-black tree half-face data structure of the present disclosure avoids the above problems due to its easy maintenance characteristics.

[0113] In some embodiments of the present disclosure, a concise and efficient red-black tree-based half-face data structure is implemented for Delaunay meshing, which is used for the representation of large-scale tetrahedral meshes and fast dynamic addition, deletion, query and modification.

[0114] The half-face data structure disclosed in the present invention is targeted at the needs of TCAD semiconductor simulation. It combines incremental mesh modification algorithms such as point insertion and flanging to generate meshes that are more consistent with Delaunay properties. The corresponding high-quality Voronoi diagram unit cells can improve the calculation accuracy of the finite volume method in the semiconductor simulation process. The present invention can simplify the code of the TCAD mesh generation module and improve the time complexity of adding, deleting, checking and modifying grid points and units in the mesh generation process.

[0115] It should be understood that the embodiments shown in the drawings are only for schematically illustrating the solutions of some embodiments of the present disclosure and are not intended to limit the present disclosure. The embodiments of the present disclosure may also have various other forms.

[0116] An electronic device is also disclosed in an embodiment of the present disclosure. The electronic device includes: a processor; and a memory coupled to the processor, the memory having instructions stored therein, and when the instructions are executed by the processor, the device performs actions, including: discretizing the geometric shape of the semiconductor process device to generate a tetrahedral mesh; identifying each face of a tetrahedron in the tetrahedral mesh as a half-face with a first direction, the half-face being opposite to a first grid point of the tetrahedron outside the half-face; mapping the half-face to the first grid point according to a predetermined mapping relationship; and operating the tetrahedron in the tetrahedral mesh based on the mapping relationship between the half-face and the first grid point.

[0117] The embodiment of the present disclosure also discloses a computer-readable storage medium on which a computer program is stored. When the program is executed by a processor, the method for simulating a semiconductor process device according to the embodiment of the present disclosure is implemented.

[0118] Fig.13 A schematic block diagram of an electronic device according to some exemplary embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0119] like Fig.13 As shown, the device 1300 includes a CPU 1301, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1302 or a computer program loaded from a storage unit 1308 into a random access memory (RAM) 1303. In the RAM 1303, various programs and data required for the operation of the device 1300 can also be stored. The CPU 1301, the ROM 1302, and the RAM 1303 are connected to each other via a bus 1304. An input / output (I / O) interface 1305 is also connected to the bus 1304.

[0120] Multiple components in the device 1300 are connected to the I / O interface 1305, including: an input unit 1306, such as a keyboard, a mouse, etc.; an output unit 1307, such as various types of displays, speakers, etc.; a storage unit 1308, such as a disk, an optical disk, etc.; and a communication unit 1309, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1309 allows the device 1300 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0121] The various processes and processing described above, such as method 500, may be executed by CPU 1301. For example, in some embodiments, method 500 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 1308. In some embodiments, part or all of the computer program may be loaded and / or installed on device 1300 via ROM 1302 and / or communication unit 1309. When the computer program is loaded into RAM 1303 and executed by CPU 1301, one or more steps in method 500 described above may be performed.

[0122] The scheme according to the embodiment of the present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium on which computer-readable program instructions for executing various aspects of the present disclosure are loaded. The computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. The computer-readable program instructions may be downloaded from the computer-readable storage medium to various computing / processing devices, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network and / or a wireless network.

[0123] Various embodiments of the present disclosure have been described above, and the above descriptions are exemplary and are only optional embodiments of the present disclosure, not exhaustive, and are not intended to limit the present disclosure. Although the claims in this application have been formulated for specific combinations of features, it should be understood that the scope of the present disclosure also includes any novel features or any novel combination of features disclosed herein, whether or not it relates to the same scheme in any claim currently claimed for protection. The applicant hereby informs that new claims may be formulated into these features and / or combinations of these features during the examination of this application or in any further application derived therefrom.

[0124] The terms used in this article are selected to best explain the principles of each embodiment, practical application or technical improvement in the market, or to enable other ordinary technicians in the field to understand the embodiments disclosed herein. For those skilled in the art, the present disclosure may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present disclosure shall be included in the scope of protection of the present disclosure.

Claims

1. A method for simulating a semiconductor process device, comprising: discretizing a geometry of a semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as having a half-face along a first direction, the half-face being opposite a first lattice point of the tetrahedron outside of the half-face; Mapping the half-surface to the first grid points according to a predetermined mapping relationship; as well as The tetrahedrons in the tetrahedral mesh are operated based on the mapping relationship between the half-faces and the first grid points.

2. The method according to claim 1, wherein the tetrahedron has a common face with another adjacent tetrahedron, the method further comprising: identifying the common face as also having a reverse half-face along a second direction opposite to the first direction, the reverse half-face being opposite to a second lattice point of the other tetrahedron outside the reverse half-face; as well as The reverse half-surface is mapped to the second grid points according to the predetermined mapping relationship.

3. The method according to claim 1 or 2, wherein the predetermined mapping relationship is a right-hand screw rule or a left-hand screw rule, and wherein mapping the half-surface to the first lattice point according to the predetermined mapping relationship or mapping the reverse half-surface to the second lattice point according to the predetermined mapping relationship respectively comprises: The right-hand screw rule or the left-hand screw rule is applied to each grid point along the half-surface or the reverse half-surface to point to the first grid point or the second grid point respectively.

4. The method of claim 2, wherein operating on tetrahedrons in the tetrahedral mesh comprises at least one of the following: Neighbor query operations; and Addition and deletion of tetrahedral elements.

5. The method according to claim 4, wherein the neighbor query operation comprises: Determining the reverse half-surface based on a relationship between the half-surface and the reverse half-surface; Determine the second grid point opposite to the reverse half-surface based on the reverse half-surface and the mapping relationship; as well as Adjacent tetrahedrons are determined based on the reverse half-surface and the second lattice points.

6. The method according to claim 4, wherein the neighbor query operation comprises an interface query operation, and the interface query operation comprises: Determining whether there is an inverse half-face on the half-face of the tetrahedron based on the relationship between the half-face and the inverse half-face; as well as In response to the half-face of the tetrahedron not having an opposite half-face, the half-face is determined to be an outer surface of the tetrahedron.

7. The method according to claim 4, wherein the neighbor query operation comprises an interface query operation, and the interface query operation comprises: Determining a neighbor tetrahedron based on a relationship between the half-face and the anti-half-face; determining whether a first indicator indicating a material property of the neighbor tetrahedron is the same as a second indicator indicating a material property of the tetrahedron; as well as In response to the first indicator being different from the second indicator, the half-face is determined to be an interface between different materials.

8. The method according to claim 4, wherein the tetrahedral mesh is obtained by Delaunay triangulation meshing method, and wherein the addition of tetrahedral elements comprises: inserting points in the tetrahedral mesh; Deleting the tetrahedron where the insertion point is located; connecting the insertion point with adjacent triangular faces to form a new tetrahedron; as well as The related tetrahedral meshes are flanging-operated so that the new tetrahedrons satisfy the Delaunay criterion.

9. The method according to claim 4, further comprising: After the tetrahedral unit is added or deleted, it is determined whether there is an adjacent tetrahedron based on the relationship between the half-face and the anti-half-face, so as to update the neighbor information.

10. The method according to claim 2, wherein mapping the half-surface or the reverse half-surface to the first grid point or the second grid point respectively according to the predetermined mapping relationship comprises: Representing the half-face by ordering the lattice points on one face of the tetrahedron along a first rotation direction; The reverse half-surface is represented by the arrangement of the lattice points along a second rotation direction opposite to the first rotation direction; Inputting the index composition half-surface set for each grid point as a key value into a mapping function in a red-black tree data structure, wherein the mapping function is used to implement the predetermined mapping relationship; as well as The key value is mapped by the mapping function to obtain the first grid point opposite to the half-surface or the second grid point opposite to the reverse half-surface.

11. The method according to claim 10, wherein: The red-black tree data structure is implemented by the std::map container of the C++ standard library.

12. The method according to claim 1, further comprising: Setting an index for each of the grid points; as well as The half-surface is uniquely represented by the sorting with the smallest index value among the sortings of indices representing the grid points of the half-surface.

13. A semiconductor process device simulation model, comprising: The mesh generation module is configured as follows: discretizing a geometry of a semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as a half-face having a first orientation, the half-face being opposite a first lattice point of the tetrahedron outside the half-face; Mapping the half-surface to the first grid points according to a predetermined mapping relationship; as well as operating the tetrahedrons in the tetrahedral mesh based on the mapping relationship between the half-faces and the first grid points; A process simulation module, configured to simulate a process for manufacturing a semiconductor process device based on an output of the grid generation module; as well as The device simulation module is configured to simulate the electrical characteristics of the semiconductor process device based on the output of the grid generation module.

14. An electronic device comprising: processor; as well as A memory coupled to the processor, the memory having instructions stored therein, the instructions causing the device to perform actions when executed by the processor, the actions comprising: discretizing a geometry of a semiconductor process device to generate a tetrahedral mesh including a plurality of tetrahedrons; identifying each face of the tetrahedron as a half-face having a first orientation, the half-face being opposite a first lattice point of the tetrahedron outside the half-face; Mapping the half-surface to the first grid points according to a predetermined mapping relationship; and The tetrahedrons in the tetrahedral mesh are operated based on the mapping relationship between the half-faces and the first grid points.

15. A computer-readable storage medium having machine-executable instructions stored thereon, which, when executed by a processor, enables the processor to implement the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Red-black tree-based finite element unit quick search method and system

    CN111967175A

  • Real-time data storage and query method based on hash table and red-black tree

    CN112417227A

  • Tetrahedral mesh generation method, device and system and storage medium

    CN116030218A

  • Multi-layer region decomposition parallel computing method and device for polyhedral mesh

    CN116562066A

  • System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities

    US5886702A

Cited By

  • Ion implantation simulation method, electronic equipment and storage medium

    CN119939964A

  • Simulation method of semiconductor device, electronic equipment and computer readable storage medium

    CN121279043A