The technology described in this disclosure relates generally to integrated circuit systems chip design implementation flow and more particularly to optimizing circuit synthesis for implementation on an integrated circuit.
Designing application specific integrated circuits (ASIC) and System on Chips (SoC) with semiconductor devices can be optimized using a number of techniques. Such designs can be a range of varying silicon design, implementation, and manufacturing technologies, but not limited to 3 nm, 5 nm 7 nm, 10 nm, 12 nm, 16 nm, 28 nm, and/or many other technologies. Storage elements of these chips such as random access memory (RAM) and the like can optimized based using a number of techniques such as power-performance-area. Such optimization can be labor intensive and time consuming.
Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
As electronic components continue to decrease in size and circuit layouts become more sophisticated, simulations of circuit layouts can help optimize circuit design and placement. Thousands of ASIC designs exist for various RAMs, registers, and other storage elements. These designs can vastly differ from each other as each design can take into consideration various types of RAM compilers, cell-types (e.g., 6T or 8T), device speed or density, component threshold voltages, power requirements, and the like. Compiling together these designs can help to optimize new circuit designs. The new designs can incorporate appropriate features from existing designs in a way that optimizes the layout for a particular purpose. In other words, the designs can be synthesizable for silicon implementation across various device sizes (5 nm, 7 nm, 10 nm, 12 nm, 16 nm, 28 nm, etc.). The compiled designs (e.g., extracted data) include descriptions of a circuit's behavior. Using the extracted data, new circuits can be physically simulated by translating the circuit's behavior into a set of structurally defined circuit layouts defining various electrical component sizes and layouts. The layouts can be analyzed to access the physically simulated circuits and then a range of operating conditions for the physically simulated circuits can be swept over (e.g., using a synthesis variable sweep system (SVSS)) to generate an optimized netlist having a set of analyses of a power, performance, and area (PPA) characteristics for physically simulated circuits. This output can provide an optimized physically simulated circuit. Such circuits can be applied in many different industries such as high performance computing (HPC), 5G mobile, automobile, artificial intelligence, or internet of things (IoT).
The sorting module 310 accesses the analyses and generates a sorted list of the set of physically simulated circuits by power, performance, and area characteristics that define the power consumption of the circuits, performance namely a frequency that the circuit operates at, and area that the circuit occupies. These characteristics can be sorted based on power, performance, and area values. The display module 320 accesses the sorted list of physically simulated circuits and displays the sorted list of physically simulated circuits on a graphical user interface. The circuit design module 330 accesses the set of structurally defined circuit designs and converts the structurally defined circuit designs into a set of filelists for synthesis of multiple profiled configurations for power, performance, and area characteristics. The filelists define components of the circuits and interconnection points between the components. The synthesis module 340 accesses the set of filelists and synthesizes the set of filelists using a design compiler into a set of logic gate configurations. Synthesis of a circuit includes translating the register transfer level code into a generic Boolean model. That Boolean model can be optimized at the logic level to combine multiple operations into more simplistic operations. For example, components can be rearranged, combined, and/or re-combined into different components in an effort to reduce operation time and the number of overall components within the circuit. Additionally, optimization can include sequential mapping of components where logic surrounding a sequential cell can be absorbed within the cell in an effort to save area. The design compiler can also perform various optimization operations such as removing logic having no output port connections, removing redundant components (e.g., such as two sequential inverters), and/or propagating constants to reduce the overall logic components within a circuit. The netlist creation module 350 accesses the set of logic gate configurations and converts the set of logic gate configurations into a set of netlists to be used by simulation module 230. Logic gate configurations contain logic schematics that define component interconnection. These logic gate configurations can be translated into a textual representation of nodes within the configuration, components within the configurations and their interconnections. This textual representation is a netlist.
In one example, a disk controller 948 can interface one or more optional disk drives to the system bus 904. These disk drives can be external or internal CD-ROM, CD-R, CD-RW or DVD, or solid state drives such as 952, or external or internal hard drives 956. As indicated previously, these various disk drives 952, 956 and disk controllers are optional devices. The system bus 904 can also include at least one communication port 920 to allow for communication with external devices either physically connected to the computing system or available externally through a wired or wireless network. In some cases, the communication port 920 includes or otherwise comprises a network interface.
To provide for interaction with a user, the subject matter described herein can be implemented on a computing device having a display device 940 (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information obtained from the bus 904 to the user and an input device 932 such as keyboard 936 and/or a pointing device (e.g., a mouse or a trackball) and/or a touchscreen by which the user can provide input to the computer. Other kinds of input devices 932 can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback by way of a microphone or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input. The input device 932 and the keyboard 936 can be coupled to and convey information via the bus 904 by way of an input device interface 928. Other computing devices, such as dedicated servers, can omit one or more of the display 940 and display interface 914, the input device 932, the keyboard 936, and input device interface 928.
Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein and may be provided in any suitable language such as C, C++, JAVA, Perl, Python, Tcls, for example, or any other suitable programming language. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
Use of the various processes as described herein can provide a number of advantages. For example, use of the subject matter can shorten ASIC development schedules as circuit are automatically optimized through design and require minimal to no re-design efforts. The simulations described herein also facilitate device validation without the time delay associated with producing and manually testing a device.
In one embodiment, a computer-implemented method of optimizing circuit synthesis for implementation on an integrated circuit includes importing a register transfer level code description of logic behavior of a circuit. The register transfer level code description is converted into structurally defined circuit designs for multiple types of components and feature size technologies. A floor plan of each structurally defined circuit design is generated. A physically simulated circuit is created for each floor plan. A range of operating conditions are swept over to analyze power, performance, and area of each physically simulated circuit.
In another embodiment, a computer-implemented system for optimizing circuit synthesis for implementation on an integrated circuit, includes a conversion module, a floor plan mapping module, a simulation module, and an analysis module. The conversion module is configured to access a register transfer level code description of behavior of a circuit and convert the register transfer level code into a set of structurally defined circuit designs for multiple types of components and feature size technologies. The simulation module is configured to access the set of structurally defined circuit designs and create a physically simulated circuit for each floor plan. The analysis module is configured to access the physically simulated circuits and sweep over a range of operating conditions for the physically simulated circuits to generate a set of analyses of a power, performance, and area characteristics for physically simulated circuits.
In yet another embodiment, a non-transitory computer-readable medium is encoded with memory storing instructions for fabricating an integrated circuit, which when executed result in various operations such as generating a floor plan of each structurally defined circuit design. A physically simulated circuit is created for each floor plan. A range of operating conditions is swept over to analyze power, performance, and area of each physically simulated circuit.
The foregoing outlines features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.
This application is a continuation application of U.S. patent application Ser. No. 17/752,333, filed May 24, 2022, which is a continuation application of U.S. patent application Ser. No. 17/075,760, filed Oct. 21, 2020, now U.S. Pat. No. 11,347,920, issued May 31, 2022, each of which is incorporated herein by reference in their entirety.
| Number | Name | Date | Kind |
|---|---|---|---|
| 6157947 | Watanabe et al. | Dec 2000 | A |
| 6766501 | Duggirala et al. | Jul 2004 | B1 |
| 6836877 | Dupenloup | Dec 2004 | B1 |
| 8924898 | Killian et al. | Dec 2014 | B2 |
| 9213789 | Lien et al. | Dec 2015 | B2 |
| 9779197 | Wagner et al. | Oct 2017 | B1 |
| 10699053 | Wang et al. | Jun 2020 | B1 |
| 10733350 | Prasad et al. | Aug 2020 | B1 |
| 10762259 | Ershov | Sep 2020 | B1 |
| 11048837 | Chen | Jun 2021 | B2 |
| 11347920 | Lo et al. | May 2022 | B2 |
| 11900037 | Lo | Feb 2024 | B2 |
| 20020073388 | Orshansky et al. | Jun 2002 | A1 |
| 20050091627 | Satapathy et al. | Apr 2005 | A1 |
| 20050210422 | Galatenko et al. | Sep 2005 | A1 |
| 20080098340 | Oh | Apr 2008 | A1 |
| 20100217564 | Lahner et al. | Aug 2010 | A1 |
| 20140068540 | Huang et al. | Mar 2014 | A1 |
| 20140304673 | Huang et al. | Oct 2014 | A1 |
| 20150143309 | Dood et al. | May 2015 | A1 |
| 20150242544 | Berkovitz et al. | Aug 2015 | A1 |
| 20170213847 | Nebesnyi | Jul 2017 | A1 |
| 20180011958 | Irissou et al. | Jan 2018 | A1 |
| 20190018917 | Dai et al. | Jan 2019 | A1 |
| 20190102500 | Sinclair et al. | Apr 2019 | A1 |
| 20200004913 | Goel | Jan 2020 | A1 |
| 20210073449 | Segev | Mar 2021 | A1 |
| 20220012392 | Huang et al. | Jan 2022 | A1 |
| Number | Date | Country |
|---|---|---|
| 102692599 | Sep 2012 | CN |
| 103339629 | Oct 2013 | CN |
| 106528905 | Mar 2017 | CN |
| 108228957 | Jun 2018 | CN |
| 108446412 | Aug 2018 | CN |
| 109583001 | Apr 2019 | CN |
| 110647901 | Jan 2020 | CN |
| 110991138 | Apr 2020 | CN |
| 200525393 | Aug 2005 | TW |
| 201032080 | Sep 2010 | TW |
| 201523309 | Jun 2015 | TW |
| 201927523 | Jul 2019 | TW |
| 201941387 | Oct 2019 | TW |
| 202018547 | May 2020 | TW |
| Entry |
|---|
| Chinese Office Action; Application No. 202110200470.2; dated Apr. 19, 2024. |
| Taiwan Office Action; Appl. 112102294; Oct. 6, 2023. |
| Number | Date | Country | |
|---|---|---|---|
| 20240135078 A1 | Apr 2024 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 17752333 | May 2022 | US |
| Child | 18403924 | US | |
| Parent | 17075760 | Oct 2020 | US |
| Child | 17752333 | US |