Method, apparatus and computer-readable storage medium for processing integrated circuit layout

文档序号:1953387 发布日期:2021-12-10 浏览:24次 中文

阅读说明:本技术 处理集成电路版图的方法、设备和计算机可读存储介质 (Method, apparatus and computer-readable storage medium for processing integrated circuit layout ) 是由 不公告发明人 于 2021-09-09 设计创作,主要内容包括:本公开的实施例涉及处理集成电路版图的方法、设备和计算机可读存储介质。该方法包括将包括多个几何图形的第一版图拆分成多个块,该多个块沿该第一版图的第一方向并排设置并且在第二方向上贯穿该第一版图,该第二方向垂直于该第一方向;分别确定该多个块中的每个块的几何图形信息,该几何图形信息至少指示个体几何图形的位置、形状以及不同几何图形之间的相对位置;以及基于该几何图形信息,将该多个块合并成与该第一版图相对应的第二版图。本公开的实施例能够提高集成电路版图的计算处理效率。(Embodiments of the present disclosure relate to methods, apparatuses, and computer-readable storage media for processing an integrated circuit layout. The method comprises splitting a first layout comprising a plurality of geometric figures into a plurality of blocks, the plurality of blocks being arranged side by side in a first direction of the first layout and traversing the first layout in a second direction, the second direction being perpendicular to the first direction; determining geometry information for each of the plurality of blocks separately, the geometry information indicating at least a position, a shape, and a relative position between different geometries of the individual geometries; and merging the plurality of blocks into a second layout corresponding to the first layout based on the geometric information. The embodiment of the disclosure can improve the calculation processing efficiency of the integrated circuit layout.)

1. A method of processing an integrated circuit layout, comprising:

splitting a first layout comprising a plurality of geometric figures into a plurality of blocks, the plurality of blocks being arranged side by side along a first direction of the first layout and penetrating the first layout in a second direction, the second direction being perpendicular to the first direction;

determining geometry information for each of the plurality of blocks separately, the geometry information indicating at least a location, a shape, and a relative location between different geometries of individual geometries; and

merging the plurality of blocks into a second layout corresponding to the first layout based on the geometric information.

2. The method of claim 1, wherein determining the geometry information comprises:

determining a first graphical representation of a relative position between a first geometry and a second geometry, the first geometry and the second geometry being located in a first block of the plurality of blocks;

determining a second graphical representation of a relative position between a third geometry and a fourth geometry, the third geometry and the fourth geometry being located in the first block; and

determining relative position information between the first geometry and the second geometry as relative position information between the third geometry and the fourth geometry if it is determined that the first graphical representation matches the second graphical representation, and taking the relative position information as part of the geometry information.

3. The method of claim 2, wherein determining the first graphical representation comprises:

determining a first triangle as the first graphical representation based on a point of the first geometric figure and an edge of the second geometric figure; and

wherein determining the second graphical representation comprises:

determining a second triangle as the second graphical representation based on a point of the third geometric figure and an edge of the fourth geometric figure.

4. The method of claim 1, wherein each of the plurality of blocks comprises:

a main region located at the center of the block;

a first auxiliary area located at a first edge of the block; and

a second auxiliary area located at a second edge of the block, the first edge being opposite to the second edge along the first direction.

5. The method of claim 4, wherein merging the plurality of blocks into the second layout based on the geometry information comprises:

determining a first position of a fifth geometry based on the geometry information of a second block of the plurality of blocks, the fifth geometry being located at least partially in the first auxiliary area of the second block;

determining a second position of a sixth geometry based on the geometry information of a third block adjacent to the second block, the sixth geometry being at least partially located in the second auxiliary area of the third block; and

determining a merged target geometry of the fifth geometry and the sixth geometry in the second layout based on the first location and the second location.

6. The method of claim 5, wherein determining the target geometry based on the first location and the second location comprises:

