JoshuaのFPGA · 2022年10月14日 · 四川

SpinalHDL开发环境搭建

Windows 系统开发环境搭建

开发所需软件

SpinalHDL 是 Scala 语言的一个库,SpinaHDL 环境搭建所需的软件开发 Scala 需要使用 IDEA 软件;JDK17采用开源软件TencentKona-17.0.3.b1,Scala2.12.16,SBT1.6.2;仿真工具使用 verilator+gtkwave, 在 windows 系统需要使用 msys64 软件进行安装。

软件安装

  1. 所有软件安装在 X:\SpinalHDL 目录下即可
  2. 所有软件安装过程中,把 path 选项都勾选上;使用sbt国内镜像。 在个人用户目录下新建.sbt文件夹,在文件夹内创建repositories文件,用来配置sbt国内镜像库,默认支持https协议,如果是http协议需要在仓库链接后加allowInsecureProtocol命令即可。

    [repositories]
    local
    #添加国内镜像
    huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
    maven-central: https://repo1.maven.org/maven2/
    sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  3. 仿真需要使用 GTKWave+Verilator,安装 MSYS64 软件之后,使用msys2国内镜像。然后打开 msys2 msys 终端输入如下指令:

    pacman -Syuu
    # 更新后关闭软件 重新打开
    pacman -Syuu
    pacman -S --needed base-devel mingw-w64-x86_64-toolchain  git flex mingw-w64-x86_64-cmake
    pacman -U https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/mingw64/mingw-w64-x86_64-verilator-4.228-1-any.pkg.tar.zst
    pacman -U https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/mingw64/mingw-w64-x86_64-gtkwave-3.3.111-1-any.pkg.tar.zst
    pacman -U https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/mingw64/mingw-w64-x86_64-ghdl-llvm-2.0.0.r77.g4775ebbd6-1-any.pkg.tar.zst
    pacman -U https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/mingw64/mingw-w64-x86_64-yosys-0.12.r45-1-any.pkg.tar.zst
    pacman -U https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/mingw64/mingw-w64-x86_64-iverilog-1~11.0.r9168.gd480c4d7-1-any.pkg.tar.zst

    所有更新完毕后更新文件均保存在 X:\SpinalHDL\msys64 路径中。

系统变量与环境变量检查

系统变量中设置如下:

变量名
JAVA_HOMEX:\SpinalHDL\TencentKona-17.0.3.b1
CLASSPATH.;%JAVA_HOME%\lib;
SBT_HOMEX:\SpinalHDL\sbt
SCALA_HOMEX:\SpinalHDL\scala
MSYS_HOMEX:\SpinalHDL\msys64
PathX:\Program Files\Common Files\Oracle\Java\javapath;
%SBT_HOME%\sbt\bin;
%SCALA_HOME%\bin;
%MSYS_HOME%\usr\bin;
%MSYS_HOME%\mingw64\bin;
%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin;
%SBT_HOME%\bin;

Linux 系统开发环境搭建

SpinalHDL环境安装文件

ideaIC-2022.2.tar.gz                          #idea软件包
scala-intellij-bin-2022.2.10.zip              #idea的scala插件
zh.222.168.zip                                #idea中文支持包插件
TencentKona-17.0.3.b1-jdk_linux-x86_64.tar.gz #TencentKona OpenJDK17安装包
sbt-1.6.2.tgz                                 #sbt 安装包
boost_1_80_0.tar.bz2                          #C++ boost库安装包

SpinalHDL环境软件安装流程

在用户终端中,输入su后回车,再输入root账户密码,进入root账户。

在用户终端中,输入 cd /home/share/SpinalHDL,进入安装包所在路径。

在用户终端中,输入tar -zxvf ideaIC-2022.2.2.tar.gz -C /opt待解压成功即可。

在用户终端中,输入 tar -zxvf TencentKona-17.0.3.b1-jdk_linux-x86_64.tar.gz -C /opt待解压成功即可。

为了解决SpinalHDL调用VCS+Verdi仿真出现的SharedMemIface.cpp faild 问题,原因是没有安装C++ boost库, 需要安装boost库。Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。 在用户终端中,输入 tar -xvf boost_1_80_0.tar.bz2 -C /opt 待解压完毕。

