# US 12,119,073 B2 · Integrated circuit and operation method and inspection method thereof

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

- Number: US 12,119,073 B2
- Document ID: US12119073B2
- Status: Granted
- Kind: B2
- Application number: 17/883,607
- Filed: 2022-08-09
- Published: 2023-11-23
- Granted: 2024-10-15
- Earliest claimed: 2022-05-23
- Assignees: ASPEED Technology Inc.
- Applicants: ASPEED Technology Inc.
- Inventors: Hung-Ming Lin; Hung-Ju Huang
- Web page: https://patentgrep.com/patent/US12119073B2

## CPC

- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G06F 7/58: Random or pseudo-random number generators
- G11C 7/1039: {using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers}
- G11C 17/16: using electrically-fusible links
- G11C 17/18: Auxiliary circuits, e.g. for writing into memory
- G11C 29/022: {in I/O circuitry}
- G11C 29/42: using error correcting codes [ECC] or parity check
- G11C 2029/4402: {Internal storage of test result, quality data, chip identification, repair information}
- G11C 2029/5002: {Characteristic}
- G11C: STATIC STORES (semiconductor memory devices H10B)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The disclosure provides an integrated circuit and an operation method and an inspection method thereof. The integrated circuit includes a one-time programmable (OTP) memory, an identifier generation circuit, and a memory controller. The identifier generation circuit generates a random number, and performs an error-detection-code encoding operation on the random number to generate an identifier with an error-detection code. The memory controller writes the identifier generated by the identifier generation circuit into the OTP memory. The identifier generation circuit reads the identifier from the OTP memory through the memory controller, and performs an error-detection-code decoding operation on the identifier provided by the memory controller to determine whether an error of the identifier from the OTP memory is correctable. When it is determined that the error of the identifier from the OTP memory is not correctable, the writing of the identifier is deemed failed.

## Claims

### Claim 1

An integrated circuit, comprising:
a one-time programmable (OTP) memory;
an identifier generation circuit for generating a random number and performing an error-detection-code encoding operation on the random number to generate an identifier with an error-detection code, wherein the identifier generation circuit includes a weight counter for calculating a weight of the random number and inspecting the weight, when the weight falls within a proportional range, the identifier generation circuit performs the error-detection-code encoding operation on the random number to generate the error-detection code, and when the weight falls outside the proportional range, the identifier generation circuit regenerates the random number until the weight of the random number falls within the proportional range; and
a memory controller, coupled to the one-time programmable (OTP) memory and the identifier generation circuit, for writing the identifier generated by the identifier generation circuit into the one-time programmable (OTP) memory.

### Claim 2 (depends on 1)

The integrated circuit according to claim 1, wherein the error-detection code comprises an error-correcting code (ECC) or a Hamming code with additional parity.

### Claim 3 (depends on 2)

The integrated circuit according to claim 2, wherein the Hamming code comprises a [8,4] Hamming code or a [72,64] Hamming code.

### Claim 4 (depends on 1)

The integrated circuit according to claim 1, wherein the identifier generation circuit further comprises:
a random number generation circuit for generating the random number to the weight counter, wherein when the weight falls within the proportional range, the weight counter outputs the random number, and when the weight falls outside the proportional range, the weight counter notifies the random number generation circuit to regenerate the random number until the weight of the random number falls within the proportional range, and the weight counter then outputs the random number; and
an encoder, coupled to the weight counter to receive the random number, for performing an encoding operation on the random number to generate the error-detection code and outputting the error-detection code and the random number as the identifier to the memory controller.

### Claim 5 (depends on 4)

The integrated circuit according to claim 4, wherein the random number generation circuit comprises a true random number generator (TRNG) or a pseudo-random number generator (PRNG) for generating the random number.

### Claim 6 (depends on 4)

The integrated circuit according to claim 4, wherein the random number generation circuit comprises:
a true random number generator (TRNG) for generating an unpredictable seed value; and
a pseudo-random number generator (PRNG) coupled to the true random number generator (TRNG) to receive the unpredictable seed value and use the unpredictable seed value to generate the random number.

### Claim 7 (depends on 1)

The integrated circuit according to claim 1, wherein the identifier generation circuit further comprises:
a random number generation circuit for generating the random number; and
an encoder, coupled to the random number generation circuit to receive the random number, for performing an encoding operation on the random number to generate the error-detection code and using the error-detection code and the random number as the identifier,
wherein the weight counter is coupled to the encoder for calculating the weight and inspecting the weight, when the weight falls within the proportional range, the weight counter outputs the identifier to the memory controller, and when the weight falls outside the proportional range, the weight counter notifies the random number generation circuit to regenerate the random number, and notifies the encoder to regenerate the error-detection code and the identifier until the weight of the identifier falls within the proportional range, and the weight counter then outputs the identifier to the memory controller.

