PLD Multi-Boot Bitstream Validation for Reliable Reconfiguration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing methods for configuring programmable logic devices (PLDs) are prone to errors and unpredictable behavior due to corrupted or improperly programmed configuration data, especially during power failures or reprogramming events.
Innovation Solution
A method that involves reading a first bitstream from an external memory, checking for errors, and if errors are detected, reading a second bitstream from another memory block to program the configuration memory, ensuring reliable configuration data loading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If configuration data is loaded from external non-volatile memory into PLD, then the PLD can be reconfigured with new behavior, but the operation may become inoperable or unpredictable if the configuration data becomes corrupted or is improperly programmed
Solution Approach 1:
The patent implements preliminary error detection by checking configuration data integrity (via CRC validation) before loading the bitstream into the PLD. The system performs this validation in advance during the configuration phase, preventing corrupted data from causing operational failures later. This preliminary check resolves the contradiction by ensuring reconfiguration capability while maintaining operational reliability through proactive error prevention.
Solution Approach 2:
The patent introduces an intermediary validation mechanism (CRC error detection and multi-block verification system) between the external memory and the PLD configuration memory. This intermediary layer checks the integrity of configuration data before it is loaded, acting as a buffer that prevents corrupted data from compromising PLD operation. This resolves the contradiction by adding a protective intermediary that enables safe reconfiguration while preserving reliability.
2Adaptability or versatility
If configuration data is reprogrammed into external non-volatile memory, then new functionality can be implemented, but errors may occur due to power failures or improper programming
Solution Approach 1:
The patent implements feedback mechanisms through CRC error detection and verification protocols during the programming process. The system continuously monitors configuration data integrity during programming operations and provides feedback about potential errors. This feedback loop allows the system to detect and correct programming errors before they compromise the configuration, resolving the contradiction between functionality update capability and programming accuracy.
Solution Approach 2:
The patent performs preliminary verification of configuration data before final programming completion. By checking data integrity in advance and requiring successful verification before committing the programmed data to external memory, the system prevents erroneous programming from taking effect. This preliminary action resolves the contradiction by ensuring programming accuracy while maintaining the ability to update functionality.
3Reliability
If error checking is performed on configuration data, then erroneous data can be detected, but the configuration process becomes more complex
Solution Approach 1:
The patent implements self-service error detection where the configuration data itself contains embedded CRC checksums that automatically verify their own integrity. The verification process uses information already present in the configuration bitstream, eliminating the need for external complex verification hardware or procedures. This self-service approach resolves the contradiction by maintaining configuration data integrity through simple, integrated error checking that does not significantly increase system complexity.
Data Source
AI summary
Various techniques are disclosed herein to provide an improved approach to the loading of configuration data into configuration memory of programmable logic devices. For example, in accordance with one embodiment of the present invention a method of configuring a programmable logic device includes reading a first bitstream from a first memory block of an external memory device. The first bitstream is checked for errors and a second bitstream is read from a second memory block of the external memory device if an error is detected. Configuration memory of the programmable logic device is programmed with configuration data provided in one of the first bitstream and the second bitstream.