if the fifth geometry is entirely located in the first auxiliary area, the sixth geometry is entirely located in the second auxiliary area, and the first location and the second location are overlapping, retaining the fifth geometry or the sixth geometry as the target geometry.

7. The method of claim 5, wherein determining the target geometry based on the first location and the second location comprises:

merging the fifth geometry and the sixth geometry into a seventh geometry if the fifth geometry crosses the boundary of the first auxiliary region and the sixth geometry crosses the boundary of the second auxiliary region; and

replacing the fifth geometry and the sixth geometry with the seventh geometry as the target geometry.

8. The method according to claim 1, wherein a boundary of at least one of said plurality of blocks does not intersect any geometric figure in said first layout.

9. The method according to claim 1, wherein the first layout is split into the plurality of blocks at a first compute node, the plurality of blocks are merged into the second layout at the first compute node, and the geometry information is determined at least one second compute node different from the first compute node.

10. An electronic device, comprising:

a processor; and

a memory coupled with the processor, the memory having instructions stored therein that, when executed by the processor, cause the apparatus to perform the steps of the method of any of claims 1-9.

11. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the method according to any one of claims 1 to 9.

Technical Field

Embodiments of the present disclosure relate generally to the field of integrated circuits, and more particularly, to a method, apparatus, and computer-readable storage medium for processing an integrated circuit layout.

Background

As semiconductor manufacturing processes continue to advance, the size of functional devices continues to shrink. Under current state of the art, lithographic apparatus project a design layout onto a substrate using UV radiation from a Deep Ultraviolet (DUV) illumination source, thereby producing individual functional elements of a desired size. As the critical dimensions of target patterns are increasingly reduced, it becomes increasingly difficult to reproduce the target patterns on the wafer.

The double exposure technique (DPT) or the multiple exposure technique (MPT) allows the features of a given target pattern to be separated into two different masks and then imaged independently to form the desired pattern, so that in each mask the minimum design pitch can be large enough to allow continued use of the radiation of the respective illumination source. For DPT or MPT, geometric information of each geometry on the integrated circuit layout is an important parameter, and includes the position and size of each geometry and the relative positional relationship between each geometry. Knowing these parameters requires significant computational resources. How to increase the calculation rate is a technical problem that designers need to solve urgently.

Disclosure of Invention

According to an example embodiment of the present disclosure, a solution for processing an integrated circuit layout is provided.

In a first aspect of the disclosure, a method of processing an integrated circuit layout is provided. The method comprises the following steps: splitting a first layout comprising a plurality of geometric figures into a plurality of blocks, the plurality of blocks being arranged side by side along a first direction of the first layout and penetrating the first layout in a second direction, the second direction being perpendicular to the first direction; determining geometry information for each of the plurality of blocks separately, the geometry information indicating at least a position, a shape, and a relative position between different geometries of the individual geometries; and merging the plurality of blocks into a second layout corresponding to the first layout based on the geometric information.

In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes: a processor; and a memory coupled with the processor, the memory having instructions stored therein that, when executed by the processor, cause the device to perform actions. The actions include splitting a first layout comprising a plurality of geometries into a plurality of blocks, the plurality of blocks being arranged side-by-side along a first direction of the first layout and traversing the first layout in a second direction, the second direction being perpendicular to the first direction; determining geometry information for each of the plurality of blocks separately, the geometry information indicating at least a position, a shape, and a relative position between different geometries of the individual geometries; and merging the plurality of blocks into a second layout corresponding to the first layout based on the geometric information.

In some embodiments, determining the geometry information comprises: determining a first graphical representation of a relative position between a first geometry and a second geometry, the first geometry and the second geometry located in a first block of the plurality of blocks; determining a second graphical representation of a relative position between a third geometry and a fourth geometry, the third geometry and the fourth geometry being located in the first block; and if it is determined that the first graphical representation matches the second graphical representation, determining relative position information between the first geometric figure and the second geometric figure as relative position information between the third geometric figure and the fourth geometric figure, and taking the relative position information as part of the geometric figure information.

