# US 12,001,674 B2 · Reusing memory arrays for physically unclonable function (PUF) generation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,674 B2
- Document ID: US12001674B2
- Status: Granted
- Kind: B2
- Application number: 18/050,547
- Filed: 2022-10-28
- Published: 2024-05-02
- Granted: 2024-06-04
- Earliest claimed: 2022-10-28
- Assignees: NXP USA, Inc.
- Applicants: NXP USA, Inc.
- Inventors: Nihaar N. Mahatme; Anirban Roy
- Web page: https://patentgrep.com/patent/US12001674B2

## CPC

- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G11C 17/12: using field-effect devices
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G11C 7/24: Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
- G11C 11/4125: {Cells incorporating circuit means for protecting against loss of information}
- G11C 11/419: Read-write [R-W] circuits
- H04L 9/0866: {involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics}
- G11C 7/06: Sense amplifiers; Associated circuits {, e.g. timing or triggering circuits}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An array of bit cells is programmed with user data, each row including a corresponding word line and each column including a corresponding column line. The array includes a plurality of differential PUF bits, each having a first and second bit cell programmed with user data. A first set of sense-amplifiers outputs a set of data bits of the user data, and a second set of sense-amplifiers outputs a set of differential bits, each differential bit based on a differential current between two columns lines of the selected column lines corresponding to the first and second bit cells of a corresponding differential PUF bit along the selected word line. A potential PUF bit generator outputs a set of potential PUF bits based on the set of data bits of the user data from the first set of sense-amplifiers and the set of differential bits from the second set of sense-amplifiers.

## Claims

### Claim 1

A system comprising:
an array of bit cells programmed with user data, wherein existence of a transistor in a bit cell indicates a first logic state of a corresponding stored bit of the user data and lack of the transistor in the bit cell indicates a second logic state of the corresponding stored bit of the user data, wherein the array of bit cells is arranged in rows and columns, wherein each row comprises a corresponding word line and each column comprises a corresponding column line;
a plurality of differential PUF bits in the array, each differential PUF bit including a first bit cell of the array of bit cells programmed with user data and a second bit cell of the array of bit cells programmed with user data;
a first set of sense-amplifiers coupled to the column lines of the array and configured to output from the array a set of data bits of the user data stored at a selected word line and selected column lines;
a second set of sense-amplifiers coupled to the column lines of the array and configured to output a set of differential output bits, each differential output bit based on a differential current between two columns lines of the selected column lines corresponding to the first and second bit cells of a corresponding differential PUF bit along the selected word line; and
a potential PUF bit generator configured to output a set of potential PUF bits from the array based on the set of data bits of the user data from the first set of sense-amplifiers and the set of differential output bits from the second set of sense-amplifiers.

### Claim 2 (depends on 1)

The system of claim 1, wherein the array is further characterized as a read only memory (ROM) array.

### Claim 3 (depends on 2)

The system of claim 2, wherein existence of an N-type transistor in the bit cell connected to a corresponding word line and a corresponding column line indicates the first logic state of the corresponding stored bit of the user data and lack of the N-type transistor in the bit cell indicates the second logic state of the corresponding stored bit of the user data.

### Claim 4 (depends on 2)

The system of claim 2, wherein the user data comprises boot code such that the ROM is further characterized as a boot ROM.

### Claim 5 (depends on 1)

The system of claim 1, wherein each sense-amplifier of the first set of sense-amplifiers has a first input coupled to a selected column line of the array, a second input coupled to a reference, and is configured to output a corresponding data bit of the set of data bits based on a comparison between the first and second inputs.

### Claim 6 (depends on 5)

The system of claim 5, wherein each sense-amplifier of the second set of sense-amplifiers has a first input coupled to a first selected column line of the array, a second input coupled to a second selected column line of the array, and is configured to output a corresponding differential output bit of the set of differential output bits based on a voltage or current differential between the first and second selected column lines.

### Claim 7 (depends on 6)

The system of claim 6, wherein the first and second column lines of the array comprise neighboring bit lines of the array.

### Claim 8 (depends on 1)

The system of claim 1, wherein each potential PUF bit of the set of potential PUF bits corresponds to a respective selected differential PUF bit of the plurality of differential PUF bits along the selected word line and is generated based on two columns lines of the respective selected differential PUF bit and the stored bits of the user data of the first and second bit cells of the respective selected differential PUF bit.

### Claim 9 (depends on 8)

