You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Dolu1990 c394177651
Merge pull request #270 from jijingg/bits
20 hours ago
core sliceBy renaming 3 days ago
debugger UartCtrl now allow more than 255 fifo depth, support break, support CTS RTS 4 weeks ago
demo Fix toBigInt() -> toBigInt 1 week ago
idslpayload/src/main/scala/spinal/idslplugin Fix ValCallback by applying in the ValDef directly 3 weeks ago
idslplugin/src/main idsl transformer now avoid ValDef with empty rhs 1 week ago
lib Stream add clearValidWhen 21 hours ago
project Merge pull request #248 from piegamesde/dev 2 weeks ago
scalaplugin/src/main/scala/spinal/idscp Add idslplugin 1 month ago
sim/src Clean more SpinalSim suspendable legacy 1 week ago
storage Remove delayed init from bundle to allow inner class bundle declaration 4 years ago
tester Merge branch 'dev' into compiler_plugin 1 week ago
.gitattributes Added git attributes. 4 years ago
.gitignore update to SBT 1.3.3 4 months ago
.gitmodules add cocotblib 3 years ago
.travis.yml Fix depracation warning 1 week ago
Dockerfile dockerize 1 year ago
LICENSE Change spinal.lib license to MIT 3 years ago
LICENSE_core Change spinal.lib license to MIT 3 years ago
LICENSE_lib Change spinal.lib license to MIT 3 years ago Revert Scala version in Readme 1 month ago
build.sbt Fix idslpayload sbt project 3 weeks ago (a)syncronous -> (a)synchronous 1 year ago Fix docker-credential pass 1 week ago

About SpinalHDL

SpinalHDL is:

  • A language to describe digital hardware
  • Compatible with EDA tools as it generate the corresponding VHDL/Verilog file
  • Much more powerful than VHDL, Verilog and SystemVerilog by its syntaxes and features
  • Much less verbose than VHDL, Verilog and SystemVerilog
  • Not an HLS, nor based on the event driven paradigm
  • Only generating what you asked it in a one to one way (no black-magic, no blackbox)
  • Not introducing Area/Performance overhead in your design (versus a hand written VHDL/Verilog)
  • Based on the RTL description paradigm, but can go much further
  • Allowing you to use Object Oriented Programming and Functional Programming to elaborate your hardware and verify it
  • Free and can be used in the industry without any license

Build Status

Get it

SpinalHDL is simply a set of Scala libraries. Include them into your project and you're good to go! If you're unsure about what to do, simply clone one of our example projects (see links above).

SBT (Scala build tool)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  "com.github.spinalhdl" % "spinalhdl-core_2.11" % "latest.release",
  "com.github.spinalhdl" % "spinalhdl-lib_2.11" % "latest.release"

You can force to pick a specific SpinalHDL version by replacing the ‘latest.release’. See


repositories {

dependencies {
	compile group: 'com.github.spinalhdl', name: 'spinalhdl-core_2.11', version: '1.3.6'
	compile group: 'com.github.spinalhdl', name: 'spinalhdl-lib_2.11', version: '1.3.6'


The files are available on Maven as well.

Changes logs


The SpinalHDL core is using the LGPL3 license while SpinalHDL lib is using the MIT one. That's for the formalities. But there is some practices statements of those license implications :

Your freedoms are :

  • You can use SpinalHDL core and lib in your closed/commercial projects.
  • The generated RTL is yours (.vhd/.v files)
  • Your hardware description is yours (.scala files)

Your obligations (and my wish) are :

  • If you modify the SpinalHDL core (the compiler itself), please, share your improvements.

Also, SpinalHDL is provided “as is”, without warranty of any kind.