Ubuntu 安装Verilator——翻译自官网

... 威尔逊-斯奈德版权所有 2003-2023。

... SPDX 许可证标识符: 仅限 LGPL-3.0 或 Artistic-2.0

... _安装:


安装


本节讨论如何安装 Verilator。

软件包管理器快速安装

使用发行版的软件包管理器是最简单的入门方法。入门的最简单方法。(请注意,软件包不太可能有最新版本,因此:ref:Git Install 可能是更好的选择)。

安装软件包:

复制代码
   apt-get install verilator # 在 Ubuntu 上

对于其他发行版,请参考 [Repology Verilator Distro Packages](https://repology.org/project/verilator)

Git 快速安装

从 Git 安装 Verilator 具有最大的灵活性。

选项和详情,请参阅下面的 :ref:详细构建说明

简而言之,从 Git 安装

复制代码
   # 先决条件:
   #sudo apt-get install git help2man perl python3 make autoconf g++ flex bison ccache
   #sudo apt-get install libgoogle-perftools-dev numactl perl-doc
   #sudo apt-get install libfl2 # 仅适用于 Ubuntu(如果出错,忽略不计)
   #sudo apt-get install libfl-dev # 仅适用于 Ubuntu(如果提示错误,忽略不计)
   #sudo apt-get install zlibc zlib1g zlib1g-dev # 仅适用于 Ubuntu(如有错误,忽略不计)

   git clone https://github.com/verilator/verilator # 仅限首次使用

   # 每次需要构建时
   unsetenv VERILATOR_ROOT # 用于 csh;如果使用 bash,则忽略错误
   unset VERILATOR_ROOT # 用于 bash
   cd verilator
   git pull # 确保 git 仓库是最新的
   git tag # 查看版本
   #git checkout master # 使用开发分支(例如最近的错误修复)
   #git checkout stable # 使用最新的稳定版本
   #git checkout v{version}  # 切换到指定的发布版本

   autoconf # 创建 ./configure 脚本
   ./configure # 配置并创建 Makefile
   make -j `nproc` # 编译 Verilator 本身(如果出错,尝试只用 "make")。
   sudo make install

详细编译说明

本节描述了构建过程的细节,并假定你是从

从 Git 构建。要使用预编译的 Linux

请参阅 :ref: "软件包管理器快速安装"

操作系统要求

Verilator 主要在 Ubuntu 上开发和测试,另外还在 FreeBSD 和 Apple OS-X 上进行了测试。

FreeBSD 和 Apple OS-X 上进行测试。还在 Red Hat

Linux、其他 GNU/Linux 类平台、Windows Subsystem for

Linux 子系统 (WSL2)、Cygwin 下的 Windows 以及 MinGW 下的 Windows (gcc

-mno-cygwin)。Verilated 输出(非 Verilator 本身)可在所有

选项,以及使用 MSVC++ 进行编译。

安装前提

要构建或运行 Verilator,您需要以下标准软件包:

复制代码
   sudo apt-get install git help2man perl python3 make
   sudo apt-get install g++ # 或者,clang
   sudo apt-get install libgz # 非 Ubuntu(如果提示错误,请忽略)
   sudo apt-get install libfl2 # 仅适用于 Ubuntu(如果提示错误,忽略不计)
   sudo apt-get install libfl-dev # 仅适用于 Ubuntu(若出错请忽略)
   sudo apt-get install zlibc zlib1g zlib1g-dev # 仅适用于 Ubuntu(如显示错误,忽略不计)

要构建或运行 Verilator,以下是可选项,但必须安装以获得良好性能:

复制代码
   sudo apt-get install ccache # 如果编译时存在,运行时需要
   sudo apt-get install mold # 如果编译时有,运行时需要
   sudo apt-get install libgoogle-perftools-dev numactl

以下内容可有可无,但建议使用,以便命令行渲染效果更佳

复制代码
   sudo apt-get install perl-doc

要构建 Verilator,您需要安装这些软件包;运行 Verilator 时不需要安装这些软件包。

复制代码
   sudo apt-get install git autoconf flex bison

开发 Verilator 本身的用户可能也需要这些软件包(参见 internals.rst):

复制代码
   sudo apt-get install clang clang-format-14 cmake gdb gprof graphviz lcov
   sudo apt-get install libclang-dev yapf3 bear
   sudo pip3 install clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff
   cpan install Pod::Perldoc
   cpan install Parallel::Forker
安装 SystemC

^^^^^^^^^^^^^^^

如果要使用 SystemC(相对于直接 C++ 输出),请下载SystemC。 按照他们的安装说明。您需要设置选项:SYSTEMC_INCLUDE 环境变量,指向包含目录,并设置 :option:SYSTEMC_LIBDIR 环境变量指向包含 systemc.h的目录。环境变量,使其指向包含 libsystemc.a 的目录。

安装 GTKWave

^^^^^^^^^^^^^^^

要使用 Verilator FST 跟踪功能,您需要安装 GTKwave 安装,但在 Verilator 构建时并不要求安装。

在 Verilator 构建时并非必需。

获取源代码

从 git 仓库获取源代码

复制代码
git clone https://github.com/verilator/verilator   # Only first time
## Note the URL above is not a page you can see with a browser; it's for git only

输入签出并确定使用哪个版本/分支:

复制代码
   cd verilator
   git pull # 确保我们是最新版本
   git tag # 查看存在哪些版本
   #git checkout master # 使用开发分支(如最近的错误修复)
   #git checkout stable # 使用最新发布的版本
   #git checkout v{version}  # 切换到指定的发布版本

自动配置

创建配置脚本:

复制代码
autoconf # 创建 ./configure 脚本

最终安装选项

在配置编译之前,您必须决定如何将 Verilator最终将 Verilator 安装到系统中的方式。Verilator 将编译环境变量:option:VERILATOR_ROOT 的当前值、和 :option:SYSTEMC_LIBDIR 作为默认值编译到可执行文件中。因此在配置前必须正确无误。

这些是安装选项:

  1. 从 VERILATOR_ROOT 就地运行
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    我们个人最喜欢从 Verilator 的 Git目录中就地运行 Verilator(不要运行 make install)。这样可以最方便地实验和升级,并允许多个版本的 Verilator并存。

    复制代码
    export VERILATOR_ROOT=`pwd` # 如果你的 shell 是 bash
    setenv VERILATOR_ROOT `pwd` # 如果你的 shell 是 csh
    ./configure
    # 运行时将使用 $VERILATOR_ROOT 中的文件,因此无需安装

注意 安装后(参见 安装,调用程序或 shell必须设置环境变量 :option:VERILATOR_ROOT 指向此Git 目录,然后执行 $VERILATOR_ROOT/bin/verilator,这样就能找到所有需要的文件路径。找到所有所需文件的路径。

  1. 安装到特定前缀
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    您可能是操作系统软件包维护者,正在构建一个 Verilator 软件包,也可能最终要将其安装到一个项目文件夹中。最终可能会安装到项目/公司范围内的 "CAD "工具盘中,该盘可能支持每个工具的多个版本。该工具可能支持每个工具的多个版本。请配置最终目标目录名称。 我们建议目标位置包含 Verilator 版本名:

    复制代码
    unset VERILATOR_ROOT # 如果你的 shell 是 bash
    unsetenv VERILATOR_ROOT # 如果你的 shell 是 csh
    # 对于压缩包,使用版本号而不是 git describe
    ./configure --prefix /CAD_DISK/verilator/`git describe | sed "s/verilator_//"`

请注意,安装后(请参阅 "安装"),您需要将路径添加到bin "目录的路径。或者,如果使用 modulecmd,你需要一个模块文件,如这样的模块文件:

复制代码
   set install_root /CAD_DISK/verilator/{version-number-used-above} 设置安装根目录
   unsetenv VERILATOR_ROOT
   prepend-path PATH $install_root/bin
   prepend-path MANPATH $install_root/man
   prepend-path PKG_CONFIG_PATH $install_root/share/pkgconfig
  1. 全局安装系统
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    最后一个选项是全局安装 Verilator,使用configure 的默认系统路径安装 Verilator:

    复制代码
    unset VERILATOR_ROOT # 如果 shell 是 bash
    unsetenv VERILATOR_ROOT # 如果你的 shell 是 csh
    ./configure

安装后(请参阅 "安装"),二进制文件应位于环境变量 $PATH 中的位置。

配置

上一步介绍了配置软件包的命令。开发人员应配置更完整的开发人员测试。这些测试可能需要额外的软件包。

复制代码
   export VERILATOR_AUTHOR_SITE=1 # 放到 .bashrc 中
   ./configure --enable-longtests ...以上选项...

编译

编译 Verilator:

复制代码
   make -j `nproc` # 或者,如果 `nproc` 出错,系统中 CPU 的数量

测试

通过运行自测试检查编译情况:

复制代码
   make test

安装

如果您使用了除 1. 从VERILATOR_ROOT <#_1_run_in_place_from_verilator_root>方案之外的安装选项,则安装文件:

复制代码
  make install

Verilator 编译 Docker 容器

此 Verilator 编译 Docker 容器用于编译和测试 Verilator 编译。它使用以下参数:

容器以 verilator/verilator-buildenv 的形式发布在 docker hub 上。

使用当前的 Verilator 主版本运行基本构建:

docker run -ti verilator/verilator-buildenv

同时运行测试

docker run -ti verilator/verilator-buildenv test

更改编译器

docker run -ti -e CC=clang-10 -e CXX=clang+±10 verilator/verilator-buildenv test

由于安全限制,涉及 gdb 的测试无法运行。要运行这些测试

docker run -ti -e CC=clang-10 -e CXX=clang+±10 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined verilator/verilator-buildenv test

与其使用远程 git 仓库构建,不如使用本地文件系统中的工作副本。将本地工作副本路径挂载为卷,然后用它代替 git。这样做时,请注意将所有改动都提交到本地的 git 区域。从版本库的顶层构建当前的 HEAD:

docker run -ti -v ${PWD}:/tmp/repo -e REPO=/tmp/repo -e REV=git rev-parse --short HEAD --cap-add=SYS_PTRACE --security-opt seccomp=unconfined verilator/verilator-buildenv test

重建

要重建 Verilator-buildenv docker 镜像,请运行

docker build .

这也将在所有支持的编译器变体下构建 SystemC,以缩短 SystemC 测试时间。

Verilator 可执行 Docker 容器

Verilator 可执行 Docker 容器允许你以 docker 镜像的形式轻松运行 Verilator,例如

docker run -ti verilator/verilator:latest --version

这将安装容器,运行最新的 Verilator 并打印 Verilator 的版本。

容器会自动为所有已发布的版本构建,因此您可以轻松比较不同版本的结果,例如

docker run -ti verilator/verilator:4.030 --version

Verilator 需要读写本地系统中的文件。为了简化这一过程,可以使用 verilator-docker 方便脚本。例如./verilator-docker 4.030 --version或./verilator-docker 4.030 --cc test.v

如果不想使用 verilator-docker,则必须赋予容器以卷的形式访问文件的权限,并赋予适当的用户权限。例如,verilate test.v

docker run -ti -v ${PWD}:/work --user ( i d − u ) : (id -u): (id−u):(id -g) verilator/verilator:latest --cc test.v

该方法只能访问当前目录下的文件。另一种方法是设置卷 -workdir。

你也可以通过设置入口点在容器中工作(如果你想让工作持续进行,别忘了挂载卷):

docker run -ti --entrypoint /bin/bash verilator/verilator:latest

你也可以使用容器在特定提交时构建 Verilator:

docker build --build-arg SOURCE_COMMIT= .

内部

Dockerfile 会构建 Verilator,并在构建完成后移除 Verilator 树,以减小映像大小。入口点是一个封装脚本(verilator-wrap.sh)。该脚本 1. 调用 Verilator,2. 将 Verilated 运行时文件分别复制到 obj_dir 或 -Mdir 中。这样,用户就可以拥有这些文件,以便日后使用匹配的运行时文件构建 C++ 输出。封装器还会相应地修补 Verilated Makefile。

Docker Hub 还定义了一个钩子,并通过自动构建运行。

相关推荐
超喜欢下雨天21 分钟前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
tan77º1 小时前
【Linux网络编程】网络基础
linux·服务器·网络
风口上的吱吱鼠1 小时前
Armbian 25.5.1 Noble Gnome 开启远程桌面功能
服务器·ubuntu·armbian
HGW6891 小时前
基于 Elasticsearch 实现地图点聚合
java·elasticsearch·高德地图
笑衬人心。2 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
生如夏花℡2 小时前
HarmonyOS学习记录3
学习·ubuntu·harmonyos
chanalbert3 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风4 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
热爱生活的猴子4 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows
myloveasuka4 小时前
[Linux]内核如何对信号进行捕捉
linux·运维·服务器