The system of claim 8, wherein when each of the first and second bit cells of the respective selected differential PUF bit includes a corresponding transistor, the corresponding potential PUF bit is a valid PUF bit, and when both the first and second bit cells of the respective differential PUF bit lack the corresponding transistor, the corresponding potential PUF bit is a predetermined value.

### Claim 10 (depends on 9)

The system of claim 9, wherein when the respective selected differential PUF bit is a valid PUF bit, the corresponding potential PUF bit provides a differential output bit of a corresponding sense-amp of the second set of sense-amps coupled to the two column lines of the respective selected differential PUF bit.

### Claim 11 (depends on 10)

The system of claim 10, further comprising evaluation circuitry configured to filter out potential PUF bits of the set of potential PUF bits which have the predetermined value to obtain only valid PUF bits of the set of potential PUF bits.

### Claim 12 (depends on 11)

The system of claim 11, wherein the evaluation circuitry is further configured to generate a unique digital code for the system using only the valid PUF bits of the set of potential PUF bits.

### Claim 13 (depends on 12)

The system of claim 12, wherein the valid PUF bits of the set of potential PUF bits are further characterized as robust valid PUF bits which have been further screened to determine stability across voltage and temperature variations.

### Claim 14 (depends on 1)

The system of claim 1, wherein the potential PUF bit generator comprises, for each potential PUF bit, an AND gate having a first input coupled to a logical combination of two data bits of the set of data bits stored at the first and second bit cells of a selected differential PUF bit along the selected word line and a second input coupled to receive a corresponding differential output bit of the set of differential output bits based on a differential between column lines of the first and second bit cells of the selected differential PUF bit.

### Claim 15 (depends on 14)

The system of claim 14, wherein, for each potential PUF bit, the logical combination of the two data bits stored at the first and second bit cells of the select differential PUF bit indicates whether or not the selected differential PUF bit cell is valid.

### Claim 16 (depends on 15)

The system of claim 15, wherein, for each potential PUF bit, the selected differential PUF bit is valid only if the first and second bit cells of the selected differential PUF bit each include a transistor such that the stored bits of user data in the first and second bit cells of the selected differential PUF bit have a same logic state.

### Claim 17

A system comprising:
a boot ROM including an array of bit cells programmed with boot code, wherein existence of a transistor in a bit cell indicates a first logic state of a corresponding stored bit of the boot code and lack of the transistor in the bit cell indicates a second logic state of the corresponding stored bit of the boot code, wherein the array of bit cells is arranged in rows and columns, wherein each row comprises a corresponding word line and each column comprises a corresponding bit line;
differential PUF bits embedded in the array of the boot ROM, each differential PUF bit including a first bit cell of the array of bit cells programmed with boot code and a second bit cell of the array of bit cells programmed with boot code;
a first set of sense-amplifiers coupled to the bit lines of the array and configured to output from the array a set of data bits of the boot code stored at a selected word line and selected bit lines;
a second set of sense-amplifiers coupled to the bit lines of the array and configured to output a set of differential output bits, each differential output bit based on a voltage or current differential between two bit lines of the selected bit lines corresponding to the first and second bit cells of a corresponding differential PUF bit along the selected word line;
a potential PUF bit generator configured to output a set of potential PUF bits from the array based on the set of data bits of the user data from the first set of sense-amplifiers and the set of differential output bits from the second set of sense-amplifiers; and
a filter circuit configured to receive the set of potential PUF bits from the potential PUF bit generator to identify a subset of the potential PUF bits as valid PUF bits thereby filtering out any invalid PUF bits from the set of potential PUF bits.

### Claim 18 (depends on 17)

The system of claim 17, wherein each potential PUF bit of the set of potential PUF bits corresponds to a selected differential PUF bit along the selected word line, and is only a valid PUF bit when each of the first and second bit cells of the selected differential PUF bit includes a corresponding transistor such that both the first and second bit cells of the selected differential PUF bit store a same logic state.

### Claim 19 (depends on 17)

The system of claim 17 wherein the potential PUF bit generator is configured to, for each potential PUF bit, provide a differential output bit of from a corresponding sense-amp of the second set of sense-amps which is coupled to the two bit lines of the corresponding differential PUF bit along the selected word line when the potential PUF bit is valid, but provide a predetermined logic state when the potential PUF bit is not valid, regardless of the differential output bit from the corresponding sense-amp of the second set of sense-amps.

### Claim 20 (depends on 19)

The system of claim 19, wherein the filter circuit is configured to use the set of data bits of the boot code stored at the selected word line and selected bit lines to filter out the invalid PUF bits from the set of potential PUF bits.