In some embodiments, determining the first graphical representation comprises: determining a first triangle as the first graphical representation based on a point of the first geometric figure and an edge of the second geometric figure; and wherein determining the second graphical representation comprises: determining a second triangle as the second graphical representation based on a point of the third geometric figure and an edge of the fourth geometric figure.

In some embodiments, each block of the plurality of blocks comprises: a main region located at the center of the block; a first auxiliary area located at a first edge of the block; and a second auxiliary area located at a second edge of the block, the first edge being opposite to the second edge along the first direction.

In some embodiments, the widths of the first and second auxiliary regions are determined based on a design rule check.

In some embodiments, merging the plurality of blocks into the second layout based on the geometry information comprises: determining a first position of a fifth geometry based on the geometry information of a second block of the plurality of blocks, the fifth geometry being at least partially located in the first auxiliary area of the second block; determining a second position of a sixth geometry based on the geometry information of a third block adjacent to the second block, the sixth geometry being at least partially located in the second auxiliary area of the third block; and determining a merged target geometry of the fifth geometry and the sixth geometry in the second layout based on the first location and the second location.

In some embodiments, determining the target geometry based on the first location and the second location comprises: if the fifth geometry is completely located in the first auxiliary area, the sixth geometry is completely located in the second auxiliary area, and the first location and the second location are overlapping, the fifth geometry or the sixth geometry is retained as the target geometry.

In some embodiments, determining the target geometry based on the first location and the second location comprises: merging the fifth geometry and the sixth geometry into a seventh geometry if the fifth geometry crosses the boundary of the first auxiliary area and the sixth geometry crosses the boundary of the second auxiliary area; and replacing the fifth geometry and the sixth geometry with the seventh geometry as the target geometry.

In some embodiments, the boundary of at least one of the plurality of blocks does not intersect any geometry in the first layout.

In some embodiments, the first layout is split into the plurality of blocks at a first compute node, the plurality of blocks are merged into the second layout at the first compute node, and the geometric information is determined at least one second compute node different from the first compute node.

In a third aspect of the disclosure, a computer-readable storage medium is provided. The computer readable storage medium has stored thereon a computer program which, when executed by a processor, implements the method according to the first aspect of the disclosure.

It should be understood that the statements herein reciting aspects are not intended to limit the critical or essential features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description.

Drawings

The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. In the drawings, like or similar reference characters designate like or similar elements, and wherein:

FIG. 1 illustrates a schematic diagram of an example environment in which embodiments of the present disclosure can be implemented;

FIG. 2 shows a schematic diagram of a split integrated circuit layout according to a conventional method;

FIG. 3 shows a flow diagram of a method for processing an integrated circuit layout according to an exemplary embodiment of the present disclosure;

FIG. 4 illustrates a schematic diagram of a split integrated circuit layout, according to some embodiments of the present disclosure;

FIG. 5 illustrates a schematic diagram of a split block boundary, in accordance with some embodiments of the present disclosure;

FIG. 6 illustrates a schematic diagram of relative positions between different geometries graphically represented according to some embodiments of the present disclosure;

FIG. 7 shows a schematic diagram of the relationship of build geometries, according to some embodiments of the present disclosure;

FIG. 8 shows a schematic diagram of a single block being split, according to some embodiments of the present disclosure;

FIG. 9 illustrates a schematic diagram of merging multiple blocks, according to some embodiments of the present disclosure; and

FIG. 10 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.

Detailed Description

Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.

In describing embodiments of the present disclosure, the terms "include" and its derivatives should be interpreted as being inclusive, i.e., "including but not limited to. The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first," "second," and the like may refer to different or the same object. Other explicit and implicit definitions are also possible below.

