前言
最近看到SpinalHDL的相关介绍,诸多票友觉得相比chisel更具优势,初步了解记录下,由于SpinalHDL基于Scala,对该类型语言并未接触,优先学习思想为主,环境搭建采用Intel IDEA 进行搭建,其中遇到些许坑,做下记录。
Intel IDEA安装
IDEA采用Community版即可,从官网下载,step by step。
安装完成后需安装Scala插件。
JDK安装
Scala需要java SDK 1.8,从Oracle官网下载即可。
Scala安装
Scala建议采用2.11.12版本(尝试过其他版本,但使用SpinalHDL中遇到各种问题,以学习SpinalHDL为主,不折腾环境)。从Scala官网下载(https://www.scala-lang.org/),随后将scala加载到idea中(网上有诸多搭建scala环境教程)
SpinalHDL Example run
SpinalHDL本质上是一个Scala的libary,采用创建Scala工程的方式创建即可 :
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZ1cTMhdTNlNjZ3cjN4Q2M1MTZxcDN0YTN2EjMwUWYz8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
创建完成工程后,在目录结构下会有一个build.sbt文件,在其中设置SpinalHDL库即可
将下述内容填充到build.sbt中:
name
等待工具自动加载完成后可看到spinalHDL已成功加载
创建新的module(File->New->Module)
创建Scala文件:
编写SpinalHDL测试程序:
import
运行该程序,执行正常:
[Runtime] SpinalHDL v1.4.0 git head : ecb5a80b713566f417ea3ea061f9969e73770a7f
[Runtime] JVM max memory : 3641.0MiB
[Runtime] Current date : 2020.06.07 22:41:42
[Progress] at 0.000 : Elaborate components
[Progress] at 0.232 : Checks and transforms
[Progress] at 0.312 : Generate Verilog
[Done] at 0.361
成功执行后会生成一个systemverilog rtl文件,生成的rtl代码如下:
// Generator : SpinalHDL v1.4.0 git head : ecb5a80b713566f417ea3ea061f9969e73770a7f
生成的RTL代码可读性相对来说与手工编写RTL代码差距不大,或许SpinalHDL后续也是一个发展方向之一。