### Claim 8 (depends on 1)

The integrated circuit according to claim 1, wherein the identifier generation circuit further comprises:
a random number generation circuit for generating the random number to the weight counter, wherein when the weight falls within the proportional range, the weight counter outputs the random number, and when the weight falls outside the proportional range, the weight counter notifies the random number generation circuit to regenerate the random number until the weight falls within the proportional range, and the weight counter then outputs the random number;
an encoder, coupled to the weight counter to receive the random number, for performing an encoding operation on the random number to generate the error-detection code and using the error-detection code and the random number as an original identifier; and
a scrambler, coupled to the encoder, for performing a scrambling operation on the original identifier to generate the identifier to the memory controller.

### Claim 9 (depends on 1)

The integrated circuit according to claim 1, wherein the identifier generation circuit further comprises:
a random number generation circuit for generating the random number;
an encoder, coupled to the random number generation circuit to receive the random number, for performing an encoding operation on the random number to generate the error-detection code and using the error-detection code and the random number as an original identifier, wherein the weight counter is coupled to the encoder, the weight counter calculates the weight of the original identifier and inspects the weight, when the weight falls within the proportional range, the weight counter outputs the original identifier, and when the weight falls outside the proportional range, the weight counter notifies the random number generation circuit to regenerate the random number, and notifies the encoder to regenerate the error-detection code and the original identifier until the weight of the original identifier falls within the proportional range, and the weight counter then outputs the original identifier; and
a scrambler, coupled to the weight counter to receive the original identifier, for performing a scrambling operation on the original identifier to generate the identifier to the memory controller.

### Claim 10 (depends on 1)

The integrated circuit according to claim 1, wherein the identifier generation circuit further comprises:
a random number generation circuit for generating the random number;
an encoder, coupled to the random number generation circuit to receive the random number, for performing an encoding operation on the random number to generate the error-detection code, and using the error-detection code and the random number as an original identifier; and
a scrambler, coupled to the encoder to receive the original identifier, for performing a scrambling operation on the original identifier to generate the identifier,
wherein the weight counter is coupled to the scrambler to receive the identifier, the weight counter calculates the weight of the identifier and inspects the weight, when the weight falls within the proportional range, the weight counter outputs the identifier to the memory controller, and when the weight falls outside the proportional range, the weight counter notifies the random number generation circuit to regenerate the random number, notifies the encoder to regenerate the error-detection code and the original identifier, and notifies the scrambler to regenerate the identifier until the weight of the identifier falls within the proportional range, and the weight counter then outputs the identifier to the memory controller.

### Claim 11 (depends on 1)

The integrated circuit according to claim 1, wherein after being powered on, the identifier generation circuit reads the identifier from the one-time programmable (OTP) memory through the memory controller, and the identifier generation circuit inspects whether the identifier is in an invalid state.

### Claim 12 (depends on 1)

The integrated circuit according to claim 1, wherein the memory controller reads the identifier from the one-time programmable (OTP) memory to provide to the identifier generation circuit, and the identifier generation circuit performs an error-detection-code decoding operation on the identifier provided by the memory controller to determine whether an error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 13 (depends on 12)

The integrated circuit according to claim 12, wherein the identifier generation circuit comprises:
a decoder, coupled to the memory controller to receive the identifier, for performing a decoding operation on the identifier using the error-detection code in the identifier to determine whether the error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 14 (depends on 12)

The integrated circuit according to claim 12, wherein the identifier generation circuit comprises:
a descrambler, coupled to the memory controller to receive the identifier, for performing a descrambling operation on the identifier to generate a descrambled identifier; and
a decoder, coupled to the descrambler to receive the descrambled identifier, for performing a decoding operation on the descrambled identifier using the error-detection code in the descrambled identifier to determine whether the error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 15 (depends on 12)

The integrated circuit according to claim 12, wherein when determining that the error of the identifier from the one-time programmable (OTP) memory is not correctable, writing of the identifier is deemed failed.

### Claim 16

An operation method of an integrated circuit, comprising:
generating a random number;
calculating a weight of the random number; and
inspecting the weight,
regenerating the random number until the weight of the random number falls within the proportional range when the weight falls outside a proportional range;
performing an error-detection-code encoding operation on the random number when the weight falls within the proportional range to generate an identifier with an error-detection code; and
writing the identifier into a one-time programmable (OTP) memory of the integrated circuit.

### Claim 17 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection code comprises an error-correcting code (ECC) or a Hamming code with additional parity.

