Main Content

Fixed-Point Matrix Operations in Simulink

Optimized CORDIC-based fixed-point matrix solvers and matrix decomposition blocks for efficient HDL code

Use the Fixed-Point Designer™ HDL Optimized library of blocks to perform CORDIC-based fixed-point matrix operations and generate efficient HDL code. These blocks model design patterns for systems of linear equations and perform core matrix operations, such as QR decomposition and singular value decomposition, for hardware-efficient implementation on FPGAs. For help choosing an appropriate block for your application, see Choose a Block for HDL-Optimized Fixed-Point Matrix Operations. Use the included Fixed-Point Designer functions to analytically determine optimal fixed-point data types for the linear system solver and matrix factorization blocks. Generate HDL code for designs that incorporate these blocks using HDL Coder™.

For MATLAB®-based implementations of these algorithms, see Fixed-Point Matrix Operations in MATLAB. For CORDIC-based and other embedded-efficient implementations of math operations in MATLAB and Simulink®, see Fixed-Point Math Operations in MATLAB and Simulink.

Blocks

expand all

Solve AX = B

Real Burst Matrix Solve Using QR DecompositionCompute the value of x in the equation Ax = B for real-valued matrices using QR decomposition
Complex Burst Matrix Solve Using QR DecompositionCompute the value of x in the equation Ax = B for complex-valued matrices using QR decomposition
Real Partial-Systolic Matrix Solve Using QR DecompositionCompute value of x in the equation Ax = B for real-valued matrices using QR decomposition (Since R2020b)
Complex Partial-Systolic Matrix Solve Using QR DecompositionCompute value of x in the equation Ax = B for complex-valued matrices using QR decomposition (Since R2020b)
Systolic Matrix Solve Using QR DecompositionCompute value of X in the equation AX = B using QR decomposition (Since R2024a)

Solve A'AX = B

Real Burst Matrix Solve Using Q-less QR DecompositionCompute the value of X in the equation A'AX = B for real-valued matrices using Q-less QR decomposition
Complex Burst Matrix Solve Using Q-less QR DecompositionCompute the value of X in the equation A'AX = B for complex-valued matrices using Q-less QR decomposition
Real Burst Asynchronous Matrix Solve Using Q-less QR DecompositionCompute the value of X in the equation A'AX = B for real-valued matrices using asynchronous Q-less QR decomposition (Since R2022b)
Complex Burst Asynchronous Matrix Solve Using Q-less QR DecompositionCompute the value of X in the equation A'AX = B for complex-valued matrices using asynchronous Q-less QR decomposition (Since R2022b)
Real Partial-Systolic Matrix Solve Using Q-less QR DecompositionCompute value of X in the equation A'AX = B for real-valued matrices using Q-less QR decomposition (Since R2020b)
Complex Partial-Systolic Matrix Solve Using Q-less QR DecompositionCompute the value of X in the equation A'AX = B for complex-valued matrices using Q-less QR decomposition (Since R2020b)

Solve A'AX = B with Infinitely Tall A Matrix

Real Burst Matrix Solve Using Q-less QR Decomposition with Forgetting FactorCompute the value of X in the equation A'AX = B for real-valued matrices with infinite number of rows using asynchronous Q-less QR decomposition (Since R2022b)
Complex Burst Matrix Solve Using Q-less QR Decomposition with Forgetting FactorCompute the value of X in the equation A'AX = B for complex-valued matrices with infinite number of rows using asynchronous Q-less QR decomposition (Since R2022b)
Real Partial-Systolic Matrix Solve Using Q-less QR Decomposition with Forgetting FactorCompute value of X in the equation A'AX = B for real-valued matrices with infinite number of rows using Q-less QR decomposition (Since R2020b)
Complex Partial-Systolic Matrix Solve Using Q-less QR Decomposition with Forgetting FactorCompute the value of X in the equation A'AX = B for complex-valued matrices with infinite number of rows using Q-less QR decomposition (Since R2020b)

QR Decomposition

Real Burst QR DecompositionQR decomposition for real-valued matrices
Complex Burst QR DecompositionQR decomposition for complex-valued matrices
Real Partial-Systolic QR DecompositionQR decomposition for real-valued matrices (Since R2020b)
Complex Partial-Systolic QR DecompositionQR decomposition for complex-valued matrices (Since R2020b)
Systolic QR DecompositionQR decomposition for matrices (Since R2024a)

Q-less QR Decomposition

