Skip to content

adamgallas/SpinalDLA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About SpinalDLA

SpinalDLA is an RTL design library for deep learning accelerators based on SpinalHDL, aiming to provide agile development tools for hardware developers specializing in customized hardware. (still under development)

SpinalDLA integrates the following features:

  • flexible and versatile DSP-based arithmetic units on Xilinx FPGAs (coming soon)
  • very useful memory controller for deep learning applications (coming soon)
  • versatile systolic array instantiation templates (coming soon)
  • agile simulation for deep neural networks (coming soon)
  • several deep learning accelerator design examples (coming soon)
  • and more...

Plug-and-Play RTL Modules

This library provides users with a set of plug-and-play RTL modules, which does not require users to have a deep understanding of SpinalHDL. Users can simply instantiate the modules and connect them together to build their own deep learning accelerators.

Located at verilog/ directory, the RTL modules are written in Verilog, which can be easily integrated into any existing RTL design flow.

The corresponding simulation waveforms are located at fst/ directory, which can be viewed by GTKWave.

The table is listed below:

Module Name Description
int_8_mul.v Xilinx INT8 Packing Technique
unt_4_mul.v Xilinx INT4 Packing Technique
int12_xadd.v Spike-Based Synaptic Operation
int8_dotp.v Xilinx INT8 Dot Product Chain
int8_ws_B_P.v INT8 Weight Stationary Systolic Array Chain with B and P Cascade, B path is used by In-DSP Operand Prefetching.
int8_ws_AD_B.v INT8 Weight Stationary Systolic Array Chain with AD and B Cascade, B path is used by In-DSP Operand Prefetching.
int16_dotp.v INT16 Dot Product Chain
int16_dotp_ddr.v INT16 Dot Product Chain with In-DSP Time-Multiplexing
int16_ws_B_P.v INT16 Weight Stationary Systolic Array Chain with B and P Cascade
int16_os_B_P.v INT16 Output Stationary Systolic Array Chain with B and P Cascade, P path is used by Partial Sums Offloading.
int24_acc_scale.v SIMD=2 Accumulate then Scale Operation

How to Use it

This library is based on SpinalHDL with SBT build. (still under development)

  1. Add sbt-github-packages plugin to enable sbt to consume the package. Add this line to your ./project/plugins.sbt file:
addSbtPlugin("com.codecommit" % "sbt-github-packages" % "0.5.2")
  1. Add the following lines to your ./build.sbt file:
githubTokenSource := TokenSource.GitConfig("github.token")
resolvers += Resolver.githubPackages("adamgallas", "SpinalDLA")
libraryDependencies += "casia" %% "SpinalDLA" % "0.3"
  1. Rebuid your project with sbt compile.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages