GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SpinalHDL/SpinalHDL: Scala based HDL

BranchesTags
Open more actions menu

Latest commit

 

History

8,259 Commits
8,259 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
cocotbWorkspace
cocotbWorkspace
 
 
core
core
 
 
idslpayload/src/main/scala/spinal/idslplugin
idslpayload/src/main/scala/spinal/idslplugin
 
 
idslplugin/src/main
idslplugin/src/main
 
 
lib
lib
 
 
project
project
 
 
scalaplugin/src/main/scala/spinal/idscp
scalaplugin/src/main/scala/spinal/idscp
 
 
sim
sim
 
 
tester
tester
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.jvmopts
.jvmopts
 
 
.mill-version
.mill-version
 
 
.scalafmt.conf
.scalafmt.conf
 
 
.travis.yml
.travis.yml
 
 
CITATION.cff
CITATION.cff
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
LICENSE_core
LICENSE_core
 
 
LICENSE_lib
LICENSE_lib
 
 
README.md
README.md
 
 
build.mill
build.mill
 
 
build.sbt
build.sbt
 
 
scala.yml
scala.yml
 
 
tools.sh
tools.sh
 
 

Repository files navigation

About SpinalHDL

SpinalHDL is:

  • A language to describe digital hardware
  • Compatible with EDA tools, as it generates VHDL/Verilog files
  • Much more powerful than VHDL, Verilog, and SystemVerilog in its syntax and features
  • Much less verbose than VHDL, Verilog, and SystemVerilog
  • Not an HLS, nor based on the event-driven paradigm
  • Only generates what you asked it in a one-to-one way (no black-magic, no black box)
  • Not introducing area/performance overheads in your design (versus a hand-written VHDL/Verilog design)
  • 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

Links

  • Documentation
    https://spinalhdl.github.io/SpinalDoc-RTD/
  • Chinese documentation
    https://spinalhdl.github.io/SpinalDoc-RTD/zh_CN/
  • Chinese documentation (v1.7.2 from thuCGRA)
    https://thucgra.github.io/SpinalHDL_Chinese_Doc/
  • API reference
    https://spinalhdl.github.io/SpinalHDL/dev/spinal/index.html
  • Presentation of the language
    https://github.com/SpinalHDL/SpinalDoc/blob/master/presentation/en/presentation.pdf
  • SBT base project
    https://github.com/SpinalHDL/SpinalTemplateSbt
  • Gradle base project
    https://github.com/SpinalHDL/SpinalTemplateGradle
  • Jupyter bootcamp
    https://github.com/SpinalHDL/Spinal-bootcamp
  • Workshop
    https://github.com/SpinalHDL/SpinalWorkshop
  • Google group
    https://groups.google.com/forum/#!forum/spinalhdl-hardware-description-language
  • Donation channel
    https://opencollective.com/spinalhdl

English: Join the chat at https://gitter.im/SpinalHDL/SpinalHDL 中文: Join the chat at https://gitter.im/SpinalHDL-CN/community

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.12.18"

libraryDependencies ++= Seq(
  "com.github.spinalhdl" % "spinalhdl-core_2.12" % "latest.release",
  "com.github.spinalhdl" % "spinalhdl-lib_2.12" % "latest.release",
  compilerPlugin("com.github.spinalhdl" % "spinalhdl-idsl-plugin_2.12" % "latest.release")
)

You can force SBT to pick a specific SpinalHDL version by replacing latest.release with a specific version. See the SpinalHDL SBT Template project's build.sbt file for a full SBT example.

Gradle

repositories {
	mavenCentral()
}

dependencies {
	compile group: 'com.github.spinalhdl', name: 'spinalhdl-core_2.12', version: '1.14.2'
	compile group: 'com.github.spinalhdl', name: 'spinalhdl-lib_2.12', version: '1.14.2'
}

Mill(Build Tool)

For mill version <= 0.11

import mill._
import mill.scalalib._

object MySpinalModule extends ScalaModule {
  def scalaVersion = "2.12.18"

  def ivyDeps = Agg(
    ivy"com.github.spinalhdl::spinalhdl-core:1.14.2",
    ivy"com.github.spinalhdl::spinalhdl-lib:1.14.2",
  )

  def scalacPluginIvyDeps = Agg(ivy"com.github.spinalhdl::spinalhdl-idsl-plugin:1.14.2")
}

For mill version >= 1.0.0

//| mvnDeps:
//| - com.typesafe:config:1.4.3
import mill._
import mill.scalalib._

object MySpinalModule extends ScalaModule {
  def scalaVersion = "2.12.18"

  override def mvnDeps = Seq(
    mvn"com.github.spinalhdl::spinalhdl-core:1.13.0",
    mvn"com.github.spinalhdl::spinalhdl-lib:1.13.0"
  )

  override def scalacPluginMvnDeps = Seq(mvn"com.github.spinalhdl::spinalhdl-idsl-plugin:1.13.0")
}

JAR

https://oss.sonatype.org/content/groups/public/com/github/spinalhdl/spinalhdl-core_2.12/
https://oss.sonatype.org/content/groups/public/com/github/spinalhdl/spinalhdl-lib_2.12/

The files are available on Maven as well.

Change logs

https://github.com/SpinalHDL/SpinalHDL/tags

License

The SpinalHDL core is using the LGPL3 license while SpinalHDL lib and others are using the MIT license. That's for the formalities. But there are some practical statements implied by those licenses:

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.

About

Scala based HDL

Topics

fpgartlscalaverilogvhdl

Resources

Readme

Contributing

Contributing
Activity
Custom properties

Stars

2.1k stars

Watchers

73 watching

Forks

395 forks
Report repository

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.