PLD Editor Automating Logic Block Validation and Correction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Programmable Logic Devices (PLDs) face challenges in programming efficiency and reliability due to the need for manual verification and potential for improper or incomplete programming when reusing modified code, leading to increased design and programming time and memory occupation issues.
Innovation Solution
A PLD editor is developed with an interface, storage system, and processing system that compares and corrects logic instruction blocks in the PLD code against a library of applicable blocks, indicating and fixing inconsistencies to ensure accurate and efficient programming.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If existing PLD programming is reused and modified for new applications, then programming time is reduced, but the reliability and correctness of the programming deteriorates due to improper or incomplete programming
Solution Approach 1:
The system automatically compares the modified PLD code against the original programming and identifies changes, providing feedback to the user about what has been modified. This allows users to review and verify changes before finalizing the new programming, maintaining reliability while enabling code reuse.
Solution Approach 2:
The system introduces an intermediary comparison mechanism that sits between the original code and the modified code, automatically identifying differences and presenting them for review. This intermediary process ensures that no unintended changes are introduced while still allowing efficient code reuse.
2Productivity
If existing PLD programming is reused and modified, then programming speed increases, but the risk of retaining unneeded code portions increases, occupying memory space and potentially causing improper behavior
Solution Approach 1:
The system extracts and highlights the specific portions of code that have been modified or removed from the original programming. This makes it easy for users to identify and remove any unneeded code portions that may have been accidentally retained, preventing memory occupation issues and improper behavior.
Solution Approach 2:
The system converts the potential harm of retaining unneeded code into a benefit by automatically comparing and highlighting differences, turning what could be a source of errors into a verification opportunity that ensures only necessary code is retained in the final programming.
3Reliability
If manual verification of PLD code is performed to ensure correctness, then programming reliability improves, but programming time and effort increase significantly
Solution Approach 1:
The system performs self-service verification by automatically comparing the modified code against the original programming and identifying changes without requiring manual review of every line. This automated self-verification process maintains high reliability while minimizing the time and effort required from the user.
Solution Approach 2:
Instead of requiring complete manual verification of all code, the system performs partial verification by focusing only on the specific portions that have been modified or removed. This targeted approach provides sufficient verification to ensure reliability without the excessive time investment of reviewing entire codebases.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A PLD editor and method for editing PLD code to be programmed into a PLD are provided. The PLD editor includes an interface, a storage system, and a processing system configured to obtain a PLD code, with the PLD code comprising one or more logic instruction blocks and corresponding block parameters for each logic instruction block, with the PLD code being intended for programming into the PLD, compare the one or more logic instruction blocks of the PLD code to a subset of the library of logic instruction blocks applicable to the PLD according to the library of PLD devices, determine inconsistent logic instruction blocks of the one or more logic instruction blocks, indicate the inconsistent logic instruction blocks, and correct the inconsistent logic instruction blocks using the subset of the library of logic instruction blocks.