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

Материал из ALT Linux Wiki
(jtag)
м (источник неправильного написания названия дистрибутива, в т.ч. и в википедии)
(не показано 6 промежуточных версий 3 участников)
Строка 1: Строка 1:
= Общая информация =
= Общая информация =
'''Quartus II''' - родная среда разработки ПЛИС (программируемых логических интегральных схем) компании Altera (подразделение Intel с 2015 года).  
'''Quartus II''' - основная среда проектирования для [[ruwp:ПЛИС|ПЛИС]] компании Altera (подразделение Intel с 2015 года).


Light-комплектация САПР бесплатна. Кроме платформы Windows®, доступна Linux-версия, предназначенная для запуска в ОС Red Hat Enterprise Linux. Это даёт возможность запускать САПР в нашей операционной системе.
Light-версия САПР бесплатна.


= Установка Quartus 16 Lite в [[Восьмая_платформа|Восьмой платформе]] =
Кроме платформы Windows®, доступна также версия, предназначенная для запуска в ОС Red Hat Enterprise Linux. Это даёт возможность запускать САПР в нашей операционной системе.
Предполагается, что установлена 64-битная версия Alt Linux [[p8]].


Скачать .tar архив с сайта Altera: [http://dl.altera.com/?edition=lite]. Распаковать и запустить скрипт "setup.sh". Пути с пробелами и не-ASCII символами могут вызвать ошибки как установщика, так и целевой программы.
= Установка Quartus в [[Восьмая_платформа|Восьмой платформе]] =
Данная инструкция подходит для установки Quartus версий 16.x и 17.x на Alt Linux [[p8]] x86_64.


Система поставится в домашнюю папку по адресу ~/intelFPGA_lite/16.${ver}/, где ver - минорная версия.
== Базовая установка ==
Скачать .tar архив с сайта Altera: [http://dl.altera.com/?edition=lite]. Распаковать и запустить скрипт "setup.sh". При необходимости также скачать и установить обновления. Пути с пробелами и не-ASCII символами могут вызвать ошибки.


Для корректного функционирования требуются следующие доработки:
Система поставится в домашнюю папку по адресу ~/intelFPGA_lite/${ver}/, где ver - версия (ver="16.1", ver="17.1"...).
* Установить пакет i586-libXft.32bit.
 
Также следует установить из репозитория пакеты:  
i586-libXft.32bit
libudev0
Первый из них - для ModelSim, второй - для jtagd.
 
== Доработки и исправления ==
* В запущенном Quartus во вкладке Tools -> Options -> General -> Internet Connectivity в поле Path вписать /opt/firefox-env.  
* В запущенном Quartus во вкладке Tools -> Options -> General -> Internet Connectivity в поле Path вписать /opt/firefox-env.  
Создать исполнимый скрипт /opt/firefox-env:
Создать исполнимый скрипт /opt/firefox-env:
Строка 19: Строка 26:
exec /usr/bin/env --unset=LD_LIBRARY_PATH firefox "$@"
exec /usr/bin/env --unset=LD_LIBRARY_PATH firefox "$@"
</source>
</source>
Это необходимо для того, чтобы работала справка. В противном случае firefox со справкой пытается вместо системных загрузить стандартные бинарные библиотеки из комплекта Quartus, от чего завершается аварийно.
Это исправляет запуск справки. В противном случае, firefox со справкой пытается вместо системных загрузить стандартные бинарные библиотеки из комплекта Quartus, от чего завершается аварийно.
* В файле ~/intelFPGA_lite/16.${ver}/modelsim_ase/bin/vsim на строке 210 добавить ядра Linux 4.x в список архитектур:
* В файле ~/intelFPGA_lite/${ver}/modelsim_ase/bin/vsim на строке 210 добавить ядра Linux 4.x в список архитектур:
<source lang="bash">
<source lang="bash">
         case $utype in
         case $utype in
Строка 32: Строка 39:
         esac
         esac
</source>
</source>
* Из AltLinux [[p7]] притащить бинарную 32-битную библиотеку libfreetype.so.6.10.0 (sha1:ab90aab56f30b0cdc5be9839f755a8540af9ce74), поскольку системная версия libfreetype от восьмой платформы не подходит.
* Из Alt Linux [[p7]] притащить бинарную 32-битную библиотеку libfreetype.so.6.10.0 (sha1:ab90aab56f30b0cdc5be9839f755a8540af9ce74), поскольку системная версия libfreetype от восьмой платформы не подходит.


Сохранить её в (например) ~/intelFPGA_lite/16.${ver}/lib_old_compat/.
Сохранить её в ~/intelFPGA_lite/${ver}/lib_old_compat/.


В lib_old_compat/ создать ссылку:   
В lib_old_compat/ создать ссылку:   
Строка 41: Строка 48:
</source>
</source>


В папке ~/intelFPGA_lite/16.${ver}/modelsim_ase/linuxaloem переименовать оригинальный vish в vish.zzzz.
В папке ~/intelFPGA_lite/${ver}/modelsim_ase/linuxaloem переименовать оригинальный vish в vish.zzzz.


Создать скрипт-подмену vish:
Создать скрипт-подмену vish:
<source lang="bash">
<source lang="bash">
cd ~/intelFPGA_lite/16.${ver}/modelsim_ase/linuxaloem
cd ~/intelFPGA_lite/${ver}/modelsim_ase/linuxaloem
mv vish vish.zzzz
mv vish vish.zzzz
touch vish
touch vish
Строка 62: Строка 69:
Это позволяет подгрузить правильную версию библиотеки libfreetype в нужном месте комплекса программ ModelSim. Передача LD_LIBRARY_PATH всему ModelSim не работает - где-то по пути переменная удаляется.
Это позволяет подгрузить правильную версию библиотеки libfreetype в нужном месте комплекса программ ModelSim. Передача LD_LIBRARY_PATH всему ModelSim не работает - где-то по пути переменная удаляется.


Для настройки работы jtag-программаторов следует создать группу jtag и добавить в неё пользователя, от имени которого будет запускаться Quartus.
==  JTAG ==
Для работы с jtag-программатором следует создать группу jtag и добавить в неё пользователя, от имени которого будет запускаться Quartus.
<source lang="bash">
<source lang="bash">
groupadd jtag
groupadd jtag
usermod -a -g jtag ИМЯ_ПОЛЬЗОВАТЕЛЯ
usermod -a -G jtag ИМЯ_ПОЛЬЗОВАТЕЛЯ
</source>
</source>
Также следует создать udev-правило для программаторов, чтобы их файлы устройств создавались с правами доступа для группы jtag.
Также следует создать udev-правило для разных моделей программаторов, по которому их файл устройства подключается в нужное место с адекватными правами доступа.
В файл /etc/udev/rules.d/99-altera-usb-blaster.rules следует записать:
В файл /etc/udev/rules.d/99-altera-usb-blaster.rules следует записать:
  # USB-Blaster
  # USB-Blaster
Строка 81: Строка 89:
и перелогиниться. Или просто перезапустить компьютер.
и перелогиниться. Или просто перезапустить компьютер.


== Известные баги ==
* При настройке PLL ПЛИС MAX10 через интерфейс MegaWizard запускается окно с полем, частично скрытым ползунками прокрутки. При попытке взаимодействия с оконными примитивами формы программа MegaWizard зависает. Чтобы обойти этот баг, следует при запуске интерфейса первым действием растянуть окно за правый нижний угол так, чтобы всё содержимое формы поместилось в окне.


* Также иногда меню "IP components" в интерфейсе Quartus перестаёт реагировать на попытки открыть ядра (двойной щелчок/Enter). Ситуация исправляется после перезапуска Quartus.


* При генерации PLL для Cyclone V и других ядер, требующих исполнения tcl скриптов (чаще всего - более современные ядра) tcl падает уже после исполнения своей задачи, в результате чего в пользовательском интерфейсе возникает сообщение об ошибке при генерации ядра. При этом, однако же, ядра генерируются корректно.
== Итог ==
* Quartus запускается из командной строки по прямому пути ~/intelFPGA_lite/${ver}/quartus/bin/quartus.
* Quartus Programmer - ~/intelFPGA_lite/${ver}/quartus/bin/quartus_pgmw
* ModelSim - ~/intelFPGA_lite/${ver}/modelsim_ase/bin/vsim


 
Для диагностики проблем подключения программатора можно запустить jtag демон в отладочном режиме:
В результате:
jtagd --foreground --debug
* Quartus запускается из командной строки по прямому пути ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus.
Перед этим следует убить работающую копию сервера, запускаемую автоматическими любым инструментом, использующим jtag (напр. Programmer и SignalTap).
* Quartus Programmer - ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus_pgmw
* ModelSim - ~/intelFPGA_lite/16.${ver}/modelsim_ase/bin/vsim


Добавление ярлыков на рабочий стол оставим на усмотрение читателя =)
Добавление ярлыков на рабочий стол оставим на усмотрение читателя =)




 
[[Категория:CookBook]]
[[Категория:Руководства]]
{{Category navigation|title=ПО, не входящее в репозитории ALT Linux|category=CookBook|sortkey={{SUBPAGENAME}}}}
[[Категория:Программы]]