Fig. 1 illustrates a schematic diagram of an example environment 100 in which various embodiments of the present disclosure can be implemented. The computing device 102 in the example environment 100 may be any device with computing capabilities. By way of non-limiting example, the computing device 102 may be any type of stationary, mobile, or portable computing device, including but not limited to a desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, multimedia computer, mobile phone, and the like. All or a portion of the components of the computing device 102 may be distributed in the cloud.

In this example environment 100, a computing device 102 may process an integrated circuit layout 110 (hereinafter simply "layout"), the integrated circuit layout after processing being referred to as a final integrated circuit layout 120. As shown, the computing device 102 generally includes a split module 104, a determination module 106, and a merge module 108. The splitting module 104 is configured to split the integrated circuit layout 110 into a plurality of blocks. The determination module 106 is configured to determine the geometry information in each of the split blocks. The merging module 108 is configured to merge the plurality of blocks split via the splitting module 104 into a final integrated circuit layout 120 based on the geometry information determined by the determining module 106. The acts described below with respect to the computing device 102, including splitting, determining, and merging, may be specifically performed by the splitting module 104, the determining module 106, and/or the merging module 108.

In some embodiments, computing device 102 may include multiple computing nodes, and different computing nodes may perform different operations. In such an embodiment, the splitting and merging of the layout is done on a first computing node, and the determination of the geometric information of the blocks is done on at least one second computing node different from the first computing node. That is, the functionality of the split module 104 and the merge module 108 may be implemented by a first computing node, while the functionality of the determination module 106 may be implemented by a second computing node. The different second compute nodes may be in parallel.

The first compute node may be a master (master) compute node of the computing device 102, e.g., one or more cores of a processor of the computing device 102. The second compute node may be a secondary (host) compute node of the computing device 102, e.g., another core of the processor. With such an arrangement, some operations requiring global consideration may be performed on the primary computing node, while some operations may be performed on the secondary computing node without taking up excessive computing resources. In this way, computational resources on the processor may be reasonably allocated and fully utilized, thereby avoiding long periods of inactivity of the computational resources.

In some embodiments, the determination of the mapping relationship between the geometry and the neighboring geometry is made on the secondary computing node. The determined relationships may be stored in a linear relationship data structure. In some embodiments, such a data structure may be embodied in the form of a data table, which may be used to sort out the connections between the various geometric figures in a reliable manner, thereby facilitating the use of the master computing node, which may make the establishment of global relationships easier.

In addition, the design also considers the computing capacity of the auxiliary computing node. This is because the assist computing node cannot process a very complicated data relationship structure because of the influence of the global relationship. By storing the mapping relationships as a linear data structure, computing resources can be fully utilized while avoiding the limitations that arise when the computational load exceeds the computational capacity of the secondary compute nodes.

In some embodiments, when performing a merge operation on each of the split blocks, operations between the blocks may be performed using multiple threads. For example, when N blocks are merged, two adjacent blocks may be merged, and two other adjacent blocks may be merged, and then the two merged blocks may be merged. By the tree backtracking method, the computing resources of the main computing node can be fully utilized to further improve the computing speed. Moreover, as the number N of blocks increases, the processing manner of the merge operation is more significant for increasing the operation speed.

In other embodiments, by performing the merging operation on the blocks to be merged at the same time when the layout is divided, the time period for waiting for the division result can be fully utilized in the merging process, so that unnecessary waiting in the merging process can be avoided, the computing resource of the processor is utilized to the maximum extent, and the operation speed is further improved.

Fig. 2 shows a schematic diagram of a split integrated circuit layout according to a conventional method. As shown in FIG. 2, an integrated circuit layout 200 includes a plurality of geometries 202, 204, 206. The integrated circuit layout 200 shown is an integrated circuit layout to be split. Although these geometries are schematically illustrated in the drawings, it will be understood by those skilled in the art that these geometries may be other shapes, such as comb-like, gate-like, step-like, etc., depending on the target pattern of devices or wiring. In the conventional approach, the integrated circuit layout 200 is split in two directions L1 and L2 that are perpendicular to each other. In the solution shown in fig. 2, the integrated circuit layout 200 is split into nine blocks B1-B9 in a 3 × 3 manner. It should be understood that this is merely illustrative. The boundaries of the individual blocks that are split are identified as E1, E2, E3 and E4.