cd /opt/boost_1_80_0;./bootstrap.sh; 待bootstrap完成后,继续输入 sudo ./b2 install,等待安装完成即可。

在用户终端中,输入 tar -zxvf sbt-1.6.2.tgz -C /opt待解压成功即可。

在用户终端中,进入个人账户,cd ~进入个人账户Home目录,在.bashrc文件结尾处设置如下环境变量后,然后执行 source ~/.bashrc使之生效。

##idea
export IDEA_HOME=/opt/idea-IC-222.4167.29
PATH=$PATH:${IDEA_HOME}/bin
alias idea="/opt/idea-IC-222.4167.29/bin/idea.sh"
##jdk17
export JAVA_HOME=/opt/TencentKona-17.0.3.b1
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
###SBT
export SBT_HOME=/opt/sbt
export PATH=$SBT_HOME/bin:$PATH

在用户终端中,输入 mkdir ~/.sbt创建.sbt文件夹,cd ~/.sbt;touch repositories创建repositories文件,用来配置sbt国内镜像。镜像仓库默认支持https协议,如果是http协议需要在仓库链接后加allowInsecureProtocol命令即可。

[repositories]
local
#添加国内镜像
huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
maven-central: https://repo1.maven.org/maven2/
sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

在用户终端中,分别输入 java -version、javac -version、sbt -version校验是否安装成功。

声明:VCS+Verdi只做学术研究,不做商业用途,公司使用推荐购买正版

VCS+Verdi安装文件

SynopsysInstaller      # 此程序用于安装Synopsys下列软件
vcs_mx_vO-2018.09-SP2  # VCS安装包,支持Verilog与VHDL混合仿真
verdi_vO-2018.09-SP2   # Verdi安装包         
SCL_2018.06-SP1        # 此程序统一管理license文件
scl_keygen             # 此程序用于生成license文件

VCS+Verdi软件安装流程

在用户终端中,输入su后回车,再输入root账户密码,进入root账户。

在用户终端中,输入 cd /home/share/Synopsys,进入安装包所在路径。

在用户终端中cd SynopsysInstaller文件夹,运行./SynopsysInstaller_v5.0.1.run,选择安装目录为:/opt/Synopsys/Install,完成安装得到setup.sh文件。
进入VMware虚拟机Linux编译服务器图形化桌面系统后,打开终端,输入su后回车,再输入root账户密码,进入root账户。cd /opt/Synopsys/Install目录中,运行 ./setup.sh即可打开软件安装图形化界面依次选择安装软件vcs_mx_vO-2018.09-SP2,verdi_vO-2018.09-SP2,SCL_2018.06-SP1,分别选择安装到/opt/Synopsys目录中。

也可以在用户终端以脚本的方式进行安装,具体指令为:

/opt/Synopsys/Install/installer -batch_installer -source /home/share/Synopsys/SCL_2018.06-SP1 -target /opt/Synopsys
/opt/Synopsys/Install/installer -batch_installer -source /home/share/Synopsys/vcs_mx_vO-2018.09-SP2 -target /opt/Synopsys
/opt/Synopsys/Install/installer -batch_installer -source /home/share/Synopsys/verdi_vO-2018.09-SP2 -target /opt/Synopsys

这一步可能会报错,提示找不到什么文件,直接百度问题即可解决依赖检测失败:libXss.so.1,libappindicator3.so.1,出现libXss.so.1被依赖,这个so文件要查看是属于那个包,通过此命令:repoquery --nvr --whatprovides libXss.so.1。得到结果libXScrnSaver-1.2.2-6.1.el7,然后安装:yum installl libXScrnSaver-1.2.2-6.1.el7
在用户终端中输入ifconfig查询本机MAC地址,输入hostname获取本机主机名。在Windows系统中打开scl_keygen目录中的双击运行scl_keygen.exe文件,将MAC地址填入HOST ID Daemon和HOST ID Feature,将主机名填入HOST Name一栏,将EXPIRE一栏改为31-dec-2030,点击Generate即可生成Synopsys.dat文件,如下图所示。在生成的Synopsys.dat第2行改为:DAEMON snpslmd /opt/Synopsys/scl/2018.06-SP1/linux64/bin/snpslmd,其中,/opt/Synopsys/scl/2018.06-SP1为SCL软件安装路径。
1665755040604.png
将Synopsys.dat文件拷贝至/opt/Synopsys/scl/2018.06-SP1/admin/license中。
在用户终端中,进入个人账户,cd ~进入个人账户Home目录在.bashrc文件结尾处设置如下环境变量后,然后执行source ~/.bashrc使之生效。

