Programmable CORDIC Processor for MIMO Matrix Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing MIMO systems face inefficiencies in channel processing computations due to the need for complex multipliers and arithmetic engines, particularly in performing orthogonal matrix transformations like QR Decomposition and SVD, which are not adequately addressed by current CORDIC processor architectures.

Innovation Solution

A programmable multi-stage pipelined CORDIC processor architecture that allows for flexible computation of orthogonal transformations, enabling efficient QR decomposition and other matrix operations by reusing stages and utilizing Given's rotation method, suitable for MIMO signal processing and other mathematical computations involving real and imaginary parts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If custom CORDIC architectures are designed for specific matrix operations, then operational speed is improved, but adaptability deteriorates

Engineering Contradiction:
Improveoperational speedVSAvoidadaptability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal CORDIC processor architecture that can perform multiple matrix operations including QR decomposition, SVD, and unitary matrix multiplication through a single programmable platform. The architecture uses configurable parameters such as mode selection (rotation vs vectoring), programmable iteration counts, and flexible data path configuration to achieve multi-functionality without requiring separate custom designs for each operation type.

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

2Manufacturing precision

If complex multipliers and arithmetic engines are used for orthogonal matrix transformations, then manufacturing precision is improved, but device complexity worsens

Engineering Contradiction:
Improvecomputation accuracyVSAvoiddevice complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent replaces complex multipliers and arithmetic engines with the CORDIC algorithm that uses only shifters, adders, and lookup tables to perform orthogonal matrix transformations. This substitution maintains computation accuracy by using iterative rotation operations based on pre-computed arctangent values, while dramatically reducing device complexity by eliminating the need for complex multiplication hardware.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If dedicated architectures are designed for specific computations, then productivity is improved, but ease of manufacture worsens

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidease of manufacture
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent implements a dynamic and reconfigurable CORDIC processor architecture where computation parameters such as the number of iterations, rotation angles, and operation modes can be programmed and adjusted based on the specific computational task. This dynamic configuration capability allows the same hardware to be optimized for different matrix operations, maintaining high computation efficiency while simplifying manufacturing through a single versatile design rather than multiple dedicated architectures.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8452830B2Programmable CORDIC processor with stage re-use
Publication Date: 2013.05.28 SILICON LABORATORIES INC
  • US8452830B2 patent drawing
  • US8452830B2 patent drawing
  • US8452830B2 patent drawing

AI summary

A CORDIC processor has a plurality of stages, each of the stages having a X input, Y input, a sign input, a sign output, an X output, a Y output, a mode control input having a ROTATE or VECTOR value, and a stage number k input, each CORDIC stage having a first shift generating an output by shifting the Y input k times, a second shift generating an output by shifting X input k times, a multiplexer having an output coupled to the sign input when the mode control input is ROTATE and to the sign of the Y input when the mode input is VECTOR, a first multiplier forming the product of the first shift output and the multiplexer output, a second multiplier forming the product of the second shift output and an inverted the multiplexer output, a first adder forming the X output from the sum of the first multiplier output and the X input, and a second adder forming the Y output from the sum of the second multiplier output and the Y input.