However, this splitting method may cause the dependency between each block and other blocks to become high, which is not favorable for increasing the calculation rate. For example, as shown, since the geometry 204 spans B1, B4, B5, B6, B8, B9, for block B5, the included geometry 204 has a dependency relationship with the surrounding blocks B1, B4, B6, B8, B9. Therefore, in the calculation process of the block B5, the peripheral blocks B1, B4, B6, B8, and B9 need to be considered. Therefore, the rate of computation will be affected.

According to an embodiment of the present disclosure, a solution for processing an integrated circuit layout is proposed to at least partially solve one or more of the above problems. In this scheme, an initial layout comprising a plurality of geometries is split into a plurality of blocks. The blocks are arranged side by side in one direction of the initial layout and extend through the first layout in the other, perpendicular direction. In each of the divided blocks, the geometric figure information of the plurality of geometric figures included in each block is determined. The geometry information includes at least information (e.g., position, shape, etc.) of each geometry, and information reflecting a relationship between different geometries (e.g., relative position between the geometries, etc.). And according to the obtained geometric figure information, combining the split blocks into a processed layout corresponding to the initial layout. In this way, it helps to reduce computational dependencies, thereby increasing computational rate.

Fig. 3 shows a flow chart of a method 300 for processing an integrated circuit layout according to an exemplary embodiment of the present disclosure. The steps in fig. 3 will be described below with reference to fig. 4. FIG. 4 illustrates a schematic diagram of a split integrated circuit layout, according to some embodiments of the present disclosure. As shown in fig. 4, the first version 400 includes a plurality of geometric shapes, such as geometric shapes 402, 404, 406. It is to be understood that the first layout 400 herein may be an example of the initial integrated circuit layout 110 in fig. 1.

Referring back to fig. 3, at block 302, a first version 400 including a plurality of geometric shapes 402, 404, 406 is split into a plurality of blocks B11, B12, B13. This step may be performed by the split module 104 of the computing device 102. As shown in fig. 4, a plurality of blocks B11, B12, B13 are arranged side by side in the first direction L1 of the first layout 400 and penetrate the first layout 400 in the second direction L2. The second direction L2 is perpendicular to the first direction L1.

In this way, the dependency between each block and other blocks can be reduced, which may facilitate an increase in the computation rate compared to existing conventional schemes. Taking B12 in fig. 4 as an example, as shown in the figure, only block B11 located above and block B13 located below need to be considered in the calculation process. This can reduce the computation time required for data interaction between blocks, thereby increasing the rate of computation.

In some embodiments, the boundary of at least one block (e.g., each block) of the split plurality of blocks does not intersect any geometric figure in the first version 400. Figure 5 illustrates a schematic diagram of a split block boundary, according to some embodiments of the present disclosure. In the embodiment shown in the figures, the boundary E of a block according to an embodiment of the present disclosure, which may be any one of the boundaries E1, E2, E3, E4 in fig. 2, is represented by a thick solid line. A possible boundary E' in the prior art solution is indicated by a dashed line, which may intersect one or more of the geometric shapes 502. In contrast to this boundary E', the boundary E of a block according to embodiments of the present disclosure takes into full account the form of the geometry 502 on the integrated circuit layout and does not intersect any geometry. It is understood that the geometry 502 herein may be an example of the various geometries in FIG. 4. Based on the division mode, the situation that the same geometric figure is divided into different blocks can be avoided as much as possible. Therefore, the dependency degree among the blocks can be further reduced, and the calculation efficiency is further improved. Such an embodiment may in particular increase the processing speed of the calculations in case the geometry at the boundary is more complex.