# Environment Variables
export DVE_HOME=/opt/Synopsys/vcs-mx/O-2018.09-SP2
export VCS_HOME=/opt/Synopsys/vcs-mx/O-2018.09-SP2
export VERDI_HOME=/opt/Synopsys/verdi/Verdi_O-2018.09-SP2
export NOVAS_HOME=/opt/Synopsys/verdi/Verdi_O-2018.09-SP2
export SCL_HOME=/opt/Synopsys/scl/2018.06-SP1
#DVE
PATH=$PATH:$DVE_HOME/gui/dve/bin
alias dve="dve -full64"
#VCS
PATH=$PATH:$VCS_HOME/bin
alias vcs="vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed"
#VERDI
PATH=$PATH:$VERDI_HOME/bin
alias verdi="verdi"
#SCL
PATH=$PATH:$SCL_HOME/linux64/bin
export VCS_ARCH_OVERRIDE=linux
#LD_LIBRARY_PATH                                                                       
export LD_LIBRARY_PATH=${NOVAS_HOME}/share/PLI/VCS/LINUX64
export novas_args="-P ${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX64/pli.a"
export LD_LIBRARY_PATH=$VERDI_HOME/share/PLI/IUS/LINUX64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$VERDI_HOME/share/PLI/lib/LINUX64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$VERDI_HOME/share/PLI/Ius/LINUX64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$VERDI_HOME/share/PLI/MODELSIM/LINUX64:$LD_LIBRARY_PATH
#LICENCE
export LM_LICENSE_FILE=27000@***** ###ServerHostname需要更改
alias lmg_synopsys="lmgrd -c /opt/Synopsys/scl/2018.06-SP1/admin/license/Synopsys.dat"
#alias lmg="/opt/Synopsys/scl/2018.06-SP1/linux64/bin/lmgrd -c /opt/Synopsys/scl/2018.06-SP1/admin/license/Synopsys.dat -l /opt/Synopsys/scl/2018.06-SP1/admin/license/VCS.log"
# sudo firewall-cmd --zone=public --add-port=27000/tcp --permanent
# sudo firewall-cmd --reload

在用户终端中输入dve,如果出现如下界面,代表VCS安装成功。
1665755153964.png
在用户终端中输入verdi,如果出现如下界面,表示Verdi安装成功。
1665755216999.png
如果出现该错误提示:/lib64/ld-lsb-x86-64.so.3: bad ELF interpreter:No such file or directory What do I do? This error indicates that the LSB (Linux Standard Base) subsystem is not installed.

在用户终端运行sudo yum install redhat-lsbsudo apt install lsb-core 即可解决。

Linux安装问题请参考

VMware安装虚拟机操作步骤

WSL Ubuntu16.04安装GUI +VCS+Verdi 个人踩坑记录+填坑答疑_努力的卑微小陈的博客-CSDN博客

搭建属于自己的数字IC EDA环境(一):安装VMware15.5和centos7_芯王国的博客-CSDN博客

搭建属于自己的数字IC EDA环境(三):Centos7安装EDA(vcs2018、verdi2018等)IC工具以及脚本运行第一个工程_芯王国的博客-CSDN博客_verdi2018安装包

VSCode-SpinalHDL集成开发环境

在上述环境搭建完之后,如果不熟悉IDEA软件,也可以用VSCode软件进行代替。需要安装Scala(Metals)插件,并对该插件进行如下设置:
1665755270178.png
导入sbt文件,联网进行相应的更新,等待更新完毕即可。使用该插件可以参考插件的介绍,按照步骤操作即可。
VScode-SpinalHDL效果如图所示;
1665755305304.png

推荐阅读
关注数
9
内容数
6
FPGAer
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息