最好的教學是官方檔案!不過推薦英文檔案
SpinalHDL相當於是scala的一個包,而scala是執行在jvm上的。所以我們先安裝jdk。
安裝jdk(openjdk-19)略
百度搜尋Scala,進入Scala官網(有興趣可以看看get start檔案,能快速瞭解scala語言特性)
進入其下載介面https://www.scala-lang.org/download/
其實他get start介面也有下載(
下載一個scala官方提供的windows下崽器(?)cs,開好網路(最好科學一下),雙擊開啟
整個時間比較長,大概半小時左右(科學的情況下),你可以泡杯咖啡打吧遊戲~
ps.需要注意的是,這個下載器有的時候感覺會卡住,如果你看見你電腦網路沒有下行速度,而下載器也一動不動,那可以嘗試關掉黑框框重新開啟。當然,整個安裝時間是比較長的。
安裝完以後,黑框框會自己消失,然後重啟電腦以重新整理環境變數(如果你會命令列重新整理環境變數也行)
如何命令列重新整理環境變數:
Ctrl+R 輸入 cmd,輸入
set PATH=C:
然後回車,關閉重新開啟,然後環境變數就重新整理了
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"
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 containingbuild.sbt
.
好,讓我們開始
sbt
有非常長的啟動時間(類似於npm init)
sbt
首次編譯並且獲取依賴
compile
只用compile一次,後面會自動compile,進行增量編譯(前提是不把這個命令窗關了)
type runMain
, space, and tab
sbt:projectname> runMain
; projectname.MyTopLevelVerilog
projectname.MyTopLevelFormal projectname.MyTopLevelVhdl
projectname.MyTopLevelSim
tab and tab again,選擇你要幹啥(看選項易得)
~ runMain projectname.MyTopLevelVerilog
安裝好jdk11、jdk17,比如最新的jdk19好像不大行。
注意:需要在環境變數中新增JAVA_HOME,值要填安裝的根目錄(bin資料夾所在的那個目錄),然後你可以在PATH中使用%JAVA_HOME%\bin
形式,通過修改JAVA_HOME的值來做到版本切換
筆者一開始搞得時候是openjdk19,然後報錯說找不到java,而我已經加了JAVA_HOME的環境變數,然後我裝了java17,能用,再切回java19,也能用。。。。後來想想也許是set PATH=C:
的方法不能全域性重新整理環境變數,比如vsc,所以至少登出然後重新登陸。
右下角會跳出小標,一個是選import buid
,另一個sbt
和mil
二選一選sbt
。
然後找到/hw/projectname/MyTopLevel.scala
這麼一段程式碼
object MyTopLevelVerilog extends App {
Config.spinal.generateVerilog(MyTopLevel())
}
會看見上面飄著run|debug
點選run生成verilog程式碼
檔案-->開啟-->正常開啟專案,等待他構建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
右擊出現選單欄,然後找到」執行檔案「