[1]SpinalHDL安裝環境

2023-01-15 06:02:05

[1]SpinalHDL安裝環境

最好的教學是官方檔案!不過推薦英文檔案

英文版

中文版

一、安裝java環境

SpinalHDL相當於是scala的一個包,而scala是執行在jvm上的。所以我們先安裝jdk。

安裝jdk(openjdk-19)略

二、安裝Scala

百度搜尋Scala,進入Scala官網(有興趣可以看看get start檔案,能快速瞭解scala語言特性)

進入其下載介面https://www.scala-lang.org/download/

其實他get start介面也有下載(

下載一個scala官方提供的windows下崽器(?)cs,開好網路(最好科學一下),雙擊開啟

整個時間比較長,大概半小時左右(科學的情況下),你可以泡杯咖啡打吧遊戲~

ps.需要注意的是,這個下載器有的時候感覺會卡住,如果你看見你電腦網路沒有下行速度,而下載器也一動不動,那可以嘗試關掉黑框框重新開啟。當然,整個安裝時間是比較長的。

安裝完以後,黑框框會自己消失,然後重啟電腦以重新整理環境變數(如果你會命令列重新整理環境變數也行)

如何命令列重新整理環境變數:

Ctrl+R 輸入 cmd,輸入set PATH=C: 然後回車,關閉重新開啟,然後環境變數就重新整理了

三、準備樣板工程

1.克隆工程

git clone --depth 1 https://github.com/SpinalHDL/SpinalTemplateSbt.git MySpinalProject
cd MySpinalProject
rm -rf .git
git init
git add .
git commit -m "Initial commit from template"

2.目錄結構

Note

The structure described here is the default structure, but it can be easily modified.

譯文:目錄結構身嬌腰柔易推倒~

In the root of the project are the following files:

File Description
build.sbt Scala configuration for sbt
build.sc Scala configuration for mill, an alternative to sbt
hw/ The folder containing hardware descriptions
project/ More Scala configuration
README.md A text/markdown file describing your project
.gitignore List of files to ignore in versioning
.mill-version More configuration for mill
.scalafmt.conf Configuration of rules to auto-format the code

As you probably guessed it, the interesting thing here is hw/. It contains four folders: spinal/, verilog/ and vhdl/ for your IPs and gen/ for IPs generated with Spinal.

hw/spinal/ contains a folder named after your project name. This name must be set in build.sbt (along with the company name) and in build.sc; and it must be the one in package yourprojectname at the beginning of .scala files.

In hw/spinal/yourprojectname/, are the descriptions of your IPs, simulation tests, formal tests; and there is Config.scala, which contains the configuration of Spinal.

Note

sbt must be used only at the root of the project, in the folder containing build.sbt.

四、CLI with sbt

  1. cli是命令列
  2. sbt是scala的構建工具,類似於gcc的make

好,讓我們開始

1.初始化

sbt 有非常長的啟動時間(類似於npm init)

sbt

首次編譯並且獲取依賴

compile

只用compile一次,後面會自動compile,進行增量編譯(前提是不把這個命令窗關了)

2.生成verilog

type runMain, space, and tab

sbt:projectname> runMain 
;                               projectname.MyTopLevelVerilog
projectname.MyTopLevelFormal    projectname.MyTopLevelVhdl
projectname.MyTopLevelSim

tab and tab again,選擇你要幹啥(看選項易得)

3.持久化執行

~ runMain projectname.MyTopLevelVerilog

四、VSCode

1.前提條件:

安裝好jdk11、jdk17,比如最新的jdk19好像不大行。

注意:需要在環境變數中新增JAVA_HOME,值要填安裝的根目錄(bin資料夾所在的那個目錄),然後你可以在PATH中使用%JAVA_HOME%\bin形式,通過修改JAVA_HOME的值來做到版本切換

筆者一開始搞得時候是openjdk19,然後報錯說找不到java,而我已經加了JAVA_HOME的環境變數,然後我裝了java17,能用,再切回java19,也能用。。。。後來想想也許是set PATH=C:的方法不能全域性重新整理環境變數,比如vsc,所以至少登出然後重新登陸。

2.使用

右下角會跳出小標,一個是選import buid,另一個sbtmil二選一選sbt

然後找到/hw/projectname/MyTopLevel.scala這麼一段程式碼

object MyTopLevelVerilog extends App {
  Config.spinal.generateVerilog(MyTopLevel())
}

會看見上面飄著run|debug點選run生成verilog程式碼

五、Idea

方法一

檔案-->開啟-->正常開啟專案,等待他構建sbt

找到\hw\spinal\projectname\MyTopLevel.scala右擊出現選單欄,然後找到」執行檔案「

方法二(官方檔案這麼說的)

檔案-->新建-->來自現有程式碼的專案,全勾上(以下為官方檔案的描述)

the choose the Import project from external model SBT and be sure to check all boxes

找到\hw\spinal\projectname\MyTopLevel.scala右擊出現選單欄,然後找到」執行檔案「