QuestaSim: различия между версиями

Материал из ALT Linux Wiki
(Начал создавать. Страница будет дополняться.)
 
(Добавил ссылку на файлы для исправления ошибки и обновил описание в начале. Добавил примечания, чуть поправил текст.)
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
[https://eda.sw.siemens.com/en-US/ic/questa/simulation/advanced-simulator/ QuestaSim] - проприетарное ПО для RTL верификации. Работает под управлением Windows и Linux (в основном Ubuntu и RHEL). Является одной из самых популярных программ в данной области.
[https://eda.sw.siemens.com/en-US/ic/questa/simulation/advanced-simulator/ QuestaSim] - проприетарное ПО для RTL верификации. Работает под управлением Linux (в основном Ubuntu и RHEL) и Windows. QuestaSim является одной из самых популярных программ в данной области. Поддерживаются все основные стандарты языков описания аппаратуры Verilog, SystemVerilog, VHDL.
В статье будет рассмотрена установка QuestaSim версии 2021.2 на Альт 10 РС К, настройка рабочего окружения и исправление ошибок.
В статье будет рассмотрена установка QuestaSim версии 2021.2 на Альт P10, настройка рабочего окружения и исправление ошибок.


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


0. Начать необходимо с установки пакетов:
# su -
# apt-get update
# apt-get dist-upgrade
# apt-get install gcc make
1. Для начала установки необходимо зайти от суперпользователя, дать файлу оффлайн установки право на исполнение и собственно запустить файл:
1. Для начала установки необходимо зайти от суперпользователя, дать файлу оффлайн установки право на исполнение и собственно запустить файл:
  # su
  # su
Строка 11: Строка 16:
2.1. В появившемся окне выбираем кнопку "Install Products".
2.1. В появившемся окне выбираем кнопку "Install Products".


2.2. В следующем окне необходимо выбрать источник и целевую папке для установки. В графе "Select a source" необходимо указать собственно сам файл оффлайн установки, то есть тот что и был запущен. В случае запуска установки из этого файла тут должен быть по умолчанию указан верный путь. В графе "Select a target location" необходимо указать путь к папке в которую и будет ставиться ПО. В Например выберем путь:
2.2. В следующем окне необходимо выбрать источник и целевую папке для установки. В графе "Select a source" необходимо указать собственно сам файл оффлайн установки, то есть тот что и был запущен. В случае запуска установки из этого файла тут должен быть по умолчанию указан верный путь. В графе "Select a target location" необходимо указать путь к папке в которую и будет ставиться ПО. Например, выберем путь:
  /usr/local/questa
  /usr/local/questa
{{Note|В случае отсутствия заранее созданной папки для программы (в моём случае папка questa) установщик сам предложит её создать}}
{{Note|В случае отсутствия заранее созданной папки для программы (в нашем случае папка questa) установщик сам предложит её создать}}
2.3. В следующем окне выбираем список компонентов для установки. Например, выберем все.
2.3. В следующем окне выбираем список компонентов для установки. Например, выберем все.


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


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


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


4.1. Необходимо скопировать файл лицензии в папку где он никому не помешает и точно не будет удалён, так как программа для работы постоянно требует доступ к нему. Например, скопируем в папку с установленной программой.
4.1. Необходимо скопировать файл лицензии в папку где он никому не помешает и точно не будет удалён, так как программа для работы постоянно требует доступ к нему. Например, скопируем в папку с установленной программой:
  # su
  # su
  # cp license.dat /usr/local/questa/
  # cp license.dat /usr/local/questa/
Строка 34: Строка 39:


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


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


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


6.1. Создаём папку, например, questa_run:
6.1. Создаём папку, например, questa_run:
Строка 61: Строка 67:
  echo "[Desktop Entry]
  echo "[Desktop Entry]
  Comment[ru_RU]=
  Comment[ru_RU]=
  Comment=Mentor Graphics QuestaSim 2021.1
  Comment=Mentor Graphics QuestaSim 2021.2
  Exec=vsim -gui
  Exec=vsim -gui
  GenericName[ru_RU]=QuestaSim
  GenericName[ru_RU]=QuestaSim
Строка 77: Строка 83:
  X-KDE-SubstituteUID=false
  X-KDE-SubstituteUID=false
  X-KDE-Username=" > $sv
  X-KDE-Username=" > $sv
Данный скрипт при запуске от пользователя создаёт иконку локально, а при запуске от суперпользователя глобально. Кроме того, иконка программы и сам скрипт должны лежать в одной папке. Данный скрипт должен лежать рядом с иконкой в папке questa_run.
Данный скрипт при запуске от пользователя создаёт иконку локально, а при запуске от суперпользователя глобально. Данный скрипт должен лежать рядом с иконкой в папке questa_run.


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


== Баги и ошибки ==
== Баги и ошибки ==
1. QuestaSim не понимает кириллицу! Необходимо избегать кириллических символов в названии рабочих папок проектов и именах файлов. Например, при запуске vsim из папки "Загрузки" программа выдаёт ошибку:
=== Чиним 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. Например, их можно [https://centos.pkgs.org/9-stream/centos-appstream-x86_64/glibc-devel-2.34-116.el9.x86_64.rpm.html взять от 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 {}
  querycommand error: cmd=mtiLibrary::LBGetContents .main_pane.library.interior.cs.body {}
  results=could not read "/home/user/Загрузки": no such file or directory
  results=could not read "/home/user/Загрузки": no such file or directory
[[Категория:Enterprise Software]]
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}

Текущая версия от 12:58, 2 августа 2024

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