All Projects → SpinalHDL → Spinalhdl

SpinalHDL / Spinalhdl

Licence: other
Scala based HDL

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Spinalhdl

SpinalDev
Docker Development Environment for SpinalHDL
Stars: ✭ 17 (-97.56%)
Mutual labels:  fpga, vhdl, rtl, verilog
hwt
VHDL/Verilog/SystemC code generator, simulator API written in python/c++
Stars: ✭ 145 (-79.17%)
Mutual labels:  fpga, vhdl, rtl, verilog
SpinalCrypto
SpinalHDL - Cryptography libraries
Stars: ✭ 36 (-94.83%)
Mutual labels:  fpga, vhdl, rtl, verilog
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (-94.68%)
Mutual labels:  fpga, rtl, verilog
cnn open
A hardware implementation of CNN, written by Verilog and synthesized on FPGA
Stars: ✭ 157 (-77.44%)
Mutual labels:  fpga, rtl, verilog
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (-94.54%)
Mutual labels:  fpga, rtl, verilog
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (-92.82%)
Mutual labels:  fpga, vhdl, verilog
Hard-JPEG-LS
FPGA-based JPEG-LS image compressor.
Stars: ✭ 52 (-92.53%)
Mutual labels:  fpga, rtl, verilog
Verilog
Repository for basic (and not so basic) Verilog blocks with high re-use potential
Stars: ✭ 296 (-57.47%)
Mutual labels:  verilog, fpga, rtl
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (-93.82%)
Mutual labels:  fpga, vhdl, verilog
FPGA-USB-Device
FPGA-based USB-device controller to implement USB-CDC, USB-HID, etc.
Stars: ✭ 29 (-95.83%)
Mutual labels:  fpga, rtl, verilog
blarney
Haskell library for hardware description
Stars: ✭ 81 (-88.36%)
Mutual labels:  fpga, rtl, verilog
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-96.41%)
Mutual labels:  fpga, vhdl, verilog
vscode-terosHDL
VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
Stars: ✭ 325 (-53.3%)
Mutual labels:  fpga, vhdl, verilog
vga-clock
Show the time on a VGA monitor. Submitted for the Google MPW1 ASIC shuttle.
Stars: ✭ 48 (-93.1%)
Mutual labels:  fpga, rtl, verilog
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (-97.84%)
Mutual labels:  fpga, vhdl, verilog
Fpga readings
Recipe for FPGA cooking
Stars: ✭ 164 (-76.44%)
Mutual labels:  verilog, fpga, rtl
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (-92.24%)
Mutual labels:  fpga, vhdl, verilog
Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (-61.21%)
Mutual labels:  verilog, fpga, vhdl
Fake-SDcard
Imitate SDcard using FPGAs.
Stars: ✭ 26 (-96.26%)
Mutual labels:  fpga, rtl, verilog

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

Join the chat at https://gitter.im/SpinalHDL/SpinalHDL

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

libraryDependencies ++= Seq(
  "com.github.spinalhdl" % "spinalhdl-core_2.11" % "latest.release",
  "com.github.spinalhdl" % "spinalhdl-lib_2.11" % "latest.release",
  compilerPlugin("com.github.spinalhdl" % "spinalhdl-idsl-plugin_2.11" % "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.11', version: '1.3.6'
	compile group: 'com.github.spinalhdl', name: 'spinalhdl-lib_2.11', version: '1.3.6'
}

Mill(Build Tool)

object MySpinalModule extends ScalaModule {
  def scalaVersion = "2.11.12"

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

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

JAR

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

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 is 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].