Scala based HDL
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 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 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
关于 SpinalHDL
SpinalHDL 是:
- 一种用于描述数字硬件的语言
- 与 EDA 工具兼容,因为它可以生成 VHDL/Verilog 文件
- 在语法和功能上比 VHDL、Verilog 以及 SystemVerilog 强大得多
- 比 VHDL、Verilog 以及 SystemVerilog 简洁得多
- 不是 HLS,也不基于事件驱动范式
- 严格按照用户需求进行一对一生成(无黑魔法,无黑盒)
- 不会给设计带来面积/性能开销(与手写 VHDL/Verilog 设计相比)
- 基于 RTL 描述范式,但可以走得更远
- 允许使用面向对象编程和函数式编程来精心设计和验证硬件
- 免费且可在工业界使用,无需任何许可
链接
- 文档
https://spinalhdl.github.io/SpinalDoc-RTD/ - 中文文档
https://spinalhdl.github.io/SpinalDoc-RTD/zh_CN/ - 中文文档(thuCGRA 提供的 v1.7.2 版本)
https://thucgra.github.io/SpinalHDL_Chinese_Doc/ - API 参考
https://spinalhdl.github.io/SpinalHDL/dev/spinal/index.html - 语言介绍
https://github.com/SpinalHDL/SpinalDoc/blob/master/presentation/en/presentation.pdf - SBT 基础项目
https://github.com/SpinalHDL/SpinalTemplateSbt - Gradle 基础项目
https://github.com/SpinalHDL/SpinalTemplateGradle - Jupyter 实战教程
https://github.com/SpinalHDL/Spinal-bootcamp - 研讨会
https://github.com/SpinalHDL/SpinalWorkshop - 谷歌群组
https://groups.google.com/forum/#!forum/spinalhdl-hardware-description-language - 捐赠渠道
https://opencollective.com/spinalhdl
安装方法
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 按“原样”提供,不提供任何形式的担保。