QuestaSim

Материал из ALT Linux Wiki

QuestaSim - проприетарное ПО для RTL верификации. Работает под управлением Linux (в основном Ubuntu и RHEL) и Windows. QuestaSim является одной из самых популярных программ в данной области. Поддерживаются все основные стандарты языков описания аппаратуры Verilog, SystemVerilog, VHDL. В статье будет рассмотрена установка QuestaSim версии 2021.2 на Альт P10, настройка рабочего окружения и исправление ошибок.

Установка

В данной статье будет рассмотрена установка из оффлайн пакета. В случае если вы хотите установить программу только для текущего пользователя можно производить все нижеописанные действия от пользователя и в домашней папке конкретного пользователя. Но в статье будет рассмотрена, в основном, установка для всех пользователей.

0. Начать необходимо с установки пакетов:

$ su -
# apt-get update
# apt-get dist-upgrade
# apt-get install gcc make

1. Для начала установки необходимо зайти от суперпользователя, дать файлу оффлайн установки право на исполнение и собственно запустить файл:

$ su
# chmod +x questa_sim-2021.2_1.aol
# ./questa_sim-2021.2_1.aol

2.1. В появившемся окне выбираем кнопку Install Products.

2.2. В следующем окне необходимо выбрать источник и целевую папке для установки. В графе Select a source необходимо указать собственно сам файл оффлайн установки, то есть тот что и был запущен. В случае запуска установки из этого файла тут должен быть по умолчанию указан верный путь. В графе Select a target location необходимо указать путь к папке в которую и будет ставиться ПО. Например, выберем путь:

/usr/local/questa
Примечание: В случае отсутствия заранее созданной папки для программы (в нашем случае папка questa) установщик сам предложит её создать

2.3. В следующем окне выбираем список компонентов для установки. Например, выберем все.

2.4. В следующих окнах знакомимся с лицензионным соглашением и начинаем установку, дожидаемся конца установки и закрываем установщик.

3. Теперь необходимо получить файл лицензии на программу то есть, сгенерировать под ваш ПК файл лицензии. Это можно сделать на сайте производителя. Обращаем внимание что для активации необходим MAC-адрес вашего ПК. Узнать его можно, например, с помощью команды ifconfig (параметр --HWaddr в выводе команды).

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

4.1. Необходимо скопировать файл лицензии в папку где он никому не помешает и точно не будет удалён, так как программа для работы постоянно требует доступ к нему. Например, скопируем в папку с установленной программой:

# su
# cp license.dat /usr/local/questa/

4.2. Для настройки переменных окружения при глобальной установке необходимо добавить несколько новых глобальных переменных в систему.

4.2.1. Создадим скрипт questa_env.sh и добавим в него три команды

export PATH="/usr/local/questa/questasim/linux_x86_64":$PATH
export PATH="/usr/local/questa/questasim/RUVM_2021.2":$PATH
export LM_LICENSE_FILE="/usr/local/questa/license.dat":$LM_LICENSE_FILE

4.2.2. Делаем скрипт исполняемым, кладём в папку /etc/profile.d/ и перезагружаемся для того, чтобы применить новые глобальные переменные:

Примечание: В случае локальной установки для одного пользователя эти же переменные, но с другими путями к файлам (например, /home/user/questa) необходимо добавить в ~/.bashrc, а не в /etc/profile
# su
# chmod +x questa_env.sh
# mv questa_env.sh /etc/profile.d/
# /sbin/reboot

5. После перезагрузки проверяем запуск программы. От обычного пользователя в консоли необходимо написать команду для запуска:

# vsim

После этого должен отобразиться графический интерфейс программы.

6 (опционально). Для тех кто не любит часто смотреть в терминал есть опция создания иконки для запуска. Для этого необходимо создать файл для запуска и найти в свободном доступе иконку.

6.1. Создаём папку, например, questa_run:

# mkdir questa_run

6.2. Кладём туда понравившуюся иконку для программы.

6.3. Для создания иконки был написан примерно такой скрипт:

#!/bin/bash
pa=$(pwd)
us=$(whoami)
rt=root
if [ "$us" = "$rt" ]
then sv=/usr/share/applications/QuestaSim_2021.2.desktop
else sv=~/.local/share/applications/QuestaSim_2021.2.desktop
fi
echo "[Desktop Entry]
Comment[ru_RU]=
Comment=Mentor Graphics QuestaSim 2021.2
Exec=vsim -gui
GenericName[ru_RU]=QuestaSim
GenericName=QuestaSim
Icon=${pa}/QuestaSim.png
MimeType=
Name[ru_RU]=QuestaSim
Name=QuestaSim
Path=${pa}/../questasim/linux_x86_64
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Categories=Development;IDE;
X-KDE-SubstituteUID=false
X-KDE-Username=" > $sv

Данный скрипт при запуске от пользователя создаёт иконку локально, а при запуске от суперпользователя глобально. Данный скрипт должен лежать рядом с иконкой в папке questa_run.

6.4. Перемещаем папку questa_run в папку с установленной программой, переходим в папку и запускаем скрипт:

# su
# mv questa_run/ /usr/local/questa/
# cd /usr/local/questa/questa_run/
# ./SETUP_ICON.SH

Теперь иконка программы должна появится в разделе "Разработка" главного меню операционной системы!

Баги и ошибки

Чиним DPI C

В QuestaSim есть возможность проводить симуляции с использованием технологии DPI на языке C. Для этого применяются свои собственные компиляторы и набор собственных библиотек, однако используется часть системного GLIBC. Это обстоятельство вызывает зависимость программы от конкретных дистрибутивов. Например, при запуске симуляции с DPI C в Альт P10 может появиться ошибка вида:

/usr/local/questa/questasim/gcc-7.4.0-linux_x86_64/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.4.0/ld: /usr/lib/../lib64/crti.o: unable to initialize decompress status for section .debug_aranges
/usr/lib/../lib64/crti.o: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status

Это вызвано тем что программа использует системный файл crti.o, который её не устраивает. Решить это проблему можно путём добавления в библиотеки QuestaSim подходящих файлов от других дистрибутивов. Подменить необходимо файлы: crti.o, crtn.o, libc.so. Например, их можно взять от CentOS Stream (необходимо распаковать rpm пакет как обычный архив) или любого другого подобного дистрибутива. После этого необходимо переместить файлы в папку библиотек компилятора QuestaSim, чтобы он использовал эти файлы вместо системных. С этой целью выполняем команды:

# su
# cp crti.o /usr/local/questa/questasim/gcc-7.4.0-linux_x86_64/lib64/
# cp crtn.o /usr/local/questa/questasim/gcc-7.4.0-linux_x86_64/lib64/
# cp libc.so /usr/local/questa/questasim/gcc-7.4.0-linux_x86_64/lib64/

Кириллица

QuestaSim не понимает кириллицу! Необходимо избегать кириллических символов в названии рабочих папок в именах файлов и путях к файлам в целом. Например, при запуске vsim из папки "Загрузки" программа выдаёт ошибку:

querycommand error: cmd=mtiLibrary::LBGetContents .main_pane.library.interior.cs.body {}
results=could not read "/home/user/Загрузки": no such file or directory