Windows 系统开发环境搭建
开发所需软件
SpinalHDL 是 Scala 语言的一个库,SpinaHDL 环境搭建所需的软件开发 Scala 需要使用 IDEA 软件;JDK17采用开源软件TencentKona-17.0.3.b1,Scala2.12.16,SBT1.6.2;仿真工具使用 verilator+gtkwave, 在 windows 系统需要使用 msys64 软件进行安装。
软件安装
- 所有软件安装在 X:\SpinalHDL 目录下即可
所有软件安装过程中,把 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]
仿真需要使用 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_HOME | X:\SpinalHDL\TencentKona-17.0.3.b1 |
CLASSPATH | .;%JAVA_HOME%\lib; |
SBT_HOME | X:\SpinalHDL\sbt |
SCALA_HOME | X:\SpinalHDL\scala |
MSYS_HOME | X:\SpinalHDL\msys64 |
Path | X:\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软件安装路径。
将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安装成功。
在用户终端中输入verdi
,如果出现如下界面,表示Verdi安装成功。
如果出现该错误提示:/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-lsb
或sudo apt install lsb-core
即可解决。
Linux安装问题请参考
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)插件,并对该插件进行如下设置:
导入sbt文件,联网进行相应的更新,等待更新完毕即可。使用该插件可以参考插件的介绍,按照步骤操作即可。
VScode-SpinalHDL效果如图所示;