7.14.19. QR Decompostion
The input of the design is a system matrix A [n × m] and input vector.
The reference design uses the Gram-Schmidt method to decompose system matrix A to Q and R matrices, and calculates the solution of the system by completing backward substitution.
The reference design is fully parametrizable—system dimensions n and m, and the processing vector size, which defines the parallelization ratio of the dot product engine. This design uses single-precision Multiply and Add blocks that perform most of the floating-point calculations to implement a parallel dot product engine. The design uses a processor, which executes a fixed set of microinstructions and generates operation indexes, to route different phases of the calculation through these blocks. The design uses for-loop macro blocks, which allow very efficient, flexible and high-level implementation of iterative operations, to implement the processor.
This design uses the Run All Testbenches block to access enhanced features of the automatically-generated testbench. An application-specific m-function verifies the simulation output, to correctly handle the complex results and the numerical approximation because of the floating-point format.
The model file is demo_qrd.mdl.