With continued reference to FIG. 3, at block 304, geometry information is determined for each of a plurality of blocks B11, B12, B13, respectively. These geometry information indicates at least the position, shape of the individual geometries 402, 404, 406 and the relative positions between the different geometries 402, 404, 406. This step may be performed by determination module 106 of computing device 102 in fig. 1.

It should be noted that the position of the geometric figure may be coordinate information of the geometric figure, whether in a layout or a block, as long as the purpose of unique positioning can be achieved, and the shape of the geometric figure may be determined by connecting lines according to the coordinates of each point of the geometric figure; in addition, the relative position between the geometric figures can be determined according to the distance between lines formed by a plurality of points of the geometric figures or the distance between the points. In another implementation manner, the geometric figure may be formed by combining edges of the vector geometric figure, and as long as information of the geometric figure can be expressed in the embodiment of the present invention, a specific manner is not limited.

In some embodiments, it may be desirable to determine the position, shape of each geometry 402, 404, 406 and the relative position between the different geometries 402, 404, 406 separately. For example, the secondary computing node may perform such calculations.

In some embodiments, the positional relationship between different geometries may be relatively similar. In this case, it is possible to utilize the property that information of the geometries is shared between different geometries. FIG. 6 illustrates one implementation 600 of relative positions between different geometries graphically represented in accordance with some embodiments of the present disclosure. A plurality of geometric figures 602, 604, 606, 608 are shown in fig. 6. It is understood that the various geometries herein may be examples of the various geometries in fig. 4 or portions thereof.

As shown, a point a on the first geometry 602 is determined and an edge BC on the second geometry 604 near the first geometry 602 is determined. In some embodiments, the traversal may be performed in a counter-clockwise direction around the edges of the first geometry 602 and the second geometry 604, respectively, to determine information representing the respective side lengths and shapes of the geometries, respectively. Such information of the geometry can be reflected by the hash value. For example, as shown, for a first geometry 602 consisting of points A, D, E and F, an edge vector for each edge is determinedAndthese vectors may be counterclockwise as shown in the figureThe direction is determined. Then, a hash function may be utilizedTo obtain a hash value reflecting information of each side length and shape of the first geometry 602. Corresponding processing can also be carried out on other geometric figures. It should be understood that in other embodiments, the traversal may be performed in a clockwise direction.

Referring to FIG. 6, from a point A and an edge BC, a more vector may be determinedAndvector triangle Δ ABC as a side. The length of these vectors may reflect the distance separating the first geometry 602 from the second geometry 604, while the orientation of the vectors may reflect the orientation between the first geometry 602 and the second geometry 604. Thus, the relative position between the first geometry 602 and the second geometry 604 may be graphically represented using the vector triangle Δ ABC as its graph.

For the third geometry 606 and the fourth geometry 608, a vector triangle Δ a ' B ' C ' reflecting the relative position between the two can be similarly determined in the manner described above. If the vector triangle Δ ABC is matched to the vector triangle Δ A ' B ' C ', it indicates that the positional relationship between the third geometry 606 and the fourth geometry 608 is similar to the positional relationship between the first geometry 602 and the second geometry 604. In this case, the geometry information between the first geometry 602 and the second geometry 604 may be determined as the relative position information between the third geometry 606 and the fourth geometry 608 as a part of the geometry information. Therefore, the geometric information of the first geometric figure 602 and the second geometric figure 604 can be fully utilized, and repeated calculation is avoided, so that the calculation efficiency is further improved.

It should be understood that various methods may be employed to determine whether the vector triangle Δ ABC and the vector triangle Δ a 'B' C 'are matched, such as whether the difference between the corresponding respective interior angles α, α' of the two vector triangles is below a certain threshold, or whether the difference between the areas of the two vector triangles is below a certain threshold, and so on. The specific determination method is not limited by the embodiments of the present disclosure.

