Skip to content

Working 8x8 systolic array hardware implemented in Xilinx Vivado, operated and controlled in software using Xilinx Vitis

Notifications You must be signed in to change notification settings

dsa-shua/FPGA-SystolicArray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Systolic Array RTL + Firmware Project

[First Release 8x8 Systolic Array]

Update

Finally implemented the interrupt function after load and matmul is finished. I also made the main.c file a little bit cleaner by using header files for interrupt and XGPIO initialization and the matrix references.

Next version would be adding new memory spaces for additional matrices in the PL fabric which would allow us to write multiple matrices then switch to whatever matrix we want for matrix multiplication by specifying which matrices to load to the registers.

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 so we can "automatically" transpose the matrix. As of now, the matrix we have is transposed by default.




Stats

    PS Clock Frequency: 650 MHz
    PL Clock Frequency: 100 MHz
    Matrix Multiplication: 1 us latency (8x8 matmul)
    Total (Write, Load, Matmul, Read): 0.042003 s

Source Files

RTL Hardware Code

Software Code


Data Sheets:

Block Diagram

Floor Planning

Power Summary

Timing Summary

Utilization Summary


FPGA Used: Xilinx PNYQ-Z2 FPGA

Coupang (쿠팡) Product Link

Amazon Product Link

Xilinx Website Link