Сборка Icarus Verilog

Для удобства изложения материала будем считать, что все инструменты хранятся в одной директории, путь к которой записан в переменную окружения FPGA_TOOLS. В нашем случае это будет директория ~/fpga_tools.

Записать путь в переменную окружения можно с помощью следующих команд:

$ mkdir ~/fpga_tools
$ export FPGA_TOOLS=~/fpga_tools # Для bash
$ set -x FPGA_TOOLS ~/fpga_tools # Для fish

Зависимости для сборки можно установить следующим образом.

Для Ubuntu
$ sudo apt install -y autoconf gperf make gcc g++ bison flex
Для Arch Linux
$ sudo pacman -S autoconf gperf make gcc bison flex

Хранить репозитории будем в директории $FPGA_TOOLS/repos. Сначала создадим её, а затем перейдём туда.

$ mkdir $FPGA_TOOLS/repos
$ cd $FPGA_TOOLS/repos

Склонируем репозиторий.

$ git clone https://github.com/steveicarus/iverilog

Перейдём в склонированную директорию, зафиксируем коммит, на котором писалась документация, сконфигурируем проект, а затем запустим компиляцию. Обратите внимание, что в качестве префикса мы указываем путь из переменной FPGA_TOOLS, именно туда будут установленны файлы приложения.

$ cd iverilog
$ git switch --detach dc6f9f2
$ sh autoconf.sh
$ ./configure --prefix=$FPGA_TOOLS
$ make -j 4

Для уверенности запустим тесты.

$ make check

А затем установим симулятор.

$ make install
Если команда выше просит у вас пароль для sudo, значит что-то пошло не так и вы пытаетесь установить iverilog в системную директорию!

Останется только добавить в PATH директорию $FPGA_TOOLS/bin.

$ export PATH=$FPGA_TOOLS/bin:$PATH # Для bash
$ set -ax PATH $FPGA_TOOLS/bin # Для fish