It should also be understood that the method of using vector triangles as mentioned herein is only one way of determining the graphical representation. It is clear to a person skilled in the art that other forms of graphics may be used as a representation to measure the relative positional relationship of the geometric figures, such as quadrilaterals, etc., pentagons, etc. The specific form is not limited by the embodiments of the present disclosure.

In some embodiments, the determination of the mapping relationship between the geometry and the neighboring geometry is made on the secondary computing node. The determined relationships may be stored in a linear relationship data structure. In some embodiments, such a data structure may be embodied in the form of a data table, which may be used to sort out the connections between the various geometric figures in a reliable manner, thereby facilitating the use of the master computing node, which may make the establishment of global relationships easier.

In addition, the design also considers the computing capacity of the auxiliary computing node. This is because the assist computing node cannot process a very complicated data relationship structure because of the influence of the global relationship. By storing the mapping relationships as a linear data structure, computing resources can be fully utilized while avoiding the limitations that arise when the computational load exceeds the computational capacity of the secondary compute nodes.

An exemplary embodiment of building the connection between geometries is described below in conjunction with fig. 7. As shown, five geometries 701, 702, 703, 704, and 705 are shown and their relationship to each other. By storing the interrelationship of the five geometric figures 701, 702, 703, 704 and 705 into a one-dimensional linear relationship table, the relationship between the geometric figures can be intuitively and reliably obtained. Table 1 shows a one-dimensional linear relationship table corresponding to fig. 7.

TABLE 1

Geometric figure Associated geometric figure
701 702、703、704、705
702 703、701、705
703 702、701
704 701
705 702、701

It is to be understood that the relationships between the geometries shown in FIG. 7 and the linear relationship tables shown in Table 1 are for purposes of illustration and description only and are not limiting. In an actual operation scenario, the relationship between the geometric figures can be in other forms. The linear relationship table is adjusted accordingly. For example, more or fewer geometric figures may be included, or there may or may not be a correlation between two geometric figures. The specific form is not limited to the embodiments of the present disclosure.

Referring back to FIG. 3, at block 306, the split plurality of chunks B11, B12, B13 are merged into a second layout corresponding to the first layout 400 based on the geometry information determined in block 304. This step may be performed by the merge module 108 of the computing device 102 in fig. 1. It will be appreciated that the second layout here may be the final integrated circuit layout 120 in fig. 1.

According to the embodiment, by improving the splitting mode in the splitting step, the dependency degree of calculation can be reduced, and data interaction among the blocks can be less considered when merging, so that the calculation speed is improved.

In some embodiments, the split blocks may include different regions to assist in the merging of blocks. Fig. 8 illustrates a schematic diagram of a single chunk 810 that is split, according to some embodiments of the present disclosure. As shown, the division of the layout 800 into a plurality of blocks 810 may be some examples of the various blocks B11, B12, B13 in fig. 3. In the embodiment shown in fig. 8, each block 810 of the plurality of blocks generally includes a primary region 812, a first secondary region 814, and a second secondary region 816. Main region 812 is located at the center of block 810 for implementing the primary calculations on block 810. The first auxiliary area 814 and the second auxiliary area 816 are located at the edge of the block 810, and have a main function of assisting the merging of the respective blocks. Referring to fig. 4 in combination, the first auxiliary area 814 is located at a first edge of the block 810, and the second auxiliary area 816 is located at a second edge of the block 810 opposite to the first edge in the first direction L1.

In some embodiments, second secondary region 816 may also be embedded in primary region 812 as part of primary region 812. In some embodiments, the widths of the first and second auxiliary regions in the first direction L1 are determined based on a Design Rule Check (DRC). The widths of the first and second auxiliary areas in the first direction L1 may be the same. Alternatively, the widths of the first auxiliary area and the second auxiliary area in the first direction L1 may also be different.

