The present disclosure relates to integrated circuits and, more particularly, to trusted parameterized cells (Pcells) leveraging smart contracts on a blockchain and methods of manufacture.
Integrated circuits are often generated using information provided in a process design kit (PDK). In one example, parameterized cells (Pcells) are used to automatically create dynamic layout instances according to the information within the PDK using electronic design automation (EDA) software. A Pcell layout instance is a part (i.e., physical component) of the integrated circuit device whose structure is dependent on one or more parameters of the Pcell, and each layout instance of the Pcell is automatically generated based on the values of these parameters.
To efficiently design complex circuits of a layout, each device of a PDK is generated by setting parameters of the associated Pcell, which allows the EDA to automatically build different required shapes and layers within the device. Use of Pcells guarantees the integrity of the layout, and its compliance to the necessary manufacturing rules to ensure that the final chip built to the design will function properly. When designing a product, an engineer may “flatten” a Pcell, which breaks the built-in relationship between the shapes and levels of the original device. In other words, when a device is flattened, the engineer can freely move shapes with respect to each other. However, when the device is flattened, this may result in improper device behavior.
In an aspect of the disclosure, a structure comprises: a first parameterized cell (Pcell) label generated based on a customer label corresponding to a customer design on a customer network and which comprises a real-time transaction validation for a smart contract on a blockchain network.
In an aspect of the disclosure, a structure comprises: a customer label generated based on an intellectual property (IP) block corresponding to a customer design on a customer network, and a mock label generated based on a most recent label of the IP block on a blockchain network.
In an aspect of the disclosure, a method comprises: generating a first parameterized cell (Pcell) label based on a customer label corresponding to a customer design on a customer network, generating a second Pcell label based on the customer design on the customer network, and performing a real-time transaction validation of the first Pcell label to determine whether a first Pcell corresponding to the first Pcell label is flattened.
The present disclosure is described in the detailed description which follows, in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present disclosure.
The present disclosure relates to integrated circuits and, more particularly, to trusted Pcells leveraging smart contracts on a blockchain and methods of manufacture. In more specific embodiments, a Pcell label may be stored on a semi-private blockchain which is shared between a foundry (e.g., a chip manufacturer) and a given customer. Accordingly, foundry approved Pcells may leverage smart contracts on the blockchain. In this way, a structural transaction label may be generated and stored on the blockchain.
In known processes, foundries cannot ensure that the received graphic design system (GDS) was generated using approved Pcells. Therefore, foundries may be exposed to manufacturing risk, modeling risk, and have no feedback on which Pcells need to be improved. Also, in known processes, a design rule check (DRC) may only check Pcells that are within minimum and maximum limits; however, a DRC does not have the capability to check that a trusted Pcell of a foundry has been implemented. Also, verification of Pcells may only occur very late in the process (i.e., right before manufacturing of the integrated chips when the design is tapping out).
Advantageously and in contrast to known circuits, the present disclosure provides additional protection against customer data hacking by using the distributed nature of blockchain technology. For example, if the PDK is modified to create a change in a customer design, the present disclosure will provide protection against the modification. Further, the present disclosure allows for all changes in the design to be tracked using blockchain technology. For example, since all changes in the design are tracked, it is much more difficult for changes in the design to go undetected when a change history is stored and frozen in the blockchain as an immutable record. Also, the present disclosure provides early detection of modifications of the design by using live (i.e., real-time) transaction validation. For example, the modification of the design may include a change that flattens the design and breaks specific ground rules. Accordingly, the verification of any modification will occur prior to the final GDS being provided to the foundry for manufacturing of the integrated circuit.
In the present disclosure, the blockchain may store design modifications as transactions. The blockchain may also represent a full circuit design, including the hierarchy of the circuit design. The blockchain may also be shared by the customer and the foundry (i.e., a semi-private blockchain). In the present disclosure, each transaction may be validated in real time (i.e., live). In particular, cells may generate descriptive labels and each cell may be a device Pcell (e.g., NFET, PFET, capacitor, resistor, inductor, etc.) or an IP block (e.g., efuse 64×4). If a label does not match a layout, the validation fails and the transaction is rejected from being put on the blockchain. Also, a final design may be validated and stored. For example, if the final design generated from a foundry blockchain matches a customer GDS, then the validation is successful.
In
In
In
In
In
In
The list of transactions 24 in
In the seventh step 37, the list of transactions 24 may go through blockchain validation 42. In particular, since the modified second Pcell (e.g., PFET1′) is a modified version of the second Pcell (e.g., PFET1), a successful blockchain validation is returned, as indicated by the checkmark. The blockchain validation 42 is an example of a live (i.e., real-time) transaction validation 52. Also, when the IP is rebuilt on a foundry side, the last transaction (i.e., the nth transaction 38) of each ID 18 is taken to avoid overlap.
In
In
In the eighth step 43, the list of transactions 24 may go through another blockchain validation 46. In particular, since the modified Pcell (PFET1″) is an attempt to change the layout which does not match the second Pcell (e.g., PFET1), an unsuccessful block validation is returned, as indicated by “X”. Thus, in
In
In
In step 58, a trusted IP tool compares the generated Pcell 56 with a customer layout. The trusted IP tool comparing the generated Pcell 56 with the customer layout is an example of the live (i.e., real-time) transaction validation at step 52. In step 66, if the generated Pcell 56 matches the customer layout, then the validation is successful (i.e., a match), as indicated by the checkmark. If the validation is successful, then the nth transaction 38 is added to all nodes of the blockchain in step 68. One of ordinary skill in the art would understand that the nth transaction 38 can be added to all nodes of the blockchain at step 68 using known methods.
On the other hand, in step 62, if the validation is unsuccessful, as indicated by “X”, the nth transaction 38 is not added to the blockchain and is rejected at step 64. As a consequence of the nth transaction 38 being rejected, the nth transaction 38 may be removed or deleted as indicated by the icon 72.
In
In step 78 of
In
In step 94, if the validation is successful, as indicated by the checkmark, the IP is trusted as noted in step 96. Further, in
The computing device 140 also includes a processor 130 (e.g., CPU), memory 160, an I/O interface 180, and a bus 150. The memory 160 may include local memory employed during actual execution of program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. In addition, the computing device includes random access memory (RAM), a read-only memory (ROM0, and an operating system (O/S).
The computing device 140 is in communication with external I/O device/resource 190 and storage system 200. For example, I/O device 190 may comprise any device that enables an individual to interact with computing device 140 (e.g., user interface) or any device that enables computing device 140 to communicate with one or more other computing devices using any type of communications link. The external I/O device/resource 190 may be for example, a handheld device, PDA, handset, keyboard, etc.
In general, processor 130 executes computer program code (e.g., program control 170) which may be stored in memory 160 and/or storage system 200. Moreover, in accordance with aspects of the invention, program control 170 controls a PDK 210, which performs processes described herein. The PDK 210 may be implemented as one or more program code in program control 170 stored in memory 160 as separate or combined modules. Additionally, the PDK 210 may be implemented in a programmable gate array, as separate dedicated processors, or as a single or several processors to provide the function of these tools. While executing the computer program code, the processor 130 may read and/or write data to/from memory 160, storage system 200, and/or I/O interface 180. The program code executes the process of the invention. The bus 150 provides a communications link between each of the components in the computing device 140.
By way of example, the PDK 210 may be configured to generate a plurality of parameterized cell (Pcell) labels based on a customer label corresponding to a customer design on a customer network. The PDK 210 may perform a real-time transaction validation of the Pcell labels to determine whether the Pcells have been flattened. This real-time transaction validation includes comparing a first Pcell label with a second Pcell label. The PDK 210 may add a transaction corresponding to the first Pcell label to a blockchain network in response to the first Pcell label matching the second Pell label. The PDK 210 may also prevent a transaction corresponding to the first Pcell label from being added to the blockchain network in response to the first Pcell label not matching the second Pcell label.
The integrated circuit manufactured using the methods described herein may be utilized in system on chip (SoC) technology. The SoC is an integrated circuit (also known as a “chip”) that integrates all components of an electronic system on a single chip or substrate. As the components are integrated on a single substrate, SoCs consume much less power and take up much less area than multi-chip designs with equivalent functionality. Because of this, SoCs are becoming the dominant force in the mobile computing (such as in Smartphones) and edge computing markets. SoC is also used in embedded systems and the Internet of Things.
The method(s) as described above is used in the fabrication of integrated circuit chips. The resulting integrated circuit chips may be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either surface interconnections and buried interconnections or both surface interconnections and buried interconnections). In any case the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product may be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.