Automated analog and mixed-signal circuit design and verification
By using machine learning models and circuit simulation software, the physical parameters of sub-circuits in analog circuits are automatically identified and converted, solving the difficulty of design conversion between different process technologies for analog circuits and achieving efficient circuit design and verification.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TEXAS INSTRUMENTS INC
- Filing Date
- 2021-06-07
- Publication Date
- 2026-04-28
AI Technical Summary
Scaling and design conversion of analog circuits across different process technologies is difficult, especially due to factors such as voltage margin, gain reduction, and signal-to-noise ratio adjustment, which leads to frequent manual changes and redesigns that are difficult to automate.
By employing machine learning (ML) models and circuit simulation software such as SPICE, the circuit topology is automatically converted to adapt to different process technologies by identifying the physical and performance parameters of sub-circuits in the circuit, and the circuit design and verification are carried out using a pre-trained ML model library.
It enables automated design and verification of analog circuits across different process technologies, improving design efficiency, reducing reliance on manual adjustments, and ensuring that circuit performance meets design specifications.
Smart Images

Figure CN115803746B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to techniques for designing circuits. Background Technology
[0002] Analog circuits are frequently used to sense, interact with, and / or control signals from the real world. Real-world signals or information are analog because they are continuous quantities. For example, temperature varies over an infinite range (e.g., has an infinite number of values), not just discrete integer values. In contrast, digital circuits operate on discrete values, i.e., 1s and 0s, used to represent analog signals or information. To help digital circuits process analog signals or information, they can interact with or combine with analog circuits. For example, a temperature sensor may include one or more analog circuits to sample the temperature, one or more hybrid circuits to convert the sampled temperature into a digital value, and one or more digital circuits to process the digital value. Similarly, digital circuits can process audio files, hybrid circuits can perform digital-to-analog conversion, analog circuits can amplify analog signals, and speakers can output the actual sound encoded in an audio file. It is understood that, as used herein, analog circuitry can refer to either analog circuitry or hybrid circuitry (e.g., mixed-signal circuitry), which may include both analog and digital components.
[0003] With the development of integrated circuits, the number of components that can be accommodated within a single area of a semiconductor die has increased rapidly. This reduction in size, also known as die shrinking, helps reduce costs and improve the performance of the resulting circuit chips. For digital circuits, die shrinking and semiconductor scaling techniques are relatively straightforward, while scaling analog circuits is much more difficult. For example, analog circuits may be more susceptible to voltage margin, gain reduction, signal-to-noise ratio adjustments, etc., compared to digital circuits. In analog or hybrid sub-circuits, such as differential pairs, the geometry and configuration of the circuit can affect not only the performance of the differential pair but also the performance of other sub-circuits in another part of the circuit, such as current mirrors. Furthermore, different process nodes or semiconductor process technologies can affect the impact of circuit geometry and configuration on performance. Depending on the purpose of the overall circuit, such performance differences may be unacceptable. Scaling between different sized process nodes can also have different effects on sub-circuits, allowing each sub-circuit, and even individual components, to have different scaling factors. When attempting to scale designs across process nodes, some analog circuits may require significant manual changes or redesigns. Summary of the Invention
[0004] This disclosure relates to techniques for designing circuits. More particularly, but not limited thereto, various aspects of this disclosure relate to a method comprising receiving a data object representing a circuit of a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology; identifying the first sub-circuit in the data object by comparing the first topology with a stored topology associated with the first process technology; identifying sub-circuit physical parameter values associated with the first and second electrical elements of the first sub-circuit; determining a set of sub-circuit performance parameter values for the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified sub-circuit physical parameters; converting the identified first sub-circuit into a second sub-circuit for a second process technology based on the determined set of sub-circuit performance parameter values; and outputting the second sub-circuit.
[0005] Another aspect of this disclosure relates to a non-transitory program storage device including instructions stored thereon to cause one or more processors to receive a data object representing a circuit of a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology, identifying the first sub-circuit in the data object by comparing the first topology with a stored topology associated with the first process technology, identifying sub-circuit physical parameter values associated with the first and second electrical elements of the first sub-circuit, determining a set of sub-circuit performance parameter values for the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified sub-circuit physical parameters, converting the identified first sub-circuit into a second sub-circuit for a second process technology based on the determined set of sub-circuit performance parameter values, and outputting the converted first sub-circuit.
[0006] Another aspect of this disclosure relates to an electronic device including a memory; and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions such that the one or more processors receive a data object representing a circuit for a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology, identifying the first sub-circuit in the data object by comparing the first topology with a stored topology associated with the first process technology, identifying sub-circuit physical parameter values associated with the first and second electrical elements of the first sub-circuit, determining a set of sub-circuit performance parameter values for the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified sub-circuit physical parameters, converting the identified first sub-circuit into a second sub-circuit for a second process technology based on the determined set of sub-circuit performance parameter values, and outputting the converted first sub-circuit.
[0007] Another aspect of this disclosure relates to a method comprising receiving a data object representing a circuit, the circuit including a sub-circuit including a first electrical element and a second electrical element arranged in a first topology; receiving a set of stored topologies; identifying the first electrical element, the second electrical element, and connections between the first electrical element and the second electrical element; determining coupling between the first electrical element and the second electrical element based on the connections of the first electrical element; determining a first topology based on comparisons between the identified first electrical element, the identified second electrical element, the determined coupling between the first electrical element and the second electrical element, and topologies in a set of stored topologies; and outputting the identified first topology.
[0008] Another aspect of this disclosure relates to a non-transitory program storage device, the device including instructions stored thereon to cause one or more processors to receive data objects representing circuits, the circuits including sub-circuits including first electrical elements and second electrical elements arranged in a first topology, receiving a set of stored topologies, identifying the first electrical elements, the second electrical elements, and connections between the first and second electrical elements, determining coupling between the first and second electrical elements based on the connections of the first electrical elements, determining the first topology based on comparisons between the identified first electrical elements, the identified second electrical elements, the determined coupling between the first and second electrical elements, and the topologies in the set of stored topologies, and outputting the identified first topology.
[0009] Another aspect of this disclosure relates to an electronic device including a memory and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions such that the one or more processors receive a data object representing a circuit, the circuit including sub-circuit, the sub-circuit including a first electrical element and a second electrical element, the first electrical element and the second electrical element being arranged in a first topology, receiving a set of stored topologies, identifying the first electrical element, the second electrical element and the connection between the first electrical element and the second electrical element, determining the coupling between the first electrical element and the second electrical element based on the connection of the first electrical element, determining the first topology based on the identified first electrical element, the identified second electrical element, the determined coupling between the first electrical element and the second electrical element and a comparison between topologies in a set of stored topologies, and outputting the identified first topology.
[0010] Another aspect of this disclosure relates to a method comprising receiving a data object representing a circuit of a process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology; identifying the first sub-circuit in the circuit by comparing the first topology with a stored topology associated with a first process technology; identifying a first set of physical parameter values associated with the first and second electrical elements of the first sub-circuit; determining a set of performance parameter values for the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified set of physical parameter values; converting the identified first sub-circuit into a second sub-circuit for a process technology based on the determined set of performance parameter values; the second sub-circuit having a third electrical element and a fourth electrical element arranged in a second topology; and outputting the second sub-circuit.
[0011] Another aspect of this disclosure relates to a non-transitory program storage device including instructions stored thereon to cause one or more processors to receive a data object representing a circuit for a process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology, identifying the type of the first sub-circuit based on the connection of the first and second electrical elements, identifying the first sub-circuit in the circuit by comparing the first topology with a stored topology associated with a first process technology, identifying a first set of physical parameter values associated with the first and second electrical elements of the first sub-circuit, determining a set of performance parameter values of the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified set of physical parameter values, converting the identified first sub-circuit into a second sub-circuit for the process technology based on the determined set of performance parameter values, the second sub-circuit having a third and a fourth electrical element arranged in a second topology, and outputting the second sub-circuit.
[0012] Another aspect of this disclosure relates to an electronic device including a memory and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions such that the one or more processors receive a data object representing a circuit for a process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology, identifying a type of the first sub-circuit based on the connection of the first and second electrical elements, identifying the first sub-circuit in the circuit by comparing the first topology with a stored topology associated with a first process technology, identifying a first set of physical parameter values associated with the first and second electrical elements of the first sub-circuit, determining a set of performance parameter values for the first sub-circuit based on a first machine learning (ML) model of the first sub-circuit and the identified set of physical parameter values, converting the identified first sub-circuit into a second sub-circuit for the process technology based on the determined set of performance parameter values, the second sub-circuit having a third and a fourth electrical element arranged in a second topology, and outputting the second sub-circuit.
[0013] Another aspect of this disclosure relates to a method comprising receiving an indication of a sub-circuit type and a set of sub-circuit performance parameter values, determining a sub-circuit topology based on the sub-circuit type and the set of sub-circuit performance parameter values, determining a set of sub-circuit physical parameter values based on a first machine learning (ML) model of the sub-circuit topology and the set of sub-circuit performance parameter values, generating a data object representing the sub-circuit based on the determined set of sub-circuit physical parameter values and the determined sub-circuit topology, and outputting the data object.
[0014] Another aspect of this disclosure relates to a non-transitory program storage device comprising instructions stored thereon to cause one or more processors to receive an indication of a sub-circuit type and a set of sub-circuit performance parameter values, determine a sub-circuit topology based on the sub-circuit type and the set of sub-circuit performance parameter values, determine a set of sub-circuit physical parameter values based on a first machine learning (ML) model of the sub-circuit topology and the set of sub-circuit performance parameter values, generate a data object representing the sub-circuit based on the determined set of sub-circuit physical parameter values and the determined sub-circuit topology, and output the data object.
[0015] Another aspect of this disclosure relates to an electronic device including a memory and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions such that the one or more processors receive an indication of a sub-circuit type and a set of sub-circuit performance parameter values, determine a sub-circuit topology based on the sub-circuit type and the set of sub-circuit performance parameter values, determine a set of sub-circuit physical parameter values based on a first machine learning (ML) model of the sub-circuit topology and the set of sub-circuit performance parameter values, generate a data object representing the sub-circuit based on the determined set of sub-circuit physical parameter values and the determined sub-circuit topology, and output the data object.
[0016] Another aspect of this disclosure relates to a method comprising receiving a first set of subcircuit physical parameters for electrical elements of a subcircuit and an indication of a first process technology; determining a first variant of the subcircuit physical parameters of the electrical elements of the structured subcircuit, the first variant including at least one subcircuit physical parameter that differs from the subcircuit physical parameters of the first set of subcircuit physical parameters; simulating the first variant of the subcircuit physical parameters in the first process technology to generate a first set of subcircuit performance parameter values associated with the first variant; training a machine learning (ML) model of the structured subcircuit based on a set of variants, the set of variants including the first variant for the first process technology and a set of subcircuit physical parameters associated with the first variant; and storing the trained ML model.
[0017] Another aspect of this disclosure relates to a non-transitory program storage device, the device including instructions stored thereon to cause one or more processors to receive a first set of sub-circuit physical parameters for electrical elements of a sub-circuit and instructions for a first process technology, to determine a first variant of the sub-circuit physical parameters of the electrical elements of the structured sub-circuit, the first variant including at least one sub-circuit physical parameter different from the sub-circuit physical parameters of the first set of sub-circuit physical parameters, to simulate the first variant of the sub-circuit physical parameters in the first process technology to generate a first set of sub-circuit performance parameter values associated with the first variant, to train a machine learning (ML) model of the structured sub-circuit based on a set of variants, the set of variants including the first variant for the first process technology and a set of sub-circuit physical parameters associated with the first variant and to store the trained ML model.
[0018] Another aspect of this disclosure relates to an electronic device including a memory and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions such that the one or more processors receive a first set of sub-circuit physical parameters for electrical elements of a sub-circuit and instructions for a first process technology; determine a first variant of the sub-circuit physical parameters of the electrical elements of the structured sub-circuit, the first variant including at least one sub-circuit physical parameter that differs from the sub-circuit physical parameters of the first set of sub-circuit physical parameters; simulate the first variant of the sub-circuit physical parameters in the first process technology to generate a first set of sub-circuit performance parameter values associated with the first variant; train a machine learning (ML) model of the structured sub-circuit based on a set of variants, the set of variants including the first variant for the first process technology and a set of sub-circuit physical parameters associated with the first variant, and store the trained ML model.
[0019] Another aspect of this disclosure relates to a method comprising receiving an initial parameter set associated with a sub-circuit; interacting a first parameter of the initial parameter set with other parameters of the initial parameter set to generate a set of interacting parameters; adding the interacting parameters to the initial parameter set to generate a candidate parameter set; performing linear regression on the parameters in the candidate parameter set against a set of expected parameter values to determine predicted values for the parameters in the candidate parameter set; deleting parameters from the candidate parameter set based on a comparison between the predicted values and the predetermined prediction threshold; determining the accuracy of the candidate parameter set based on the linear regression; and comparing the accuracy of the candidate parameter set with a predetermined accuracy level. The process involves comparing the accuracy of the candidate parameter set. If the accuracy of the candidate parameter set reaches a predetermined accuracy level, the candidate parameter set is output. If the accuracy of the candidate parameter set does not reach the predetermined accuracy level, the following steps are repeated: the second parameter of the initial parameter set interacts with the other parameters of the candidate parameter set, the interacted parameters are added to the candidate parameter set, linear regression is performed, parameters are deleted, accuracy is determined, and accuracy is compared, until: the accuracy of the second candidate parameter set has reached the predetermined accuracy, or each parameter of the initial parameter set has interacted with the other parameters of the candidate parameter set a predetermined number of times, and the candidate parameter set is output.
[0020] Another aspect of this disclosure relates to a non-transitory program storage device, the device including instructions stored thereon to cause one or more processors to receive an initial parameter set associated with a sub-circuit, to interact a first parameter of the initial parameter set with other parameters of the initial parameter set to generate a set of interacting parameters, to add the interacting parameters to the initial parameter set to generate a candidate parameter set, to perform linear regression on the parameters of the candidate parameter set against a set of expected parameter values to determine predicted values of the parameters in the candidate parameter set, to remove parameters from the candidate parameter set based on a comparison between the predicted values and a predetermined prediction threshold, to determine the accuracy of the candidate parameter set based on linear regression, and to remove the candidate parameter set from the list. The accuracy of the selected parameter set is compared with a predetermined accuracy level. If the accuracy of the candidate parameter set reaches the predetermined accuracy level, the candidate parameter set is output. If the accuracy of the candidate parameter set does not reach the predetermined accuracy level, the following steps are repeated: the second parameter of the initial parameter set interacts with the other parameters of the candidate parameter set, the interacted parameters are added to the candidate parameter set, linear regression is performed, parameters are deleted, accuracy is determined, and accuracy is compared, until: the accuracy of the second candidate parameter set reaches the predetermined accuracy, or each parameter of the initial parameter set has interacted with the other parameters of the candidate parameter set a predetermined number of times, and the candidate parameter set is output.
[0021] Another aspect of this disclosure relates to an electronic device including a memory and one or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions to cause the one or more processors to receive an initial parameter set associated with sub-circuit, to interact a first parameter of the initial parameter set with other parameters of the initial parameter set to generate a set of interacting parameters, to add the interacting parameters to the initial parameter set to generate a candidate parameter set, to perform linear regression on the parameters in the candidate parameter set against a desired parameter value set to determine predicted values of the parameters in the candidate parameter set, and to delete parameters in the candidate parameter set based on a comparison between the predicted values and the predetermined prediction threshold, based on the linear regression... Determine the accuracy of the candidate parameter set, and compare the accuracy of the candidate parameter set with a predetermined accuracy level. If the accuracy of the candidate parameter set reaches the predetermined accuracy level, output the candidate parameter set. If the accuracy of the candidate parameter set does not reach the predetermined accuracy level, repeat the following steps: interact the second parameter of the initial parameter set with the other parameters of the candidate parameter set, add the interacted parameters to the candidate parameter set, perform linear regression, delete parameters, determine the accuracy, and compare the accuracy until: the accuracy of the second candidate parameter set reaches the predetermined accuracy, or each parameter in the initial parameter set has interacted with the other parameters in the candidate parameter set a predetermined number of times, and output the candidate parameter set. Attached Figure Description
[0022] For a detailed description of the various examples, reference will now be made to the accompanying drawings, in which:
[0023] Figure 1 An example of the evolution of a circuit design according to various aspects of this disclosure is illustrated.
[0024] Figure 2 It is a block diagram of an analog circuit according to various aspects of this disclosure.
[0025] Figures 3A-3B It is a circuit diagram of an illustrative circuit block according to various aspects of this disclosure.
[0026] Figure 4 This is a circuit diagram illustrating a sub-circuit according to various aspects of this disclosure.
[0027] Figure 5 This is a block diagram of an example embodiment of techniques for automated analog and mixed-signal circuit design and verification according to various aspects of this disclosure.
[0028] Figure 6 This is a block diagram of an example embodiment of techniques for automated analog and mixed-signal circuit design and verification according to various aspects of this disclosure.
[0029] Figures 7A-7B The illustrations show a set of examples of known topologies for input or gain stages of a particular process technology according to various aspects of this disclosure.
[0030] Figure 8 This is a system diagram illustrating a technical overview of designing new analog circuits from original analog circuits according to various aspects of this disclosure.
[0031] Figure 9 It is a chart illustrating a set of performance parameters for certain sub-circuits according to various aspects of this disclosure.
[0032] Figure 10 This is an example of a neural network ML model illustrated according to various aspects of this disclosure.
[0033] Figure 11 The illustration shows a series of ML model parameters for threshold step selection according to various aspects of this disclosure.
[0034] Figure 12 This is a flowchart illustrating a technical overview of various aspects of circuit design according to this disclosure.
[0035] Figure 13 This is a flowchart illustrating techniques for designing circuits according to various aspects of this disclosure.
[0036] Figure 14 This is a flowchart illustrating techniques for designing circuits according to various aspects of this disclosure.
[0037] Figure 15 This is a flowchart illustrating techniques for designing circuits according to various aspects of this disclosure.
[0038] Figure 16 This is a flowchart illustrating techniques for designing circuits according to various aspects of this disclosure.
[0039] Figures 17A-17B This is a flowchart illustrating techniques for designing circuits according to various aspects of this disclosure.
[0040] Figure 18 This is a block diagram of one embodiment of a computing device according to various aspects of the present disclosure. Detailed Implementation
[0041] Specific embodiments of the invention will now be described in detail with reference to the accompanying drawings. Numerous specific details are set forth in the following detailed description of embodiments of the invention to provide a more thorough understanding of the invention. However, it will be apparent to those skilled in the art that the invention can be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
[0042] As digital circuits become increasingly prevalent in our lives, the interfaces between these digital circuits and the real analog world are also becoming increasingly common. With the advancement of improved manufacturing processes used to produce semiconductors, the size of digital circuits has steadily shrunk, enabling them to utilize new, smaller process technology nodes. Generally, a process technology node refers to the size of the transistor gate length for a specific semiconductor manufacturing process technology. However, the pace of miniaturization in analog circuits has not kept up, as analog circuits often require extensive redesign across different semiconductor manufacturing processes and / or process technology nodes (hereinafter referred to as process technologies), rather than relatively simple size reduction. Furthermore, circuits can be modified to enhance functionality. For example, a circuit can be modified to adjust its operating voltage to help reduce power requirements, or it can be modified to expand its operating range. For a specific process technology, every aspect of an analog circuit's electrical components, and how those components interact with the characteristics of the manufacturing process, can affect the overall circuit performance in non-linear and unpredictable ways. This makes it difficult to simply resize a circuit from one process technology or replicate it to another. Similarly, these interactions also make it difficult to modify the functionality of a circuit.
[0043] As digital and analog circuits become more prevalent, semiconductor manufacturing processes are also constantly evolving. Figure 1 An example 100 illustrating the evolution of a circuit design according to various aspects of this disclosure is illustrated. In this example 100, circuit 102 (referred to as 102A, 102B, and 102C, respectively, collectively referred to as 102) comprises three sub-circuit blocks, such as bandgap 104 (referred to as 104A, 104B, and 104C, respectively, collectively referred to as 104), operational amplifier 106 (referred to as 106A, 106B, and 106C, respectively, collectively referred to as 106), and driver 108 (referred to as 108A, 108B, and 108C, respectively, collectively referred to as 108). In this example, circuit 102A can currently be implemented in a first process technology 110. Circuit 102 can be transitioned from the first process technology 110 to a second process technology 112 while maintaining the same overall operating specifications, such as operating voltage. For example, in this case, circuit 102 can be transitioned from the first process technology 110 to the second process technology 112 while maintaining an operating voltage of 3.3 volts.
[0044] Furthermore, in some cases, circuit 102 can be redesigned, for example, to enhance functionality. In this example, circuit 102B can be redesigned as circuit 102C to reduce the operating voltage while using the same process technology, here second process technology 114. In some cases, redesigning circuit 102 may include updating design specifications, such as the design specifications of electrical components in certain sub-circuit blocks, such as operational amplifier 106C and bandgap 104C. In other cases, it may include redesigning the architecture to, for example, adjust the circuit layout, as shown for driver 108C.
[0045] Currently, modifying circuit designs or converting circuit designs from one process technology to another is largely a manual process. For example, a circuit designer may have a set of design specifications that the circuit should meet. These specifications may be based on the expected performance of the circuit; therefore, for example, an amplifier circuit may have design specifications for output resistance, distortion, impedance, etc. The designer can then convert each electronic component of the circuit, taking into account the physical parameters of the electronic components in the original process technology, and determine the physical parameters of the electronic components in the target process technology. This determination is largely based on experience and intuition. After the electronic components are converted to the target process technology, the completed circuit can be simulated in circuit simulation software, such as SPICE (Spectrum Integrated Circuit Simulation), against the design specifications. If the converted circuit does not meet the design specifications, the circuit designer can adjust the circuit, such as changing the physical parameters of certain electronic components, and simulate the circuit again. This adjustment is also largely based on experience and intuition and is usually an iterative process. It is understood that the electronic components used in this article refer to the components or devices that make up the circuit, such as transistors, resistors, capacitors, inductors, diodes, etc.
[0046] To help accelerate efforts to transition analog circuits from one process technology to another, and to develop new and improved analog circuits, it is necessary to achieve automated analog and mixed-signal circuit design and verification.
[0047] In some cases, while circuits can be visually represented, such as through circuit design or simulation programs, their basic representation can be in the form of one or more netlists or hardware description languages (HDLs). A netlist, or HDL, is typically a list of the electronic components of a circuit and a list of the nodes to which each electronic component is connected. In some cases, attributes, structural information, physical parameters, or other information may also be included in the netlist. Furthermore, in some embodiments, the netlist or HDL is stored in a data object.
[0048] Sub-circuit
[0049] Figure 2This is a block diagram 200 of an analog circuit according to various aspects of this disclosure. The analog circuit 202 is any type of analog or hybrid analog-digital circuit comprising multiple electrical components. In most embodiments, the analog circuit 202 will process, generate, transmit, or receive analog signals through one or more of the multiple electrical components in the analog circuit 202. The analog circuit 202 may be part of a larger circuit (e.g., an integrated circuit), or the analog circuit 202 may be the entire circuit (e.g., an integrated circuit). Typically, the analog circuit 202 consists of one or more circuit blocks 204. Typically, the circuit is designed such that specific portions of the circuit perform specific tasks. For example, the circuit 202 may be divided into portions or circuit blocks 204 that perform specific functions. Circuit blocks 204 may be any type of intellectual property (“IP”) block, IP core, functional block, or collection of elements. In some embodiments, circuit block 204 is the circuit 202. Furthermore, circuit block 204 may provide one or more functions for the analog integrated circuit 202. In some embodiments, circuit block 204 is the analog integrated circuit 202. These circuit blocks 204 can be described in a netlist in a manner similar to software functions and referenced by, for example, another netlist or circuit block describing a larger portion of the circuit. In some cases, circuit block 204 may include other circuit blocks.
[0050] Analog circuit 202 may include one or more sub-circuits, and circuit block 204 may also include one or more sub-circuits. In some embodiments, a sub-circuit may be the same as circuit block 204 and / or analog circuit 202. In other embodiments, circuit block 204 may include a subset of one or more sub-circuits of circuit block 204. A sub-circuit refers to a portion of the circuit smaller than the entire circuit (e.g., a subset of the circuit). In alternative embodiments, a sub-circuit may refer to the entire circuit.
[0051] Subcircuit may include one or more of the electrical components in analog circuit 202. Subcircuit may be classified into subcircuit types. A non-exhaustive list of subcircuit types may include, but is not limited to, current mirrors, shunts, current sources, current references, drive circuits, level shifting stages, gain stages, operational amplifiers, current mirror operational amplifiers, inverting or non-inverting amplifiers, filters (e.g., bandpass filters, low-pass filters, or high-pass filters), RC circuits, resistor ladders, voltage ladders, power amplifiers, clock sources, analog-to-digital converters (“ADCs”), digital-to-analog converters (“DACs”), voltage followers, regulators, Darlington transistors or pairs, boost circuits (e.g., stepped boost circuits), buck circuits (e.g., stepped buck circuits), mixers, modulators, inverters, signal conditioners, integrators, differentiators, input stages, output stages, or any other identifiable subcircuit type used in analog circuitry.
[0052] Figure 3A and 3B This is a circuit diagram of an illustrative circuit block 300 based on various aspects of this disclosure. For example... Figure 3A and 3B As shown, circuit block 300 can be further divided into sub-circuits 302. In this example, circuit block 300 performs the function of amplifying the signal. Sub-circuit 302 is a part of circuit block 300 and is designed to perform a purpose, such as providing a reference voltage, replicating current, filtering signals, etc. Sub-circuit 302 includes a set of electrical components that are structured to operate together to perform this purpose, and this set of electrical components can affect one or more output parameters of the circuit block. Sub-circuits can often serve as building blocks for the entire circuit block, performing the common function of many circuit blocks. In some cases, sub-circuits can be categorized by type or class according to their function. Classifying the sub-circuits of a circuit block helps in analyzing the transformation and / or creation of the circuit block at the sub-circuit level, and helps in decomposing the circuit block into more easily analyzed components. Examples of sub-circuit types include current mirror 304, input stage 306, output stage 308, passive device 310, voltage ladder, resistor ladder, etc. In some cases, various types of blocks 312 can also be identified as circuit blocks. These various blocks 312 may include, for example, nested circuit blocks 314, individual electrical components 316 that may not be included in other identified sub-circuits, unidentified sub-circuits that may require further analysis, and so on.
[0053] Figure 4 This is a circuit diagram illustrating a sub-circuit 400 according to various aspects of the present disclosure. In this example, the sub-circuit 400 is a current mirror and includes two electrical elements: a first transistor 404 and a second transistor 402. Each electrical element has certain physical parameters that describe measurable physical characteristics of the electrical element, such as channel width (W) and channel length (L), input and output currents, impedance, operating region (e.g., conditions), N-type / P-type, etc. The sub-circuit physical parameters may refer to the physical parameters of the electrical elements of the sub-circuit, and may also include operating information (e.g., operating point, bias point, quiescent operating point, Q-point, etc.). The operating point represents the current or voltage at the terminals of the electrical element used for the operation of the electrical element. Each electrical element may play a specific role; for example, the current (IREF) flowing through the first transistor 404 is mirrored through the second transistor 402 as a function of the size ratio (N) of the first transistor 404 and the second transistor 402, and the first transistor 404 may act as a current-to-voltage converter, while the second transistor 402 may act as a voltage-to-current converter. Based on the electrical components of a subcircuit and their associated physical parameters, the entire subcircuit can be associated with various subcircuit performance parameters. While various subcircuit performance parameters can be determined, not all subcircuit performance parameters are important for a given subcircuit type.
[0054] A subcircuit can have multiple subcircuit parameters. These parameters can include the subcircuit's physical parameters, its operational parameters, its performance parameters, or a combination of these. Various subcircuit parameters can describe how a particular subcircuit behaves in different ways. The physical parameters of electrical components and the way these components are connected are factors that influence subcircuit parameters, but the relationship between these factors and the parameters is often non-linear and varies depending on the manufacturing process. Circuit simulation software, such as SPICE simulation, can be used to determine the subcircuit parameters for a specific subcircuit. For example, the subcircuit's operational information can be determined using circuit simulation software. This operational information takes into account external influences on the circuit, such as the characteristics of the power supply current, and determines the state of the subcircuit and / or the circuit's electrical components (e.g., bias current). In some cases, determining operational information using circuit simulation software can be relatively faster than determining the subcircuit's performance parameters.
[0055] In subcircuit parameters, a set of subcircuit performance parameters can be identified as physical parameters relative to the electrical components of the subcircuit, more relevant to describing the performance of a particular subcircuit. This set of subcircuit performance parameters can be determined based on the function of the particular subcircuit. In some cases, the subcircuit performance parameters in a set of subcircuit performance parameters included in a particular type of subcircuit can be predetermined. In some cases, such predetermined determination of a set of subcircuit performance parameters for a particular type of subcircuit can be based on expert knowledge and / or experience regarding which subcircuit performance parameters are more relevant to that type of subcircuit.
[0056] In some cases, the performance parameters of a subcircuit type can be predetermined using algorithms. For example, if a circuit including the subcircuit type in question has been successfully converted from a first process technology to a second process technology, that subcircuit type can be modeled, for example, in circuit simulation software, for design in the first process technology and then again for design in the second process technology. Various subcircuit performance parameters can be determined for both models and then compared to determine which performance parameters are most closely preserved after the conversion. This process can be repeated with multiple examples of the subcircuit type, which can be the same or different circuits, or with different topologies of the subcircuit type, to obtain a representative sample, thereby determining the set of performance parameters most relevant to the converted subcircuit type.
[0057] Because different types of subcircuits perform different functions, the subcircuit performance parameters included in a set of subcircuit performance parameters can differ for different types of subcircuits. As an example, a set of subcircuit performance parameters for a current mirror might include current matching, output impedance, operating region, and the width and length of the transistors. The subcircuit performance parameters included in this set of parameters may differ from those included in another set of subcircuit performance parameters associated with the input state subcircuit type. In some cases, if no set of subcircuit performance parameters is defined for a specific subcircuit type, the performance parameters of the electrical components can be used instead of the subcircuit performance parameters.
[0058] Figure 5 Block diagram 500 is an example embodiment of a technique for automating analog and mixed-signal circuit design and verification according to various aspects of this disclosure. The example embodiment illustrated in block diagram 500 provides an overview of exemplary techniques for converting circuit designs from a first process technology to a second process technology, various aspects of which will be discussed in more detail below. An analog circuit can be divided into one or more circuit blocks. These circuit blocks are typically designed to perform a certain function and include one or more sub-circuits. These sub-circuits include one or more electrical components that are structured to operate together, and a set of known sub-circuits can be identified. These known sub-circuits can be some arrangement (e.g., topology) of electrical components known to be sufficiently robust to be used in the circuit for process technologies. Each component of a sub-circuit can be associated with a range of physical parameters. Multiple sets of sub-circuit physical parameters can be identified, each set having a different combination of physical parameters of the electrical components. These known sub-circuits can be modeled for each set of sub-circuit physical parameters, for example, modeled as a netlist used with a circuit simulator. This modeling can be based on a netlist, which is typically a list of electrical components of a circuit and a list of nodes to which each electronic component is connected. At block 502, models of these known sub-circuits can be simulated using circuit simulation software, such as SPICE. Each set of sub-circuit physical parameters can be simulated to identify certain sub-circuit performance parameters associated with a given set of sub-circuit physical parameters for a first process technology. At block 504, the ML model of each sub-circuit of the known sub-circuits (or those supported by a specific embodiment) can be trained to create a set of trained ML models for the process technology. In this embodiment, these trained ML models in ML model library 506 can receive a set of sub-circuit physical parameters of the electronic components of the sub-circuit for the first process technology as input and predict a set of sub-circuit performance parameters for the first process technology as output. These trained ML models can be stored in ML model library 506. In some cases, ML model library 506 can be created once for a process technology and reused as needed.
[0059] Similarly, for the second process technology, a set of trained ML models can be configured to receive a set of sub-circuit performance parameters as input and predict a set of sub-circuit physical parameters for the electronic components of the sub-circuit. As described above, each component of the sub-circuit can be associated with a range of physical parameters, and multiple sets of sub-circuit physical parameters can be identified, each set having different combinations of physical parameters for the electronic components. A set of known sub-circuit models can be modeled for each set of sub-circuit physical parameters, for example, modeled as a netlist. At block 508, each set of sub-circuit physical parameters can be simulated to identify certain sub-circuit performance parameters associated with a given set of sub-circuit physical parameters for the second process technology. At block 510, ML models for each sub-circuit of the known sub-circuit (or those supported by a particular embodiment) can be trained to create a set of trained ML models for the second process technology. In this embodiment, these trained ML models in the ML model library 512 can receive a set of sub-circuit performance parameters for the second process technology as input and predict the sub-circuit physical parameters for the electronic components of the sub-circuit for the second process technology as output. This set of trained ML models may be stored in an ML model library.
[0060] Therefore, this example includes two sets of ML models. The first set of ML models takes the sub-circuit physical parameters for the first process technology and predicts certain sub-circuit performance parameters for a specific sub-circuit. The second set of ML models takes certain sub-circuit performance parameters for a specific sub-circuit and predicts the sub-circuit physical parameters of electrical components for a specific sub-circuit used in the second process technology.
[0061] In this example, the circuit representation 514, such as a netlist describing the circuit, can be resolved at block 516 to identify one or more circuit blocks. At block 518, a circuit block can be resolved to identify its sub-circuits. The type of the sub-circuit can also be identified. At block 520, for each identified sub-circuit, sub-circuit physical parameters for the elements of the sub-circuit are identified and input into an ML model (e.g., stored in ML model library 506) corresponding to the identified sub-circuit for the first process technology to predict certain sub-circuit performance parameters. These predicted sub-circuit performance parameters are then input into a second ML model (e.g., stored in ML model library 512) corresponding to the identified sub-circuit for the second process technology to predict certain sub-circuit physical parameters for the elements of the sub-circuit in the second process technology. At box 522, based on predicted physical parameters of certain sub-circuit components for each sub-circuit, a representation of the sub-circuit, such as a netlist, is created for each identified sub-circuit. The sub-circuits can be connected into circuit blocks, which are then connected to form the overall circuit, thereby converting the original circuit into a new circuit in the second process technology. At box 524, the new circuit can be simulated to verify its conformity to design specifications. If it conforms, a representation of the new circuit can be output at box 526.
[0062] Figure 6 This is a block diagram 600, an example embodiment of techniques for automated analog and mixed-signal circuit design and verification according to various aspects of this disclosure. The example embodiment illustrated in block diagram 600 provides an overview of exemplary techniques for creating new circuits or optimizing existing circuits, various aspects of which will be discussed in more detail below. As combined with... Figure 5The analog circuit discussed can be divided into circuit blocks and sub-circuits. Known sub-circuits can be modeled for multiple sub-circuit physical parameter sets, for example, as a netlist used with a circuit simulator. At block 502, these models can be simulated using circuit simulation software such as SPICE. Each sub-circuit physical parameter set can be modeled to identify certain sub-circuit performance parameters associated with a given sub-circuit physical parameter set for a first process technology. At block 504, ML models of each sub-circuit of the known sub-circuit (or those supported by a particular embodiment) can be trained to create a set of trained ML models for the process technology. In this embodiment, some trained ML models in ML model library 506 can receive a sub-circuit physical parameter set of the electronic components of the sub-circuit for the first process technology as input and predict a sub-circuit performance parameter set as output. Furthermore, other trained ML models in the ML model library can receive multiple sub-circuit performance parameter sets for the first process technology as input and predict a sub-circuit physical parameter set of the electronic components of the sub-circuit for the first process technology as output. These trained ML models can be stored in the ML model library 506.
[0063] At box 516, a circuit block can be identified from the representation of circuit 514. For example, an algorithm attempting to optimize an existing circuit can parse the circuit representation, such as a data object stored as a netlist, to identify the circuit block. As another example, a user attempting to create a new circuit can identify the circuit block 516 they are working with. At box 518, one or more sub-circuits of a circuit block can be identified. For example, an algorithm can parse a circuit block to identify its sub-circuits. As another example, a user can identify the type of sub-circuit they are attempting to design. Users can alternatively or additionally identify other sub-circuits of a circuit block. At box 520, a set of performance parameter values for a sub-circuit can be identified. For example, an algorithm can identify sub-circuit physical parameters for the components of each identified sub-circuit and input these sub-circuit physical parameters into an ML model (e.g., stored in an ML model library 506) corresponding to the identified sub-circuit for a first process technology to predict a set of sub-circuit performance parameters. As another example, a user can identify certain sub-circuit performance parameters for a sub-circuit being created.
[0064] At box 602, one or more subcircuit performance parameters may be provided for optimization. These parameters may be provided along with other subcircuit performance parameters from a set of subcircuit performance parameters. For example, an algorithm may optimize one or more subcircuit performance parameters from a set of subcircuit performance parameters identified at box 520 to help improve the performance of the subcircuit. Alternatively, a set of subcircuit performance parameters identified at box 520 may be provided, for example, to attempt to optimize the subcircuit's topology. As another example, a user may provide a set of subcircuit performance parameters and the identified subcircuit type for a subcircuit being created. In some cases, an indication of the subcircuit type and / or subcircuit topology may also be provided. Alternatively, the subcircuit type may be inferred, for example, based on the subcircuit performance parameters included in a set of performance parameters. In yet another case, the subcircuit may be optimized based on the properties of the elements within the topology, such as the size or number of elements within the topology based on the subcircuit type.
[0065] The topology of a subcircuit refers to the specific arrangement of its electrical components. For a given type of subcircuit, many practical topologies can be used to implement it. For example, Figures 7A-7B The diagram illustrates a set of different topologies for input (or gain) stage sub-circuit types.
[0066] At box 604, the optimized subcircuit can be identified. For example, based on the subcircuit topology and optimized subcircuit performance parameters, new subcircuit physical parameters for the electrical components of the subcircuit can be determined by selecting an appropriate ML model based on the subcircuit topology and inputting the optimized subcircuit performance parameters into the ML model to obtain new subcircuit physical parameters for the subcircuit topology. In some cases, the subcircuit topology of the optimized subcircuit can be the same as the original subcircuit topology. In other cases, the subcircuit topology can be optimized. For example, the optimized subcircuit performance parameters can be input into multiple ML models of the subcircuit type to generate multiple sets of subcircuit physical parameters for multiple subcircuit topologies of the subcircuit type. Then, one of the multiple subcircuit topologies can be selected by an optimization function. This optimization function can be any known optimization technique, such as a cost function, loss function, etc. As an example, the optimization function can select the subcircuit topology based on the minimum number of electrical components whose subcircuit physical parameters are within a certain range, which is selected based on a first process technology for ease of manufacture. At box 524, the newly optimized circuit can be simulated to verify whether the new circuit meets the design specifications. If it meets the design specifications, the representation of the new circuit can be output at box 526.
[0067] In some cases, one or more known subcircuits can be identified. While there are many ways to design a particular set of electrical components to perform the specific purpose of a subcircuit, in practice, there may be a limited number of practical electrical component arrangements (e.g., topologies) that are robust enough for the expected environmental conditions (e.g., temperature range, humidity range, operating voltage, etc.) of a given process technology. Figures 7A-7B The illustration shows an example set 700 of known topologies for input or gain stages of a particular process technology according to various aspects of this disclosure. It is important to note that the set of known topologies 700 is not exhaustive. Rather, the set 700 may include known feasible and / or practically available topologies. In some cases, the set of known topologies 700 for a particular subcircuit may be predetermined, at least in part, based on expert knowledge and / or experience regarding which topologies are feasible and / or practically available.
[0068] In some cases, the known topology set 700 may not be fixed, and additional topologies can be added as needed. For example, these additional topologies can be added manually as additional topologies are identified. In other cases, additional topologies can be identified, for example, by noting the elements and connections of new candidate topologies not previously identified as part of the known topologies, and matching these new candidate topologies with a list of other candidate topologies not previously identified as part of the known topologies. If a match is found, these candidate topologies can be presented to the user. Alternatively, as described above, a set of subcircuit performance parameters can be determined for the candidate topologies using an algorithm. If this set of subcircuit performance parameters matches a set of subcircuit performance parameters for a corresponding type of subcircuit, the candidate topology can be added to the known topology set 700. In some cases, the known topology set can be organized based on different types of subcircuits, or a single known subcircuit set can include topologies for all types of subcircuits.
[0069] Sub-circuit identification
[0070] Figure 8This is a system diagram outlining an overview of technique 800 for designing new analog circuits from existing analog circuits, according to various aspects of this disclosure. In some cases, technique 800 can be implemented in software as one or more software programs, which may include various modules. Although technique 800 is described in the context of embodiments organized with multiple modules, rules, tools, libraries, etc., it is understood that this organization was chosen for clarity, and other embodiments may use different organizations to perform the techniques described in technique 800. In technique 800, the existing analog circuit is described by a first data object representing the original circuit 802. The data object may be a location or region containing values or sets of values stored or in memory. The data object may include an electronic file in a file system, block storage, or any other type of electronic memory that can store data. The original circuit may be a schematic diagram, electrical diagram, netlist, HDL, or any type of circuit representation or design (e.g., circuit design). Furthermore, the original circuit may be a subset of a larger circuit (e.g., an integrated circuit). The first data object representing the original circuit 802 may be a circuit design of any type of electronic representation or circuit. The first data object representing the original circuit 802 may be associated with a first process technology, such as current circuit manufacturing processes. Indications of the current circuit manufacturing process can be obtained in any manner. For example, the indications can be user input and / or extracted from a first data object. In some embodiments, technology 800 can identify the first process technology from a first data object representing the original circuit 802, the circuit design associated with the circuit, circuit blocks in the original circuit, sub-circuits in the original circuit, or one or more electrical components in the original circuit.
[0071] A first data object representing the original circuit 802 may include representations of electrical components and interconnections between them. Therefore, the first data object representing the original circuit 802 describes how the circuit is designed in current process technology. In some cases, the first data object representing the original circuit 802 may be described as one or more netlists, HDLs, or any other electronic representation of the circuit. A netlist is an electronic representation of electrical components in a circuit and the connections between them. In some embodiments, the netlist may also include nodes representing connections between first and second electrical components in the circuit. The netlist may include multiple circuit blocks and may organize the circuit by each circuit block. In some cases, the netlist and the corresponding circuit blocks may be organized into sections that perform a specific task or function. In some embodiments, technology 800 may include elements that identify circuit blocks in the first data object representing the original circuit 802. A circuit block parser 803 may parse the first data object to identify individual circuit blocks. A circuit block may be further parsed by a sub-circuit parser 804 to identify sub-circuits of that circuit block based on a set of sub-circuit parsing rules 806. In other embodiments, technology 800 may use the original circuit represented by the first data object to identify sub-circuits. In some embodiments, the original circuit 802 in the first data object is a circuit block.
[0072] Subcircuit resolution rule 806 may be based at least in part on the electrical components of the subcircuit, the physical parameters of the electrical components, the connection methods of the electrical components in the subcircuit, the purpose of the electrical components, and which other subcircuits or electrical components the identified subcircuit is connected to. In some cases, subcircuit resolution rule 806 may first attempt to identify the subcircuit based on the electrical components and their connections. In the netlist, each electrical component is identified by type (e.g., transistor (such as an NMOS transistor or a PMOS transistor), capacitor, resistor, inductor, or any type of electrical component or device) and its connections (e.g., couplings) are provided. For example, resolution rule 806 may resolve the netlist to group a first electrical component with one or more other electrical components connected to that first electrical component and attempt to match that group of electrical components with a set of known topologies, one example of which is in... Figures 7A-7BAs illustrated, these rules can indicate that if an electrical element is a transistor whose source is connected to another electrical element or sub-circuit, whose drain is connected to another electrical element or sub-circuit, whose gate is connected to another transistor with certain connections, then this defined set of electrical elements constitutes a specific topology for the input or gain stage. In some cases, the roles (e.g., branches, connected diodes, gain stages, cascaded stages, etc.) and physical parameters (e.g., width (W), length (L), W / L ratio, etc.) of the electrical elements can also be considered and recorded. For example, a current mirror sub-circuit block may include a first transistor that is diode-connected and a second transistor that is a current source. Although the first and second transistors belong to the same sub-circuit block, they can play different roles in the sub-circuit block, have different electrical element parameters, and can affect the performance parameters of the block in different ways. This analysis can be repeated with additional electrical elements until only one matching known topology remains or no matching known topology remains. If only one matching topology remains, then the sub-circuit can be identified based on the matching topology. If no matching topology remains, the last added extra electrical component can be discarded. By discarding this last extra electrical component, multiple matching known topologies can remain, and conflict resolution can be performed to determine which of the multiple matching known topologies is the best match. In some embodiments, the netlist can identify one or more subcircuits, and the subcircuit resolution rules can use the netlist's identification of the subcircuits to identify the subcircuits.
[0073] Conflict resolution can take into account the electrical components of a group of electrical components and one or more connections within that group (e.g., inputs and outputs). In some cases, connections between electrical components of a sub-circuit can be considered; if a unique match still cannot be found, connections between electrical components of a sub-circuit and other sub-circuits and / or other electrical components can also be considered. For example, refer to... Figure 3A and 3BThe current mirror 320 can be identified as a current mirror because it includes a pair of transistors 322 connected to ground 326 via a pair of resistors 324. Similarly, the input stage 328 also includes a pair of transistors 330. However, here, this pair of transistors 330 is connected to the power line VDD 332 via other electrical components, making the input stage 328 an input stage. These one or more connections can be compared with connections of multiple matching known topologies to identify the best-matching known topology. In some cases, if no matching known topology is found, the group of electrical components can be flagged for later review and / or the electrical components can be analyzed individually. In some cases, instead of sub-circuit identification, each electrical component is identified individually based on its connections to the components and its role in the functional circuit block.
[0074] Sub-circuit performance parameters
[0075] Once a subcircuit is identified, a set of subcircuit performance parameters can be determined based on that identification. In some embodiments, this set of subcircuit performance parameters can be determined based on the identification functionality of the subcircuit, circuit block, or analog circuit. Figure 9 This diagram illustrates a set of subcircuit performance parameters for certain subcircuits 900 according to various aspects of this disclosure. The performance of a subcircuit can be described by many subcircuit performance parameters, such as transconductance (G). m) Channel conductivity (G) DS The minimum drain-to-source voltage (V) reached by current saturation DSat ), drain current mismatch (I dmm Threshold voltage mismatch (V) tmm ), output impedance (r) o It can be described by factors such as the voltage at the body substrate and the voltage at the drain. In some cases, each type of subcircuit can be associated with a set of subcircuit performance parameters.
[0076] In some embodiments, multiple subcircuit performance parameter sets may be defined according to the type of subcircuit. Specific subcircuit performance parameters included in a subcircuit performance parameter set may differ depending on the type of subcircuit. Some subcircuit performance parameters 904 may be more relevant to a particular subcircuit type than another. For example, while a current mirror may have a certain transconductance value, the transconductance value of the current mirror 902 may be relatively less important to the function of the current mirror 902. Conversely, subcircuit performance parameters 904 more relevant to the function of the current mirror 902, such as channel conductance, minimum drain-to-source voltage reached at current saturation, and Idmm, may be included in a subcircuit performance parameter set for the current mirror. As another example, a subcircuit performance parameter set for a differential pair 906 may include transconductance (G... m ), channel conductivity (G) DS) and threshold voltage mismatch (V tmm The sub-circuit performance parameters 904 for a specific sub-circuit. The sub-circuit performance parameters in a set of sub-circuit performance parameters for a particular sub-circuit can be predetermined. In some cases, the specific sub-circuit performance parameters in a set of sub-circuit performance parameters for a particular sub-circuit can be determined at least in part based on expert knowledge and / or experience. In other embodiments, the relevant sub-circuit performance parameters in a set of sub-circuit performance parameters are dynamically identified by the identified sub-circuit, the function of the identified sub-circuit, the circuit block, the function of the circuit block, the circuit, or the function of the circuit. Furthermore, the relevant sub-circuit performance parameters in a set of sub-circuit performance parameters for a certain type of sub-circuit can vary based on the identified sub-circuit.
[0077] Return to Figure 8 According to various aspects of this disclosure, operational simulation 808 (e.g., operating point simulation) can be performed. For operational simulation 808, the circuit or portions thereof can be simulated in circuit simulation software to determine sub-circuit operating parameters for one or more sub-circuits of the circuit. For example, circuit blocks and / or sub-circuits of the original circuit 802 can be simulated in a circuit simulator, such as a SPICE simulator, to determine sub-circuit operating point information for the sub-circuit. The operating parameters of the sub-circuit may include operating point information and bias point information, referring to the voltage or current (e.g., drain-source voltage (V)) at a specific point of an electrical component without an applied input signal. DS ), gate-source voltage (V gs (e.g.). In some embodiments, operating parameters may include information or parameters corresponding to one or more operating points or bias points of electrical components, subcircuits, circuit blocks, or circuits.
[0078] In some cases, operating parameters can be based on the identified subcircuits. For example, subcircuit operating parameters can be generated for identified subcircuits based on simulations of circuit blocks and / or subcircuits. In some cases, operating parameters can also be generated at the electrical component level. For example, if certain electrical components of the original circuit 808 are not included in the identified subcircuits, operating parameters can be generated for those electrical components. In other cases where electrical components are identified, operating parameters can be generated for the electrical components of the original circuit 808. In some cases, operating parameters can be used by the first circuit technology characterization module 810, together with subcircuit physical parameters (e.g., obtained from a data object) and subcircuit type information, to determine subcircuit performance parameter values for a set of subcircuit performance parameters associated with the identified subcircuit or electrical component for the first process technology associated with the original circuit.
[0079] In some cases, the first circuit process technology characterization module 810 creates, trains, stores, and provides a machine learning model for predicting sub-circuit performance parameters based on operational information and sub-circuit physical parameters. The first circuit process technology characterization module 810 may include a trained machine learning (ML) model 812 in an ML library 506. In some cases, an ML model may be used, having a known topology corresponding to technology 800 configured to operate thereon. The trained ML model 812 may be stored and represented in a data object. The trained ML model 812 may be stored in the ML library 506. The ML library 506 may store and provide access to multiple ML models. In some embodiments, the trained ML model 812 may be any collection of data objects of any type, such as rules, instructions, algorithms, or pattern recognition.
[0080] A ML model 812 504 can be trained based on a set of simulated subcircuits 502. In some cases, the ML model 812 can be trained based on variants of the subcircuits used for a first (e.g., source) process technology. For example, a first subcircuit topology 502 with a known subcircuit topology can be simulated using various subcircuit physical and operating parameters for the first process technology. This simulation can be performed using a circuit simulator, such as SPICE simulation. The simulation generates a set of subcircuit performance parameters corresponding to variants of the subcircuit physical and operating parameters for the first topology in the first process technology. The variants of the subcircuit physical and operating parameters can then be used to train the ML model 504 for the first subcircuit topology to predict the corresponding subcircuit performance parameters for the ML model used in the first process technology. The simulated subcircuit 502 and the results of the simulated subcircuit 502 can be stored and represented in a data object.
[0081] In some cases, ML models 812 can be stored in the ML model library 506. ML models 812 can use various ML modeling techniques, including linear regression models, large margin classifiers (e.g., support vector machines), principal component analysis, tree-based techniques (e.g., random forests or gradient boosting trees), or neural networks. A linear regression model can be an ML model that assumes a linear relationship between the input parameters and the output. A large margin classifier can be an ML model that returns a distance (e.g., margin) between the output and the decision boundary. A support vector machine ML model plots data items in n-dimensional space based on n features of the data input to find a hyperplane that distinguishes the data items into different classes. A principal component analysis ML model creates a matrix showing how the features of a data item relate and determines which features are more important. A random forest ML model creates a large set of decision trees for class predictions of a given data item and generates predictions from this set of decision trees. The most common prediction in the decision tree set is a class prediction. A gradient boosting tree ML model uses a set of linked and hierarchical decision trees, and the predictions are a weighted sum of the predictions made at each level in the decision tree set. Neural network ML models use a set of linked and layered functions (such as nodes, neurons, etc.) that are weighted to evaluate the input data. Neural network ML modeling techniques can include fully connected (each neuron in a layer is connected to every other node in that layer), regularized fully connected (adding a regularization function to a fully connected neural network to help avoid overfitting), and fully connected with culling (removing nodes to simplify the network) and optimizers such as adaptive moment estimation optimizers to augment neural networks (using gradient descent algorithms to reduce the network's data parameters).
[0082] A specific type of subcircuit implemented in a given process technology can be associated with a practical range of subcircuit physical parameters (e.g., physical parameters) and operating parameters for the first process technology. The practical range of the subcircuit physical parameters can be provided, for example, by the user, and the practical range can be based on the limitations of the process technology. For example, a current-mirror subcircuit implemented in the first process technology may have an acceptable range of input reference current (e.g., 10nA-20µA), minimum and maximum transistor widths (e.g., 1µm-100µm) and lengths (e.g., 0.1µm-10µm) for the electrical components of the subcircuit, etc. In other cases, the practical range of the subcircuit can be determined automatically, for example, by analyzing the parameter range associated with the process technology, or by simulating the circuit and / or subcircuit within the parameter range until the circuit and / or subcircuit fails in the simulation, etc. A specific subcircuit topology can then be simulated on the selection of the practical range of the subcircuit physical parameters (e.g., physical parameters) and subcircuit operating parameters to generate subcircuit performance parameters (e.g., performance parameters) associated with the specific subcircuit topology for the first process technology. For example, such as Figure 4As shown, different combinations of sub-circuit physical parameters and sub-circuit operating parameters, such as the W / L ratio of electrical components, input and output currents, impedance, operating region (e.g., conditions), N-type / P-type, etc., can be used to simulate a 502-specific circuit mirror topology to generate sub-circuit performance parameters (e.g., performance parameters) associated with the corresponding physical parameters and corresponding sub-circuit operating parameters. Sub-circuit performance parameters include, but are not limited to, combinations of... Figure 9 The performance parameters of the sub-circuits discussed, such as transconductance (G) m ), channel conductivity (G) DS The minimum drain-to-source voltage (V) reached by current saturation DSat ), drain current mismatch (I dmm Threshold voltage mismatch (V) tmm ), output impedance (r) o Sub-substrate voltage, drain voltage, etc. In some embodiments, sub-circuit parameters (including physical and performance parameters) and operating parameters can be used to simulate the sub-circuit to generate additional sub-circuit performance parameters. Furthermore, in some cases, the combination of sub-circuit physical parameters, sub-circuit performance parameters, and sub-circuit operating parameters is not exhaustive, but rather a combination of sub-circuit physical parameters, sub-circuit performance parameters, and sub-circuit operating parameters is selected and simulated to cover Gaussian and uniform distributions, including those commonly identified in semiconductor manufacturing variations. For example, the operating point can be selected substantially uniformly within the practical range of the sub-circuit physical parameters, with additional operating points selected within the range of the most commonly used (or intended to be used) sub-circuit physical parameters for a given sub-circuit or circuit.
[0083] In some cases, the set of subcircuit physical parameters, subcircuit operating parameters, and generated subcircuit performance parameters generated by simulation can be used to train an ML model corresponding to the simulated subcircuit topology 504.
[0084] Use of ML models
[0085] ML models for specific sub-circuit topologies in a specific process technology can be trained based on sub-circuit physical and operating parameters and the corresponding generated sub-circuit performance parameters. As described above, multiple sets of sub-circuit physical parameters, operating parameters, and corresponding generated sub-circuit performance parameters are obtained within the practical range of sub-circuit physical parameters. These parameter sets can be divided into training sets and test sets. ML model 812 can be trained using the training set, and the training 504 of ML model 812 can be validated using the test set. To train ML model 812, certain parameters can be provided as input parameters to ML model 812, which then makes certain predictions based on the input parameters and compares these predictions with known correct output parameters discovered from simulations. Based on this comparison, ML model 812 can be tuned, for example by adjusting node weights, to allow ML model 812 to make predictions that closely match the known correct output parameters. The ML model training 504 can then be validated by using ML model 812 to make predictions using the test set and then comparing the predictions output by ML model 812 with the known correct outputs associated with the test set.
[0086] Sub-circuit parameters (including sub-circuit physical parameters, sub-circuit performance parameters, and sub-circuit operating parameters) for a specific sub-circuit topology can be used to train the ML model 812 for that specific sub-circuit topology for a first process technology. For example, sub-circuit physical parameters and sub-circuit operating parameters from a simulation of a specific sub-circuit topology can be used as a training set to train the ML model 812 to predict certain sub-circuit performance parameters when provided with a set of sub-circuit physical parameters and sub-circuit operating parameters for a specific sub-circuit topology in the first process technology. The ML model 812 can be tested using a test set to validate the training. For example, the sub-circuit physical parameters and operating parameters of the test set can be input into the ML model 812 to produce predicted sub-circuit performance parameters. These predicted sub-circuit performance parameters are then compared with known sub-circuit performance parameters generated by simulating the sub-circuit using associated sub-circuit physical parameters and operating parameters to verify that the ML model 812 is producing accurate predictions. The techniques used to train the ML model 812 will be discussed in more detail below.
[0087] Once trained, the ML model 812 for a specific subcircuit topology can be stored in the ML model library 506 along with other ML models for other subcircuit topologies for the first process technology. In some cases, the ML model library 506 may include trained ML models for identified subcircuit topologies supported by embodiments of technology 800.
[0088] Given the sub-circuit operating parameters and the sub-circuit physical parameters of the identified sub-circuit for the original circuit 802, the first circuit process technology characterization module 810 can locate the corresponding trained ML model 812 for the identified sub-circuit from the ML model library 506, and use the located ML model to predict certain sub-circuit performance parameters 818 for the identified sub-circuit.
[0089] In some cases, the second circuit process technology characterization module 820 is similar to the first circuit process technology characterization module 810. For example, the second circuit process technology characterization module 820 may also include a trained ML model 822 from the ML library 512. In some cases, an ML model may have a known topology corresponding to the technology 800 configured to operate thereon. The trained ML model 822 may be stored and represented in a data object. The trained ML model 822 may be stored in the ML library 512. The ML library 512 may store and provide access to multiple ML models. In some embodiments, the trained ML model 822 may be any set of rules, instructions, algorithms, or any type of pattern recognition data object. It is understood that the second circuit process technology characterization module 820 may include ML models associated with any number of circuit process technologies. In some cases, the second circuit process technology characterization module 820 may include an ML model associated with the first process technology, for example, to help optimize sub-circuits.
[0090] The ML model 822 can be trained 510 based on a set of simulated subcircuits 508. In some cases, the ML model 822 can be trained based on variants of the subcircuits used for a second (e.g., target) process technology. For example, a first subcircuit topology with a known subcircuit topology can be simulated 508 using various subcircuit physical and operating parameters for the second process technology. This simulation can be performed using a circuit simulator, such as SPICE simulation. The simulation generates a set of subcircuit performance parameters corresponding to each variant of the subcircuit physical and operating parameters for the first topology in the second process technology. The variants of the subcircuit physical and operating parameters can then be used to train 510 the ML model 822 for the first subcircuit topology to predict the corresponding subcircuit performance parameters for the ML model used in the second process technology. The simulated subcircuit 508 and the results of the simulated subcircuit 508 can be stored and represented in a data object. Understandably, for a given process technology, multiple sets of sub-circuit physical parameters, sub-circuit operating parameters, and corresponding generated sub-circuit performance parameters are obtained within the actual range of sub-circuit physical parameters, and the same multiple sets can be used for ML model training 504 or ML model training 510. In some cases, the ML model 822 can be stored in an ML model library 512. The ML model 822 can also use various ML modeling techniques, including linear regression models, large margin classifiers (e.g., support vector machines), principal component analysis, tree-based techniques (e.g., random forests or gradient boosting trees), or neural networks. Specific sub-circuit topologies can be simulated 508 within the actual selection range of certain sub-circuit physical and operating parameters to generate additional sub-circuit performance parameters associated with the specific sub-circuit topology used for a second process technology. The actual range of sub-circuit physical parameters can be provided by, for example, the user, and the actual range can be based on the limitations of the process technology. For example, as shown in Figure 3, a specific circuit mirror topology can be simulated using different combinations of sub-circuit physical parameters and sub-circuit operating parameters, such as the W / L ratio of electrical components, input and output currents, impedance, operating regions (e.g., conditions), N-type / P-type, etc., to generate a set of sub-circuit performance parameters associated with the corresponding sub-circuit physical parameters (e.g., physical parameters and / or operating parameters) for a second process technology. In other cases, the actual range of the sub-circuit can be determined automatically, for example, by analyzing the parameter range associated with the process technology or by simulating the circuit and / or sub-circuit within the parameter range until the circuit and / or sub-circuit fails in the simulation, etc. The sub-circuit physical parameters, operating parameters, and generated sub-circuit performance parameters obtained from the simulation of the specific sub-circuit topology can then be used to train an ML model 510 for the specific sub-circuit topology for the second process technology.For example, the sub-circuit physical parameters, sub-circuit operating parameters, and corresponding generated performance sub-circuit performance parameters generated from the simulated circuit mirror topology can be used as a training set to train an ML model so as to predict the sub-circuit physical parameters and sub-circuit operating parameters when a set of sub-circuit performance parameters for a specific circuit mirror topology in a second process technology is provided.
[0091] The ML model 822 can be trained using a training set, and the training 510 of the ML model 822 can be validated using a test set. To train the ML model 822, certain parameters can be provided as input parameters. The ML model 822 then makes certain predictions based on these input parameters and compares these predictions with known correct output parameters discovered from simulations. Based on this comparison, the ML model 822 can be tuned, for example, by adjusting the node weights, so that the ML model 822 makes predictions that closely match the known correct output parameters. For example, after training, the ML model 812 can predict sub-circuit physical parameters and sub-circuit operating parameters when given a set of sub-circuit performance values for a circuit mirror topology in a second process technology.
[0092] The ML model can be tested using a test set to validate the training. The training can be validated by using the ML model 822 to make predictions on the test set, and then comparing the predictions output by the ML model 822 with known correct outputs associated with the test set. For example, the sub-circuit physical parameters and sub-circuit operating parameters of the test set can be input into the ML model to produce predicted sub-circuit performance parameters. These predicted sub-circuit performance parameters are then compared with known sub-circuit performance parameters generated by simulating the sub-circuit using the associated sub-circuit physical parameters and sub-circuit operating parameters to verify that the ML model is producing accurate predictions.
[0093] Once training is complete, the ML model for that specific sub-circuit topology can be stored together with other ML models for other sub-circuit topologies used for the second process technology in a set of trained ML models 822 (e.g., another ML model library). In some cases, this set of trained ML models 822 may include trained ML models for each identified sub-circuit. In some cases, model library 812 and another model library 822 may be combined into a single model library.
[0094] As described above, sub-circuit parameters (including sub-circuit physical parameters, sub-circuit performance parameters, and sub-circuit operating parameters) for a specific sub-circuit topology of the second process technology can be used to train an ML model 822 for that specific sub-circuit topology. For example, certain sub-circuit performance parameters can be used as a training set to train an ML model 812 to predict certain other sub-circuit physical parameters and sub-circuit operating parameters. The ML model 812 can be tested using a test set to validate the training. For example, the predicted other sub-circuit physical parameters and sub-circuit operating parameters are then compared with known sub-circuit physical parameters and operating parameters used to simulate the sub-circuit to generate sub-circuit performance parameters, validating that the ML model 822 is producing accurate predictions for the specific sub-circuit topology. Once trained, the ML model 822 for the specific sub-circuit topology can be stored in an ML model library 512 along with other ML models for other sub-circuit topologies of the second process technology. In some cases, the ML model library 512 may include trained ML models for identified sub-circuit topologies supported by embodiments of technology 800.
[0095] Therefore, given the sub-circuit performance parameters for the identified sub-circuit of the original circuit represented by data objects, the second circuit technology characterization module 820 can locate the corresponding trained ML model 822 for the identified sub-circuit from the ML model library 512, and use the trained ML model 822 to predict 828 the sub-circuit physical parameters and / or operating parameters for the identified sub-circuit. Once a set of sub-circuit physical parameters is determined for the elements of the identified sub-circuit, the data object representation of the identified sub-circuit is converted into a second process technology using this set of sub-circuit physical parameters for the corresponding elements of the sub-circuit. For example, a netlist for the converted sub-circuit can be generated using the determined sub-circuit physical parameters.
[0096] The formatting tool 830 can correct formatting, connection plotting, and / or mapping problems that may occur during the conversion process. In some cases, the formatting tool 830 can extract certain formatting, connection, and / or mapping information from the original circuit design to correct the converted data object (e.g., netlist). In some cases, the netlist can be connected to or attached to another netlist, such as a converted version of the netlist for circuit blocks and other circuit blocks, if needed, to output a data object representing the new circuit 832 for the second process technology. In some cases, the converted subcircuits, converted circuit blocks, and / or new circuits in the data object representing the new circuit 832 can be simulated, for example, in a circuit simulator, to verify that the performance of the new circuits in the data object representing the new circuit 832 is within a certain performance range of the original circuit 802. This performance range can vary depending on the intended purpose of the new circuit 832 and can be defined in various ways, such as by a circuit designer, engineer, etc. As an example, a new control circuit can be tested to ensure that the new control circuit has an output voltage or current within a certain range, such as a percentage of a target voltage / current for a given input setting.
[0097] As described above, trained ML models can be stored in an ML model library for use with various process technologies. An ML model library can refer to any number of data structures, objects, or procedures used to organize, store, and / or retrieve ML model libraries from non-transitory data storage media. For example, ML libraries 506 and 512 can be logical ML libraries within a single ML library (not shown), which includes multiple ML libraries associated with various process technologies. In some cases, these ML model libraries can also be used as part of the design of new analog circuits. For example, an analog chip designer might want a specific sub-circuit with certain sub-circuit performance parameters. Instead of manually determining the physical parameters of each electrical component of the sub-circuit, a trained ML model corresponding to the specific topology of the sub-circuit can be selected from the ML model library. The sub-circuit performance parameters can be provided to the selected trained ML model, and the appropriate sub-circuit physical parameters can be determined by the selected trained ML model.
[0098] In some cases, one or more techniques can be used to select trained ML models from a library of ML models. For example, since executing a trained ML model is generally much faster than training an ML model, a given set of subcircuit performance parameters can be provided to any number or all of the trained ML models in the library corresponding to the selected subcircuit type. A trained ML model corresponding to a certain topology of the selected subcircuit can then be selected from among the trained ML models capable of producing appropriate subcircuit physical parameters. For example, the selected trained ML model could correspond to a trained ML model with the fewest electrical components for the provided physical parameters. As another example, by providing appropriate subcircuit parameters, such as subcircuit performance parameters, to the ML model library (or the logic associated with the ML model library), the ML model library can be used to select a specific topology for the subcircuit. The subcircuit type can be provided, or it can be inferred based on, for example, the specific subcircuit performance parameters provided. Various (or all) ML models for different topologies associated with the subcircuit type can then be run using the provided subcircuit performance parameters to determine a set of topologies that might be suitable for the subcircuit type. A specific topology for that subcircuit type can then be selected from that set of topologies. In some cases, this selection can be made by the user. In other cases, one or more topologies for that sub-circuit type can be selected or suggested to the user. For example, a selection or suggestion can be provided based on an analysis of a set of topologies for the sub-circuit, considering factors such as complexity, cost functions associated with various physical parameters, and overall size.
[0099] In the example discussed above, physical parameters can be used by the ML model of the first ML library 506 to predict sub-circuit performance parameters for a specific sub-circuit designed for the first process technology. These sub-circuit performance parameters can then be used by the ML model of the second ML library 512 to generate sub-circuit physical parameters for a specific sub-circuit designed for the second process technology. Thus, each ML library is associated with a specific process technology. Using different ML libraries for each process technology facilitates various scenarios, such as converting a circuit from one process technology to another, designing a circuit where some parts use one process technology and others use another, searching among many process technologies to determine which is best suited for a particular circuit (e.g., in terms of cost, performance, etc.), and so on. In some cases, such as when this flexibility is not required, a single ML model can be used instead of the first and second ML models, which is trained to directly convert the sub-circuit physical parameters of a sub-circuit in the first process technology to the sub-circuit physical parameters of a sub-circuit in the second process technology.
[0100] Understandably, while we are discussing a sub-circuit, other sub-circuits, such as electrical components, can also be simulated within the range of the sub-circuit's physical parameters to predict the performance parameters of similar sub-circuits, which can then be used to train the ML model of the sub-circuit.
[0101] Example ML model
[0102] Figure 10 This is an example of a neural network ML model 1000 illustrated according to various aspects of the present disclosure. In some embodiments, modeling an analog circuit with an ML model can be performed using sub-circuit parameters (e.g., features) as input parameters to the ML model. In alternative embodiments, modeling an analog circuit with an ML model can be performed using sub-circuit physical parameters as parameters of the ML model. The example neural network ML model 1000 is a simplified example given to aid in understanding how such a neural network ML model 1000 is trained. It will be understood that each implementation of the ML model can be trained or tuned in different ways, depending on various factors, including but not limited to the type of ML model being used, the parameters being used in the ML model, the relationships between the parameters, the desired training speed, etc. In this simplified example, the sub-circuit physical parameter values of W and L are parameter inputs 1002 and 1004 of the ML model 1000. Each layer (e.g., first layer 1006, second layer 1008, and third layer 1010) includes multiple nodes (e.g., neurons) and generally represents a set of operations performed on the parameters, such as a set of matrix multiplications. For example, each node represents a mathematical function that takes the output and weights from the previous layer as input (except for node 1006 in the first layer). These weights are typically adjusted during ML model training and fixed after training. The specific mathematical function of a node can vary depending on the implementation of the ML model. While the current example handles three layers, in some cases, the ML model can include any number of layers. Generally, each layer transforms M input parameters into N output parameters. The parameter inputs of the first layer 1006 are used as inputs to the second layer 1008, which has a set of connections. Since each node in a layer (such as the first layer 1006) outputs to each node in a subsequent layer (such as the second layer 1008), the ML model 1000 is a fully connected neural network. Other embodiments may utilize partially connected neural networks or another neural network design that does not connect each node in a layer to each node in a subsequent layer.
[0103] In this example, the first layer 1006 represents a function based on a set of weights applied to the input parameters (e.g., input parameters 1002 and 1004) to generate the output from the first layer 1006 to the second layer 1008. Different weights can be applied to the subsequent layers for each input received from the nodes of the previous layer. For example, for the node in the second layer 1008, this node applies weights to the input received from the nodes of the first layer 1006, and this node can apply different weights to the input received from each node of the first layer 1006. The node computes one or more functions based on the received inputs and their corresponding weights, and outputs a number. For example, the node can use a linear combination function that multiplies the input values from the nodes of the previous layer by their corresponding weights, sums the results, and adds a non-linear activation function as a lower bound for the resulting number to be used as the output. It is understood that any known weighting function can be applied to this node within the scope of this disclosure. The output number can be fed into subsequent layers, or if the layer is the final layer, such as the third layer 1010 in this example, the number can be output as a result (e.g., an output parameter). In some cases, the function applied to the nodes of a layer can differ between layers. The weights applied to a node can be adjusted during training based on a loss function (which describes how accurately the neural network's predictions compare to the expected results), an optimization algorithm (which helps determine the weight settings adjustment based on the loss function), and an error backpropagation algorithm (which applies the weight adjustments back through the layers of the neural network). Any optimization algorithm (such as gradient descent, mini-batch gradient descent, stochastic gradient descent, adaptive optimizer, momentum, etc.), loss function (such as mean squared error, cross-entropy, maximum likelihood, etc.), and error backpropagation algorithm (such as static or recursive backpropagation) can be used within the scope of this disclosure.
[0104] Some ML models, such as neural networks, can include hyperparameters. Hyperparameters of an ML model refer to parameters that control the operation of the ML model and cannot be obtained through training, such as the number of nodes in a layer, the number of layers, and the learning rate.
[0105] Enhanced ML modeling techniques
[0106] As mentioned above, since various types of subcircuits can have diverse topologies, it may be helpful to enhance ML modeling techniques to efficiently generate ML models for these topologies and subcircuits. Generating ML models that accurately predict the parameters of analog and hybrid circuits can be challenging because analog and hybrid circuits can react in a highly nonlinear manner to changes in the physical parameters of electrical components. Furthermore, modeling this behavior using current ML modeling techniques, such as modeling it as a neural network ML model, may require significant training time and / or manual tuning of model parameters to achieve the desired accuracy. This, in turn, can make the batch generation of ML models challenging. To help simplify the creation of batch ML models, the creation of ML models can be enhanced by including interaction parameters as input parameters in the ML model and using threshold step selection to reduce the dimensionality of the input parameters.
[0107] In some cases, the characteristics of the manufacturing process can affect the behavior of analog circuits. To help address this issue, one or more process technology parameters describing the behavior of the process technology can be included as input parameters to the ML model. Examples of such process technology parameters may include oxide thickness, channel doping concentration, electron mobility, etc.
[0108] To further aid in addressing nonlinear problems, parameter interactions, such as interaction parameter 1012, can be added as input parameters to the ML model 1000. Interaction parameters represent, for example, one or more functions that describe how different input parameters interact together. For example, the function A*B can have input parameters A and B. An interaction parameter C can be created, where C = A*B, which would represent how the model responds to changes based on the product of parameters A and B. As another example, an interaction parameter D can be created where... This indicates how the model responds to changes based on the square root of the product of parameters A and B. As an example, the input parameters of an ML model could be based on an equation used to determine the transconductance of a CMOS transistor. In this example, the ML model... It can have input parameters, making The input parameters represent the electrical component width, electrical component length, temperature, N-channel doping concentration, oxide layer thickness, electrical component drain current bias, and drain-source voltage of the electrical component, respectively. A known nonlinear parameter interaction is a first-order equation for transconductance. Parameter interaction It can be determined from the input parameter data of W, L, and ID, and used as the input parameter. Provided to the ML model as input parameters and Adding non-linear interactions as input to an ML model helps to provide known interactions in advance, which can help reduce the amount of training required for the ML model.
[0109] In some embodiments, attempts are made to characterize nonlinearity based on circuit theory, such as by including known circuit theory equations (e.g., first-order equations for transconductance), which can introduce higher-order interaction terms and increase dimensionality (e.g., the number of parameters input to the ML model). Dimensionality reduction can be performed to help reduce the number of parameters input to the ML model. If it is determined that these parameters do not affect the model's behavior, then dimensionality reduction removes the parameters that are input to the ML model. Dimensionality reduction can help reduce the number of variables, identify the optimal set of parameters to input to the ML model, and / or help reduce the processing time of the ML model. In some cases, dimensionality reduction can be performed using a threshold ladder selection.
[0110] Threshold step selection
[0111] Threshold-step selection helps establish higher-order parameter interactions by iteratively examining the interactions of input parameters in a stepwise manner, determining the importance of these interactions to model behavior, and removing any interactions that do not meet the threshold. In this way, higher-order interactions can be identified while minimizing the dimensionality of the ML model. Figure 11 The illustration shows a series of ML model parameters for threshold step selection 1100 according to various aspects of this disclosure. Threshold step selection begins with an initial parameter set 1102. In this example, the variables A, B, C, and D of the initial set 1102 represent general input parameters of the ML model (e.g., sub-circuit physical parameters, sub-circuit performance parameters, constants, parameters describing the process technology, etc.), such that the result R of the ML model is a function of A, B, C, and D: In some cases, R can represent the expected outcome of the ML model of a sub-circuit modeled by the ML model (e.g., sub-circuit physical parameters or sub-circuit performance parameters). The initial parameter set 1102 may also include interaction parameters 1012. In the first step, the first parameter can interact with each of the other parameters to generate a second parameter set 1104. This interaction as parameters can be based on mathematical functions of nodes in the ML model. For example, suppose... Figure 10If the general parameter A represents input parameter 1002 and B represents input parameter 1004, then AB can represent the interaction corresponding to the function applied to input parameters 1002 and 1004 in the second layer 1008 of the ML model 1000, excluding weights. Therefore, higher-order parameter values represent interaction values obtained from the component parameters. For example, assuming the interaction is multiplication, if A=2 and B=3, then AB=6. If C=4, then ABC=24. If A is an equation, such as a known circuit theory equation, the equation can be evaluated to obtain a value, and this value can be used for the interaction.
[0112] In this example, parameter A interacts with parameters B, C, and D to generate parameters AB, AC, and AD, as shown in the second parameter set 1104. Thus, R in the second parameter set 1104 will correspond to... Although parameter A is interacted in this example, it can be understood that any parameter of the initial set 1102 can interact with other parameters of the first set 1102. In some cases, the interaction can be based on a mathematical function applied between parameters as nodes in a neural network. Linear regression can then be performed on the parameters of the second set 1104. Linear regression is a linear function that attempts to model the relationship between the parameters of the second set 1104, and the result of the linear regression can be compared with the expected result of the ML model (e.g., determined by circuit simulation of the sub-circuit topology modeled by the ML model). Statistically significant values (e.g., null hypothesis tests) can be used to determine statistical significance values (e.g., null hypothesis P-values) to predict the contribution of each parameter of the second parameter set 1104 to the linear regression result. This statistically significant value can then be compared with a threshold defined for statistical significance. The threshold for statistical significance can be determined as a fixed value as input to a threshold ladder selection algorithm, or the threshold can be determined using known techniques such as Bayesian hyperparameter optimization. Bayesian hyperparameter optimization is a technique used to determine the hyperparameters of an ML model. Hyperparameters of an ML model refer to parameters that control the operation of the ML model. These parameters cannot be obtained through training, such as the number of nodes in a layer, the number of layers, and the learning rate. In this example, the hyperparameter to be optimized can be a statistically significant threshold. In the third step, parameters that do not meet the statistically significant threshold, in this example, parameters C, AB, and AC of the second parameter set 1104, can be discarded.
[0113] In the fourth step, steps one through three can be repeated for each parameter of the initial parameter set 1102 to obtain a fourth parameter set 1110. For example, the second parameter of the initial set 1102 can interact with the parameters of the second set 1104 (excluding parameters that do not meet a statistically significant threshold). This interaction can be substantially similar to those performed to generate the second parameter set 1104. Linear regression can be performed on the parameters of the third set 1106 in a manner substantially similar to that performed on the second parameter set 1104, and parameters that do not meet a statistically significant threshold, in this case, parameters BA and BAD of the third parameter set 1106, can be discarded. This interaction / linear regression / discarding of parameters can be repeated for each parameter of the initial set 1102 to obtain parameters resulting from a round of stepwise threshold selection, such as the fourth parameter set 1110. In some cases, this step iterates over all parameters of the initial parameter set 1102, even if subsequent steps have determined that the parameter is not important in the modeling problem. Even if the parameter alone does not contribute to the model results, its interaction with other parameters can be significant. When navigating through the interaction loop, including all parameters in the initial parameter set 1102, regardless of their individual importance, helps ensure that no important interactions of any parameter are lost.
[0114] The parameters obtained in the fourth set 1110 can be compared with the expected results (e.g., obtained via circuit simulation) to determine the accuracy of the parameters obtained in the fourth set 1110. If the accuracy meets a threshold accuracy value, then the fourth parameter set 1110 can be used as input parameters for the ML model of the sub-circuit. The threshold accuracy value can be determined in any way, such as through experimentation, experience, etc.
[0115] In step five, if the accuracy does not meet the threshold accuracy value, steps one through four can be repeated by interacting the initial parameter set 1102 with the obtained parameters (such as the parameters of the fourth parameter set 1110) until the threshold accuracy value is met by the obtained parameters from a round of threshold step selection, such as the final parameter set 1108. Doing so may result in higher-order interactive parameters, such as the interactive parameters CBD and ABCD in the final set 1108 in this example. In some cases, the number of repetitions in this fifth step can be limited, for example, based on a predetermined number of rounds, if the accuracy of the obtained parameters stops increasing, if the parameters of the obtained parameters do not change, etc. It is worth noting that in this example, higher-order parameters can be generated by interactive parameters (e.g., ...). Figure 11The interaction parameters are represented by multiple letters (parameters in the figure). As shown, threshold ladder selection allows for the development of higher-order parameters while still limiting the total number of parameters through dimensionality reduction. The final parameter set 1108 determined by the threshold ladder selection step represents the set of parameters that are most statistically significant for the sub-circuit being modeled. By using the parameters that are determined to be most statistically significant by the threshold ladder selection step as a starting point (e.g., as initial parameters input into the ML model), the amount of time required to train the ML model to achieve a certain level of accuracy can be reduced.
[0116] In some cases, if the desired threshold accuracy value cannot be achieved through threshold ladder selection, it can be applied in conjunction with a stacked model to help improve accuracy. The stacked model uses information derived from the initial model, such as the final parameter set 1108 output from the threshold ladder selection, as input to help guide subsequent modeling techniques. For example, if the desired threshold accuracy value is not achieved after applying a predetermined number of rounds of threshold ladder selection, the parameters selected during the final round of threshold ladder selection can be used as input to an ML model, such as a neural network trained on sub-circuit physical parameters and simulated sub-circuit performance parameters. This ML model can then be further tuned using any known ML tuning techniques. For example, Bayesian hyperparameter optimization can also be applied to the ML model to tune its hyperparameters. Bayesian hyperparameter optimization is a technique for determining the hyperparameters of an ML model based on a probabilistic model of how hyperparameters affect the accuracy of the ML model, since different hyperparameters are tuned based on validation scores. The validation score can be determined by tuning the hyperparameters of the ML model, training the ML model to generate predictions with the tuned hyperparameters, and evaluating these predictions against the expected results.
[0117] Figure 12This is a flowchart illustrating a technical overview of an analog circuit 1200 designed according to various aspects of this disclosure. At block 1202, a data object representing a circuit for a first process technology can be received. This circuit includes a first sub-circuit, which includes a first electrical element and a second electrical element arranged in a first topology. For example, the analog circuit can be described as a netlist, which is a list of electrical elements and their connections. At block 1204, the first sub-circuit can be identified in the data object by comparing the first topology with a stored topology associated with the first process technology. For example, a functional circuit block can be part of an analog circuit representing a set of circuits performing functions such as amplifying signals, comparing two signals, creating clock signals, etc., and the functional circuit block can be located by the boundaries of functions in the netlist, such as the start and end of a function. The netlist can be parsed to locate these functional circuit blocks. A functional circuit block includes one or more sub-circuits. A sub-circuit can consist of one or more electrical elements that collectively perform a specific purpose within the functional circuit block. The number of electrical elements capable of actually performing the purpose of a sub-circuit may be relatively limited. The arrangement of these electrical components can be predetermined, for example, based on chip design experience, and pre-determined as a set of predetermined sub-circuits. In some cases, this set of predetermined sub-circuits may not be exhaustive and may include sub-circuits that are more likely to be found in analog circuits. In some cases, the first sub-circuit can be identified based on a set of rules. In some cases, these rules may be based at least in part on the connections of the first sub-circuit.
[0118] At box 1206, subcircuit physical parameter values associated with the first and second electrical components of the first subcircuit are identified. For example, a netlist may include physical parameters associated with the electrical components of the circuit. Furthermore, operating point simulation can be used to obtain the operating parameters of the subcircuit. At box 1208, a set of subcircuit performance parameter values for the first subcircuit is determined based on a first machine learning (ML) model of the first subcircuit and the identified subcircuit physical parameters. For example, different types of subcircuits may be associated with different sets of performance parameters. Examples of performance parameters include transconductance, channel conductance, minimum drain-to-source voltage, threshold voltage mismatch, etc. In some cases, the performance parameter values of a set of physical parameters associated with the identified first subcircuit may be determined based on a first ML model of the identified subcircuit. For example, the physical parameters associated with the identified first subcircuit may be input into a first trained ML model of the identified subcircuit for a first process technology to determine the performance parameter values for the identified first subcircuit.
[0119] At block 1210, the identified first subcircuit is converted into a second subcircuit for the second process technology based on the determined set of subcircuit performance parameter values. For example, a second ML model can be selected based on the type of the identified first subcircuit. The second ML model can be configured to determine a set of second subcircuit physical parameters associated with the third and fourth electrical components of the second subcircuit based on the second ML model for the second process technology and the set of subcircuit performance parameter values, and associate the subcircuit physical parameters in the second subcircuit physical parameter set with the third and fourth electrical components of the second subcircuit. For example, performance parameters can be input to a second trained ML model for the identified subcircuit for the second process technology to determine the physical parameter values of the electrical components of the second subcircuit for the second process technology. In some cases, the first and second trained ML models can be neural networks. A netlist for the second subcircuit in the second process technology can then be determined based on the physical parameter values. At block 1212, the converted second subcircuit can be output. For example, the netlist of the second subcircuit can be output. In some cases, the second process technology includes a second semiconductor manufacturing process with smaller circuit electrical components compared to the first process technology for analog circuits. For example, a second process technology can be associated with smaller transistor sizes compared to a first process technology. In some cases, the second sub-circuit can be verified based on circuit simulation of the second sub-circuit and the performance parameters associated with the first sub-circuit. For example, the output netlist can be simulated on a circuit simulator to verify that the performance parameters of the second sub-circuit are within the threshold range of the performance parameters associated with the first sub-circuit.
[0120] Figure 13This is a flowchart illustrating a technical overview of an analog circuit 1300 designed according to various aspects of this disclosure. At block 1302, a data object representing a circuit is received, the circuit including sub-circuits, the sub-circuits including first electrical elements and second electrical elements, the first and second electrical elements being arranged in a first topology. For example, the analog circuit can be described as a netlist, the netlist including one or more circuit blocks. Each of these circuit blocks includes one or more electrical elements, such as transistors, resistors, capacitors, inductors, diodes, etc., of the circuit block. At block 1304, a set of stored topologies is received. For example, a trained ML model library including trained ML models for known sub-circuits can be stored in memory storage, and the library can be accessed from the memory storage. At block 1306, the first electrical element, the second electrical element, and the connection between the first and second electrical elements can be identified. For example, the first electrical element of a functional circuit block can be identified based on a set of predefined electrical element types stored in memory storage. For example, the electrical element plays a specific role within the functional circuit block, and the role of the first electrical element can be determined based on which other electrical elements the first electrical element is connected to. This function, along with the type of electrical component, can be used to identify a first electrical component from a predetermined set of electrical components. In some cases, the first circuit can be identified based on a set of rules. At block 1308, the coupling between the first and second electrical components is determined based on the connections of the first electrical component. For example, a netlist may include a description of the connections between electrical components, and this description can be parsed to determine the connections between electrical components. Parsing can be performed using a set of rules. In some cases, the rules of the parsing rule set may be based at least in part on the identification type of the first electrical component, the connections of the first electrical component, and the identification type of the second electrical component. As an example, this rule set may describe the possible connections of the electrical components and map these connections to various sub-circuit types or topologies. In some cases, the rules of the parsing rule set may be based at least in part on the physical parameters of the first and second electrical components.
[0121] At box 1310, a first topology is determined based on a comparison between the identified first electrical element, the identified second electrical element, the coupling between the determined first and second electrical elements, and the topology of the stored topology set. At box 1312, the identified first topology can be output. For example, the identified topology can be output for one or more ML models to predict sub-circuit performance parameters or sub-circuit physical parameters. In some cases, based on comparison, it is determined that multiple topologies in the stored topology set can match. In this case, a third electrical element and its connections can be identified, and based on the connections of the third electrical element, the coupling between the third electrical element and the first or second electrical element is determined. The first topology is identified by comparing the topology of the stored topology set with the identified first electrical element, the identified second electrical element, the identified third electrical element, the coupling between the determined first and second electrical elements, and the coupling between the identified third electrical element and the first or second electrical element. For example, if multiple matches are found between a set of electrical components and topologies in a known set of topologies, the set of electrical components can be expanded to include additional electrical components coupled to the current electrical components in that set. The expanded set of electrical components can then be used to perform matching with the known set of topologies again.
[0122] Figure 14 This is a flowchart illustrating techniques for identifying sub-circuit 1400 according to various aspects of this disclosure. At block 1402, a data object representing a circuit for a process technology is received, the circuit including a first sub-circuit, and the first sub-circuit including a first electrical element and a second electrical element arranged in a first topology. For example, an analog circuit can be described as a netlist including one or more circuit blocks. A functional circuit block includes one or more sub-circuits. A sub-circuit can consist of a set of electrical elements that collectively perform a specific purpose in the functional circuit block. At block 1404, the first sub-circuit in the circuit is identified by comparing the first topology with a stored topology associated with a first process technology. For example, there may be a relatively limited number of arrangements of electrical elements capable of actually performing the purpose of the sub-circuit. The arrangement of these electrical elements can be predetermined, for example, based on chip design experience, and predetermined as a set of predetermined sub-circuits. In some cases, this set of predetermined sub-circuits may not be exhaustive and may include sub-circuits that are determined to be more likely to be found in an analog circuit. The first sub-circuit can be compared with this set of predetermined sub-circuits.
[0123] At box 1406, a first set of physical parameter values associated with the first and second electrical components of the first sub-circuit is identified. For example, a netlist may include physical parameters associated with the electrical components of the circuit. Furthermore, operating point simulation can be used to obtain the operating parameters of the sub-circuit. At box 1406, a set of performance parameter values for the first sub-circuit is determined based on a first machine learning (ML) model of the first sub-circuit and the identified set of physical parameter values. For example, different types of sub-circuits may be associated with different sets of performance parameters. Examples of performance parameters include transconductance, channel conductance, minimum drain-to-source voltage, threshold voltage mismatch, etc. In some cases, performance parameter values for a set of physical parameters associated with the identified first sub-circuit may be determined based on a first ML model of the identified sub-circuit. For example, physical parameters associated with the identified first sub-circuit may be input into a first trained ML model of the identified sub-circuit for a first process technology to determine the performance parameter values of the identified first sub-circuit. At box 1408, based on the determined set of performance parameter values, the identified first sub-circuit is converted into a second sub-circuit for process technology, the second sub-circuit having a third and fourth electrical element arranged in a second topology. In some cases, the type of the first sub-circuit is identified based on the connection between the first and second electrical elements. The determined set of performance parameter values is input into one or more ML models for identifying the first sub-circuit of the identified type for process technology. One or more sets of physical parameter values corresponding to one or more topologies associated with the type of the first sub-circuit are received. A second topology is selected from one or more topologies. In some cases, the selection of the second topology is based on an optimization function. This optimization function may be based on the number of electrical elements in one or more topologies. In some cases, the optimization function is based on physical parameter values corresponding to one or more topologies. Physical parameter values in a set of physical parameter values corresponding to the selected second topology are associated with the third and fourth electrical elements.
[0124] Figure 15This is a flowchart illustrating techniques for designing circuit 1500 according to various aspects of this disclosure. At block 1502, an indication of a sub-circuit type and a set of sub-circuit performance parameter values can be received. For example, a user can provide an indication of the sub-circuit type and one or more sub-circuit performance parameter values for that sub-circuit type. At block 1504, a sub-circuit topology can be determined based on the sub-circuit type and the set of sub-circuit performance parameter values. For example, a specific sub-circuit topology for a sub-circuit type can be provided, and an ML model for that sub-circuit type can be identified. As another example, sub-circuit performance parameter values can be provided to multiple sub-circuit ML models corresponding to the sub-circuit type. This set of sub-circuit ML models and their corresponding sub-circuit topologies can be obtained from an ML model library. Sub-circuit performance parameter values can be input into the sub-circuit ML models in this set of sub-circuit ML models to determine the corresponding sub-circuit physical parameters for the sub-circuit topology corresponding to the sub-circuit ML model. In some cases, if the sub-circuit physical parameters for the sub-circuit topology cannot be determined for the sub-circuit performance parameters, then the sub-circuit topology can be deleted from the set of sub-circuit topologies. The optimization function can then be applied to the sub-circuit topologies in the sub-circuit topology set to select a sub-circuit topology. This optimization function can be any known optimization technique, such as a cost function, loss function, etc. As an example, the optimization function can select a sub-circuit topology based on the minimum number of electrical components whose sub-circuit physical parameters are within a certain range, chosen based on a first process technology for ease of manufacture.
[0125] At box 1506, a set of physical parameter values for a sub-circuit is determined based on a first machine learning (ML) model of the sub-circuit topology and a set of sub-circuit performance parameter values. In some cases, this set of physical parameter values can be determined as part of determining the sub-circuit topology. At box 1508, a data object representing the sub-circuit is generated based on the determined set of physical parameter values and the determined sub-circuit topology. For example, a netlist representation of the sub-circuit can be generated using the determined sub-circuit topology and the determined sub-circuit physical parameter values. At box 1510, the data object is output.
[0126] Figure 16This is a flowchart illustrating techniques for designing circuit 1600 according to various aspects of this disclosure. At block 1602, a first set of sub-circuit physical parameters for electrical components of a sub-circuit is received, along with an indication of a first process technology. For example, physical parameters for the electrical components of the first sub-circuit and a description of how these electrical components are connected may be received, as well as information about the process technology associated with the first sub-circuit. In some cases, a set of performance parameters indicating which performance parameters might be applicable to the first sub-circuit may also be received. At block 1604, a first variation of the sub-circuit physical parameters for the electrical components of the structured sub-circuit is determined, the first variation including at least one sub-circuit physical parameter that differs from the sub-circuit physical parameters in the first set of sub-circuit physical parameters. In some cases, determining the set of variations of the physical parameters for the electrical components of the sub-circuit includes determining the variation of the physical parameters for the electrical components based on the actual range of physical parameter values for the first process technology. At block 1606, the first variation of the sub-circuit physical parameters in the first process technology is simulated to generate a set of first sub-circuit performance parameter values associated with the first variation. For example, for a specific subcircuit, a set of physical parameter values can be generated by simulating the specific subcircuit with a set of physical parameter values. The physical parameter values in these sets can vary within the range of actual values associated with the corresponding physical parameter values. In some cases, the variation set of physical parameters is identified to reveal the nonlinear behavior of the subcircuit. In other cases, the variation set of physical parameters of the subcircuit can be simulated using a SPICE (Special Programming Interface) circuit model of the subcircuit.
[0127] At box 1608, a machine learning (ML) model for a structured subcircuit is trained based on a set of variations, including a first variation for a first process technology and a set of physical parameters for the subcircuit associated with the first variation. In some cases, the ML model for the subcircuit includes one of linear regression, large margin classifier, principle component analysis, tree-based, or neural network machine learning models. In some cases, training the ML model includes identifying a set of parameters used as input to the ML model. In some cases, the set of parameters used as input to the ML model is based on one of the following: a set of physical parameters or generated performance parameters and one of the following: one or more parameters associated with a first process technology or one or more parameters associated with a second process technology. At box 1610, trained ML models are stored. In some cases, the library of trained ML models includes trained ML models for each subcircuit of a predetermined set of subcircuits. In some cases, in the library of trained ML models, each trained ML model is associated with a specific subcircuit, and each trained ML model may differ from other trained ML models in the library of trained ML models.
[0128] Figures 17A-17B This is a flowchart illustrating techniques for circuit modeling 1700 according to various aspects of the present disclosure. At block 1702, an initial parameter set is received, which is associated with a sub-circuit. For example, a set of sub-circuit performance parameters or a set of sub-circuit physical parameters for an ML model of the sub-circuit may be received. At block 1704, a first parameter of the initial parameter set interacts with other parameters in the initial parameter set to generate a set of interacting parameters. For example, the first parameter may interact with another parameter in the parameter set to generate interacting parameters. At block 1706, the interacting parameters are added to the initial parameter set to generate a candidate parameter set. For example, interacting parameters may be added to the parameter set. At block 1708, a linear regression may be performed on the parameters of the candidate parameter set against a set of expected parameter values to determine predicted values for the parameters of the candidate parameter set. For example, the linear regression attempts to model the relationship between the parameters and the expected results of the ML model, and a statistical significance test may be applied to the results of the linear regression to determine statistically significant values for the parameters of the parameter set. In some cases, the linear regression equation may be based on Taylor series regression.
[0129] At box 1710, parameters of the candidate parameter set are removed based on a comparison between predicted values and predetermined prediction thresholds. For example, the statistical significance of the parameters in the parameter set can be compared to predefined thresholds, and parameters that do not meet the predefined thresholds can be removed from the parameter set. In some cases, statistical p-values can be compared to a minimum p-value, and variables with p-values less than the minimum p-value can be removed from the candidate set. In each round, multiple variables can be removed from the candidate variable set. At box 1712, the accuracy of the candidate parameter set can be determined based on the expected set of parameter values. For example, a candidate parameter set can be compared to the expected results to determine accuracy. Predicted values of the candidate variable set can be compared to the expected set of parameter values to determine the accuracy of the candidate variable set. In some cases, each parameter of an initial parameter set can interact with other parameters in that initial parameter set before determining accuracy. For example, each original variable can interact with candidate variables in the candidate variable set, even if the original variable has been removed from the candidate variable set. At box 1714, the accuracy of the candidate variable set can be compared to a predetermined accuracy level. At box 1716, if the accuracy of the candidate parameter set reaches the predetermined accuracy level, the candidate parameter is output at box 1718. If the accuracy of the candidate parameter set does not reach the predetermined accuracy level, certain steps can be repeated.
[0130] At box 1720, the second parameter of the initial parameter set interacts with the other parameters of the candidate parameter set. This interaction can be similar to the interaction discussed in conjunction with box 1704, where another parameter interacts with another parameter of the parameter set to generate interacting parameters. At box 1722, the interacting parameters are added to the candidate parameter set. For example, interacting parameters can be added to this parameter set. At box 1724, a linear regression can be performed on the parameters of the candidate parameter set against a set of expected parameter values to determine the predicted values of the parameters in the candidate parameter set. At box 1726, parameters of the candidate parameter set are removed based on a comparison between the predicted values and a predetermined prediction threshold. At box 1728, the accuracy of the candidate parameter set can be determined based on the set of expected parameter values. At box 1730, the accuracy of the candidate parameter set can be compared with a predetermined accuracy level. At box 1732, if the accuracy of the second candidate parameter set has reached the predetermined accuracy, the candidate parameter set is output at box 1718. At box 1732, if each parameter of the initial parameter set has interacted with the other parameters of the candidate set a predetermined number of times, then the candidate parameter set is output at box 1718. Otherwise, boxes 1720-1730 can be repeated with another parameter from the initial parameter set.
[0131] In some cases, the initial parameter set may include one or more parameter values based on process technology characteristics. In other cases, the initial parameter set may include one or more parameter values based on the theoretical interaction between one or more parameter values from the first parameter set.
[0132] In some cases, if the accuracy does not reach a predetermined level, a second ML model can be trained based on the parameter values of a selected set of variables and a second set of parameter values. For example, if a sufficient level of accuracy is not achieved, the repetitive work ends after each variable in the original variable set has been interacted with a predetermined number of times, and the last candidate variable set can be used to train another ML model. If the other ML model is accurate enough, then the other ML model can replace the linear regression equation and be stored, for example, in an ML library. Furthermore, the accuracy of the second ML model can be determined. Furthermore, it can be determined that the accuracy of the second ML is greater than a predetermined level, and the selected set of variables and the second ML model can be stored as a first ML model for a sub-circuit of a process technology. In some cases, the second ML model can be a neural network. In some cases, Bayesian hyperparameter optimization can be applied to the second ML model. In some cases, the hyperparameters optimized by Bayesian hyperparameter optimization include one of the following: the number of neuron layers in the neural network, the number of neurons in each layer of the neural network, and the weight decay value.
[0133] like Figure 18As shown, device 1800 includes processing elements, such as processor 1805, which contains one or more hardware processors, each of which may have one or more processor cores. Examples of processors include, but are not limited to, a central processing unit (CPU) or a microprocessor. While in Figure 18 While not illustrated, the processing elements constituting processor 1805 may also include one or more other types of hardware processing elements, such as a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or a digital signal processor (DSP). In some cases, processor 1805 may be configured to perform combined... Figure 5 , 6 The functions described in 8, 11, and 12-17 are also understood to be applicable. It is also understood that, although described in conjunction with a single device, the described functions can be performed by any number of processing elements, and these processing elements can be associated with multiple devices communicatively coupled to them. For example, the generation of ML models, ML libraries, netlists, etc., can be performed on a single device, compared to the transformation or optimization of circuits. In some cases, these different devices can be networked via any known networking technology, examples of which include Ethernet, Wi-Fi, the Internet, etc. In some cases, data objects can be provided and / or received via non-transitory computer-readable storage media.
[0134] Figure 18 The illustration shows that memory 1810 can be operatively and communicatively coupled to processor 1805. Memory 1810 can be a non-transitory computer-readable storage medium configured to store various types of data. For example, memory 1810 may include one or more volatile devices, such as random access memory (RAM). In some cases, SRAM and... Figure 4-8 The circuitry described herein can be incorporated as part of memory 1810. Non-volatile storage device 1820 may include one or more disk drives, optical drives, solid-state drives (SSDs), tape drives, flash memory, electrically programmable read-only memory (EEPROM), and / or any other type of memory intended to retain data for a duration following a power outage or shutdown operation. Non-volatile storage device 1820 may also be used to store such programs that are loaded into RAM when a program is executed.
[0135] Those skilled in the art will recognize that software programs can be developed, coded, and compiled using various computing languages for various software platforms and / or operating systems, and then loaded and executed by processor 1805. In one embodiment, the compilation process of a software program can translate program code written in one programming language into another computer language, enabling processor 1805 to execute the programming code. For example, the compilation process of a software program can generate an executable program that provides processor 1805 with encoded instructions (e.g., machine code instructions) to perform specific, non-general-purpose, special-purpose computational functions.
[0136] Following the compilation process, the encoded instructions can then be loaded as computer-executable instructions or processing steps from storage device 1820, from memory 1810 into processor 1805, and / or embedded within processor 1805 (e.g., via cache or onboard ROM). Processor 1805 can be configured to execute the stored instructions or processing steps to transform the computing device into a non-general-purpose, special-purpose, specially programmed machine or apparatus. Stored data, such as data stored by storage device 1820, can be accessed by processor 1805 during the execution of computer-executable instructions or processing steps to instruct one or more elements within computing device 1800. Storage device 1820 can be partitioned or divided into multiple portions that can be accessed by different software programs. For example, storage device 1820 may include portions designated for a specific purpose, such as storing program instructions or data for updating software of computing device 1800. In one embodiment, the software to be updated includes the ROM or firmware of the computing device. In some cases, computing device 1800 may include multiple operating systems. For example, computing device 1800 may include a general-purpose operating system for normal operation. Computing device 1800 may also include another operating system, such as a bootloader, for performing specific tasks, such as upgrading and restoring the general-purpose operating system, and allowing access to computing device 1800 at levels not normally available through the general-purpose operating system. Both the general-purpose operating system and the other operating system can access portions of storage device 1820 designated for specific purposes.
[0137] One or more communication interfaces may include radio communication interfaces for interfacing with one or more radio communication devices. In some cases, elements coupled to the processor may be included on hardware shared with the processor. For example, communication interface 1825, storage device 1820, and memory 1810 may be included in a single chip or package, such as in a system-on-a-chip (SOC), along with other components such as digital radio. The computing device may also include input and / or output devices, not shown, examples of which include sensors, cameras, human input devices such as mice, keyboards, touchscreens, monitors, displays, haptic or motion generators, speakers, lights, etc. Processed input, such as input from radar device 1830, may be output from computing device 1800 to one or more other devices via communication interface 1825.
[0138] Modifications to the described embodiments are possible within the scope of the claims, and other embodiments are also possible.
[0139] For example, the first circuit process technology characterization module 810 can be implemented using any number of deterministic techniques, such as statistical regression analysis and statistical classifiers, such as neural networks, decision trees, Bayesian classifiers, fuzzy logic-based classifiers, deep learning, and statistical pattern recognition.
[0140] Similarly, as another example, the second circuit process technology characterization module 820 can be implemented using any number of deterministic techniques, such as statistical regression analysis and statistical classifiers, such as neural networks, decision trees, Bayesian classifiers, fuzzy logic-based classifiers, deep learning, and statistical pattern recognition.
Claims
1. A method comprising: Receive a data object representing a circuit for a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element, the first electrical element and the second electrical element being arranged in a first topology; The first sub-circuit in the data object is identified by comparing the first topology with a stored topology associated with the first process technology; Identify the physical parameter values of the sub-circuit associated with the first electrical component and the second electrical component of the first sub-circuit; Based on the first machine learning model of the first sub-circuit and the identified physical parameters of the sub-circuit, a set of sub-circuit performance parameter values is determined for the first sub-circuit. Based on the determined set of sub-circuit performance parameter values, the identified first sub-circuit is converted into a second sub-circuit for the second process technology; as well as Output the second sub-circuit.
2. The method according to claim 1, wherein, Converting the identified first sub-circuit into the second sub-circuit includes: Based on a second machine learning model, and considering the second process technology and the set of performance parameter values of the sub-circuit, a set of physical parameters of the second sub-circuit associated with the third and fourth electrical components of the second sub-circuit is determined; and The physical parameters of the sub-circuit in the second sub-circuit physical parameter set are associated with the third and fourth electrical components of the second sub-circuit.
3. The method according to claim 2, wherein, The third electrical component and the fourth electrical component correspond to the first electrical component and the second electrical component, respectively.
4. The method according to claim 2, wherein, The first machine learning model and the second machine learning model include neural networks.
5. The method according to claim 1, wherein, The second process technology includes a second semiconductor manufacturing process associated with smaller electrical components compared to the first process technology.
6. The method of claim 1, further comprising verifying the second sub-circuit based on circuit simulation of the second sub-circuit.
7. The method according to claim 1, wherein, The sub-circuit performance parameters in the determined sub-circuit performance parameter value set are determined based on the type of the first sub-circuit identified.
8. The method according to claim 1, wherein, Identifying the first sub-circuit is based on a set of rules.
9. A non-transitory program storage device, including instructions stored thereon to cause one or more processors to perform the following operations: Receive a data object representing a circuit for a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element, the first electrical element and the second electrical element being arranged in a first topology; The first sub-circuit in the data object is identified by comparing the first topology with a stored topology associated with the first process technology; Identify the physical parameter values of the sub-circuit associated with the first electrical component and the second electrical component of the first sub-circuit; Based on the first machine learning model of the first sub-circuit and the identified physical parameters of the sub-circuit, a set of sub-circuit performance parameter values is determined for the first sub-circuit. Based on the determined set of sub-circuit performance parameter values, the identified first sub-circuit is converted into a second sub-circuit for the second process technology; as well as Output the second sub-circuit.
10. The non-transitory program storage device according to claim 9, wherein, The instructions for converting the identified first sub-circuit into the second sub-circuit include instructions that cause the one or more processors to perform the following operations: Based on a second machine learning model, and considering the second process technology and the set of performance parameter values of the sub-circuit, a set of physical parameters of the second sub-circuit associated with the third and fourth electrical components of the second sub-circuit is determined; and The physical parameters of the sub-circuit in the second sub-circuit physical parameter set are associated with the third and fourth electrical components of the second sub-circuit.
11. The non-transitory program storage device according to claim 10, wherein, The third electrical component and the fourth electrical component correspond to the first electrical component and the second electrical component, respectively.
12. The non-transitory program storage device according to claim 9, wherein, The first machine learning model and the second machine learning model include neural networks.
13. The non-transitory program storage device according to claim 9, wherein, The second process technology includes a second semiconductor manufacturing process associated with smaller electrical components compared to the first process technology.
14. The non-transitory program storage device according to claim 9, wherein, The instructions further include instructions that cause the one or more processors to verify the second sub-circuit based on circuit simulation of the second sub-circuit.
15. The non-transitory program storage device according to claim 9, wherein, The performance parameters in the determined sub-circuit performance parameter value set are determined based on the type of the first sub-circuit identified.
16. The non-transitory program storage device according to claim 9, wherein, Identifying the first sub-circuit is based on a set of rules.
17. An electronic device comprising: Memory; as well as One or more processors operatively coupled to the memory, wherein the one or more processors are configured to execute instructions to cause the one or more processors to perform the following operations: Receive a data object representing a circuit for a first process technology, the circuit including a first sub-circuit, the first sub-circuit including a first electrical element and a second electrical element, the first electrical element and the second electrical element being arranged in a first topology; The first sub-circuit in the data object is identified by comparing the first topology with a stored topology associated with the first process technology; Identify the physical parameter values of the sub-circuit associated with the first electrical component and the second electrical component of the first sub-circuit; Based on the first machine learning model of the first sub-circuit and the identified physical parameters of the sub-circuit, a set of sub-circuit performance parameter values is determined for the first sub-circuit. Based on the determined set of sub-circuit performance parameter values, the identified first sub-circuit is converted into a second sub-circuit for the second process technology; and Output the second sub-circuit.
18. The electronic device according to claim 17, wherein, The instructions for converting the identified first sub-circuit into the second sub-circuit include instructions that cause the one or more processors to perform the following operations: Based on a second machine learning model, and considering the second process technology and the set of performance parameter values of the sub-circuit, a set of physical parameters of the second sub-circuit associated with the third and fourth electrical components of the second sub-circuit is determined; and The physical parameters of the sub-circuit in the second sub-circuit physical parameter set are associated with the third and fourth electrical components of the second sub-circuit.
19. The electronic device according to claim 18, wherein, The third electrical component and the fourth electrical component correspond to the first electrical component and the second electrical component, respectively.
20. The electronic device according to claim 19, wherein, The first machine learning model and the second machine learning model include neural networks.
21. The electronic device according to claim 18, wherein, The sub-circuit performance parameters in the determined sub-circuit performance parameter value set are determined based on the type of the first sub-circuit identified.
Citation Information
Patent Citations
Automated design method, device and optimization method applied for neural network processor
CN107016175A
Method for acquiring timing sequence parameters through machine learning
CN108090288A