Method and system for accelerating memory randomization
First Claim
1. A computer-implemented method for randomizing data that can be stored in a memory portion of a user design that is undergoing functional verification testing prior to manufacture using a functional verification testing system, wherein the user design can operate in a plurality of power states, including a first power state and a lower power state, comprising:
- receiving a power signal indicating a change of power state of the user design undergoing functional verification to the lower power state;
generating a random number in response to the power signal;
receiving a plurality of memory addresses of a memory in the user design undergoing functional verification;
storing a first set of data in the plurality of memory addresses;
calculating a first set of encryption keys unique for each memory address of the plurality of memory addresses of the memory in the user design undergoing functional verification by performing an operation using the random number and the corresponding memory address; and
writing a second set of data to the plurality of memory addresses by encrypting the first set of data with the first set of encryption keys unique for each memory address.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for randomizing memory in a functional verification test of a user design is disclosed. A random number is generated during the functional verification test. The data stored in the memory of the user design is stored. Encryption keys unique for each memory address of the memory are generated. Each encryption key for each memory address is a function of the random number and the memory address. Data in each memory address of the memory is encrypted with the encryption keys unique for each memory address. After exiting a low-power or power-off state, data in each memory address is read and decrypted using the same encryption keys. Data before and after the low-power or power-off state are compared to test memory loss.
27 Citations
24 Claims
-
1. A computer-implemented method for randomizing data that can be stored in a memory portion of a user design that is undergoing functional verification testing prior to manufacture using a functional verification testing system, wherein the user design can operate in a plurality of power states, including a first power state and a lower power state, comprising:
-
receiving a power signal indicating a change of power state of the user design undergoing functional verification to the lower power state; generating a random number in response to the power signal; receiving a plurality of memory addresses of a memory in the user design undergoing functional verification; storing a first set of data in the plurality of memory addresses; calculating a first set of encryption keys unique for each memory address of the plurality of memory addresses of the memory in the user design undergoing functional verification by performing an operation using the random number and the corresponding memory address; and writing a second set of data to the plurality of memory addresses by encrypting the first set of data with the first set of encryption keys unique for each memory address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium having stored thereon a plurality of instructions, said plurality of instructions when executed by a computer, cause said computer to perform:
-
generating a random number in response to a power signal during a functional verification test of a user design undergoing functional verification, wherein the functional verification test is performed prior to manufacture using a functional verification testing system, and wherein the user design can operate in a plurality of power states, including a first power state and a lower power state; receiving the power signal indicating a change of power state of the user design undergoing functional verification to the lower power state; receiving a plurality of memory addresses of a memory in the user design; storing a first set of data in the plurality of memory addresses; calculating a first set of encryption keys unique for each memory address of the plurality of memory addresses of the memory in the user design undergoing functional verification by performing an operation using the random number and the corresponding memory address; and writing a second set of data to the plurality of memory addresses by encrypting the first set of data with the first set of encryption keys unique for each memory address. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system for randomizing data that can be stored in a memory portion of a user design that is undergoing functional verification testing prior to manufacture using a functional verification testing system, wherein the user design can operate in a plurality of power states, including a first power state and a lower power state, the system comprising:
-
a random number generator for generating a random number in response to a power state signal indicating a change of power state of the user design undergoing functional verification to the lower power state, wherein the random number generator receives the power state signal from the user design or from a computer performing the functional verification testing; a memory in a user design undergoing functional verification having a plurality of memory addresses; an encrypter for calculating based on the power state signal a first set of encryption keys unique for each memory address of the plurality of memory addresses by performing an operation using the random number and the corresponding memory address of the memory in the user design undergoing functional verification; an encrypting circuit for encrypting data in the plurality of memory addresses using the first set of encryption keys; and a decrypting circuit for decrypting data read from the plurality of memory addresses using the first set of encryption keys, wherein each encryption key of the first set of encryption keys are unique for each memory address. - View Dependent Claims (24)
-
Specification