### Claim 18 (depends on 17)

The operation method of the integrated circuit according to claim 17, wherein the Hamming code comprises a [8,4] Hamming code or a [72,64] Hamming code.

### Claim 19 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein generating the random number comprises:
generating an unpredictable seed value by a true random number generator (TRNG); and
generating the random number by a pseudo-random number generator (PRNG) using the unpredictable seed value.

### Claim 20 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection-code encoding operation comprises:
performing an encoding operation on the random number when the weight falls within the proportional range to generate the error-detection code;
regenerating the random number when the weight falls outside the proportional range until the weight of the random number falls within the proportional range to perform an encoding operation on the random number to generate the error-detection code; and
using the error-detection code and the random number as the identifier.

### Claim 21 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection-code encoding operation comprises:
performing an encoding operation on the random number to generate the error-detection code;
using the error-detection code and the random number as the identifier;
calculating the weight of the identifier;
writing the identifier into the one-time programmable (OTP) memory when the weight falls within the proportional range; and
regenerating the random number, the error-detection code and the identifier when the weight falls outside the proportional range until the weight of the identifier falls within the proportional range, and then writing the identifier into the one-time programmable (OTP) memory.

### Claim 22 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection-code encoding operation comprises:
performing an encoding operation on the random number when the weight falls within a proportional range to generate the error-detection code;
regenerating the random number when the weight falls outside the proportional range until the weight of the random number falls within the proportional range to perform an encoding operation on the random number to generate the error-detection code;
using the error-detection code and the random number as an original identifier; and
performing a scrambling operation on the original identifier to generate the identifier.

### Claim 23 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection-code encoding operation comprises:
performing an encoding operation on the random number to generate the error-detection code;
using the error-detection code and the random number as an original identifier;
calculating the weight of the original identifier;
performing a scrambling operation on the original identifier when the weight falls within the proportional range to generate the identifier; and
regenerating the random number, the error-detection code and the original identifier when the weight falls outside the proportional range until the weight of the original identifier falls within the proportional range to perform a scrambling operation on the original identifier to generate the identifier.

### Claim 24 (depends on 16)

The operation method of the integrated circuit according to claim 16, wherein the error-detection-code encoding operation comprises:
performing an encoding operation on the random number to generate the error-detection code;
using the error-detection code and the random number as an original identifier;
performing a scrambling operation on the original identifier to generate the identifier;
calculating the weight of the identifier;
writing the identifier into the one-time programmable (OTP) memory when the weight falls within the proportional range; and
regenerating the random number, the error-detection code, the original identifier and the identifier when the weight falls outside the proportional range until the weight of the identifier falls within the proportional range, and then writing the identifier into the one-time programmable (OTP) memory.

### Claim 25 (depends on 16)

The operation method of the integrated circuit according to claim 16, further comprising:
reading the identifier from the one-time programmable (OTP) memory after powering on; and
inspecting whether the identifier is in an invalid state.

### Claim 26 (depends on 16)

The operation method of the integrated circuit according to claim 16, further comprising:
reading the identifier from the one-time programmable (OTP) memory; and
performing an error-detection-code decoding operation on the identifier to determine whether an error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 27 (depends on 26)

The operation method of the integrated circuit according to claim 26, wherein the error-detection-code decoding operation comprises:
performing a decoding operation on the identifier using the error-detection code in the identifier to determine whether the error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 28 (depends on 26)

The operation method of the integrated circuit according to claim 26, wherein the error-detection-code decoding operation comprises:
performing a descrambling operation on the identifier to generate a descrambled identifier; and
performing a decoding operation on the descrambled identifier using the error-detection code in the descrambled identifier to determine whether the error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 29 (depends on 26)

The operation method of the integrated circuit according to claim 26, further comprising:
regarding writing of the identifier as failed when determining that the error of the identifier from the one-time programmable (OTP) memory is not correctable.

### Claim 30

An inspection method of an integrated circuit, comprising:
reading an identifier with an error-detection code from a one-time programmable (OTP) memory of the integrated circuit; and
performing an error-detection-code decoding operation on the identifier to determine whether an error of the identifier from the one-time programmable (OTP) memory is correctable, wherein the error-detection-code decoding operation comprises:
performing a descrambling operation on the identifier to generate a descrambled identifier; and
performing a decoding operation on the descrambled identifier using the error-detection code in the descrambled identifier to determine whether the error of the identifier from the one-time programmable (OTP) memory is correctable.

### Claim 31 (depends on 30)

The inspection method of the integrated circuit according to claim 30, further comprising:
regarding writing of the identifier as failed when determining that the error of the identifier from the one-time programmable (OTP) memory is not correctable.
