FPGA Configuration CRC Authentication for Safe Logic Activation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Field Programmable Gate Arrays (FPGAs) with volatile memory, such as SRAM, lack a method to ensure that a specific, approved configuration is used, and are susceptible to configuration corruption, which can lead to unpredictable behavior in safety-critical systems.

Innovation Solution

A method and system for authenticating and enabling a configuration in FPGAs with volatile memory, involving loading the configuration, reading the configuration memory, computing CRC checksums, comparing them with stored valid checksums, and enabling logic functions only if the checksums match, ensuring that a single, qualified configuration is used.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a volatile configuration-memory (SRAM) is used in FPGA, then the device can be reprogrammed and supports custom interfaces, but the configuration is susceptible to corruption and cannot ensure a specific approved configuration is used

Engineering Contradiction:
ImprovereprogrammabilityVSAvoidconfiguration integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by computing and storing expected CRC checksum values for the approved configuration before the FPGA is deployed. These pre-computed checksums are stored in non-volatile memory or external storage, and later used to verify the configuration loaded into the volatile SRAM, ensuring that only the approved configuration can be activated.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by continuously monitoring the configuration integrity through CRC checksum verification. The system computes the actual CRC of the configuration in volatile memory and compares it with the pre-stored expected CRC value. Based on this comparison feedback, the system either enables or disables the logic functions, preventing operation with unauthorized or corrupted configurations.

Inventive Principle:
Principle #23Feedback

2Reliability

If configuration authentication is implemented in FPGAs, then safety and reliability are improved, but device complexity and cost increase

Engineering Contradiction:
Improveconfiguration authenticationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses CRC checksum values as an intermediary mechanism for authentication. Instead of implementing complex cryptographic authentication directly in the FPGA, the system uses simple CRC computation and comparison as an intermediary verification layer. This approach provides robust configuration authentication while keeping the added complexity minimal and manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies copying by creating and storing a copy of the expected configuration characteristics (CRC checksum values) in non-volatile storage separate from the volatile configuration memory. This copied reference data serves as the authentication standard, allowing verification without modifying the original configuration storage or requiring complex authentication hardware.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If configuration changes are allowed in FPGAs, then adaptability is improved, but safety approval validity is compromised

Engineering Contradiction:
Improveconfiguration flexibilityVSAvoidsafety approval validity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary action by pre-computing and storing CRC checksum values for each approved configuration variant before safety approval is granted. These pre-stored checksums are associated with specific safety approvals, creating a binding between the configuration state and its safety certification. Any configuration change that isn't pre-approved will produce a different CRC and fail verification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback control by continuously verifying the configuration against pre-approved checksums. The system provides feedback on whether the current configuration matches an approved state, enabling or disabling logic functions accordingly. This ensures that configuration flexibility is maintained only within the boundaries of pre-approved changes, preserving safety approval validity.

Inventive Principle:
Principle #23Feedback

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This solution ensures that only the approved configuration is used in FPGAs, preventing unintended changes and corruption, thereby maintaining the reliability and safety of safety-critical systems.

Implementation Method 1

computing one or more different Cyclic Redundancy Check, CRC, of the read content of the configuration-memory

Methodology Applied
Scientific EffectCyclic Redundancy Check (CRC):

Data Source

PatentUS12306924B2Configuration authentication prior to enabling activation of a FPGA having volatile configuration-memory
Publication Date: 2025.05.20 KONGSBERG DEFENCE & AEROSPACE
  • US12306924B2 patent drawing
  • US12306924B2 patent drawing
  • US12306924B2 patent drawing

AI summary

A method and system for authenticating and enabling activation of a configuration used for controlling a product, where the configuration is implemented as safety critical logic functions in programmable logic blocks of a Field Programmable Gate Array, FPGA, having a volatile configuration-memory. The configuration is loaded into the volatile configuration-memory of the FPGA via an external interface input of the FPGA. The content of the configuration-memory of the FPGA is read via an interface of the FPGA. This is done immediately after completed loading of the configuration into the memory of the FPGA. A Cyclic Redundancy Check, CRC, checksum of the read content of the configuration-memory is computed in an CRC checksum generator, and a resulting generated CRC checksum value is compared with an externally stored valid CRC checksum value of the expected FPGA configuration. It is then checked if the generated CRC checksum value and the stored valid CRC checksum value match and the outputs of selected logic functions of the FPGA are enabled only if the generated CRC check value and the stored valid CRC checksum values match.