
This is a an implementation of a classic systolic array multiplier with uart interface.
This implementation can multiply 2x2 matrix by another 2x2 matrix. The calculations are done in float16.
Initialization Sequence: Begin by sending the initialization sequence 11111110 to the device. This sequence prepares the device to start receiving data for matrix multiplication.
Sending Matrix Data:
a11, a12, a21, a22 for A and similarly for B, send them in the order a11, a12, a21, a22, b11, b12, b21, b22.Receiving the Result:
11111110, indicating that the multiplication process is complete and the device is about to send the result.Interpreting the Results:
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | RX input | RX output | Block multiply done status |
| 1 | Calculation start signal | ||
| 2 | Send State bit 0 | ||
| 3 | Send State bit 1 | ||
| 4 | Send State bit 2 | ||
| 5 | Send State bit 3 | ||
| 6 | Done send signal | ||
| 7 | Send data signal |