Matrix Multiply
- Updated2023-02-17
- 4 minute(s) read
Matrix Multiply
Computes the product of two matrices.
Inputs/Outputs

a
The first matrix to multiply.

b
The second matrix to multiply.

a valid
A Boolean that indicates whether the next data point to a has arrived for processing. Wire the output valid output of an upstream node to this input to transfer data from the upstream node to the a input of this node.
| TRUE | The next data point to a has arrived for processing. |
| FALSE | The next data point to a has not arrived for processing. |

b valid
A Boolean that indicates whether the next data point to b has arrived for processing. Wire the output valid output of an upstream node to this input to transfer data from the upstream node to the b input of this node.
| TRUE | The next data point to b has arrived for processing. |
| FALSE | The next data point to b has not arrived for processing. |

ready for output
Boolean value that defines whether downstream nodes are ready for this node to return a new value. Use a Feedback Node to wire the ready for input output of a downstream node to this input of the current node.
| True | Downstream nodes are ready for this node to return a new value. |
| False | Downstream nodes are not ready for this node to return a new value. |
Default value: True

c
The matrix that results from a×b.

operation overflow
A Boolean that indicates whether the theoretical computed value exceeds the valid range of the output data type.
| TRUE | The theoretical computed value exceeds the valid range of the output data type. |
| FALSE | The theoretical computed value does not exceed the valid range of the output data type. |

ready for a
A Boolean that indicates whether the node is ready to accept new input data for the a input. Use a Feedback Node to wire this output to the ready for output input of an upstream node.
| TRUE | The node is ready to accept new input data for a. |
| FALSE | The node is not ready to accept new input data for a. |

ready for b
A Boolean that indicates whether the node is ready to accept new input data for the b input. Use a Feedback Node to wire this output to the ready for output input of an upstream node.
| TRUE | The node is ready to accept new input data for a. |
| FALSE | The node is not ready to accept new input data for a. |

output valid
Boolean value that indicates whether this node computes a result that downstream nodes can use.
Wire this output to the input valid input of a downstream node to transfer data from the node to the downstream node.
| True | Downstream nodes can use the result this node computes. |
| False | This node returns an undefined value that downstream nodes cannot use.
Note This node may return different undefined values when executed in simulation mode versus when executed on hardware.
|
Input Pattern
Choose the orientation of the matrices into the node and the operation mode. Vector In specifies the node to operate matrix by matrix. Element In specifies the node to operate element-by-element.
M
Specify the number of rows for matrix a.
L
Specify the number of columns for matrix a and the number of rows for matrix b.
N
Specify the number of columns for matrix b.
Initiation Interval
Specifies the number of clock cycles per matrix before the node can process new inputs.
Output Pattern
Choose the orientation of output data. Element Out specifies scalar data while Vector Out specifies a matrix.
Conjugate A
Specifies whether to conjugate the inputs of matrix a during operation.
Selecting this option does not require additional FPGA resources.
Conjugate B
Specifies whether to conjugate the inputs of matrix b during operation.
Selecting this option does not require additional FPGA resources.
Pipeline Degree
Configure how many pipelining stages this node uses internally.