The contents of the following Japanese patent application(s) are incorporated herein by reference:
NO. 2022-021221 filed in JP on Feb. 15, 2022
The present invention relates to a processing circuit.
Up to now, a technique for improving tolerance to external noise of data stored in a non-volatile memory such as an EPROM in a semiconductor apparatus has been proposed (for example, see Patent documents 1 to 3).
Hereinafter, the present invention will be described through embodiments of the invention, but the following embodiments do not limit the invention according to the claims. In addition, not all combinations of the features described in the embodiments necessarily have to be essential to solving means of the invention.
In the following description, a compensation of a detection value of a sensor element will be described as an example, but the present disclosure is not limited to the compensation of the detection value of the sensor element. For example, the present disclosure can be used for a non-volatile memory configured to store compensation data for a characteristic fluctuation of switching elements.
The sensor apparatus 100 of the present example includes a processing circuit 20, the sensor element 50, and a compensation arithmetic unit 70 (compensation unit). The sensor apparatus 100 may further include at least a part of an amplification circuit 60 and an output unit 80. In addition, the sensor apparatus 100 may be formed of the sensor element 50 formed on a semiconductor substrate, and a semiconductor apparatus 90 formed for components other than the sensor element 50 on the same semiconductor substrate.
The processing circuit 20 is configured to store compensation data for compensating a detection value (compensation target) of the sensor element 50 (pressure sensor). The compensation data is data used for sensitivity adjustment, temperature characteristic adjustment, or the like of the sensor element 50. The processing circuit 20 may be a compensation memory. The compensation data may be input in advance to the processing circuit 20 at the time of shipment or installation of the sensor apparatus 100 or other timing. The compensation data may be generated based on an operation result after the sensor apparatus 100 is caused to operate in a predetermined environment. For example, the compensation data may be data for converting the detection value of the sensor element 50 into an operation result.
The processing circuit 20 may be a non-volatile memory such as, for example, a flash memory, an EPROM, or an EEPROM. The processing circuit 20 may be a combination of a plurality of non-volatile memories and circuits. The processing circuit 20 stores digital data by saving a predetermined physical quantity. As an example, the predetermined physical quantity is a quantity of charge accumulated in a floating gate. The processing circuit 20 may output binary data according to whether the saved physical quantity is a predetermined threshold or more. In the present example, the processing circuit 20 outputs a bit value of “1” when the saved charge is a predetermined threshold or more, and the processing circuit 20 outputs a bit value of “0” when the saved charge is the predetermined threshold or less. The compensation data output by the processing circuit 20 may be temporarily stored in an auxiliary memory such as a register.
The amplification circuit 60 is configured to amplify and output an amplitude of a detection signal output by the sensor element 50. The detection signal is a signal indicating a detection value that has been detected by the sensor element 50. The compensation arithmetic unit 70 is configured to compensate the detection signal output by the amplification circuit 60 by using the compensation data. The output unit 80 is configured to output digital data according to the detection signal compensated by the compensation arithmetic unit 70 as data output indicating the detection value of the sensor element 50. Note that the compensation data may be input to at least one of the sensor element 50 or the amplification circuit 60. The compensation processing using the compensation data may be at least partially performed by the sensor element 50 or the amplification circuit 60.
The physical quantity saved by the processing circuit 20 may fluctuate over time as compared with the data immediately after being written. For example, the charge accumulated in a floating gate can decrease due to natural deterioration caused by discharge or the like, leakage due to an oxide film defect or the like, extraction caused by external noise, or the like. In the case of the charge extraction, the bit value of the data changes from “1” to “0′”. In addition, charge may be injected due to external noise. In the case of the charge injection, the bit value of the data changes from “0” to “1′”.
In the present example, the processing circuit 20 includes OR circuits 24. The OR circuit 24 is configured to output a logical disjunction of two pieces of the storage data 22 as the output data 26. In
Next, a case where the charge extraction has occurred will be described. For example, when an error has occurred in the storage data 22-6, the bit value of the storage data 22-6 becomes “0′”. In this case, since an error is not occurring in the bit value of the storage data 22-5 which is to be used to calculate a logical disjunction together with the storage data 22-6, the bit value of the output data 26-3 becomes “1” that is the same as that in the (initial) state immediately after the input. In this manner, when the charge extraction has occurred in the comparative example of
When an error has occurred in the storage data 22-13 and the storage data 22-14, the bit value of the storage data 22-13 and the bit value of the storage data 22-14 become “0′”. In this case, when a logical disjunction of the storage data 22-13 and the storage data 22-14 is calculated, the bit value of the output data 26-7 becomes “0′” which is different from that in the (initial) state immediately after the input. Accordingly, when the charge extraction has occurred consecutively in two bits in the storage data 22, an error may occur in the output data 26. Note that when the charge extraction has occurred in the storage data 22 like the storage data 22-16 and the storage data 22-17 which are not used to calculate a logical disjunction with each other, an error does not occur in the output data 26 as long as an error is not occurring in the other piece of the storage data 22 which is used together to calculate the logical disjunction.
Next, a case where the charge injection has occurred will be described. For example, when an error has occurred in the storage data 22-9, the bit value of the storage data 22-9 becomes “1′”. In this case, when a logical disjunction is calculated with the storage data 22-10, the bit value of the output data 26-5 becomes “1′” which is different from that in the (initial) state immediately after the input.
In the present example, the processing circuit 20 includes majority circuits 34. The majority circuit 34 is configured to output a majority vote of three pieces of the storage data 32 as the output data 36. For example, when the bit values of the three pieces of the storage data 32 are “1”, “0”, and “0”, the bit value of the output data becomes “0”. In
Next, a case where the charge extraction has occurred will be described. For example, when an error has occurred in the storage data 32-9, the bit value of the storage data 32-9 becomes “0′”. In this case, since an error is not occurring in the bit values of the remaining two pieces of the storage data 32 which are used to calculate a majority vote together with the storage data 32-9, the bit value of the output data 36-3 becomes “1” which is the same as that in the (initial) state immediately after the input. In this manner, in a case where the charge extraction has occurred in the comparative example of
When an error has occurred in the storage data 32-19 and the storage data 32-20, the bit value of the storage data 32-19 and the bit value of the storage data 32-20 become “0′”. In this case, when a majority vote is calculated, the bit value of the output data 36-7 becomes “0′” which is different from that in the (initial) state immediately after the input. Accordingly, when the charge extraction has occurred consecutively in two bits in the storage data 32, an error may occur in the output data 36. Note that when the charge extraction has occurred in the storage data 32 like the storage data 32-24 and the storage data 32-25 which are not used to calculate a majority vote with each other, an error does not occur in the output data 36 as long as an error is not occurring in the other pieces of the storage data 32 which are used together to calculate the majority vote.
Next, a case where the charge injection has occurred will be described. For example, when an error has occurred in the storage data 32-5, the bit value of the storage data 32-5 becomes “1′”. In this case, since an error is not occurring in the bit values of the remaining two pieces of the storage data 32 which are used to calculate a majority vote together with the storage data 32-5, the bit value of the output data 36-2 becomes “0” which is the same as that in the (initial) state immediately after the input. In this manner, since a majority vote of three pieces of the storage data 32 is set as the output data 36 for each bit in the comparative example of
When an error has occurred in the storage data 32-28 and the storage data 32-29, the bit value of the storage data 32-28 and the bit value of the storage data 32-29 become “1′”. In this case, when a majority vote is calculated, the bit value of the output data 36-10 becomes “1′” which is different from that in the (initial) state immediately after the input. Accordingly, when the charge injection has occurred consecutively in two bits in the storage data 32, an error may occur in the output data 36. Note that when the charge injection has occurred in the storage data 32 like the storage data 32-33 and the storage data 32-34 which are not used to calculate a majority vote with each other, an error does not occur in the output data 36 as long as an error is not occurring in the other pieces of the storage data 32 which are used together to calculate the majority vote.
As described above, in the case of the processing circuit 20 of
The memory unit 52 is configured to store storage data 44. The storage data 44 to be stored by the memory unit 52 is set as storage data 44-1 to storage data 44-32 from the left in the stated order. The storage data 44 includes a bit value of each bit of the input data 42 and a logical exclusive disjunction of bit values of two specific pieces of the input data 42. In the calculation of the logical exclusive disjunction, a code indicating whether the bit values are identical is to be output. That is, an output of the logical exclusive disjunction becomes “1” when the bit values of the two specific pieces of the input data 42 are different from each other, and the output of the logical exclusive disjunction becomes “0” when the bit values of the two specific pieces of the input data 42 are identical. The logical exclusive disjunction of the bit values of the two specific pieces of the input data 42 is a logical exclusive disjunction of the bit value of every other piece of the arranged input data 42 in the present example. Specifically, the storage data 44 of
The storage data 44 in connection to the input data 42-9 will be described. The bit value of the input data 42-7 is stored in the storage data 44-13. The input data 42-7 is an example of a first bit. In
A code indicating whether the bit value of the input data 42-7 and the bit value of the input data 42-9 are identical is stored in the storage data 44-15. In the present example, an exclusive OR circuit 62-1 is configured to output a logical exclusive disjunction of the bit value of the input data 42-7 and the bit value of the input data 42-9 to the storage data 44-15. The storage data 44-15 is an example of a first memory code. The bit value of the storage data 44-15 is “0”. The first memory code may be a logical exclusive disjunction of the bit value of the first bit and the bit value of the second bit. A code indicating whether the bit value of the input data 42-9 and the bit value of the input data 42-11 are identical is stored in the storage data 44-19. In the present example, an exclusive OR circuit 62-2 is configured to output a logical exclusive disjunction of the bit value of the input data 42-9 and the bit value of the input data 42-11 to the storage data 44-19. The storage data 44-19 is an example of a second memory code. The bit value of the storage data 44-19 is “1”. The second memory code may be a logical exclusive disjunction of the bit value of the second bit and the bit value of the third bit. To summarize the above, the memory unit 52 stores the first bit, the second bit, the third bit, the first memory code, and the second memory code.
The code generation unit 54 is configured to generate a generation code indicating whether two specific pieces of the input data 42 stored by the memory unit 52 are identical. In the present example, the code generation unit 54 generates a first generation code indicating whether the bit value of the first bit stored by the memory unit 52 and the bit value of the second bit stored by the memory unit 52 are identical, and a second generation code indicating whether the bit value of the second bit stored by the memory unit 52 and the bit value of the third bit stored by the memory unit 52 are identical. In the present example, the code generation unit 54 includes an exclusive OR circuit 64-1 and an exclusive OR circuit 64-2. In the present example, the exclusive OR circuit 64-1 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-13 and the bit value of the storage data 44-17. An output of the exclusive OR circuit 64-1 is an example of the first generation code. The first generation code may be a logical exclusive disjunction of the bit value of the first bit stored by the memory unit 52 and the bit value of the second bit stored by the memory unit 52. In the present example, the exclusive OR circuit 64-2 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-17 and the bit value of the storage data 44-21. An output of the exclusive OR circuit 64-2 is an example of the second generation code. The second generation code may be a logical exclusive disjunction of the bit value of the second bit stored by the memory unit 52 and the bit value of the third bit stored by the memory unit 52.
The determination unit 56 is configured to determine whether, based on a result of a comparison between the first memory code and the first generation code and a result a comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 determines whether, based on a logical conjunction of the result of the comparison between the first memory code and the first generation code and the result of the comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 includes an exclusive OR circuit 66-1, an exclusive OR circuit 66-2, and an AND circuit 68-1. In the present example, the exclusive OR circuit 66-1 is configured to output a logical exclusive disjunction of the bit value of the first memory code (the storage data 44-15) and the bit value of the first generation code (the output of the exclusive OR circuit 64-1). The exclusive OR circuit 66-1 is an example of a first exclusive OR circuit. In the present example, the exclusive OR circuit 66-2 is configured to output a logical exclusive disjunction of the bit value of the second memory code (the storage data 44-19) and the bit value of the second generation code (the output of the exclusive OR circuit 64-2). The exclusive OR circuit 66-2 is an example of a second exclusive OR circuit. The AND circuit 68-1 is configured to output a logical conjunction of an output of the exclusive OR circuit 66-1 and an output of the exclusive OR circuit 66-2.
A determination method of the determination unit 56 will be described. First, a case where an error is not occurring in the storage data 44 will be described. The bit value of the first memory code (the storage data 44-15) and the bit value of the first generation code (the output of the exclusive OR circuit 64-1) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-1 is “0”. Similarly, when an error is not occurring in the storage data 44, the bit value of the second memory code (the storage data 44-19) and the bit value of the second generation code (the output of the exclusive OR circuit 64-2) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-2 is “0”. Therefore, the bit value of the output of the AND circuit 68-1 is “0”. When the bit value of the output of the AND circuit 68-1 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
Next, a case where an error is occurring in the storage data 44 will be described. For example, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the first memory code (the storage data 44-15) and the bit value of the first generation code (the output of the exclusive OR circuit 64-1) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-1 is “1”. Similarly, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the second memory code (the storage data 44-19) and the bit value of the second generation code (the output of the exclusive OR circuit 64-2) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-2 is “1”. Therefore, the bit value of the output of the AND circuit 68-1 is “1”. When the bit value of the output of the AND circuit 68-1 is “1”, the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
In addition, when an error is occurring in the storage data 44, only either the bit value of the output of the exclusive OR circuit 66-1 or the bit value of the output of the exclusive OR circuit 66-2 may be “1”. In this case, the bit value of the output of the AND circuit 68-1 is “0”, and the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. For example, when the bit value of the output of the exclusive OR circuit 66-1 is “1” and the bit value of the output of the exclusive OR circuit 66-2 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-13 or the storage data 44-15. Similarly, when the bit value of the output of the exclusive OR circuit 66-1 is “0” and the bit value of the output of the exclusive OR circuit 66-2 is “1”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-19 or the storage data 44-21.
To summarize the above, the determination unit 56 may determine that an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 when the first memory code (the storage data 44-15) and the first generation code (the output of the exclusive OR circuit 64-1) are different from each other and also when the second memory code (the storage data 44-19) and the second generation code (the output of the exclusive OR circuit 64-2) are different from each other. In addition, the determination unit 56 determines that the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is correct when the first memory code (the storage data 44-15) and the first generation code (the output of the exclusive OR circuit 64-1) are identical or when the second memory code (the storage data 44-19) and the second generation code (the output of the exclusive OR circuit 64-2) are identical. In another example, the determination unit 56 may determine that the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is correct when the first memory code (the storage data 44-15) and the first generation code (the output of the exclusive OR circuit 64-1) are different from each other and also when the second memory code (the storage data 44-19) and the second generation code (the output of the exclusive OR circuit 64-2) are different from each other, and determine that an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 when the first memory code (the storage data 44-15) and the first generation code (the output of the exclusive OR circuit 64-1) are identical or when the second memory code (the storage data 44-19) and the second generation code (the output of the exclusive OR circuit 64-2) are identical. In addition, an inverting circuit may be provided in either an input of the exclusive OR circuit 66-1 or an input of the exclusive OR circuit 66-2.
The correction unit 58 is configured to correct and output the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 when the determination unit 56 determines that an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the correction unit 58 includes an exclusive OR circuit 72-1. The exclusive OR circuit 72-1 is configured to output a logical exclusive disjunction of the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 and the bit value of the output of the AND circuit 68-1 to the output data 46-9. For example, when the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-1 is “1”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output by being inverted. That is, in a case where the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, “0” is the output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “1”, and “1” is output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “0”. When the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-1 is “0”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output to the output data 46-9. In
The element 82 includes a switching element 84 and a constant current source 86. The constant current source 86 is connected to a drain terminal D of the switching element 84. The switching element 84 of the present example is a MOSFET including a floating gate. The drain terminal D of the switching element 84 is connected to a high potential line VDD via the constant current source 86, and a source terminal S is connected to a reference potential line GND. A predetermined gate voltage VG is applied to a gate terminal G of the switching element 84. In a state where charge is not accumulated at the floating gate of the switching element 84, the switching element 84 turns on by the gate voltage VG to allow a current sufficiently larger than a constant current of the constant current source 86 to flow, and a drain voltage becomes a voltage close to a potential of the reference potential line GND. On the other hand, in a state where charge is accumulated at the floating gate of the switching element 84, the switching element 84 does not turn on by the gate voltage VG, and the drain voltage becomes a voltage close to a potential of the high potential line VDD by a current of the constant current source 86. That is, the voltage of the drain terminal D is determined depending on the presence or absence of the accumulated charge at the floating gate of the switching element 84, data of the bit is decided. That is, the drain terminal D is configured to function as an output terminal of the element 82. The code generation unit 54 generates the first generation code and the second generation code from the a bit value of each bit of the data output from the drain terminal D of the element 82. The respective elements 82 in the plurality of the elements 82 are provided in parallel between the high potential line VDD and the reference potential line GND. The element 82-1 to the element 82-32 may be provided in parallel in this order between the high potential line VDD and the reference potential line GND.
In
The storage data 44 includes a bit value of each bit of the input data 42 and a logical exclusive disjunction of bit values of two specific pieces of the input data 42. In the calculation of the logical exclusive disjunction, a code indicating whether the bit values are identical is to be output. The logical exclusive disjunction of the bit values of the two specific pieces of the input data 42 is a logical exclusive disjunction of the bit value of every third piece of the arranged input data 42 in the present example. Specifically, the storage data 44 of
The storage data 44 in connection to the input data 42-9 will be described. The bit value of the input data 42-6 is stored in the storage data 44-11. The input data 42-6 is an example of the first bit. In
A code indicating whether the bit value of the input data 42-6 and the bit value of the input data 42-9 are identical is stored in the storage data 44-14. In the present example, an exclusive OR circuit 62-3 is configured to output a logical exclusive disjunction of the bit value of the input data 42-6 and the bit value of the input data 42-9 to the storage data 44-14. The storage data 44-14 is an example of the first memory code. The bit value of the storage data 44-14 is “1”. A code indicating whether the bit value of the input data 42-9 and the bit value of the input data 42-12 are identical is stored in the storage data 44-20. In the present example, an exclusive OR circuit 62-4 is configured to output a logical exclusive disjunction of the bit value of the input data 42-9 and the bit value of the input data 42-12 to the storage data 44-20. The storage data 44-20 is an example of the second memory code. The bit value of the storage data 44-20 is “1”.
The code generation unit 54 generates a generation code indicating whether two specific pieces of the input data 42 stored by the memory unit 52 are identical. In the present example, the code generation unit 54 generates a first generation code indicating whether the bit value of the first bit stored by the memory unit 52 and the bit value of the second bit stored by the memory unit 52 are identical, and a second generation code indicating whether the bit value of the second bit stored by the memory unit 52 and the bit value of the third bit stored by the memory unit 52 are identical. In the present example, the code generation unit 54 includes an exclusive OR circuit 64-3 and an exclusive OR circuit 64-4. In the present example, the exclusive OR circuit 64-3 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-11 and the bit value of the storage data 44-17. An output of the exclusive OR circuit 64-3 is an example of the first generation code. In the present example, the exclusive OR circuit 64-4 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-17 and the bit value of the storage data 44-23. An output of the exclusive OR circuit 64-4 is an example of the second generation code.
The determination unit 56 determines whether, based on a result of a comparison between the first memory code and the first generation code and a result a comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 determines whether, based on a logical conjunction of the result of the comparison between the first memory code and the first generation code and the result of the comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 includes an exclusive OR circuit 66-3, an exclusive OR circuit 66-4, and an AND circuit 68-2. In the present example, the exclusive OR circuit 66-3 is configured to output a logical exclusive disjunction of the bit value of the first memory code (the storage data 44-14) and the bit value of the first generation code (the output of the exclusive OR circuit 64-3). In the present example, the exclusive OR circuit 66-4 is configured to output a logical exclusive disjunction of the bit value of the second memory code (the storage data 44-20) and the bit value of the second generation code (the output of the exclusive OR circuit 64-4). The AND circuit 68-2 is configured to output a logical conjunction of an output of the exclusive OR circuit 66-3 and an output of the exclusive OR circuit 66-4.
A determination method of the determination unit 56 will be described. First, a case where an error is not occurring in the storage data 44 will be described. The bit value of the first memory code (the storage data 44-14) and the bit value of the first generation code (the output of the exclusive OR circuit 64-3) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-3 is “0”. Similarly, when an error is not occurring in the storage data 44, the bit value of the second memory code (the storage data 44-20) and the bit value of the second generation code (the output of the exclusive OR circuit 64-4) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-4 is “0”. Therefore, the bit value of the output of the AND circuit 68-2 is “0”. When the bit value of the output of the AND circuit 68-2 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
Next, a case where an error is occurring in the storage data 44 will be described. For example, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the first memory code (the storage data 44-14) and the bit value of the first generation code (the output of the exclusive OR circuit 64-3) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-3 is “1”. Similarly, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the second memory code (the storage data 44-20) and the bit value of the second generation code (the output of the exclusive OR circuit 64-4) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-4 is “1”. Therefore, the bit value of the output of the AND circuit 68-2 is “1”. When the bit value of the output of the AND circuit 68-2 is “1”, the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
In addition, when an error is occurring in the storage data 44, only either the bit value of the output of the exclusive OR circuit 66-3 or the bit value of the output of the exclusive OR circuit 66-4 may be “1”. In this case, the bit value of the output of the AND circuit 68-2 is “0”, and the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. For example, when the bit value of the output of the exclusive OR circuit 66-3 is “1” and the bit value of the output of the exclusive OR circuit 66-4 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-11 or the storage data 44-14. Similarly, when the bit value of the output of the exclusive OR circuit 66-3 is “0” and the bit value of the output of the exclusive OR circuit 66-4 is “1”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-20 or the storage data 44-23.
The correction unit 58 corrects and outputs the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 when the determination unit 56 determines that an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the correction unit 58 includes an exclusive OR circuit 72-2. The exclusive OR circuit 72-2 is configured to output a logical exclusive disjunction of the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 and the bit value of the output of the AND circuit 68-2 to the output data 46-9. For example, when the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-2 is “1”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output by being inverted. That is, in a case where the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, “0” is the output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “1”, and “1” is output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “0”. When the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-2 is “0”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output to the output data 46-9. In
The storage data 44 includes a bit value of each bit of the input data 42 and a logical exclusive disjunction of bit values of two specific pieces of the input data 42. In the calculation of the logical exclusive disjunction, a code indicating whether the bit values are identical is to be output. The logical exclusive disjunction of the bit values of the two specific pieces of the input data 42 is a logical exclusive disjunction of the bit value of every fifth piece of the arranged input data 42 in the present example. Specifically, the storage data 44 of
The storage data 44 in connection to the input data 42-9 will be described. The bit value of the input data 42-4 is stored in the storage data 44-7. The input data 42-4 is an example of the first bit. In
A code indicating whether the bit value of the input data 42-4 and the bit value of the input data 42-9 are identical is stored in the storage data 44-12. In the present example, an exclusive OR circuit 62-5 is configured to output a logical exclusive disjunction of the bit value of the input data 42-4 and the bit value of the input data 42-9 to the storage data 44-12. The storage data 44-12 is an example of the first memory code. The bit value of the storage data 44-12 is “0”. A code indicating whether the bit value of the input data 42-9 and the bit value of the input data 42-14 are identical is stored in the storage data 44-22. In the present example, an exclusive OR circuit 62-6 is configured to output a logical exclusive disjunction of the bit value of the input data 42-9 and the bit value of the input data 42-14 to the storage data 44-22. The storage data 44-22 is an example of the second memory code. The bit value of the storage data 44-22 is “1”.
The code generation unit 54 generates a generation code indicating whether two specific pieces of the input data 42 stored by the memory unit 52 are identical. In the present example, the code generation unit 54 generates a first generation code indicating whether the bit value of the first bit stored by the memory unit 52 and the bit value of the second bit stored by the memory unit 52 are identical, and a second generation code indicating whether the bit value of the second bit stored by the memory unit 52 and the bit value of the third bit stored by the memory unit 52 are identical. In the present example, the code generation unit 54 includes an exclusive OR circuit 64-5 and an exclusive OR circuit 64-6. In the present example, the exclusive OR circuit 64-5 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-7 and the bit value of the storage data 44-17. An output of the exclusive OR circuit 64-5 is an example of the first generation code. In the present example, the exclusive OR circuit 64-6 is configured to output a logical exclusive disjunction of the bit value of the storage data 44-17 and the bit value of the storage data 44-27. An output of the exclusive OR circuit 64-6 is an example of the second generation code.
The determination unit 56 determines whether, based on a result of a comparison between the first memory code and the first generation code and a result a comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 determines whether, based on a logical conjunction of the result of the comparison between the first memory code and the first generation code and the result of the comparison between the second memory code and the second generation code, an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the determination unit 56 includes an exclusive OR circuit 66-5, an exclusive OR circuit 66-6, and an AND circuit 68-3. In the present example, the exclusive OR circuit 66-5 is configured to output a logical exclusive disjunction of the bit value of the first memory code (the storage data 44-12) and the bit value of the first generation code (the output of the exclusive OR circuit 64-5). In the present example, the exclusive OR circuit 66-6 is configured to output a logical exclusive disjunction of the bit value of the second memory code (the storage data 44-22) and the bit value of the second generation code (the output of the exclusive OR circuit 64-6). The AND circuit 68-3 is configured to output a logical conjunction of an output of the exclusive OR circuit 66-5 and an output of the exclusive OR circuit 66-6.
A determination method of the determination unit 56 will be described. First, a case where an error is not occurring in the storage data 44 will be described. The bit value of the first memory code (the storage data 44-12) and the bit value of the first generation code (the output of the exclusive OR circuit 64-5) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-5 is “0”. Similarly, when an error is not occurring in the storage data 44, the bit value of the second memory code (the storage data 44-22) and the bit value of the second generation code (the output of the exclusive OR circuit 64-6) become identical. Accordingly, the bit value of the output of the exclusive OR circuit 66-6 is “0”. Therefore, the bit value of the output of the AND circuit 68-3 is “0”. When the bit value of the output of the AND circuit 68-3 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
Next, a case where an error is occurring in the storage data 44 will be described. For example, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the first memory code (the storage data 44-12) and the bit value of the first generation code (the output of the exclusive OR circuit 64-5) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-5 is “1”. Similarly, when an error is occurring in only the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, the bit value of the second memory code (the storage data 44-22) and the bit value of the second generation code (the output of the exclusive OR circuit 64-6) are different from each other. Accordingly, the bit value of the output of the exclusive OR circuit 66-6 is “1”. Therefore, the bit value of the output of the AND circuit 68-3 is “1”. When the bit value of the output of the AND circuit 68-3 is “1”, the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52.
In addition, when an error is occurring in the storage data 44, only either the bit value of the output of the exclusive OR circuit 66-5 or the bit value of the output of the exclusive OR circuit 66-6 may be “1”. In this case, the bit value of the output of the AND circuit 68-3 is “0”, and the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. For example, when the bit value of the output of the exclusive OR circuit 66-5 is “1” and the bit value of the output of the exclusive OR circuit 66-6 is “0”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-7 or the storage data 44-12. Similarly, when the bit value of the output of the exclusive OR circuit 66-5 is “0” and the bit value of the output of the exclusive OR circuit 66-6 is “1”, the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, and determines that an error is being generated in either the storage data 44-22 or the storage data 44-27.
The correction unit 58 corrects and outputs the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 when the determination unit 56 determines that an error has occurred in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52. In the present example, the correction unit 58 includes an exclusive OR circuit 72-3. The exclusive OR circuit 72-3 is configured to output a logical exclusive disjunction of the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 and the bit value of the output of the AND circuit 68-3 to the output data 46-9. For example, when the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-3 is “1”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output by being inverted. That is, in a case where the determination unit 56 determines that an error is occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, “0” is the output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “1”, and “1” is output to the output data 46-9 when the bit value of the second bit (the storage data 44-17) is “0”.
When the determination unit 56 determines that an error is not occurring in the bit value of the second bit (the storage data 44-17) stored by the memory unit 52, since the bit value of the output of the AND circuit 68-3 is “0”, the bit value of the second bit (the storage data 44-17) stored by the memory unit 52 is output to the output data 46-9. In
The high potential line VDD includes a first wiring 92 and a second wiring 94. The first wiring 92 is connected to the elements 82-1 to 82-16. The drain terminal D of the switching element 84 of the elements 82-1 to 82-16 is connected to the first wiring 92 of the high potential line VDD via the constant current source 86. The second wiring 94 is connected to the elements 82-17 to 82-32. The drain terminal D of the switching element 84 of the elements 82-17 to 82-32 is connected to the second wiring 94 of the high potential line VDD via the constant current source 86.
The reference potential line GND includes a first wiring 96 and a second wiring 98. The first wiring 96 is connected to the elements 82-1 to 82-16. The source terminal S of the switching element 84 of the elements 82-1 to 82-16 is connected to the first wiring 96 of the reference potential line GND. The second wiring 98 is connected to the elements 82-17 to 82-32. The source terminal S of the switching element 84 of the elements 82-17 to 82-32 is connected to the second wiring 98 of the reference potential line GND. The elements 82-1 to 82-16 may be provided in parallel in this order between the first wiring 92 of the high potential line VDD and the first wiring 96 of the reference potential line GND. The elements 82-17 to 82-32 may be provided in parallel in this order between the second wiring 94 of the high potential line VDD and the second wiring 98 of the reference potential line GND.
As described above, the element 82 includes a first system of the elements 82-1 to 82-16 and a second system of the elements 82-17 to 82-32. The first system and the second system are connected to the high potential line VDD or the reference potential line GND in a symmetric manner with each other. That is, an electrical path length from a branch point of the high potential line VDD to the elements 82-1 to 82-16 and an electrical path length from the branch point to the elements 82-17 to 82-32 are substantially equal to each other. Similarly, an electrical path length from a branch point of the reference potential line GND to the elements 82-1 to 82-16 and an electrical path length from the branch point to the elements 82-17 to 82-32 are substantially equal to each other. Thus, even when external noise is applied to the high potential line VDD or the reference potential line GND, a tendency of the charge extraction from the floating gate or the charge injection to the floating gate due to the external noise becomes similar between the first system and the second system. For example, the element 82-1 and the element 82-17 are symmetrically arranged with respect to the high potential line VDD and the reference potential line GND. For example, the element 82-16 and the element 82-32 are symmetrically arranged. In this case, there is a chance that the tendency of the charge extraction from the floating gate or the charge injection of the floating gate due to the external noise becomes similar between the symmetrically arranged elements 82. In the above described case, as illustrated in
While the embodiments of the present invention have been described, the technical scope of the present invention is not limited to the above described embodiments. It is apparent to persons skilled in the art that various alterations and improvements can be added to the above described embodiments. It is also apparent from the scope of the claims that the embodiments added with such alterations or improvements can be included in the technical scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2022-021221 | Feb 2022 | JP | national |