Using transfer bits during data transfer from non-volatile to volatile memories
First Claim
1. A method of configuring a programmable logic device including non-volatile and volatile memories, the non-volatile memory including a plurality of words comprising configuration data for the programmable logic device, each word including a first transfer bit having a first stored value that is one of a “
- programmed”
value and an “
erased”
value, the method comprising;
powering up the programmable logic device;
setting a latch to a predetermined initialization value while powering up the programmable logic device;
repeating the following sequence for a series of the words in the non-volatile memory, from a first word to a final word;
transferring one of the words from the non-volatile memory to the volatile memory, anddetecting a first detected value of the first transfer bit transferred from the non-volatile memory to the volatile memory;
repeating, if the first detected value is different from the first stored value for any one word, transferring the first word from the non-volatile memory to the volatile memory; and
for each transferred word, changing a value in the latch from the predetermined initialization value, if the first detected value is different from the first stored value.
1 Assignment
0 Petitions
Accused Products
Abstract
Structures and methods for transferring data from non-volatile to volatile memories. An extra bit, called a “transfer bit”, is included in each data word. The transfer bit is set to the programmed value, and is monitored by a control circuit during the memory transfer. If the supply voltage is sufficient for correct programming, the transfer bit is read as “programmed”, and the data transfer continues. If the supply voltage is below the minimum supply voltage for proper programming, the transfer bit is read as “erased”, and the data transfer is reinitiated. In one embodiment, a second transfer bit set to the “erased” value is included in each word.
-
Citations
22 Claims
-
1. A method of configuring a programmable logic device including non-volatile and volatile memories, the non-volatile memory including a plurality of words comprising configuration data for the programmable logic device, each word including a first transfer bit having a first stored value that is one of a “
- programmed”
value and an “
erased”
value, the method comprising;powering up the programmable logic device; setting a latch to a predetermined initialization value while powering up the programmable logic device; repeating the following sequence for a series of the words in the non-volatile memory, from a first word to a final word; transferring one of the words from the non-volatile memory to the volatile memory, and detecting a first detected value of the first transfer bit transferred from the non-volatile memory to the volatile memory; repeating, if the first detected value is different from the first stored value for any one word, transferring the first word from the non-volatile memory to the volatile memory; and for each transferred word, changing a value in the latch from the predetermined initialization value, if the first detected value is different from the first stored value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- programmed”
-
10. An apparatus for configuring a programmable logic device including non-volatile and volatile memories, the non-volatile memory including a plurality of words comprising configuration data for the programmable logic device, each word including a first transfer bit having a first stored value that is one of a “
- programmed”
value and an “
erased”
value, the apparatus comprising;means for powering up the programmable logic device; means for setting a latch to a predetermined initialization value while powering up the programmable logic device; means for transferring each of the words from the non-volatile memory to the volatile memory, in a sequence of words from a first word to a final word; means for detecting for each word a first detected value of the first transfer bit transferred from the non-volatile memory to the volatile memory; means for repeating, if the first detected value is different from the first stored value for any one word, transferring each of the words from the non-volatile memory to the volatile memory and detecting for each word a first detected value; and means for changing, for each transferred word, a value in the latch from the predetermined initialization value, if the first detected value is different from the first stored value.
- programmed”
-
11. A method of transferring data from a non-volatile memory to a volatile memory in a circuit, the non-volatile memory including a plurality of words, each word including a first transfer bit having a first stored value that is one of a “
- programmed”
value and an “
erased”
value, the method comprising;powering up the circuit; setting a latch to a predetermined initialization value while powering up the circuit; repeating the following sequence in response to the powering up the circuit, for a series of the words in the non-volatile memory, from a first word to a final word; transferring one of the words from the non-volatile memory to the volatile memory, and detecting a first detected value of the first transfer bit transferred from the non-volatile memory to the volatile memory; repeating, if the first detected value is different from the first stored value for any one word, transferring the first word from the non-volatile memory to the volatile memory; and changing, for each transferred word, a value in the latch from the predetermined initialization value, if the first detected value is different from the first stored value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
- programmed”
-
22. An apparatus for transferring data from a non-volatile memory to a volatile memory in a circuit, the non-volatile memory including a plurality of words, each word including a first transfer bit having a first stored value that is one of a “
- programmed”
value and an “
erased”
value, the apparatus comprising;means for powering up the circuit; means for setting a latch to a predetermined initialization value while powering up the circuit; means for transferring each of the words from the non-volatile memory to the volatile memory, in a sequence of words from a first word to a final word; means for detecting for each word a first detected value of the first transfer bit transferred from the non-volatile memory to the volatile memory; means for repeating, if the first detected value is different from the first stored value for any one word, transferring each of the words from the non-volatile memory to the volatile memory and detecting for each word a first detected value; and means for changing, for each transferred word, a value in the latch from the predetermined initialization value, if the first detected value is different from the first stored value.
- programmed”
Specification