System for designing semiconductor circuits and method of operating the same
By using clustering algorithms in semiconductor integrated circuit design to generate clusters and optimize unit placement, the problem of increasing circuit area and trace length in the prior art is solved, and performance improvements are achieved.
Patent Information
- Application Number
- CN202010311671.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-12
- Filing Date
- 2020-04-20
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2040-04-20
AI Technical Summary
When designing semiconductor integrated circuits, the existing technology fails to effectively optimize the layout as the number and complexity of cells increases, resulting in increased circuit area and trace length, and poor performance.
By designing a system that includes working memory and central processing units, clustering algorithms are used to generate clusters and optimize the placement of units to reduce the area and trace length of semiconductor circuits and improve performance.
The reduction of the area and trace length of the semiconductor circuit is achieved, and the performance of the circuit is improved, including frequency characteristics and total negative relaxation characteristics.
Smart Images

Figure CN112214956B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority from Korean Patent Application No. 10-2019-0084231, filed on Jul. 12, 2019, which is hereby incorporated by reference in its entirety. Technical Field
[0003] Example embodiments of the inventive concepts relate to design of a semiconductor circuit, and more particularly, to a system for designing a semiconductor circuit and / or an operating method of the system. Background Art
[0004] Typically, a schematic circuit is designed for the design of a semiconductor integrated circuit. The schematic circuit represents each device included in the semiconductor integrated circuit, and the connection relationship between the devices. These devices can be defined as standard cells managed in a cell library. The standard cells included in the schematic circuit can be placed by an electronic design automation (EDA) tool, and can be designed as patterns of material layers (such as conductive layers, semiconductor layers, and / or insulating layers). Then, a layout can be designed in which each pattern is placed in the layout, for example, on a two-dimensional layer extending vertically and horizontally in two different directions. Based on the layout, a semiconductor integrated circuit with a desired function can be manufactured.
[0005] As electronic devices with various purposes and functions have been developed, the number of cells required for semiconductor circuits has increased, and the nets of these cells (e.g., corresponding connections) have also become complex. Although EDA tools provide algorithms that can automatically design multiple cells and nets, as the number of cells and nets increases, the optimization of the layout is not achieved. Therefore, a method is needed to achieve miniaturization and quality improvement of semiconductor circuits by optimizing or improving the placement of cells. Summary of the invention
[0006] Example embodiments of the inventive concepts provide a system for designing a semiconductor circuit and / or an operating method thereof, which can optimize or improve placement of cells to reduce the area and wiring length of the semiconductor circuit and improve performance.
[0007] According to some example embodiments, a system for designing a semiconductor circuit includes: a working memory configured to load machine-readable instructions, the machine-readable instructions being used to generate clusters based on instances respectively corresponding to units of the semiconductor circuit and for placing the units; and a central processing unit configured to execute the machine-readable instructions for clustering and placement, the machine-readable instructions, when executed by the central processing unit, causing the system to: in response to an output terminal of a first instance being connected to a second instance and the number of instances connected to the output terminal of the first instance being one, classify the first instance and the second instance into a candidate group pair, and in response to all instances connected to an input terminal of the second instance being classified into the candidate group pair together with the second instance, generate a cluster including the first instance and the second instance, and provide the cluster including the first instance and the second instance to a design tool.
[0008] According to some example embodiments, a method of operating a system for designing a semiconductor circuit includes: receiving a netlist including instances corresponding to units of the semiconductor circuit, respectively; classifying the first instance and the second instance into a candidate group pair in response to the number of first instances connected to output terminals of the second instance being one; determining whether at least one instance connected to an input terminal of the first instance is classified into the candidate group pair together with the first instance; and determining a target instance to be included in a cluster based on the determination result of the at least one instance.
[0009] According to some example embodiments, a method of operating a system for designing a semiconductor circuit includes: receiving a netlist including instances corresponding to cells of the semiconductor circuit, respectively, and nets connecting the instances; generating a directed graph such that each of the nets is connected between two instances and has a directionality corresponding to a signal transmission direction of the instances; in response to the number of nets connected to an output terminal of a first instance of the instances being one, classifying the one net into a candidate group net; in response to all nets connected to an input terminal of the second instance being classified as the candidate group net, generating a cluster including the first instance and a second instance connected to the one net; and based on the cluster, placing a first cell corresponding to the first instance and a second cell corresponding to the second instance adjacent to each other. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above and other objects and features of the present inventive concept will become apparent by describing in detail some exemplary embodiments of the present inventive concept with reference to the attached drawings.
[0011] Figure 1 is a block diagram illustrating a system for designing a semiconductor circuit according to an example embodiment of the inventive concept.
[0012] Figure 2 is used to pass Figure 1 A flow chart of a method for systematically designing a semiconductor circuit.
[0013] Figure 3 It is a manifestation Figure 2 An example flowchart of operation S120 is shown in FIG.
[0014] Figure 4 and Figure 5 Is used to describe Figures 1 to 3 A directed graph for clustering described in and a diagram for describing classifications of candidate groups with strong relationships.
[0015] Figure 6 Is used to describe Figure 3 FIG. 1 is a diagram of operation S121 of FIG.
[0016] Figure 7 Is used to describe Figure 3 FIG. 1 is a diagram of operation S122 of FIG.
[0017] Figure 8 Is used to describe Figure 3 FIG. 1 is a diagram of operation S123 of FIG.
[0018] Fig. 9 Is used to describe Figure 3 FIG. 1 is a diagram of operation S124 of FIG.
[0019] Fig.10 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of.
[0020] Fig.11 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of.
[0021] Fig.12 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of.
[0022] Fig.13 is to show the selective use of Figures 1 to 3 A flowchart of an example embodiment of a cluster.
[0023] Fig.14 is a flow chart illustrating an example embodiment of using a design of a semiconductor circuit to fabricate a semiconductor device. DETAILED DESCRIPTION
[0024] Example embodiments of the inventive concept will be described below clearly and in detail so that those skilled in the art can easily practice the inventive concept.
[0025] Figure 1 is a block diagram illustrating a system for designing a semiconductor circuit according to an example embodiment of the inventive concept. Figure 1 , a system 100 for designing a semiconductor circuit may include a CPU 110, a working memory 120, an input / output device 130, a storage device 140, and a system interconnect 150. In an example embodiment, the system 100 may be provided as a dedicated device for clustering of the present invention and design of semiconductor circuits using clustering, but the present invention is not limited thereto. For example, the system 100 may be implemented as a computer system having a clustering and design program. In addition, the various components of the system 100 may be integrated into the same physical system, or some components of the system 100 may be integrated while other components may not be physically close to each other. For example, the storage device 140 may be integrated with the CPU 110 in the same personal computer; however, the present invention is not limited thereto.
[0026] The CPU 110 may execute software such as an application program, an operating system, and / or a device driver to be executed in the system 100. The CPU 110 may execute an operating system (OS, not shown) loaded into the working memory 120. The CPU 110 may execute various application programs to be driven based on the operating system (OS). In some example embodiments, the CPU 110 may execute a clustering module (or clustering application) 121 and a design tool 122 (e.g., an EDA tool) loaded into the working memory 120. Figure 1 1 and 122 are shown separately, but the inventive concept is not limited thereto, and there may be a single application that performs the functions of both the clustering application 121 and the design tool 122. In addition, although not shown, the CPU 110 may further execute a simulation program for simulating the semiconductor circuit designed by the design tool 122, such as a simulation program with integrated circuit emphasis (SPICE).
[0027] An operating system (OS) or an application program may be loaded into the working memory 120. When the system 100 is started, an OS image (not shown) stored in the storage device 140 may be loaded into the working memory 120 based on a boot sequence. The operating system (OS) may support all input and output operations of the system 100. Likewise, an application program may be loaded into the working memory 120 to provide basic services or services selected by a user. In particular, a clustering application 121 for performing clustering of the present inventive concept and a design tool 122 for placement and routing of semiconductor circuits may be loaded from the storage device 140 into the working memory 120.
[0028] The working memory 120 may be or include a volatile memory (e.g., static random access memory (SRAM) and / or dynamic random access memory (DRAM)), and / or may be or include a non-volatile memory (e.g., PRAM, MRAM, ReRAM, FRAM, NOR flash memory, etc.).
[0029] The clustering application 121 can analyze the netlist of the semiconductor circuit (schematic circuit) and cluster the cells with specific conditions. The schematic circuit represents the devices (e.g., active and passive devices) of the semiconductor circuit and the connection relationship of the devices, and the devices can be defined as standard cells provided in the cell library. The netlist may include instances corresponding to each of the cells of the semiconductor circuit and a net representing the connection relationship between the instances.
[0030] The clustering application 121 can determine the directionality of the net based on the input terminals (input information) and output terminals (output information) of the instance. With respect to the net, the directionality corresponds to the transmission direction of the signal, for example, the transmission direction of the signal from the output terminal of one unit to the input terminal of another unit. The clustering application 121 can generate a directed graph for the semiconductor circuit based on the determined directionality. In the directed graph, each net can connect two instances (for example, two units) and can have a directionality from the output terminal to the input terminal. The directed graph can include a cycle, or, alternatively, the directed graph can be a directed acyclic graph (DAG). The clustering application 121 can refer to the directed graph to determine the instances (for example, units) to be included in the cluster.
[0031] The clustering application 121 can detect instances with strong relationships from the directed graph. In this context, a strong relationship can mean that an output terminal of one instance is connected to only an input terminal of another instance through a network. For example, the number of instances to which an output terminal of an instance is connected can correspond to the out-degree of the instance, and two instances in a strong relationship can indicate that the out-degree of one of the two instances is one, and the output terminal of the one instance is connected to the input terminal of the other instance. Figure 4 The directed graph of describes the strong relationship in more detail. Cells corresponding to instances with strong relationships can be placed adjacent to or close to each other, for example, on a photomask to be patterned on a semiconductor circuit. When cells are adjacent to or close to each other, wiring lengths can be reduced, and the effects of signal delays (e.g., signal delays associated with high RC time constants), etc. can be reduced.
[0032] Alternatively, when the output terminal of an instance is connected to the input terminals of multiple other instances, the signal transmission path is divided into multiple. For example, when the out-degree of the instance is greater than one, the signal transmission path can be divided into multiple. Therefore, it may be necessary or possible to calculate to determine which unit in the signal transmission path should be placed adjacent to the unit that branches the signal transmission path based on information such as timing criticality. When the unit placement may vary due to other factors (e.g., considering the divided signal transmission path as a whole and / or timing information such as timing criticality), the clustering application 121 may not classify the instance as having a strong relationship.
[0033] The clustering application 121 may determine the instances to be included in the cluster among the instances classified as having strong relationships. In some example embodiments, the clustering application 121 may refer to the directed graph to track candidate group instance pairs having strong relationships, and include pairs of candidate group instance pairs having the same instances in one cluster. Details of determining the clusters will be described later. The clustering application 121 may provide the generated clusters to the design tool 122.
[0034] exist Figure 1 In the embodiment, although the clustering application 121 is shown as being implemented separately from the design tool 122, the inventive concept is not limited thereto. For example, the clustering application 121 may be implemented together in the design tool 122, and the design tool 122 may perform clustering in a manner according to an exemplary embodiment of the inventive concept.
[0035] Design tool 122 (e.g., EDA tool) can place cells onto the layout based on the netlist and clusters, and can perform routing, for example, routing that connects cells can be performed. Design tool 122 can perform the placement and routing phases in design automation. A cell library representing cells of a semiconductor circuit in a layout can be defined in design tool 122. Layout can be the process of defining the shape or size of a pattern that is used to configure transistors and traces to be formed on a semiconductor substrate. The layout of a particular layer of a semiconductor device can be used to generate a photomask used in the manufacture of the semiconductor device. For example, the layout of the layer can be written to a photomask used in the manufacture of the semiconductor device. Reference will be made later to Fig.14 Describes the manufacturing details of the semiconductor device. Among the standard cells defined in the cell library, a cell suitable for the semiconductor circuit can be selected, and the selected cell can be placed by the design tool 122. In addition, routing for the cell placed by the design tool 122 can be performed. These processes can be automatically and / or manually performed by the design tool 122 together with the input of the operator (e.g., the input of the layout engineer).
[0036] The cells corresponding to the instances included in the cluster may be placed adjacent or close to each other by the design tool 122. For example, the design tool 122 may set the boundaries of the cluster, and may place the cells corresponding to the cluster within the set boundaries, for example, the cells corresponding to the cluster may be placed within a two-dimensional boundary box. For example, the design tool 122 may set the origin coordinates corresponding to the cluster, and the cells corresponding to the cluster may move according to the movement of the origin point. As a result, the above-mentioned cells having strong relationships may be placed adjacent or close to each other, the area and length of the routing of the semiconductor circuit may be reduced, and the frequency characteristics (e.g., maximum frequency) and / or total negative slack (TNS) characteristics of the semiconductor circuit may be improved.
[0037] The input / output device 130 controls user input and user output from the user interface device. For example, the input / output device 130 may receive a netlist file, etc., and may include a keyboard or a monitor (not shown). For example, the input / output device 130 may display a directed graph or clustering result generated by the clustering application 121, and / or a placement and routing result generated by the design tool 122.
[0038] The storage device 140 is provided as a storage medium of the system 100. The storage device 140 may store application programs, operating system images, and various data. The storage device 140 may be provided as a memory card and / or a hard disk drive (HDD) such as MMC, eMMC, SD, MicroSD, etc. The storage device 140 may include a NAND-type flash memory having a large storage capacity. Alternatively or additionally, the storage device 140 may include a next-generation non-volatile memory such as PRAM, MRAM, ReRAM, FRAM, or NOR flash memory.
[0039] The system interconnector 150 may be or may include a system bus for providing a network inside the system 100. The CPU 110, the working memory 120, the input / output device 130, and the storage device 140 may be electrically connected to each other and exchange data through the system interconnector 150. However, the configuration of the system interconnector 150 is not limited to the above description, and may further include other mechanisms for effective management.
[0040] Figure 2 is used to pass Figure 1 A flow chart of a method for systematically designing a semiconductor circuit. Figure 2 The operation can be done by Figure 1 For ease of description, reference will be made to the system 100 for designing a semiconductor circuit. Figure 1 The reference numerals are used to describe Figure 2 .
[0041] In operation S110, the system 100 may receive a netlist. For example, the system 100 may receive a netlist created by a user. The user may create a netlist and / or provide a previously created netlist to the system 100 through the input / output device 130. However, the inventive concept is not limited thereto. For example, a previously created netlist file may be stored in the storage device 140, and the stored netlist may be provided to the working memory 120 by the input / output device 130. The netlist may include instances and nets corresponding to units of a semiconductor circuit.
[0042] In operation S120, the system 100 may define clusters based on the netlist. The clusters may be defined by a clustering application 121 loaded into the working memory 120. Figure 1 As described, the clustering application 121 can generate a directed graph based on the input information and output information of each instance. The clustering application 121 can refer to the directed graph to classify instance pairs with strong relationships into candidate groups. The clustering application 121 can determine the instances to be included in the cluster by tracking the instance pairs classified into the candidate groups.
[0043] In operation S130, the system 100 may place cells based on the clusters defined in operation S120. The placement of the cells may be performed by a design tool 122 loaded in the working memory 120. The design tool 122 may place the cells automatically or at least partially manually based on its design rules. An operator (e.g., a layout engineer) may manually place at least some of the cells. The design tool 122 performs an overall placement of the cells based on the netlist, but may take the clusters into account. The design tool 122 may place the cells included in the clusters adjacent to or close to each other. The design tool 122 may set the boundaries of the clusters and / or set the original coordinates to guide the adjacent placement of the cells in the clusters.
[0044] In operation S140, the system 100 may perform routing for the placed cells. The routing may be performed by the design tool 122 loaded in the working memory 120. The design tool 122 may connect the placed cells to each other based on the netlist. Additionally or alternatively, the design tool 122 may form a pin pattern in the cell based on heating information generated as a result of the routing.
[0045] Although not shown, after operation S140, verification of the design layout may be performed. For example, a design rule check (DRC) to verify that the layout is correct for the design rules, an electronic rule check (ERC) to verify that the internal electronic circuits are correctly connected, and / or an LVS (layout vs schematic) to check that the layout matches the gate-level netlist may be performed.
[0046] Figure 3 It is a manifestation Figure 2 A non-limiting example flowchart of operation S120 of FIG. Figure 3 It shows that it can be Figure 1 The system 100 performs operations to define clusters based on a netlist. For ease of description, reference will be made to Figure 1 The reference numerals are used to describe Figure 3 .
[0047] In operation S121, the clustering application 121 generates a directed graph. The clustering application 121 can determine the directionality of the net based on the input terminals and output terminals of the instances included in the netlist. In the directed graph, each net in the net connects two different instances. A net is connected between the output terminal of the first instance and the input terminal of the second instance.
[0048] In operation S122, the clustering application 121 can extract instances with strong relationships from the directed graph. As described above, when the output terminal of the first instance is connected only to the input terminal of the second instance through a net and is not connected to the input terminals of other instances, it can be determined that the first instance and the second instance have a strong relationship. That is, when the out-degree of the first instance is one, and the output terminal of the first instance is connected to the input terminal of the second instance, it can be determined that the first instance and the second instance have a strong relationship. On the contrary, when the output terminal of the first instance is connected to the input terminals of multiple instances through multiple nets, the first instance and the second instance do not have a strong relationship. That is, when the out-degree of the first instance is greater than one, and the output terminal of the first instance is connected to multiple other instances, it can be determined that the first instance and the multiple other instances do not have a strong relationship.
[0049] For example, the clustering application 121 may classify instance pairs (e.g., first instances and second instances) having a strong relationship as candidate group pairs. Instances included in the candidate group pairs have the potential to be included in clusters created later. For example, the clustering application 121 may classify networks used to connect instance pairs having a strong relationship as candidate group networks. Instances connected to the candidate group networks have the potential to be included in clusters created later.
[0050] In operation S123, the clustering application 121 tracks candidate pairs or candidate networks with strong relationships. The clustering application 121 may search for duplicate instances in instance pairs classified as candidate pairs with reference to the directed graph. For example, when the first instance pair includes the first instance and the second instance, and the second instance pair includes the second instance and the third instance, the second instance may be a duplicate instance. The clustering application 121 may track whether other instances connected to the first to third instances are classified as candidate pairs corresponding to any one of the first to third instances. As a result of the tracking, the instances included in the cluster may be determined.
[0051] In operation S124, the clustering application 121 may generate at least one cluster based on the tracking results of the candidate group pair or the candidate networking. The clustering application 121 may include the instances included in the candidate group pair and / or the instances connected to the candidate networking in a cluster. For example, when the output terminal of the first instance and the input terminal of the second instance are connected and classified into a candidate group pair, the first instance and the second instance may be included in a cluster together. However, when the input terminal of the second instance is connected to the output terminal of the third instance, and the second instance and the third instance are not classified as a candidate group pair, the first instance and the second instance may not be included in a cluster, although the first instance and the second instance are classified as a candidate group pair. A detailed description thereof will be described later.
[0052] Figure 4 and Figure 5Is used to describe Figures 1 to 3 A directed graph for clustering described in and a diagram for describing classifications of candidate groups with strong relationships. Figure 4 and Figure 5 will be understood as an example directed graph generated based on the instance of the netlist and net. Figure 4 and Figure 5 The circular cells C1, C2, and C3 correspond to instances in the netlist, respectively, and the paths S1 and S2 correspond to nets in the netlist, respectively. For ease of explanation, it is assumed that there are no connection relationships other than those shown.
[0053] Reference Figure 4 , the first cell C1 is connected to the third cell C3 through the first path S1. The second cell C2 is connected to the third cell C3 through the second path S2. The first path S1 has a directionality from the first cell C1 to the third cell C3. The second path S2 has a directionality from the second cell C2 to the third cell C3. The connection relationship can be provided from the netlist. The system 100 can determine the directionality of the first net and the second net based on the input information or output information of the instance.
[0054] In an example embodiment, output information (output terminal, output pin, output port, etc.) of a first instance in a netlist may indicate a first net and / or a third instance. In an example embodiment, output information of a second instance in a netlist may indicate a second net and / or a third instance. In an example embodiment, input information of a third instance in a netlist may indicate a first net and a second net and / or a first instance and a second instance. Therefore, system 100 may refer to a netlist to generate a Figure 4 The directed graph shown in .
[0055] like Figure 4 As shown, the number of signal transmission paths output from the first cell C1 or the second cell C2 is one; that is, the out-degree of the first cell C1 is one, and the out-degree of the second cell C2 is one. When the first cell C1 and / or the second cell C2 are placed adjacent to the third cell C3, the routing length can be reduced, and the influence of signal delay, etc. can be reduced. Figure 4 In the directed graph of , the signal transmission paths are not branched but aggregated into one. Therefore, the possibility of changing the placement of cells based on other factors (for example, considering the timing criticality of various paths) can be reduced.
[0056] As a result, it can be determined that the first unit C1 and the third unit C3 have a strong relationship. The instance pair including the first instance and the third instance can be classified as a candidate group pair for clustering. Similarly, the second unit C2 and the third unit C3 can be determined as units with a strong relationship. The instance pair including the second instance and the third instance can be classified as a candidate group pair for clustering. In addition, the first instance to the third instance can be included in one cluster.
[0057] Reference Figure 5 , the first cell C1 is connected to the second cell C2 through the first path S1. The first cell C1 is connected to the third cell C3 through the second path S2. The first path S1 has a directionality from the first cell C1 to the second cell C2. The second path S2 has a directionality from the first cell C1 to the third cell C3. In an example embodiment, the output information of the first instance may indicate the first network and the second network and / or the second instance and the third instance. In an example embodiment, the input information of the second instance may indicate the first network and / or the first instance. In an example embodiment, the input information of the third instance may indicate the second network and / or the first instance.
[0058] A plurality of signal transmission paths are provided from the output terminal of the first unit C1. That is, the out-degree of the first unit C1 is greater than one. In the above case, it can be determined which unit of the second unit C2 and the third unit C3 should be placed adjacent to the first unit C1 based on the timing criticality corresponding to the first path S1 and / or the timing criticality corresponding to the second path S2. For example, when the time corresponding to the first path S1 is more critical than the time corresponding to the second path S2, the second unit C2, rather than the third unit C3, can be placed closer to the first unit C1. The timing criticality can be calculated not only by considering the second unit C2 and the third unit C3, but also by considering other units and their connections connected to the output terminal of the second unit C2 or the output terminal of the third unit C3.
[0059] As a result, it can be determined that the first unit C1 and the second unit C2 do not have a strong relationship. The instance pair including the first instance and the second instance may not be classified as a candidate group pair for clustering. As described above, it can be determined that the first unit C1 and the third unit C3 do not have a strong relationship. The instance pair including the first instance and the third instance may not be classified as a candidate group pair for clustering. In addition, the first instance to the third instance may not be included in a cluster.
[0060] Figure 6 Is used to describe Figure 3 FIG. 1 is a diagram of operation S121 of FIG. Figure 6 is a non-limiting example directed graph generated based on a netlist. Figure 6The directed graph shown in is acyclic, but the inventive concept is not limited thereto, and the directed graph may include cycles. Figures 7 to 9 Description based on Figure 6 The directed graph shown in FIG generates clustering operations. The first unit C1 to the twelfth unit C12 and the first path S1 to the twelfth path S12 have the following structure: Figure 6 As described above, the network table can be generated based on the input information and output information of the instances included in the network table. Figure 6 The connection relationship of each of the cells C1 to C12 can be defined in an instance of a netlist.
[0061] Hereinafter, for ease of description, it will be understood that the first to twelfth cells C1 to C12 correspond to the first to twelfth instances, respectively, and the first to twelfth paths S1 to S12 correspond to the first to twelfth nets, respectively. The first to twelfth cells C1 to C12 may also be described as vertices of a directed graph, and the first to twelfth paths S1 to S12 may also be described as edges of the directed graph.
[0062] Figure 7 Is used to describe Figure 3 FIG. 1 is a diagram of operation S122 of FIG. Figure 7 is used to describe strong relationships (i.e., Figure 6 When the output terminal of one instance is connected to only the input terminal of another instance through a network, Figure 1 The clustering application 121 may determine corresponding instance pairs as candidate group pairs or candidate network groups. Figure 7 The dashed lines shown in are used to emphasize strong relationships. That is, Figure 7 The dashed lines shown in correspond to cells that are in strong ties.
[0063] Results, refer to Figure 7 , the units connected by the first path S1, the second path S2, the sixth path S6, the seventh path S7, the eighth path S8, the ninth path S9 and the twelfth path S12 have a strong relationship. That is, the first network, the second network, the sixth network, the seventh network, the eighth network, the ninth network, and the twelfth network can be classified as candidate networks. For example, {C1, C4}, {C2, C4}, {C4, C5}, {C5, C8}, {C6, C9}, {C7, C9}, {C9, C12} can be classified as candidate pairs. That is, according to Figure 7 The ordered pairs of cells or vertices (C1, C4), (C2, C4), (C4, C5), (C5, C8), (C6, C9), (C7, C9), (C9, C12) of the illustrative, non-limiting example embodiment may correspond to candidate networking.
[0064] Since the output terminal of the third cell C3 is connected to the fifth cell C5, the sixth cell C6 and the seventh cell C7, the third cell C3 is determined to have no strong relationship with the fifth cell C5, the sixth cell C6 and the seventh cell C7. That is, the out-degree of the third cell is greater than one, and it is determined that there is no strong relationship with the fifth cell C5, the sixth cell C6 and the seventh cell C7. In addition, since the output terminal of the eighth cell C8 is connected to the tenth cell C10 and the eleventh cell C11, the eighth cell C8 is determined to have no strong relationship with the tenth cell C10 and the eleventh cell C11. That is, the out-degree of the eighth cell C8 is greater than one, and it is determined that there is no strong relationship with the tenth cell C10 and the eleventh cell C11.
[0065] Figure 8 Is used to describe Figure 3 FIG. 1 is a diagram of operation S123 of FIG. Figure 8 is used to describe the Figure 6 In the directed graph of Figure 7 FIG. 1 is a diagram of a process of determining instances to be included in a cluster from candidate group pairs (or candidate groups) extracted from the cluster. Figure 1 The clustering application 121 may determine clusters by tracing candidate pairs in the opposite direction of the signal transmission direction of the directed graph. That is, the tracing may start from the tenth cell C10, the eleventh cell C11, and the twelfth cell C12 corresponding to the end instance.
[0066] Since the twelfth cell C12 has a strong relationship with the ninth cell C9, the twelfth instance and the ninth instance are included in the first cluster. The twelfth cell C12 can be recorded at the 0th level of the first cluster, and the ninth cell C9 can be recorded at the 1st level of the first cluster. Next, the ninth cell C9 has a strong relationship with the sixth cell C6 and the seventh cell C7. Since all cells connected to the input terminal of the ninth cell C9 have a strong relationship with the ninth cell C9, the sixth instance and the seventh instance are included in the first cluster. The sixth cell C6 and the seventh cell C7 can be recorded at the 2nd level of the first cluster.
[0067] The sixth cell C6 does not have a strong relationship with the third cell C3. The seventh cell C7 does not have a strong relationship with the third cell C3. Therefore, the third cell C3 is not included in the first cluster. As a result, the instance included in the first cluster is determined, and no more cells are recorded in the first cluster.
[0068] Since the tenth cell C10 and the eleventh cell C11 do not have a strong relationship with the eighth cell C8, they are not included in the cluster. The eighth cell C8 has a strong relationship with the fifth cell C5. Therefore, the eighth instance and the fifth instance are included in the second cluster. The eighth cell C8 is recorded at level 0 of the second cluster, and the fifth cell C5 is recorded at level 1 of the second cluster.
[0069] The fifth cell C5 has a strong relationship with the fourth cell C4. However, the fifth cell C5 does not have a strong relationship with the third cell C3. Since all cells connected to the input terminal of the fifth cell C5 do not have a strong relationship, the fourth instance and the third instance are not included in the second cluster. As a result, the instance included in the second cluster is determined, and no more cells are recorded in the second cluster.
[0070] The fourth cell C4 has a strong relationship with the first cell C1 and the second cell C2. Since all cells connected to the input terminal of the fourth cell C4 have a strong relationship with the fourth cell C4, the fourth instance, the first instance, and the second instance are included in the third cluster. The fourth cell C4 may be recorded at level 0 of the third cluster. The first cell C1 and the second cell C2 may be recorded at level 1 of the third cluster.
[0071] For example, in operation S123, Figure 1 The clustering application 121 tracks cells with strong relationships in the opposite direction of the directed graph, and includes cells in the cluster when the cells (instances) have strong relationships. In addition, when all cells connected to the input terminals of a specific cell in the cluster have strong relationships, all cells (instances) may be included in the cluster together with the specific cell. When at least one cell connected to the input terminal of the specific cell does not have a strong relationship, all cells connected to the input terminal of the specific cell may not be included in the cluster.
[0072] Fig. 9 Is used to describe Figure 3 A non-limiting example diagram of operation S124. Fig. 9 is shown as Figure 8 A diagram of the clusters generated from the tracking results. Fig. 9 , showing the first to third clusters CL1, CL2 and CL3 based on the directed graph. The first to third clusters CL1, CL2 and CL3 correspond to Figure 8 The first cluster to the third cluster.
[0073] The first cluster CL1 includes a sixth cell C6, a seventh cell C7, a ninth cell C9, and a twelfth cell C12. When placing the cells, the sixth cell C6, the seventh cell C7, the ninth cell C9, and the twelfth cell C12 may be placed adjacent to each other, or may be placed close to each other. The second cluster CL2 includes a fifth cell C5 and an eighth cell C8. When placing the cells, the fifth cell C5 and the eighth cell C8 may be placed adjacent to each other, or may be placed close to each other. The third cluster CL3 includes a first cell C1, a second cell C2, and a fourth cell C4. When placing the cells, the first cell C1, the second cell C2, and the fourth cell C4 may be placed adjacent to each other, or may be placed close to each other.
[0074] Can be based on Figure 1 The third cell C3, the tenth cell C10, and the eleventh cell C11, which are not included in the first to third clusters CL1 to CL3, are freely placed according to the design rules of the design tool 122. In example embodiments, the third cell C3 may be placed at a position determined based on the timing criticality of the signal transmission path including the third path S3 and / or the timing criticality of the signal transmission path including the fourth path S4 (or the fifth path S5).
[0075] Fig.10 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of. Fig.10 is a non-limiting diagram for describing an example process for creating and / or developing new units based on instances or units included in a cluster. For example, the process may be Figure 1 is executed in the system 100 and can be Figure 1 The design tool 122 is executed.
[0076] Reference Fig.10 , showing the first cell C1 to the third cell C3 and the first path S1 to the seventh path S7. It is assumed that the first cell C1 to the third cell C3 are included in one cluster. The input terminal of the first cell C1 is connected to the first path S1 and the second path S2, and the output terminal of the first cell C1 is connected to the fifth path S5. The input terminal of the second cell C2 is connected to the third path S3 and the fourth path S4, and the output terminal of the second cell C2 is connected to the sixth path S6. The input terminal of the third cell C3 is connected to the fifth path S5 and the sixth path S6, and the output terminal of the third cell C3 is connected to the seventh path S7. That is, the out-degree of the cell C1, the cell C2, and the cell C3 is each one, and the in-degree of each of the cell C1, the cell C2, and the cell C3 is two.
[0077] The first unit C1 to the third unit C3 convert the input signals based on the first conversion function f1 to the third conversion function f3, respectively. When the first signal AA is input to the first path S1, the second signal BB is input to the second path S2, the third signal CC is input to the third path S3, and the fourth signal DD is input to the fourth path S4, the fifth signal ZZ can be output to the seventh path S7. This can be expressed as an equation ZZ=f3(f1(AA, BB), f2(CC, DD)).
[0078] Figure 1 The system 100 may convert each instance (or unit) included in the cluster into one instance (or unit). This conversion may be performed automatically or manually in the system 100. For example, the conversion of the cluster may be performed based on a frequency at which the same cluster as the first unit C1 to the third unit C3 is generated. Fig.10 , the first cell C1 to the third cell C3 can be converted into a fourth cell C4, and when receiving the first signal to the fourth signal AA, BB, CC and DD through four input paths Sa, Sb, Sc and Sd, the fourth cell C4 outputs the fifth signal ZZ through one output path Se. The fourth cell C4 is or corresponds to a single cell satisfying ZZ=f4(AA, BB, CC, DD) and can be defined in the cell library.
[0079] According to the definition of the cluster, a new cell required or used in the semiconductor circuit can be easily developed. Alternatively or additionally, the design tool 122 can place the fourth cell C4 having a set area and an internal placement relationship in an optimized or improved position. In the case of defining the fourth cell C4, the area, routing length, maximum frequency characteristics or large frequency characteristics, total negative relaxation (TNS) characteristics, etc. of the semiconductor circuit can be improved compared to the case where the first cell C1 to the third cell C3 are freely placed without placing the first cell C1 to the third cell C3 adjacent to or close to each other.
[0080] Fig.11 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of. Fig.11 is a diagram for describing an example process of determining relative positions between units included in a cluster. For example, the process may be performed in Figure 1 is executed in the system 100 and can be Figure 1 The design tool 122 is executed.
[0081] Reference Fig.11, showing the first cell C1 to the seventh cell C7 and the first path S1 to the sixth path S6. The directed graph 1105 shows the relationship between the cells C1 to the cells C7 and the path S1 to the path S6, while the layout 1110 shows the two-dimensional position of the first cell C1 to the seventh cell C7. It is assumed that the first cell C1 to the seventh cell C7 are included in a cluster. The first cell C1 and the second cell C2 are connected to the fifth cell C5 through the first path S1 and the second path S2, respectively. The third cell C3 and the fourth cell C4 are connected to the sixth cell C6 through the third path S3 and the fourth path S4, respectively. The fifth cell C5 and the sixth cell C6 are connected to the seventh cell C7 through the fifth path S5 and the sixth path S6, respectively. That is, the in-degree of each of the fifth cell C5, the sixth cell C6 and the seventh cell C7 can be two, while the out-degree of each of the first cell C1 to the sixth cell C6 can be one.
[0082] The two cells connected by each of the first path S1 to the sixth path S6 are determined to have a strong relationship in the clustering process. Therefore, it is necessary or desirable that the two cells connected by each of the first path S1 to the sixth path S6 are arranged adjacent to each other. Therefore, the design tool 122 can determine the relative placement between the cells in the cluster by considering the positions of the terminals of each of the first path S1 to the sixth path S6 (or the first net to the sixth net) and the first cell C1 to the seventh cell C7. For example, reviewing the layout 1110, the first cell C1 and the second cell C2 are placed adjacent to the fifth cell C5 in the horizontal direction, the third cell C3 and the fourth cell C4 are placed adjacent to the sixth cell C6 in the horizontal direction, and the seventh cell C7 can be placed between the fifth cell C5 and the sixth cell C6.
[0083] According to the definition of the cluster, the placement of cells having a strong relationship in the semiconductor circuit can be optimized or improved. In the case where the relative positions of the first cell C1 to the seventh cell C7 are predetermined (or, alternatively, specified) based on the cluster, the area, routing length, maximum frequency characteristics, total negative relaxation (TNS) characteristics, etc. of the semiconductor circuit can be improved compared to the case where the first cell C1 to the seventh cell C7 are freely placed. Therefore, as shown in the layout 1110 of the first cell C1 to the seventh cell C7, the performance characteristics can be improved.
[0084] Fig.12 is shown in the design of semiconductor circuits used Figures 1 to 3 An illustration of an example embodiment of a cluster of. Fig.12 is a diagram for describing an example process of directing adjacent placement between cells included in a cluster. Fig.12 The processing does not determine the relative positions of the units included in the cluster and ensures that Figure 1The design tool 122 allows for free placement of cells, but may impose constraints on the placement of cells. For example, this process may be performed Figure 1 is executed in the system 100 and can be Figure 1 The design tool 122 is executed.
[0085] Reference Fig.12 , the first cell C1 to the third cell C3 and the first path S1 and the second path S2 are shown as non-limiting examples in the directed graph 1210. Assume that the first cell C1 to the third cell C3 are included in one cluster. The first cell C1 and the second cell C2 are connected to the third cell C3 through the first path S1 and the second path S2, respectively. In the clustering process, it is determined that the first cell C1 and the third cell C3 have a strong relationship, and the second cell C2 and the third cell C3 have a strong relationship. Therefore, it is necessary or desirable that the first cell C1 and the second cell C2 are placed adjacent to the third cell C3.
[0086] In an example embodiment, as shown in layout 1250, Figure 1 The design tool 122 can set the boundary GB of the cluster. The first cell C1 to the third cell C3 can be specified to be placed within the set boundary GB. The boundary GB can guide the first cell C1 to the third cell C3 to be placed adjacent to each other. Therefore, when the first cell C1 to the third cell C3 are placed within the set boundary GB, the area, routing length and characteristics of the semiconductor circuit can be improved compared to the case where the first cell C1 to the third cell C3 are freely placed.
[0087] For example, Figure 1 The design tool 122 can set an origin OP corresponding to the cluster in the layout 1255. The first cell C1 to the third cell C3 can move together with the movement of the origin OP. Therefore, when a specific cell needs to be moved to another position, other cells in the cluster can also move together. The origin OP can guide the cells in the cluster to be placed adjacent to each other. Therefore, in the case where the first cell C1 to the third cell C3 move together with the movement of the origin OP, the area, routing length and characteristics of the semiconductor circuit can be improved compared to the case where the first cell C1 to the third cell C3 are freely placed.
[0088] Fig.13 is to show the selective use of Figures 1 to 3 Flowchart of an example embodiment of clustering. Because clustering restricts the placement of cells in a semiconductor circuit design, the run time of design tool 122 for cell placement may be relatively long, and / or the pin pattern may be concentrated in a specific area that does not comply with the design rules. In the above case, clusters may be automatically removed. For example, Fig.13 Each operation can be Figure 1 is executed in the system 100 and can be Figure 1 The design tool 122 or the clustering application 121 is executed.
[0089] In operation S210, the system 100 determines whether the defined cluster is a valid cluster. When the defined cluster satisfies a specific condition, the system 100 determines that the defined cluster is a valid cluster. In this case, operation S220 is performed. When the defined cluster does not satisfy the specific condition, the system 100 determines that the defined cluster is not a valid cluster. In this case, operation S230 is performed. Examples of specific conditions will be described below.
[0090] In an example embodiment, the specific condition may be a pin density. The system 100 may calculate the area of the cluster. The area of the cluster depends on the area of the cells in the cluster and the area for the connection between the cells. The system 100 may calculate the density of the pin pattern for the connection between the cells based on the area of the cluster. When the calculated density exceeds a reference value, the system 100 may determine that the pin pattern is overly concentrated in a specific area, and may determine that the defined cluster is not a valid cluster.
[0091] In an example embodiment, the specific condition may be the depth of the directed graph. The system 100 may define a starting point (starting instance, starting unit) and an ending point (ending instance, ending unit) within a cluster. The starting point may be defined as at least one unit in the cluster where a signal transmission path begins. The ending point may be defined as at least one unit in the cluster where a signal transmission path terminates. When the maximum depth or the large depth of the graph exceeds a reference value, the system 100 may determine that the cluster is too large, wherein the maximum depth or the large depth of the graph depends on the number of units passing through the signal transmission path. In this case, the system 100 may determine that the cluster is not a valid cluster.
[0092] In an example embodiment, the specific condition may be the total area of the cells. When the total area of all cells corresponding to the cluster exceeds the reference area, the system 100 may determine that the cluster is too large. In this case, the system 100 may determine that the cluster is not a valid cluster.
[0093] The system 100 may determine at least one of the above conditions to determine the validity of the cluster. Alternatively or additionally, when the cluster does not satisfy at least one of the above conditions, the system 100 may determine that the cluster is not a valid cluster. Alternatively or additionally, when the cluster does not satisfy all of the above conditions, the system 100 may determine that the cluster is not a valid cluster. In addition, the validity of the cluster may be determined based on various conditions.
[0094] In operation S220, the system 100 may place cells based on the active clusters. The placement of these cells may be as follows: Figure 2The process is performed as described in operation S130.
[0095] In operation S230, the system 100 may remove the cluster determined to be invalid. Therefore, performance degradation such as violation of design operation time and / or design rules may be improved.
[0096] Fig.14 is an example flow chart for fabricating a semiconductor device according to some non-limiting example embodiments.
[0097] Reference Fig.14 In step S310, based on the reference Figures 1 to 13 A system is described for generating a layout of a semiconductor device.
[0098] In step S320 , a plurality of photomasks may be generated (eg, written) based on the layout generated in step S310 .
[0099] In step S330 , a semiconductor device may be manufactured using the photomask generated in step S320 .
[0100] According to a system for designing a semiconductor circuit and an operating method thereof according to example embodiments of the inventive concepts, adjacent placement of cells having a strong relationship may be guided by creating clusters in consideration of connection relationships between cells.
[0101] In addition, according to the system for designing a semiconductor circuit and the operating method thereof according to the example embodiments of the inventive concept, the placement of cells can be automatically optimized or improved so that the area and wiring length of the semiconductor circuit can be reduced and the performance can be improved.
[0102] The above contents are specific embodiments for realizing the inventive concept. The inventive concept may include not only the above embodiments, but also embodiments of designs that can be simply or easily changed. In addition, the inventive concept may also include technologies that are easily changed to be realized using the embodiments.
Claims
1. A system for designing a semiconductor circuit, the system comprising: a working memory configured to load machine-readable instructions for generating clusters based on instances respectively corresponding to cells of the semiconductor circuit and for placing the cells; as well as a central processing unit configured to execute the machine readable instructions for clustering and placing, the machine readable instructions, when executed by the central processing unit, causing the system to: In response to an output terminal of a first instance being connected to a second instance and the number of instances connected to the output terminal of the first instance being one, classifying the first instance and the second instance into a candidate group pair, and In response to all instances connected to input terminals of the second instance being classified into the candidate pair together with the second instance, a cluster including the first instance and the second instance is generated and provided to a design tool.
2. The system according to claim 1, wherein: In response to an output terminal of a third instance being connected to the second instance and the number of instances connected to the output terminal of the third instance being one, the system classifies the third instance and the second instance into the candidate group pair and generates a cluster also including the third instance.
3. The system according to claim 1, wherein: In response to all instances connected to the input terminals of the first instance being classified into the candidate group pairs, the system generates a cluster that also includes a third instance connected to the input terminals of the first instance.
4. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to generate a directed graph proceeding from at least one output terminal of the instance to at least one input terminal of the instance, and classifies the candidate group pairs based on the directed graph.
5. The system according to claim 4, wherein: The central processing unit executes machine-readable instructions to track the candidate pairs in a direction proceeding from the at least one input terminal to the at least one output terminal to determine the cluster.
6. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to place a first cell corresponding to the first instance and a second cell corresponding to the second instance adjacent to each other.
7. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to convert the cluster into an instance.
8. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to determine a relative position between a first cell corresponding to the first instance and a second cell corresponding to the second instance based on the cluster.
9. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to determine a bounding box for the cluster and to place the cells corresponding to the cluster within the bounding box.
10. The system according to claim 1, wherein: The central processing unit executes machine-readable instructions to determine an origin corresponding to the cluster and to move the cells corresponding to the cluster based on movement of the origin.
11. A method of operating a system for designing a semiconductor circuit, the method comprising: receiving a netlist including instances respectively corresponding to cells of the semiconductor circuit; responsive to the number of first instances connected to the output terminal of the second instance being one, classifying the first instance and the second instance into a candidate group pair; determining whether at least one instance connected to an input terminal of the first instance is classified into the candidate group pair together with the first instance; as well as A target instance to be included in the cluster is determined based on the determination result of the at least one instance.
12. The method according to claim 11, wherein: Target instances that are determined to be included in the cluster include: In response to the number of the at least one instance being one and the at least one instance being the second instance, the first instance and the second instance are determined as the target instances.
13. The method according to claim 11, wherein: Target instances that are determined to be included in the cluster include: In response to the at least one instance including the second instance and a third instance and the third instance and the first instance are not classified as the candidate pair, excluding the second instance from the target instance.
14. The method according to claim 11, wherein: Target instances that are determined to be included in the cluster include: In response to all instances connected to the input terminals of the first instance being classified into the candidate group pair together with the first instance, all instances connected to the input terminals of the first instance and the first instance are determined as the target instances.
15. The method according to claim 11, further comprising: calculating an area of the cluster based on an area of a target cell corresponding to an instance determined to be the target instance; calculating a density of a pin pattern for connecting the target cell based on an area of the cluster; and When the density exceeds a reference density, the cluster is removed.
16. The method according to claim 11, further comprising: defining a starting instance in the cluster whose input terminals are not connected to the target instance; defining an end instance in the cluster whose output terminal is not connected to the target instance; as well as When the maximum depth between the start instance and the end instance exceeds a reference depth, the cluster is removed.
17. The method according to claim 11, further comprising: When the total area of cells corresponding to the cluster exceeds a reference area, the cluster is removed.
18. The method according to claim 11, further comprising: generating a directed graph from at least one output terminal of the instance to at least one input terminal of the instance based on the netlist, The instances classified into the candidate group pairs are determined with reference to the directed graph.
19. The method according to claim 11, further comprising: A semiconductor device is manufactured based on the determination result of the at least one instance.
20. A method of operating a system for designing a semiconductor circuit, the method comprising: receiving a netlist including instances respectively corresponding to cells of the semiconductor circuit and nets connecting the instances; generating a directed graph such that each of the nets is connected between two instances and has a directionality corresponding to a signal transmission direction of the instances; In response to the number of nets connected to the output terminal of a first instance among the instances being one, classifying the one net into a candidate group of nets; In response to all nets connected to the input terminals of the second instance being classified as the candidate group net, generating a cluster including the first instance and the second instance connected to the one net; as well as Based on the clustering, a first cell corresponding to the first instance and a second cell corresponding to the second instance are placed adjacent to each other.
Citation Information
Patent Citations
Method for managing vehicle information of autonomous vehicle
KR1020190084231A
Method of generating layout of integrated circuit comprising standard cell and memory instance
CN103778273A
System and method of designing integrated circuit by considering local layout effect
CN107665268A