Real Burst Q-less QR DecompositionQ-less QR decomposition for real-valued matrices
Complex Burst Q-less QR DecompositionQ-less QR decomposition for complex-valued matrices
Real Burst Q-less QR Decomposition Whole R OutputQ-less QR decomposition for real-valued matrices (Since R2022b)
Complex Burst Q-less QR Decomposition Whole R OutputQ-less QR decomposition for complex-valued matrices (Since R2022b)
Real Partial-Systolic Q-less QR DecompositionQ-less QR decomposition for real-valued matrices (Since R2020b)
Complex Partial-Systolic Q-less QR DecompositionQ-less QR decomposition for complex-valued matrices (Since R2020b)

Q-less QR Decomposition with Forgetting Factor

Real Burst Q-less QR Decomposition with Forgetting Factor Whole R OutputQ-less QR decomposition for real-valued matrices with infinite number of rows (Since R2022b)
Complex Burst Q-less QR Decomposition with Forgetting Factor Whole R OutputQ-less QR decomposition for complex-valued matrices with infinite number of rows (Since R2022b)
Real Partial-Systolic Q-less QR Decomposition with Forgetting FactorQ-less QR decomposition for real-valued matrices with infinite number of rows (Since R2020b)
Complex Partial-Systolic Q-less QR Decomposition with Forgetting FactorQ-less QR decomposition for complex-valued matrices with infinite number of rows (Since R2020b)

Singular Value Decomposition

Square Jacobi SVD HDL OptimizedFixed-point singular value decomposition (Since R2023a)
Non-Square Jacobi SVD HDL OptimizedFixed-point singular value decomposition (Since R2023b)

Functions

expand all

fixed.qrFixedpointTypesDetermine fixed-point types for transforming A and R and B to C=Q'B in-place, where QR=A is QR decomposition of A (Since R2021b)
fixed.qlessqrFixedpointTypesDetermine fixed-point types for transforming A to R in-place, where R is upper-triangular factor of QR decomposition of A, without computing Q (Since R2021b)
fixed.realQRMatrixSolveFixedpointTypesDetermine fixed-point types for matrix solution of real-valued AX=B using QR decomposition (Since R2021b)
fixed.complexQRMatrixSolveFixedpointTypesDetermine fixed-point types for matrix solution of complex-valued AX=B using QR decomposition (Since R2021b)
fixed.realQlessQRMatrixSolveFixedpointTypesDetermine fixed-point types for matrix solution of real-valued A'AX=B using QR decomposition (Since R2021b)
fixed.complexQlessQRMatrixSolveFixedpointTypesDetermine fixed-point types for matrix solution of complex-valued A'AX=B using QR decomposition (Since R2021b)
fixed.realSingularValueLowerBoundEstimate lower bound for smallest singular value of real-valued matrix (Since R2021b)
fixed.complexSingularValueLowerBoundEstimate lower bound for smallest singular value of complex-valued matrix (Since R2021b)
fixed.singularValueUpperBoundUpper bound of largest singular value of matrix (Since R2022b)
fixed.realConditionNumberUpperBoundEstimate of upper bound for 2-norm condition number of real-valued matrix (Since R2022b)
fixed.complexConditionNumberUpperBoundEstimate of upper bound for 2-norm condition number of complex-valued matrix (Since R2022b)
fixed.forgettingFactorCompute forgetting factor required for streaming input data (Since R2021b)
fixed.forgettingFactorInverseCompute the inverse of the forgetting factor required for streaming input data (Since R2021b)
fixed.realQuantizationNoiseStandardDeviationEstimate standard deviation of quantization noise of real-valued signal (Since R2021b)
fixed.complexQuantizationNoiseStandardDeviationEstimate standard deviation of quantization noise of complex-valued signal (Since R2021b)
embblk.latency.systolicQRBlockTimingCompute throughput and latency of Systolic QR Decomposition block (Since R2024a)
embblk.latency.systolicQRMatrixSolverBlockTimingCompute throughput and latency of Systolic Matrix Solve Using QR Decomposition block (Since R2024a)
embblk.latency.cordicSqrtHDLOptimizedLatencyCompute latency and total number of iterations of CORDIC Square Root HDL Optimized block (Since R2024a)

Tools

Data Type AgentRecommends fixed-point data types for Fixed-Point Designer blocks (Since R2025a)

Topics

General

Linear System Solvers: Solve AX = B

Linear System Solvers: Solve A'AX = B

Linear System Solvers: Solve A'AX = B with Infinitely Tall A Matrix

Matrix Factorizations: QR Decomposition

Matrix Factorizations: Q-less QR Decomposition

Matrix Factorizations: Q-less QR Decomposition with Forgetting Factor

Matrix Factorizations: Singular Value Decomposition

Analytically Determine Fixed-Point Data Types for Linear System Solvers and Matrix Factorizations

Featured Examples