|
1 | 1 | <h1>Systolic Array RTL + Firmware Project</h1>
|
2 | 2 |
|
3 |
| -<h3>[Project Currently Under Development: 8x8 Systolic Array]</h3> |
| 3 | +<h3>[First Release 8x8 Systolic Array]</h3> |
4 | 4 |
|
5 | 5 | > Update
|
6 | 6 |
|
7 | 7 | <p>
|
8 |
| - Currently, the hardware is complete while the software (firmware) is on its early version. Current implementation |
9 |
| - provides corret results for test matrix multiplications. |
| 8 | + Finally implemented the interrupt function after load and matmul is finished. I also made the main.c file a little bit cleaner |
| 9 | + by using header files for interrupt and XGPIO initialization and the matrix references. |
10 | 10 | <br><br>
|
11 |
| - For now, the firmware code includes only the backbone of the planned finished code. I have included an interrupt |
12 |
| - signal to be sent from the PL to PS after finishing matrix multiplication (23 clock cycles) and/or loading registers (8 clock cycles) but |
13 |
| - had not yet included it on the firmware. I'll do it as soon as possible. :) |
| 11 | + Next version would be adding new memory spaces for additional matrices in the PL fabric which would allow us to write |
| 12 | + multiple matrices then switch to whatever matrix we want for matrix multiplication by specifying which matrices to load |
| 13 | + to the registers. |
14 | 14 | <br><br>
|
15 |
| - Note: Github Repo would not be updated for every edit on files but only for major updates only. |
16 |
| - Next update would be the completed version of the systolic array software and hardware. |
| 15 | + I am also planning to add some features to specify if the matrix to be written on to the FPGA is a weight or input matrix |
| 16 | + so we can "automatically" transpose the matrix. As of now, the matrix we have is transposed by default. |
17 | 17 | </p>
|
18 | 18 |
|
19 | 19 | <br><br>
|
20 | 20 |
|
| 21 | +--- |
| 22 | + |
| 23 | +<h4>Performance Report</h4> |
| 24 | + |
| 25 | +<ul>Matrix Multiplication: 1 us latency (8x8 matmul)</ul> |
| 26 | +<ul>Total (Write, Load, Matmul, Read): 0.042003 s</ul> |
| 27 | + |
| 28 | + |
21 | 29 | ---
|
22 | 30 |
|
23 | 31 | <h4>Source Files</h4>
|
24 | 32 |
|
| 33 | + |
| 34 | + |
25 | 35 | > [RTL Hardware Code](https://github.com/dsa-shua/32x32-SystolicArray/tree/main/systolic-array-hardware)
|
26 | 36 |
|
27 | 37 | > [Software Code](https://github.com/dsa-shua/32x32-SystolicArray/tree/main/systolic-array-software)
|
|
0 commit comments