SILENT ERROR DETECTION IN SRAM-BASED FPGA DEVICES
Methods and systems for detecting errors in a field programmable gate array are disclosed. One method includes applying a cyclic redundancy check value to a transaction, the transaction including an address and data associated with the address. The method also includes applying a cyclic redundancy check value prior to routing the transaction through a field programmable gate array, and checking the cyclic redundancy check value after routing the transaction through the field programmable gate array to detect errors in the field programmable gate array.
1 . A method of detecting silent errors in a field programmable gate array, the method comprising:
applying a cyclic redundancy check value to a transaction prior to routing the transaction through a field programmable gate array, the transaction including an address and data associated with the address; and
checking the cyclic redundancy check value after routing the transaction through a field programmable gate array to detect errors in the field programmable gate array.
2 . The method of claim 1 , further comprising transmitting the transaction and cyclic redundancy check value to a field programmable gate array.
3 . The method of claim 2 , wherein applying the cyclic redundancy check value occurs before transmitting the transaction and cyclic redundancy check value to the field programmable gate array.
4 . The method of claim 2 , wherein the field programmable gate array is an SRAM-based field programmable gate array.
5 . The method of claim 1 , further comprising, checking the cyclic redundancy check value prior to routing the transaction through the field programmable gate array.
6 . The method of claim 1 , wherein applying a cyclic redundancy check value to a transaction is performed in logic communicatively interfaced to the field programmable gate array.
7 . The method of claim 1 , wherein applying a cyclic redundancy check value to a transaction is performed within the field programmable gate array.
8 . The method of claim 1 , wherein the errors include errors in the configuration memory of the field programmable gate array.
9 . A computing system comprising:
An input/output subsystem including a field programmable gate array;
a programmable circuit communicatively connected to the input/output subsystem and configured to exchange input/output transactions to the input/output subsystem, each input/output transaction including an address and data;
wherein at least one of the input/output subsystem or the programmable circuit is configured to apply a cyclic redundancy check value to each input/output transaction, and wherein the input/output subsystem is configured to check the cyclic redundancy check value output with the input/output transaction from the field programmable gate array to detect errors in the field programmable gate array.
10 . The system of claim 9 , wherein the errors include silent errors.
11 . The system of claim 9 , wherein the field programmable gate array is an SRAM-based field programmable gate array.
12 . The system of claim 9 , wherein applying a cyclic redundancy check value to an input/output transaction is performed within the field programmable gate array.
13 . The system of claim 9 , wherein the errors include errors in the configuration memory of the field programmable gate array.
14 . The system of claim 13 , wherein the errors occur in configuration memory controlling one or more routing switches within the field programmable gate array.
15 . The system of claim 13 , wherein the errors occur in configuration memory controlling one or more multiplexers within the field programmable gate array.
16 . The system of claim 9 , wherein the input/output subsystem includes circuitry interfaced to the field programmable gate array and is configured to apply a cyclic redundancy check value to each input/output transaction passed to the field programmable gate array.
17 . The system of claim 9 , wherein the input/output subsystem includes circuitry interfaced to the field programmable gate array and is configured to evaluate a cyclic redundancy check value for each input/output transaction received from the field programmable gate array.
18 . A field programmable gate array comprising:
a plurality of logic blocks;
a configuration memory programmable to define routing among the plurality of logic blocks;
an input/output connection block communicatively connected to the plurality of logic blocks and the configuration memory, the input/output connection block configured to send and receive transactions including an address and data; and
a cyclic redundancy check circuit configured to apply a cyclic redundancy check value to each transaction received at the input/output connection block and to check the cyclic redundancy check value associated with each transaction to be sent from the input/output connection block to detect errors in the field programmable gate array.
19 . The field programmable gate array of claim 18 , wherein the field programmable gate array comprises an SRAM-based field programmable gate array.
20 . The field programmable gate array of claim 18 , wherein the errors detected by the cyclic redundancy check circuit include silent errors.
21 . The field programmable gate array of claim 18 , wherein the detected errors occur in configuration memory controlling one or more multiplexers within the field programmable gate array.