Embedded System Design for Programmable Logic Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional complex processing systems implemented using software on microprocessors with dedicated hardware blocks face inefficiencies in communication between software and hardware components, lacking an automated design tool for mapping hardware/software systems onto programmable logic devices (PLDs) effectively.

Innovation Solution

A method and apparatus for efficient communication between processing elements and a processor in a PLD, utilizing lookup tables and control logic to manage instruction distribution and data transfer, along with an automated design tool for generating source code files that define configurable attributes of the base platform, enabling efficient hardware/software communication and system design.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional software-based processing systems are used, then system flexibility and ease of programming are improved, but processing speed and hardware utilization efficiency deteriorate

Engineering Contradiction:
Improveease of programmingVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges software processing elements with hardware processing elements into a unified hybrid architecture. The processor executes software instructions while hardware processing elements perform specialized functions, combining the flexibility of software with the speed of hardware. This is achieved through the shared memory architecture where both software and hardware elements access common data structures, enabling efficient coordination and resource sharing.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The hardware processing elements are designed with universal interfaces that allow them to be dynamically assigned different functions through software configuration. The same hardware element can execute different algorithms or perform different data processing tasks by changing the software instructions loaded into it, providing multi-functionality without requiring dedicated hardware for each specific task.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If dedicated hardware blocks are added to improve processing speed, then productivity is improved, but device complexity and manufacturing difficulty increase

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of creating entirely new dedicated hardware blocks, the patent uses copies of general-purpose processing elements that can be configured through software. Multiple instances of the same processing element type can be created and assigned different functions, reducing the need for unique hardware designs for each processing task while maintaining high processing capability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The architecture allows dynamic changing of processing element parameters such as clock frequency, data width, and operational mode through software control. This enables the same hardware block to adapt its parameters for different processing requirements without physical reconfiguration, reducing hardware complexity while maintaining flexibility.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If manual mapping of hardware/software systems onto PLD is performed, then design customization is improved, but design time and development complexity increase

Engineering Contradiction:
Improvedesign customizationVSAvoiddesign time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent employs preliminary action through automated tools that pre-configure processing element assignments, memory mappings, and communication protocols before the actual design process. Templates and configuration files enable rapid setup of standard architectures, reducing the time required for custom design while allowing adaptation to specific requirements through parameter modification rather than reconfiguration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The design process incorporates feedback mechanisms where the automated mapping tool continuously monitors design parameters and adjusts hardware/software resource allocation in real-time. This iterative feedback loop optimizes the mapping configuration based on performance metrics and resource constraints, enabling customized designs to be generated automatically without requiring manual trial-and-error adjustments.

Inventive Principle:
Principle #23Feedback

4Productivity

If efficient communication between software and hardware is implemented, then system performance is improved, but communication overhead and control complexity increase

Engineering Contradiction:
Improvesystem performanceVSAvoidcommunication complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary software layer that mediates communication between the processor and hardware processing elements. This intermediary layer handles task scheduling, data buffer management, and coordination protocols, abstracting the complexity of direct hardware-access from the software developer. The intermediary enables efficient data transfer while managing communication overhead through optimized buffering and caching mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7917876B1Method and apparatus for designing an embedded system for a programmable logic device
Publication Date: 2011.03.29 XILINX INC
  • US7917876B1 patent drawing
  • US7917876B1 patent drawing
  • US7917876B1 patent drawing

AI summary

Method and apparatus for designing an embedded system for a programmable logic device (PLD) is described. Parameters specific to the embedded system are obtained. Source code files that use the parameters to define configurable attributes of the base platform are generated. A software definition and a hardware definition are obtained. The software and hardware definitions each use an application programming interface (API) of the base platform to define communication between software and hardware of the embedded system. An implementation of the embedded system is automatically built for the PLD using the source code files, the software definition, and the hardware definition.