Версия от 07:50, 31 мая 2019

Общая информация

Quartus II - основная среда проектирования для ПЛИС компании Altera (подразделение Intel с 2015 года).

Light-версия САПР бесплатна.

Кроме платформы Windows®, доступна также версия, предназначенная для запуска в ОС Red Hat Enterprise Linux. Это даёт возможность запускать САПР в нашей операционной системе.

Установка Quartus в Восьмой платформе

Данная инструкция подходит для установки Quartus версий 16.x и 17.x на Alt Linux p8 x86_64.

Базовая установка

Скачать .tar архив с сайта Altera: [1]. Распаковать и запустить скрипт "setup.sh". При необходимости также скачать и установить обновления. Пути с пробелами и не-ASCII символами могут вызвать ошибки.

Система поставится в домашнюю папку по адресу ~/intelFPGA_lite/${ver}/, где ver - версия (ver="16.1", ver="17.1"...).

Также следует установить из репозитория пакеты:

i586-libXft.32bit
libudev0

Первый из них - для ModelSim, второй - для jtagd.

Доработки и исправления

  • В запущенном Quartus во вкладке Tools -> Options -> General -> Internet Connectivity в поле Path вписать /opt/firefox-env.

Создать исполнимый скрипт /opt/firefox-env:

#!/bin/sh
exec /usr/bin/env --unset=LD_LIBRARY_PATH firefox "$@"

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

  • В файле ~/intelFPGA_lite/${ver}/modelsim_ase/bin/vsim на строке 210 добавить ядра Linux 4.x в список архитектур:
        case $utype in
          2.4.[7-9]*)       vco="linux" ;;
          2.4.[1-9][0-9]*)  vco="linux" ;;
          2.[5-9]*)         vco="linux" ;;
          2.[1-9][0-9]*)    vco="linux" ;;
          3.[0-9]*)         vco="linux" ;;
          4.[0-9]*)         vco="linux" ;;
          *)                vco="linux_rh60" ;;
        esac
  • Из Alt Linux p7 притащить бинарную 32-битную библиотеку libfreetype.so.6.10.0 (sha1:ab90aab56f30b0cdc5be9839f755a8540af9ce74), поскольку системная версия libfreetype от восьмой платформы не подходит.