In some embodiments, the data representing the geometry information in the main area in each block is not altered when the blocks are merged. However, it is necessary to process data in auxiliary blocks located near the boundary of each block, thereby ensuring a more favorable merging effect.

Fig. 9 illustrates a schematic diagram of merging multiple blocks, according to some embodiments of the present disclosure. In the illustrated embodiment, two separate blocks to be merged are shown at 910 and 920, where block 910 includes a main region 915 and an auxiliary region 916 located below the main region 915, block 920 includes a main region 925 and an auxiliary region 926 located above the main region 925, and block 910 is adjacent to block 920 and located above block 920.

Based on the geometry information of a block 910 of the plurality of blocks, a first location of the geometry 912, 914 within the block 910 is determined, as shown, the geometry 912, 914 is at least partially located in a first auxiliary area 916 of the block 910. Based on the geometry information of the block 920, a second position of the geometry 922, 924 at the block 920 is determined, as shown in the figure, the geometry 922, 924 being at least partially located in a first auxiliary area 926 of the block 920.

In some embodiments, when merging blocks 910 and 920, a merged target geometry for each geometry in the merged second layout is determined based on the determined first and second locations.

In a further embodiment, if the geometry 912 is located entirely within the first auxiliary area 916 (i.e., does not cross any boundary of the first auxiliary area 916), the geometry 922 is located entirely within the second auxiliary area 926 (i.e., does not cross any boundary of the second auxiliary area 926), and the first and second locations are overlapping, either the geometry 912 or the geometry 922 is retained as the target geometry 932.

In other embodiments, if the geometry 914 crosses the boundary E of the first auxiliary area 916M1Geometry 924 crosses the boundary E of the second auxiliary area 926M2Then geometry 914 is merged with geometry 924 into a new geometry when the merge operation is performed. Subsequently, geometry 914 and geometry 924 are replaced with the merged geometry as target geometry 934.

According to the embodiments of the present disclosure, when merging of adjacent blocks is performed, data representing geometry information in the blocks is sufficiently considered so as not to lose any effective information.

Fig. 10 illustrates a schematic block diagram of an example device 1000 that can be used to implement embodiments of the present disclosure. For example, computing device 102 in system 100 as shown in FIG. 1 may be implemented by device 1000. As shown, device 1000 includes a Central Processing Unit (CPU)1001 that can perform various appropriate actions and processes according to computer program instructions stored in a Read Only Memory (ROM)1002 or computer program instructions loaded from a storage unit 1008 into a Random Access Memory (RAM) 1003. In the RAM 1003, various programs and data necessary for the operation of the device 1000 can also be stored. The CPU 1001, ROM 1002, and RAM 1003 are connected to each other via a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.

A number of components in device 1000 are connected to I/O interface 1005, including: an input unit 1006 such as a keyboard, a mouse, and the like; an output unit 1007 such as various types of displays, speakers, and the like; a storage unit 1008 such as a magnetic disk, an optical disk, or the like; and a communication unit 1009 such as a network card, a modem, a wireless communication transceiver, or the like. The communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the internet and/or various telecommunication networks.

The processing unit 1001 performs the various methods and processes described above, such as the method 300. For example, in some embodiments, the method 300 may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 1008. In some embodiments, part or all of the computer program may be loaded and/or installed onto device 1000 via ROM 1002 and/or communications unit 1009. When the computer program is loaded into RAM 1003 and executed by CPU 1001, one or more steps of method 300 described above may be performed. Alternatively, in other embodiments, the CPU 1001 may be configured to perform the method 300 in any other suitable manner (e.g., by way of firmware).

The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), an Application Specific Standard Product (ASSP), a system on a chip (SOC), a load programmable logic device (CPLD), and the like.

Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowchart and/or block diagram to be performed. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.

In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

Further, while operations are depicted in a particular order, this should be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有最佳化胞元布置的装置布局

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类