FPGA Virtual Logic Tile Arrays for Independent Multi-Function Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current FPGA technologies lack the ability to efficiently partition and configure physical arrays of logic tiles into virtual arrays that can operate independently or dependently, with distinct clock domains and I/O configurations, limiting their flexibility and functionality in implementing diverse functions and operations.

Innovation Solution

The integration of a field programmable gate array (FPGA) with a physical array of logic tiles that can be functionally partitioned into virtual arrays, allowing for independent or dependent operation, with customizable clock signals and I/O configurations, enabling the implementation of various functions such as data processors, accelerators, and encryption engines through a compiler-generated composite bitstream.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the physical array of logic tiles is partitioned into multiple virtual arrays with independent configurations, then the adaptability and functionality of the FPGA is improved, but the device complexity increases due to multiple configuration management requirements

Engineering Contradiction:
ImprovefunctionalityVSAvoidconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The physical array of logic tiles is segmented into multiple virtual arrays, where each virtual array can be independently configured and managed. This segmentation allows different portions of the FPGA to perform different functions simultaneously, improving adaptability while the segmentation itself manages the complexity by creating manageable independent units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The same physical logic tile array can be universally configured to perform multiple different functions through the creation of different virtual arrays. Each virtual array can be programmed with different bitstreams to implement various logic functions, making the FPGA multi-functional without requiring additional physical hardware.

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

2Adaptability or versatility

If virtual arrays are configured to operate independently with separate clock domains, then the operational flexibility is improved, but the programming complexity increases

Engineering Contradiction:
Improveoperational independenceVSAvoidprogramming complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The clocking system is segmented into multiple independent clock domains, with each virtual array able to operate with its own clock signal. This allows independent timing control for different functional blocks while the segmentation manages the complexity by creating separate, manageable clocking subsystems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The FPGA configuration is made dynamic, allowing virtual arrays to be created, modified, and deleted at runtime. Clock domains can be dynamically assigned to virtual arrays as they are created, and the system can adapt its operational structure in real-time without requiring complete reconfiguration.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If the FPGA supports multiple virtual arrays with different I/O configurations, then the versatility is improved, but the ease of operation decreases due to complex configuration management

Engineering Contradiction:
ImproveI/O configuration flexibilityVSAvoidconfiguration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

I/O resources are segmented and assigned to specific virtual arrays, allowing each virtual array to have its own dedicated I/O configuration. This segmentation simplifies management by associating I/O resources with their parent virtual array, making it easier to track and configure despite the overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system provides self-service through automated configuration management, where the FPGA infrastructure automatically handles the complex tasks of allocating I/O resources to virtual arrays, managing clock domains, and coordinating inter-array communications, reducing the manual configuration burden on users.

Inventive Principle:
Principle #25Self-service

4Productivity

If logic tiles are partitioned into virtual arrays for specific functions, then the productivity for implementing diverse functions is improved, but the device complexity increases due to inter-array communication requirements

Engineering Contradiction:
Improveimplementation efficiencyVSAvoidinter-array communication complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

An interconnect fabric acts as an intermediary between virtual arrays, providing standardized communication pathways and protocols. This mediator simplifies the complexity of inter-array communication by offering a uniform interface that abstracts the underlying physical connections and timing requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The interconnect fabric provides universal communication capabilities that can be used by any virtual array to communicate with any other virtual array or external devices. This multi-functional communication infrastructure supports various data transfer modes and protocols, reducing the need for specialized communication paths for each virtual array pair.

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

Data Source

PatentUS10411711B2FPGA having a virtual array of logic tiles, and method of configuring and operating same
Publication Date: 2019.09.10 ANALOG DEVICES INC
  • US10411711B2 patent drawing
  • US10411711B2 patent drawing
  • US10411711B2 patent drawing

AI summary

An integrated circuit comprising a physical array of logic tiles, wherein each logic tile includes a perimeter and a plurality of external I/O disposed in a layout on the perimeter of the logic tile wherein the layout of the external I/O of each logic tile is identical. The physical array includes a first virtual array of logic tiles, programmed to perform data processing operations, including a first plurality of logic tiles of the physical array. The physical array also includes a second virtual array of logic tiles, programmed to perform second operations, including a second plurality of logic tiles of the physical array. The logic tiles of the second plurality are different from the logic tiles of the first plurality. In one embodiment, performance of the data processing operations of the first virtual array is independent from performance of the second operations of the second virtual array.