Сохранить её в ~/intelFPGA_lite/${ver}/lib_old_compat/.

В lib_old_compat/ создать ссылку:

$ ln -s libfreetype.so.6.10.0 libfreetype.so.6

В папке ~/intelFPGA_lite/${ver}/modelsim_ase/linuxaloem переименовать оригинальный vish в vish.zzzz.

Создать скрипт-подмену vish:

cd ~/intelFPGA_lite/${ver}/modelsim_ase/linuxaloem
mv vish vish.zzzz
touch vish
chmod a+x vish
vim vish

В скрипт-подмену vish записать:

#!/bin/sh
LD_LIBRARY_PATH=$MODEL_TECH/../../lib_old_compat/
export LD_LIBRARY_PATH
exec -a $MODEL_TECH/vish $MODEL_TECH/vish.zzzz "$@"

Это позволяет подгрузить правильную версию библиотеки libfreetype в нужном месте комплекса программ ModelSim. Передача LD_LIBRARY_PATH всему ModelSim не работает - где-то по пути переменная удаляется.

JTAG

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

groupadd jtag
usermod -a -G jtag ИМЯ_ПОЛЬЗОВАТЕЛЯ

Также следует создать udev-правило для разных моделей программаторов, по которому их файл устройства подключается в нужное место с адекватными правами доступа. В файл /etc/udev/rules.d/99-altera-usb-blaster.rules следует записать:

# USB-Blaster
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0660", GROUP="jtag", SYMLINK+="usbblaster/%k"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", MODE="0660", GROUP="jtag", SYMLINK+="usbblaster/%k"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", MODE="0660", GROUP="jtag", SYMLINK+="usbblaster/%k"
# USB-Blaster II
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", MODE="0660", GROUP="jtag", SYMLINK+="usbblaster2/%k"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0660", GROUP="jtag", SYMLINK+="usbblaster2/%k"

После выполнения всех операций по настройке jtag следует перезапустить udevd командой

service udevd restart

и перелогиниться. Или просто перезапустить компьютер.

Известные баги

  • При настройке PLL ПЛИС MAX10 через интерфейс MegaWizard запускается окно с полем, частично скрытым ползунками прокрутки. При попытке взаимодействия с оконными примитивами формы программа MegaWizard зависает. Чтобы обойти этот баг, следует при запуске интерфейса первым действием растянуть окно за правый нижний угол так, чтобы всё содержимое формы поместилось в окне.
  • Также иногда меню "IP components" в интерфейсе Quartus перестаёт реагировать на попытки открыть ядра (двойной щелчок/Enter). Ситуация исправляется после перезапуска Quartus.
  • При генерации PLL для Cyclone V и других ядер, требующих исполнения tcl скриптов (чаще всего - более современные ядра) tcl падает уже после исполнения своей задачи, в результате чего в пользовательском интерфейсе возникает сообщение об ошибке при генерации ядра. При этом, однако же, ядра генерируются корректно.

Итог

  • Quartus запускается из командной строки по прямому пути ~/intelFPGA_lite/${ver}/quartus/bin/quartus.
  • Quartus Programmer - ~/intelFPGA_lite/${ver}/quartus/bin/quartus_pgmw
  • ModelSim - ~/intelFPGA_lite/${ver}/modelsim_ase/bin/vsim

Для диагностики проблем подключения программатора можно запустить jtag демон в отладочном режиме:

jtagd --foreground --debug

Перед этим следует убить работающую копию сервера, запускаемую автоматическими любым инструментом, использующим jtag (напр. Programmer и SignalTap).

Добавление ярлыков на рабочий стол оставим на усмотрение читателя =)