SpinalHDL:强大的数字硬件描述语言,比VHDL/Verilog更简洁高效,支持面向对象与函数式编程

Scala based HDL

分支32Tags106
文件最后提交记录最后更新时间
3 个月前
3 年前
2 个月前
2 年前
5 个月前
25 天前
3 个月前
5 个月前
1 个月前
28 天前
10 年前
1 个月前
9 年前
3 年前
7 个月前
3 年前
3 个月前
1 年前
3 年前
3 年前
9 年前
9 年前
3 个月前
7 个月前
1 年前
5 年前
3 年前

关于 SpinalHDL

SpinalHDL 是:

  • 一种用于描述数字硬件的语言
  • 与 EDA 工具兼容,因为它可以生成 VHDL/Verilog 文件
  • 在语法和功能上比 VHDL、Verilog 以及 SystemVerilog 强大得多
  • 比 VHDL、Verilog 以及 SystemVerilog 简洁得多
  • 不是 HLS,也不基于事件驱动范式
  • 严格按照用户需求进行一对一生成(无黑魔法,无黑盒)
  • 不会给设计带来面积/性能开销(与手写 VHDL/Verilog 设计相比)
  • 基于 RTL 描述范式,但可以走得更远
  • 允许使用面向对象编程和函数式编程来精心设计和验证硬件
  • 免费且可在工业界使用,无需任何许可

链接

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

安装方法

SpinalHDL 本质上是一组 Scala 库。将它们添加到您的项目中即可开始使用!如果您不确定如何操作,只需克隆我们的某个示例项目(参见上方链接)。

SBT(Scala 构建工具)

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")
)

你可以通过将 latest.release 替换为特定版本,强制 SBT 选择特定的 SpinalHDL 版本。 有关完整的 SBT 示例,请参见 SpinalHDL SBT 模板项目的 build.sbt 文件

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(构建工具)

适用于版本 ≤ 0.11 的 Mill

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")
}

对于 mill 版本 >= 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/

这些文件也可在 Maven 上获取。

变更日志

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

许可证

SpinalHDL 核心采用 LGPL3 许可证,而 SpinalHDL 库及其他部分则采用 MIT 许可证。这是从形式上而言。但这些许可证也蕴含了一些实际声明:

您拥有的自由:

  • 您可以在封闭/商业项目中使用 SpinalHDL 核心和库。
  • 生成的 RTL 归您所有(.vhd/.v 文件)
  • 您的硬件描述归您所有(.scala 文件)

您的义务(也是我的期望):

  • 如果您修改了 SpinalHDL 核心(编译器本身),请分享您的改进。

此外,SpinalHDL 按“原样”提供,不提供任何形式的担保。

项目介绍

基于Scala的硬件描述语言(HDL)【此简介由AI生成】

定制我的领域
752.03 K389访问 GitHub