The present disclosure relates generally to semiconductor devices and methods, and, in particular embodiments, to a method for automated standard cell design.
Integrated circuits may include one or more types of transistors. Planar transistors are a very common transistor technology. Planar transistors are manufactured using a conventional planar (layer by layer) manufacturing process and in which the transistor junctions reach the semiconductor surface in one plane. For example,
Non-planar transistors, also referred to as three-dimensional (3D) transistors, are transistors in which the transistor junctions reach the semiconductor surface in different planes, such as a raised source-to-drain channel, e.g., as exemplified by a Tri-Gate transistor, or a raised channel (called fin) from source to drain, e.g., as exemplified by a fin field-effect-transistor (FET) (FinFET). A FinFET has the gate placed on two, three, or four sides of the channel, or wrapped around the channel, forming a double gate structure.
Another example of non-planar transistor is the nanosheet (NS) transistor (also known as lateral gate all around (LGAA) transistor.
Complementary FET (CFET) is another type of non-planar, 3D transistor in which, e.g., two FETs (e.g., an nFET and a pFET) are stacked vertically, with a vertical common gate that form horizontal channels. For example,
In accordance with an embodiment, a method includes: receiving data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources; determining a minimum number of segments based on the received data; grouping the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments; and generating discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
In accordance with an embodiment, a computing device for generating standard cell layouts for a standard cell library includes: a processor; and a non-transitory computer-readable storage medium coupled to the processor and storing a program executable by the processor, the program including instructions to: receive data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources, determine a minimum number of segments based on the received data, group the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments, and generate discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
In accordance with an embodiment, a method includes: receiving data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources, where the electrical circuit includes a plurality of nodes, and where the devices include a plurality of n-type field effect transistors (nFETs) and a plurality of p-type field effect transistors (pFETs); identifying pFETs and nFETs of the electrical circuit from the received data; identifying different nodes of the plurality of nodes based on the received data; assigning a terminal count to each of the identified nodes based on the received data to form a plurality of terminal counts, where each terminal count is indicative of a number of terminals of the devices coupled to a respective node of the identified nodes; determining a minimum number of segments based on a number of terminal counts of the plurality of terminal counts having an odd count; and grouping the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments; and generating discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Corresponding numerals and symbols in different figures generally refer to corresponding parts unless otherwise indicated. The figures are drawn to clearly illustrate the relevant aspects of the preferred embodiments and are not necessarily drawn to scale.
The making and using of the embodiments disclosed are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
The description below illustrates the various specific details to provide an in-depth understanding of several example embodiments according to the description. The embodiments may be obtained without one or more of the specific details, or with other methods, components, materials and the like. In other cases, known structures, materials or operations are not shown or described in detail so as not to obscure the different aspects of the embodiments. References to “an embodiment” in this description indicate that a particular configuration, structure or feature described in relation to the embodiment is included in at least one embodiment. Consequently, phrases such as “in one embodiment” that may appear at different points of the present description do not necessarily refer exactly to the same embodiment. Furthermore, specific formations, structures or features may be combined in any appropriate manner in one or more embodiments.
Embodiments of the present invention will be described in a specific context, a method for generating standard logic cell design in a FinFET device, CFET device, or 3D CFET device. Embodiments of the present invention may be used in other types of transistor technologies, such as other types of 3D transistors, such as VFETs and TriGate transistors, for example.
In an embodiment of the present invention, an electrical circuit design is automatically converted to a corresponding physical layout based on the circuit netlist. In some embodiments, the placement and routing of a standard cell is automatically generated and optimized based on the netlist corresponding to the standard cell before translation to physical layout. After automatically placing and routing devices (e.g., transistors) in accordance with the netlist of the standard cell in an optimized manner, the physical layout of the standard cell is generated.
Developing a new semiconductor technology node, such as 10 nm node (N10), 7 nm node (N7), or 5 nm node (N5), involves generating models and cell libraries so that circuits and devices can be designed with the new nodes. For example,
During step 602, the semiconductor technology node is defined. For example, during step 602, the types of basic standard cells and bit cells to be implemented for the technology node are selected, and connectivity (e.g., track plan, wire stacks, and power delivery networks) and design rules, contour and arc routing are identified.
During step 604 a process design kit (PDK) is manually generated for the semiconductor node. A PDK is a set of libraries and associated data, such as model files, physical varication rule files, etc., that allows for designing circuits and devices using a particular semiconductor technology node. During step 604, for example, design rule manual (DRM) and design rule check (DRC) files are generated.
During step 606, the basic standard cells identified during step 602 are manually laid out to create standard cell library 608. The standard cell library is generally manually optimized during step 606 to, e.g., so that the cells take the least amount of space and so that can be used by place and routing (PNR) tools during step 622.
During step 610, the performance of the standard cells is emulated in a testbench simulation environment. Emulating the standard cells during step 610 advantageously allows for testing the standard cells early in the semiconductor node development cycle.
During step 612, parasitic extraction of the standard cells is performed, and the PDK is updated during step 614 based on the result from the parasitic extraction. For example, during step 614, the PDK is updated with front-end-of-line (FEOL) and includes parasitic resistances and capacitances.
During step 616, netlists of the standard cells that incorporate the results from the parasitic extraction is generated.
During step 618, technology computer-aided design (TCAD) is used to generate Spice models. During step 620, the Spice models generated during step 618 are used together with the netlists generated during step 616 to characterize the standard cells, e.g., over process, voltages and temperature (PVT) variations.
During step 622, digital circuits defined by design netlists (e.g., written in Verilog or VHDL) are synthesized (placed in a layout) and routed based on connectivity information (from step 602) using the standard cells from standard cell library 608.
During step 624, power-performance-area (PPA) assessments are made for blocks designed using the design netlists received during step 622, e.g., for optimization purposes.
When developing a new semiconductor node using method 600, feedback loops may exist around various steps. For example, if after performing steps 604 and 606, there are a large number of DRC errors, the architecture of the library may have to be changed. Achieving acceptable placement density when building the standard cell library 608 may also be an iterative process. For example, the first version of the standard cell library may achieve a low placement density (e.g., 60%) before achieving a final, higher, placement density (e.g., 75%) after one or more iterations of step 606.
Design rules and process modification may also need to be made based on results from step 620, and additional changes may need to be made if PPA targets are not met during step 624. As a result, in some cases, performing method 600 may last months, such as six months or longer. Given the long lead times for some of the steps, some of the feedback loops are omitted, rendering the design of the standard cells effectively fixed after performed, which may result in less optimized solutions and may require restrictive design rules.
As semiconductor nodes progress to smaller and smaller size (e.g., from N7 to N5, to N3, and smaller), routing congestion may increase, which may increase the complexity of designing the standard cell library. The use of non-planar transistors as well as the use of 3D integration (using, e.g., transistor stacking, e.g., of any type) is also becoming increasingly likely as semiconductor nodes transition to smaller nodes. Performing layout and routing of stacked transistors and/or non-planar transistors may require consideration of multiple placements and routing options to achieve optimal layouts with, e.g., high placement density and/or ease of placement by automated routing tools. Thus, as semiconductor technology nodes become smaller, manually evaluating all layout options for optimizing the layout of standard cells, and manually designing the standard cells of the standard library may become too complex, too expensive and/or too time consuming to be effectively or practically performed. Thus, smaller devices by themselves may not guarantee better scaling, power, performance, and/or cost.
In an embodiment of the present invention, a standard cell library is automatically generated with optimized layout based on the technology definition. In some embodiments, by automatically generating the layout of standard cells, a new semiconductor technology node may be evaluated based on the generated standard cells in the context of place-and-route (instead of in isolation, before place and route) to determine, e.g., scaling, power, performance, and cost, in substantially less time (e.g., weeks versus months) compared to performing the layout of the standard cells manually. For example,
As shown in
For example, in some embodiments, the design rules in the PDK (step 604) are replaced with instructions (e.g., rules) for standard cell automatic generation (during step 702). In some embodiments, since the behavior of the instructions (e.g., programming instructions) for automatic generation of standard cells (in step 702) is much more predictable than a human designer performing manual cell layout during step 606, (e.g., substantially) fewer rules may be needed. Additionally, advanced technology nodes may be highly restricted. Thus, in some embodiments, it may be more efficient to instruct an automatic standard cell generation system (in step 702) to design layout of standard cells rather than instruct a human of, e.g., an extensive list of rules of what to avoid during the manual layout design (step 606) to comply with the restrictions of the advanced node.
Therefore, in some embodiments, the design rule checking deck (DRC) in the PDK can be eliminated since the standard cells may be generated correctly by construction. For example, in some embodiments, the automatic cell generation of standard cells may correctly and systematically generate layouts that are optimized and comply with the semiconductor node requirements. Thus, in some embodiments, eliminating manually laying out standard cells (step 606) and replacing such step with automatically laying out the standard cells during step 702 advantageously allows for optimized and correct layout of standard cells that comply with the requirements of the semiconductor node in a (e.g., substantially) shorter time frame.
In some embodiments, step 614 may be eliminated by running resistance and capacitance extraction directly in emulation (step 610). In some embodiments, performing such parasitic extraction during step 610 is advantageously enabled, e.g., by the consistency of the output generated during step 702. Even though in some embodiments performing parasitic extraction during step 610 may be more time consuming than running an abstracted extraction deck during step 614, performing parasitic extraction during step 610 may advantageously provide efficiency for early iterative optimization.
Standard cells (e.g., of standard libraries 608 and 708) are physical representations of standardized Boolean logic functions. An example of a standard cell is a half-adder, which is configured to add two binary numbers. Other examples of standard cells include, a NAND gate, a NOR gate, a D-flip-flop, an arithmetic logic unit (ALU), etc. In some embodiments, standard cell library may include more than 50 standard cells, such between 50 and 100 standard cells, such as 80 standard cells, for example.
In some embodiments, method 700 may be implemented in a computing device coupled to a memory for storing a program executable by the process, and where the program includes instructions for performing method 700. For example,
Display 756 is configured to display, e.g., layout drawings (e.g., generated during step 702). Display 756 may be a computer monitor and may be implemented in any way known in the art.
Memory 754 is configured to store a program including instructions to perform, e.g., method 700. Memory 754 is also configured to store, either temporarily or permanently, digital files of intermediate or final outputs generated during method 700, such as during step 702, such as, e.g., digital files including layout information of standard cell library 708. Memory 754 may be implemented, e.g., as a non-volatile memory, in any way known in the art.
Communication interface 758 is configured to transmit to, e.g., other computing devices and/or other storage mediums intermediate or final outputs generated during method 700, such as during step 702, such as, e.g., digital files including layout information of standard cell library 708.
In some embodiments, one or more steps of method 700 may be implemented in different computing devices.
As shown in
Method 900 may be understood as a method that includes device placement steps (steps 902, 904, 906, 908, 910, 912, 914, and 918), and device routing steps (steps 916 and 920). In some embodiments, the device placement steps may be performed automatically (e.g., as described in method 900) while the placement steps may be performed in a conventional manner. In some embodiments, the device routing steps may be performed automatically (e.g., as described in method 900) while the placement steps may be performed in a conventional manner.
During step 902, a netlist is received and transistor pairs having a first type of shared connection (e.g., gates connected together) are identified. In some embodiments, the first type of connection may be a free connection, in which the term free connection may be understood as a connection that can be made by placement and without a routing effort. In some embodiments, the first type of connection may be referred to as the most important free connection. In some embodiments, such as in planar transistors, FinFETs and TriGate transistors, the gates of complementary transistors are the first type of free connections, in which a single poly-gate switches both p-type and n-type transistors. In other embodiments, such as in architectures based on heterogeneous sequential 3D integration, the first type of free connection may be different than the gate (e.g., such as source/drain). Some embodiments may exhibit more than one free connection. For example, in stacked transistor architectures, a first type of free connection may refer to horizontal connectivity between transistors in the same stack layer, and a second type of free connection may refer to vertical connectivity between transistors in different layers of the stack.
During step 904, objects for each of the transistor pairs identified in step 902 are formed, where each object is identified by the inputs and outputs (e.g., the common gate input as well as the nFET and pFET inputs and outputs). In some embodiments, the objects are programming objects, such as object oriented data structures, matrices, or vectors, e.g., of tensors. In some embodiments, the objects formed during step 904 do not specify signal flow direction, and such signal flow may be reversed (e.g., between drains and sources) without changing functionality.
During step 906, the transistor-pair objects generated during step 904 are clustered based on common inputs/outputs of the transistor-pair objects. For example, after identifying inputs and outputs of each of the transistor-pair objects, when two transistor-pair objects share a common connection (e.g., transistor-pair objects are connected to the same node), then such two transistor-pair objects are clustered together. In some embodiments, the clustering is performed by associating transistor-pair objects, e.g., using pointers (e.g., stored in the transistor-pair objects) or database tables, e.g., stored in memory 754. In some embodiments, other programing techniques known in the art may be used.
During step 908, transistor-pair objects are flipped to align common input/output of transistor-pair objects to cluster such flipped transistor-pair objects when sharing a common input/output. In some embodiments, the flipping is performed, e.g., by data structure, vector, or matrix transformations. In some embodiments, other programing techniques known in the art may be used. In some embodiments, steps 906 and 908 may be performed together.
During step 910, merge transistor-pair objects and clusters of transistor-pair objects into larger clusters by overlapping common input/outputs. In some embodiments, the merging is performed by, e.g., associating inputs/outputs of the transistor-pair objects using, e.g., pointers or database tables. In some embodiments, other programing techniques known in the art may be used. In some standard cells, the entire logic function may be rendered in a single cluster during step 910. In some standard cells, more than one cluster may be used to render the entire logic function.
During step 912, unnecessary internal nodes (also referred to as closed internal nodes or completed nodes) are identified and eliminated. In some embodiments, the elimination of unnecessary internal nodes is performed by, e.g., removing references to nodes from a set of open nodes stored in memory 754. Nodes that need further connectivity (e.g., nodes that should be connected to another node, but are not connected as clustered during step 910) are identified.
During step 914, the clusters are arranged according to a technology-specific wire track plan in a cluster map, e.g., so that it resembles a final physical layout rendering. In some embodiments, the track plan includes wiring rules (e.g., minimum metal length, connection restrictions, etc.) as well as number of tracks. For example, in some embodiments, the technology-specific wire track plan may require a single row, and, thus, the clusters are arranged in a single row in such technologies. Other technologies may allow for a plurality of rows, such as 2, 4, or more (which may be referred to as multi-row height cells). In some embodiments, the clusters extend beyond a single column, such as 20 columns or more. In some embodiments, the cluster map generation comprises the generation of a digital file that includes location information of the components identified in the netlist with respect to the track plan, such as the location of gate, source, and drain contacts with respect to different tracks and columns of the track plan.
In some embodiments, a cost function may be used to reward the arrangement, e.g., based on reducing cell-internal wiring congestion. In some embodiments, machine learning trained models may be used for optimizing the placement (e.g., reducing cell-internal wiring congestion), e.g., based on the cost function.
During step 916, open nodes (e.g., nodes still requiring a connection after step 912 or 914) are identified in the cluster map. For example, nodes to be connected to external circuits (e.g., pins) or nodes to be connected to other nodes inside the cluster may be identified as open nodes. In some embodiments, the identification of an open node may be performed, e.g., by using a bit in a register or data structure in memory 754 indicative of whether a node requires a connection.
During step 918, each column of the technology-specific wiring track plan is mapped into a predefined technology construct from a set of predefined technology constructs. The set of predefined technology constructs includes a finite number of possible implementations (e.g., all possible implementations) of basic devices (e.g., pFET and nFET) in a particular technology-specific wiring track plan. In some embodiments, the set of predefined technology constructs is manually generated. For example, as will be described in more detail later, e.g., with respect to
After selection and placement of the predefined technology constructs according to the output of step 914, routing of the remaining open nodes are performed, e.g., using off-the-shelf routing tools. The output of step 920 is a final layout, which may be, e.g., rendered on a monitor and/or printed in paper or other medium, and/or may be exported, e.g., for the generation of corresponding masks for the fabrication of semiconductor devices, in which the fabrication of the semiconductor devices may be performed by applying photoresists and patterning a substrate based on the generated masks.
In some embodiments, files associated with intermediate steps during steps 902, 904, 906, 908, 910, 912, 914, 916, 918, and/or 920, may be (e.g., temporarily or permanently) stored in memory 754 and may be read from memory 754 during steps 902, 904, 906, 908, 910, 912, 914, 916, 918, and/or 920. For example, in some embodiments, objects, such as transistor-pair objects, clusters of transistor-pairs, flipped clusters of transistor pairs, etc., may be stored and read back from memory 754 during the step in which the objects are created, or any step thereafter. Digital files that include information associated with track planning, routing, placement, and layout (e.g., generated during steps 914, 916, 918, and/or 920), may also be stored in memory 754, and may be read from memory 754 during the step in which the files are created, or any step thereafter. Representations of the objects and/or information (e.g., stored in digital files) created or used during any of the steps 902, 904, 906, 908, 910, 912, 914, 916, 918, and/or 920 may be displayed in display 756 during the step in which the object or information is created or used, or any step thereafter.
In some embodiments, the resulting physical layout (e.g., which may be stored in a digital file in memory 754) of the (e.g., one or more) standard cell (e.g., or of the entire standard cell library 708) may be used for RC extraction (during step 612) and allow for the generation of the corresponding netlist that includes parasitics (step 616) for performing cell characterization (620).
In some embodiments, performing one or more of steps 902, 904, 906, 908, 910, 912, 914, 916, and/or 918, advantageously improves a device for generating standard cell layouts for a standard cell layout library, e.g., by reducing the time it takes for achieving, e.g., optimum, layouts for a particular track plan, which advantageously allows for the evaluation of a technology node early in the design phase.
During step 1002, synthesis, place and route of an integrated circuit design netlist is performed using standard cells of standard cell library 708. During step 1004, (e.g., full) design simulation is performed based on the integrated circuit layout generated during step 1002. During step 1006, a mask set with masks corresponding to the layout generated during step 1002 are fabricated. The mask set includes a set of masks that include geometric shapes corresponding to the patterns of metal, oxide, or semiconductor layers that make up the components of the integrated circuit. The mask set is sent to a semiconductor foundry during step 1008 for integrated circuit fabrication, e.g., using a photolithographic process.
Although
In some embodiments, each complementary transistor pair identified in
In some embodiments, the transistor icons of the identified objects (e.g., as shown in
Although
In some embodiments, transistors-pair objects may be wholly or partially mirrored about the y-axis without changing functionality. Thus, as shown in
As can be seen from
In some embodiments, all possible associations and permutations of transistor-pairs and transistor flipping are evaluated, and the association resulting in the lower number of clusters and/or minimize the distance between nodes is selected.
It is understood that the track plan illustrated in
Each column shown in
Columns 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, and 1173 correspond to transistor nodes, and are also illustrated in
As can be seen in
Cells at the power rail 1132 identified as VDD (cells at columns 1141, 1149, 1159, 1169) correspond to VDD nodes (e.g., for external connections). Cells at power rail 1144 identified as VSS (cells at columns 1149, 1157, 1169) correspond to VSS (ground) nodes (e.g., for external connections).
As can be seen in
In some embodiments, a representation of the track plan, e.g., as illustrated in
The set of predefined technology constructs includes a finite number of possible implementations (e.g., all possible implementations) of basic devices (e.g., transistor) in a particular technology-specific wiring track plan. For example,
Columns 1143, 1151, and 1167 are implemented as construct 1171. Columns 1161 and 1171 are implemented as construct 1172. Column 1147 and 1155 are implemented as construct 1173. Other columns are implemented with other constructs. For example, columns 1141 and 1159 are implemented with construct 1177; column 1145 is implemented as construct 1184; columns 1149 and 1169 are implemented as construct 1175; column 1153 is implemented as construct 1186; column 1157 is implemented as construct 1180; column 1163 is implemented as construct 1187; column 1165 is implemented as construct 1190; and column 1173 is implemented as construct 1189.
In some embodiments, a representation of the track plan using constructs (e.g., as shown in
In some embodiments, a representation of the final layout, e.g., as illustrated in
As illustrated in
In the track plan illustrated in
Method 900 may also be implemented in transistor technologies with stack of transistors, such as stacked planar transistors, stacked FinFETs, stacked TriGate transistors, stacked NS transistors, stacked CFETs, and stacked VFETs. For example,
As will be described in more detail later, since a stacked transistor architecture, such as stacked CFETs, allows for the vertical stacking of transistors (e.g., staking of CFETs), a track plan may allow for the vertical sharing of a gate connection between transistors (e.g., between 2 CFETs). Thus, in some embodiments, the association of transistor-pair objects into clusters is based in a common gate that can be shared across rows (e.g., by vertically connecting the gates of the CFETs) in a double-row track plan, in addition to common input/output connections. For example, as shown in
As shown in
In some embodiments, the possibility of performing vertical connections, in addition to horizontal connections, may substantially increase the complexity of the placement effort for achieving optimal results.
Based on open nodes, transistor-pairs 1304 and 1312 are swapped, and transistor pairs 1306 and 1310 are swapped, as shown in
Each column shown in
From the mapped track plan, e.g., as illustrated in
In some embodiments, performing method 1400 results in the generation, for a particular netlist, of shortest strings of nFETs and pFETs by joining matching source/drain terminals. In some embodiments, such shortest strings of nFETs and pFETs are then paired to maximize the number of connections between common gates.
During step 1402, entries of a netlist, such as the entries of the netlist of
During step 1404, the number of source/drain (SD) terminals associated to each connection (node) is counted. The counting is performed for the nFET netlist and for the pFET netlist. For example,
During step 1406, the number of total connections and total connections having an odd count are determined for each of the sorted lists generated during step 1402 (e.g., based on the output of step 1404). For example,
As shown in
In some embodiments, steps 1402 and 1404 may be omitted and the counts generated during step 1406 may be obtained, e.g., by directly processing the netlist (e.g., directly processing the netlist of
During step 1408, the minimum number of segments (also referred to as transistor strings), minimum number of breaks between segments, and minimum width of the cell is determined. For example, in some embodiments, the minimum number of segments Segmin is determined by
where OddCountpFET and OddCountnFET correspond to the total connections having an odd count for pFETs and nFETs respectively, e.g., as determined during step 1406. For example, in the embodiment illustrated in
Thus, when method 1400 is applied to the netlist of
In some embodiments, the minimum number of internal breaks Breaksmin (e.g., diffusion breaks or, e.g., other interruptions in the active channel) between segments is determined by
Breaksmin=Segmin−1 (2)
For example, in the embodiment illustrated in
In some embodiments, the minimum width of the cell cellWidthmin is determined by
CellWidthmin=MAX(numpFET+d·Breakspmin,numnFET+d·Breaksnmin)+d·Breakedge (3)
where numpFET and numnFET are the total number of transistors in the pFET and nFET netlists, Breakedge is the number of breaks associated to the edges on the side of the cell (e.g., generally equal to 1), d is equal to the number of dummy poly per diffusion break for the technology (e.g., d=1 for single diffusion break technology, d=2 for double diffusion break technology), and Breakspmin and Breaksnmin are the minimum number of internal breaks for pFETs and nFETs, respectively, where Breakspmin and Breaksnmin may be determined by
Breakspmin=OddCountpFET−1 (4)
Breaksnmin=OddCountnFET−1 (5)
For example, in the embodiment illustrated in
In some embodiments, the minimum number of segments determined during step 1408 corresponds to the theoretical minimum number of segments required to implement in layout the netlist (e.g., the netlist of
During step 1410, the source/drain terminals associated with a source/drain count of 2 (e.g., as determined during step 1406) are merged. Thus, in some embodiments, the output generated during step 1410 includes a transistor arrangement that includes pairs of transistors, strings of pairs of transistors, and/or single transistors. For example,
As shown in
During step 1412, possible end points of the segments are identified. For example, in some embodiments, all source/drain terminals with a connection associated to a count of 1 are identified as end points of a segment. For example, in the embodiment illustrated in
During step 1414, the transistor groupings generated during step 1412 are further stringed together to arrive at the target number of segments. For example, in some embodiments, the transistor groupings generated during step 1412 are string together in the target number of segments using an exhaustive search. An optimal solution (e.g., smallest cell size, cell with lower number of metal layers used for internal connections, lowest parasitics for one or more particular nodes, etc.) is selected from the possible solutions obtained using an exhaustive search approach. In some embodiments, performing an exhaustive search of all possible ways in which the transistor groupings generated during step 1412 can be stringed together is less complex than evaluating all possible ways in which the transistors of the original netlist can be connected together. For example, as can be seen from
In some embodiment, after performing step 1414, steps 914, 916, 918, and 920, may be performed, e.g., as described with respect to method 900.
In some embodiments, determining how to string together the transistor groupings generated during step 1412 to arrive at the target number of segments includes:
During step 1416, the transistor groupings generated during step 1412 are further grouped based on sharing a common gate and arranged so that the grouped transistors form compatible transistor strings. In some embodiments, the beginning and/or end source/drain terminals of the segments are selected from the group of source/drain terminals associated with an odd count (from step 1406). In some embodiments, further refinement, such as by flipping transistors or transistor arrangements is performed to arrive at the target number of segments and/or to further optimize the transistor placement.
In some embodiments, multiple transistor arrangements are possible when performing step 1416. In some embodiments, an optimal solution (e.g., smallest cell size, cell with lower number of metal layers used for internal connections, lowest parasitics for one or more particular nodes, etc.) is selected from the possible transistor arrangements obtained when performing step 1416 using an exhaustive search approach. In some embodiments, performing an exhaustive search of all possible transistor placements obtained after performing step 1416 is less complex than evaluating all possible ways in which the transistors groupings generated during step 1412 can be connected together.
After grouping transistor arrangements 1546, 1548, 1560, and 1562, transistors arrangement 1554 is selected to form a second segment (cluster 1126), as shown in
As shown in
Once the compatible transistor strings are formed, the third cluster is formed by connecting the common gates, as illustrated in
During step 1418, the number of segments obtained during step 1414 is compared with the minimum number of segments (e.g., determined during step 1408). If the number of segments obtained during step 1414 is higher than the minimum number of segments, step 1414 is performed again (e.g., by trying different possible transistor arrangements). If the number of segments obtained during step 1414 is equal to the minimum number of segments, the segments generated during step 1414 are placed in a single row during step 1420. For example,
During step 1422, the width of the cell is determined based on the segments arranged in the single row (e.g., from step 1420). If the width of the cell is higher than the minimum width of the cell (e.g., from step 1408), step 1414 is performed again (e.g., by trying different possible transistor arrangements). If the width of the cell is equal to the minimum width of the cell, the segments generated during step 1420 are further processed (e.g., during steps 914, 916, 918, and 920) to obtain a physical layout.
As shown in
As illustrated in
In some embodiments, having a number of segments higher than the minimum number of segments, a width of the cell larger than the minimum width of the cell, or a number of breaks higher than the minimum number of breaks after performing step 1414 is indicative that a smaller cell design is possible (and thus, step 1414 may be performed again).
In some embodiments, performing method 1400 advantageously allows for determining whether a particular cell design can be further improved (e.g., by comparing the characteristics of the particular cell design, with target characteristics determined during step 1408).
In some embodiments, performing method 1400 advantageously allows for optimizing a cell design (e.g., reduces or minimizes the size of the cell) without having to evaluate, using an exhaustive search, all possible transistor arrangements of a netlist. Such advantages may become more evident as the size of a cell increases.
Although method 1400 has been illustrates with respect to a single-tier design, method 1400 may be applied to designs implemented in a plurality of tiers, such as a two-tier design. For example,
If it is determined after performing steps 1418 and 1422 that no further iterations of step 1414 are to be performed (e.g., output of step 1418=“no” and output of step 1422=“no”), then the number of tiers in the design is determined during step 1524. As shown in
In some embodiments, the placement of the segments may be determined using an exhaustive search approach during step 1526. In some embodiments, the placement of the segments during step 1526 includes the step of:
As shown in
Advantages of some embodiments include providing a metric indicative that a particular cell design may be further optimized and providing steps to reduce the number of possible transistor arrangements that may be evaluated to arrive at a cell design in which such metric no longer indicates that the particular cell may be further optimized.
Example embodiments of the present invention are summarized here. Other embodiments can also be understood from the entirety of the specification and the claims filed herein.
Example 1. A method including: receiving data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources; determining a minimum number of segments based on the received data; grouping the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments; and generating discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
Example 2. The method of example 1, where the electrical circuit includes a plurality of nodes, and where terminals of the devices are coupled to the plurality of nodes, the method further including: identifying different nodes of the plurality of nodes based on the received data; and assigning a terminal count to each of the identified nodes based on the received data to form a plurality of terminal counts, where each terminal count is indicative of a number of terminals of the devices coupled to a respective node of the identified nodes, where determining the minimum number of segments includes determining the minimum number of segments based on a number of terminal counts of the plurality of terminal counts having an odd count.
Example 3. The method of one of examples 1 or 2, where the devices include a plurality of n-type field effect transistors (nFETs) and a plurality of p-type field effect transistors (pFETs), the method further including identifying pFETs and nFETs of the electrical circuit from the received data, where forming the plurality of terminal counts includes forming a plurality of pFET terminal counts and a plurality of nFET terminal counts, and where determining the minimum number of segments includes determining the minimum number of segments by:
where Segmin represents the minimum number of segments, OddCountpFET represents a number of pFET terminal counts having an odd count, and OddCountnFET represents a number of nFET terminal counts having an odd count.
Example 4. The method of one of examples 1 to 3, further including merging terminals of the devices associated with a terminal count of 2.
Example 5. The method of one of examples 1 to 4, further including identifying terminals of the devices associated with an odd terminal count, where grouping the devices into N segments includes: selecting a first terminal from the identified terminals; and forming a first segment of the N segments, the first segment having the first terminal as an end terminal.
Example 6. The method of one of examples 1 to 5, further including determining a minimum number of interruptions of active channels based on the minimum number of segments, where grouping the devices into N segments further includes grouping the devices into N segments having M breaks, where M is equal to the minimum number of segments.
Example 7. The method of one of examples 1 to 6, further including determining a minimum number of poly tracks based on the received data, where grouping the devices into N segments further includes grouping the devices into N segments having L poly tracks, where L is equal to the minimum number of poly tracks.
Example 8. The method of one of examples 1 to 7, where the devices include a plurality of n-type field effect transistors (nFETs) and a plurality of p-type field effect transistors (pFETs), where determining the minimum number of poly tracks includes determining the minimum number of poly tracks by
CellWidthmin=MAX(numpFET+Breakspmin,numnFET+Breaksnmin)+1, where CellWidthmin
represents the minimum number of poly tracks, numpFET represents a total number of pFETs in the electrical circuit, numnFET represents a total number of nFETs in the electrical circuit, Breakspmin represents a minimum number of internal breaks associated with pFETs of the electrical circuit, and Breaksnmin represents a minimum number of internal breaks associated with nFETs of the electrical circuit.
Example 9. The method of one of examples 1 to 8, further including manufacturing a mask set based on the formed physical layout and fabricating an integrated circuit using the mask set.
Example 10. The method of one of examples 1 to 9, where the discrete portions are representative of one or more of: a diffusion break, a source-drain construct, or a gate construct.
Example 11. The method of one of examples 1 to 10, where the source-drain construct includes a gate connection for the gate construct or power connection to a power source.
Example 12. The method of one of examples 1 to 11, where the gate construct includes a source-drain connection for the source-drain construct or power connection to a power source.
Example 13. The method of one of examples 1 to 12, where the diffusion break includes a polysilicon film.
Example 14. The method of one of examples 1 to 13, where the source-drain construct including an n-type region or a p-type region.
Example 15. The method of one of examples 1 to 14, where the physical manifestation including a field-effect-transistor (CFET) transistor.
Example 16. The method of one of examples 1 to 15, further including mapping the N segments to a target physical layout rendering based on a target track plan.
Example 17. The method of one of examples 1 to 16, where the target track plan includes a single row height.
Example 18. The method of one of examples 1 to 16, where the target track plan includes a row height of two or more.
Example 19. The method of one of examples 1 to 16 or 18, further including: placing the N segments in two rows, the two rows including a top-tier row and a bottom-tier row, where placing the N segments in the two rows includes: placing only one segment of the N segments in the bottom-tier row; placing all diffusion breaks to separate segments in the top-tier row; and placing a power source terminal of a device of a segment of the top-tier row on top of a power source terminal of a device of the only one segment of the bottom-tier row.
Example 20. A computing device for generating standard cell layouts for a standard cell library, the computing device including: a processor; and a non-transitory computer-readable storage medium coupled to the processor and storing a program executable by the processor, the program including instructions to: receive data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources, determine a minimum number of segments based on the received data, group the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments, and generate discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
Example 21. The computing device of example 20, where the program further includes instructions to: store the physical layout in the non-transitory computer-readable storage medium; and transmit the stored physical layout for generating a set of masks for integrated circuit manufacturing.
Example 22. The computing device of one of examples 20 or 21, further including a display, where the program further includes instructions to display the devices using icons in the display.
Example 23. A method including: receiving data representative of an electrical circuit including an arrangement of devices, inputs, outputs, and power sources, where the electrical circuit includes a plurality of nodes, and where the devices include a plurality of n-type field effect transistors (nFETs) and a plurality of p-type field effect transistors (pFETs); identifying pFETs and nFETs of the electrical circuit from the received data; identifying different nodes of the plurality of nodes based on the received data; assigning a terminal count to each of the identified nodes based on the received data to form a plurality of terminal counts, where each terminal count is indicative of a number of terminals of the devices coupled to a respective node of the identified nodes; determining a minimum number of segments based on a number of terminal counts of the plurality of terminal counts having an odd count; and grouping the devices into N segments based on common features shared between two or more of the devices, where N is equal to the minimum number of segments; and generating discrete portions of the grouped devices to form a physical layout representative of a physical manifestation of the electrical circuit, such that when the discrete portions are integrated together they form a physical manifestation of the electrical circuit.
While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.
This application is a continuation of U.S. patent application Ser. No. 17/219,539, entitled “Method for Automated Standard Cell Design,” filed Mar. 31, 2021, which is a continuation-in-part of U.S. patent application Ser. No. 17/122,689, entitled “Method for Automated Standard Cell Design,” filed Dec. 15, 2020, now issued as U.S. Pat. No. 11,550,985, which claims the benefit of U.S. Provisional Application No. 63/007,705, entitled “Method for Automated Standard Cell Design,” filed on Apr. 9, 2020, which applications are hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63007705 | Apr 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17219539 | Mar 2021 | US |
Child | 18333159 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17122689 | Dec 2020 | US |
Child | 17219539 | US |