Multiplies Matrix A by an input Vector b. This operation is useful for FPGA control applications, such as state-feedback control. You can use more than one multiplier to reduce the latency of this operation.

To define Matrix A, double-click this Express VI and use the Matrix Data Initialization page to specify a VI, TXT, or CSV file that contains the matrix data. If you do not define Matrix A, this Express VI uses a matrix of zeroes instead.


icon

Dialog Box Options

Parameter Description
General Contains general information about this Express VI.
  • Matrix A Dimensions—Specifies the dimensions of Matrix A.
    • Matrix A rows—Specifies the number of rows in Matrix A. The maximum value is 50 rows.
    • Matrix A columns—Specifies the number of columns in Matrix A. The maximum value is 50 columns.
  • Multiplier Configuration—Specifies information about the multipliers this Express VI uses.
    • Number of multipliers—Specifies the number of multipliers this Express VI uses. Increasing the number of multipliers reduces the latency of this Express VI but increases the amount of FPGA resources this Express VI requires. The default value is one multiplier. The maximum number of multipliers either is the number of Matrix A rows or 25, whichever is smaller.
    • Number of multiplier pipeline stages—Specifies the number of pipelining stages for the multiplier(s). Increasing the number of stages increases the clock rate at which this Express VI can compile but also increases the amount of FPGA resources this Express VI requires. The default is 0 stages, which specifies no pipelining. The maximum is 1 stage.
  • Fixed-Point Configuration—Specifies word lengths and integer word lengths of the elements of Matrix A, Vector b, and Vector c. The configurations you specify determine the value range of these elements.
    • Matrix A Type—Specifies the fixed-point configuration of all elements of Matrix A.
      • Word length—Specifies the word length of each element.
      • Integer word length—Specifies the integer word length of each element.
    • Vector b Type—Specifies the fixed-point configuration of all elements of the input Vector b.
      • Word length—Specifies the word length of each element.
      • Integer word length—Specifies the integer word length of each element.
    • Vector c Type—Specifies the fixed-point configuration of all elements of the output Vector c.
      • Adapt to source—Specifies whether LabVIEW automatically adjusts the fixed-point configuration of the output data type to avoid overflow and rounding errors. By default, this checkbox contains a checkmark and LabVIEW dims the Word length and Integer word length controls.
      • Word length—Specifies the word length of each element.
      • Integer word length—Specifies the integer word length of each element.
      • Overflow mode—Specifies how this function handles overflow. You can choose either Wrap (default) or Saturate.
        Note The Saturate option requires more FPGA resources and a longer combinatorial path than the Wrap option does. In this situation, choosing Saturate might decrease the maximum clock rate at which this function can compile.
      • Rounding mode—Specifies how this function rounds the output data if rounding is necessary. You can choose Truncate (default), Round Half-Up, or Round Half-Even. If rounding occurs, the option you choose might affect the amount of resources this function requires.
Matrix Data Initialization Contains options for specifying the source of data for Matrix A.
  • Initialization method—Specifies the source of data for Matrix A. If you load a matrix that is larger than the Matrix A Dimensions, this Express VI deletes rows and columns that exceed the dimensions. If you load a matrix that is smaller than the Matrix A Dimensions, this Express VI pads the empty cells with zeroes.

    Choose from the following options:
    • Initialization VI (default)—Populates Matrix A with a 2D array that an initialization VI creates. To create an initialization VI from a template, click the New VI from Template button.
    • Read from TXT file—Populates Matrix A with values from a text (.txt) file. The elements must be separated by tabs, commas, semicolons, or spaces.
    • Read from CSV file—Populates Matrix A with values from a comma-separated values (.csv) file. You can create .csv files by using Microsoft Excel.
  • File path—Specifies a path to the .vi, .txt, or .csv file depending on the Initialization method you specify.
  • New VI from Template—Creates an instance of a template VI, saves the VI to a location you specify, and opens the VI. You can use this template to create an initialization VI. You must close this configuration dialog box to edit the VI.
  • Load—Loads data into Matrix A from the File path you specify and populates the Matrix A table with this data.
  • Matrix Data Preview—Displays Matrix A.
    • Matrix A—Displays the data of Matrix A after you click the Load button. You also can enter data into this table directly.
Configuration Feedback Displays information about how this Express VI executes and other helpful information, such as warnings and errors.

Inputs/Outputs

  • c1dunkn.png Vector b

    Specifies the vector this Express VI multiplies by Matrix A.

  • i1dunkn.png Vector c

    Returns Matrix A * Vector b.