Verilator 的设置和安装

备注

如果您在 SpinalHDL 安装和设置 期间安装了推荐的 oss-cad-suite,您可以跳过下面的说明 - 但您需要激活 oss-cad-suite 环境。

Linux 和 Windows 平台均支持 SpinalSim + Verilator。

建议使用的 Verilator 版本最老不低于 v4.218。虽然可以使用较旧的 verilator 版本,但 SpinalHDL 可以使用的一些可选的和 Scala 源文件相关功能(例如 Verilog $urandom 支持)可能不受旧版本 Verilator 支持,并且会在尝试仿真时会导致错误。

理想情况下,最新的 v4.xxx 和 v5.xxx 得到良好支持,并且应针对您遇到的任何问题打开错误报告工单。

Scala

不要忘记在 build.sbt 文件中添加以下内容:

fork := true

你总是需要在Scala测试平台中加入以下导入代码:

import spinal.core._
import spinal.core.sim._

Linux

您还需要安装最新版本的 Verilator:

sudo apt-get install git make autoconf g++ flex bison  # First time prerequisites
git clone http://git.veripool.org/git/verilator   # Only first time
unsetenv VERILATOR_ROOT  # For csh; ignore error if on bash
unset VERILATOR_ROOT  # For bash
cd verilator
git pull             # Make sure we're up-to-date
git checkout v4.218  # Can use newer v4.228 and v5.xxx
autoconf             # Create ./configure script
./configure
make -j$(nproc)
sudo make install
echo "DONE"

Windows

为了让 SpinalSim + Verilator 在 Windows 上工作,您必须执行以下操作:

  • 安装 MSYS2

  • 通过 MSYS2 获取 gcc/g++/verilator (对于 Verilator,您可以从源代码编译它)

  • 将 MSYS2 的 binusr\bin 添加到 Windows PATH 中(即:C:\msys64\usr\bin;C:\msys64\mingw64 \bin)

  • 检查 JAVA_HOME 环境变量是否指向 JDK 安装文件夹(即:C:\Program Files\Java\jdk-13.0.2

然后您应该能够从 Scala 项目运行 SpinalSim + Verilator,而无需再使用 MSYS2。

从全新安装 MSYS2 MinGW 64 位开始,您必须在 MSYS2 MinGW 64 位 shell 中运行以下命令:

从 MinGW 包管理器安装

pacman -Syuu
# Close the MSYS2 shell once you're asked to
pacman -Syuu
pacman -S --needed base-devel mingw-w64-x86_64-toolchain \
                   git flex\
                   mingw-w64-x86_64-cmake

pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-verilator-4.032-1-any.pkg.tar.xz

# Add C:\msys64\usr\bin;C:\msys64\mingw64\bin to your Windows PATH

从源码安装

pacman -Syuu
# Close the MSYS2 shell once you're asked to
pacman -Syuu
pacman -S --needed base-devel mingw-w64-x86_64-toolchain \
                   git flex\
                   mingw-w64-x86_64-cmake

git clone http://git.veripool.org/git/verilator
unset VERILATOR_ROOT
cd verilator
git pull
git checkout v4.218   # Can use newer v4.228 and v5.xxx
autoconf
./configure
export CPLUS_INCLUDE_PATH=/usr/include:$CPLUS_INCLUDE_PATH
export PATH=/usr/bin/core_perl:$PATH
cp /usr/include/FlexLexer.h ./src

make -j$(nproc)
make install
echo "DONE"
# Add C:\msys64\usr\bin;C:\msys64\mingw64\bin to your Windows PATH

重要

确保您的 PATH 环境变量指向 JDK 1.8 并且不包含 JRE 安装。

重要

Adding the MSYS2 bin folders into your windows PATH could potentially have some side effects. This is why it is safer to add them as the last elements of the PATH to reduce their priority.