Quartus
Материал из ALT Linux Wiki
(→Общая информация) |
Sb (обсуждение | вклад) м (ALTLinux -> ALT Linux) |
||
(3 промежуточные версии не показаны) | |||
Строка 12: | Строка 12: | ||
Для корректного функционирования требуются следующие доработки: | Для корректного функционирования требуются следующие доработки: | ||
- | * Установить | + | * Установить пакеты: |
+ | 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: | ||
Строка 62: | Строка 65: | ||
Это позволяет подгрузить правильную версию библиотеки libfreetype в нужном месте комплекса программ ModelSim. Передача LD_LIBRARY_PATH всему ModelSim не работает - где-то по пути переменная удаляется. | Это позволяет подгрузить правильную версию библиотеки libfreetype в нужном месте комплекса программ ModelSim. Передача LD_LIBRARY_PATH всему ModelSim не работает - где-то по пути переменная удаляется. | ||
+ | Для настройки работы jtag-программаторов следует создать группу jtag и добавить в неё пользователя, от имени которого будет запускаться Quartus. | ||
+ | <source lang="bash"> | ||
+ | groupadd jtag | ||
+ | usermod -a -g jtag ИМЯ_ПОЛЬЗОВАТЕЛЯ | ||
+ | </source> | ||
+ | Также следует создать udev-правило для программаторов, чтобы их файлы устройств создавались с правами доступа для группы jtag. | ||
+ | В файл /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 | ||
+ | и перелогиниться. Или просто перезапустить компьютер. | ||
Строка 70: | Строка 91: | ||
* Quartus Programmer - ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus_pgmw | * Quartus Programmer - ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus_pgmw | ||
* ModelSim - ~/intelFPGA_lite/16.${ver}/modelsim_ase/bin/vsim | * ModelSim - ~/intelFPGA_lite/16.${ver}/modelsim_ase/bin/vsim | ||
+ | |||
+ | Для диагностики проблем подключения программатора можно запустить jtag демон в отладочном режиме: | ||
+ | jtagd --foreground --debug | ||
+ | Перед этим следует убить работающую копию сервера, запускаемую автоматическими любым инструментом, использующим jtag (напр. Programmer и SignalTap). | ||
Добавление ярлыков на рабочий стол оставим на усмотрение читателя =) | Добавление ярлыков на рабочий стол оставим на усмотрение читателя =) | ||
- | [[Категория: | + | [[Категория:CookBook]] |
- | + | {{Category navigation|title=ПО, не входящее в репозитории ALT Linux|category=CookBook|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 06:22, 30 марта 2017
Общая информация
Quartus II - родная среда разработки ПЛИС (программируемых логических интегральных схем) компании Altera (подразделение Intel с 2015 года).
Light-комплектация САПР бесплатна. Кроме платформы Windows®, доступна Linux-версия, предназначенная для запуска в ОС Red Hat Enterprise Linux. Это даёт возможность запускать САПР в нашей операционной системе.
Установка Quartus 16 Lite в Восьмой платформе
Предполагается, что установлена 64-битная версия Alt Linux p8.
Скачать .tar архив с сайта Altera: [1]. Распаковать и запустить скрипт "setup.sh". Пути с пробелами и не-ASCII символами могут вызвать ошибки как установщика, так и целевой программы.
Система поставится в домашнюю папку по адресу ~/intelFPGA_lite/16.${ver}/, где ver - минорная версия.
Для корректного функционирования требуются следующие доработки:
- Установить пакеты:
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/16.${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
- Из AltLinux p7 притащить бинарную 32-битную библиотеку libfreetype.so.6.10.0 (sha1:ab90aab56f30b0cdc5be9839f755a8540af9ce74), поскольку системная версия libfreetype от восьмой платформы не подходит.
Сохранить её в (например) ~/intelFPGA_lite/16.${ver}/lib_old_compat/.
В lib_old_compat/ создать ссылку:
$ ln -s libfreetype.so.6.10.0 libfreetype.so.6
В папке ~/intelFPGA_lite/16.${ver}/modelsim_ase/linuxaloem переименовать оригинальный vish в vish.zzzz.
Создать скрипт-подмену vish:
cd ~/intelFPGA_lite/16.${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 и добавить в неё пользователя, от имени которого будет запускаться Quartus.
groupadd jtag usermod -a -g jtag ИМЯ_ПОЛЬЗОВАТЕЛЯ
Также следует создать udev-правило для программаторов, чтобы их файлы устройств создавались с правами доступа для группы jtag. В файл /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
и перелогиниться. Или просто перезапустить компьютер.
В результате:
- Quartus запускается из командной строки по прямому пути ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus.
- Quartus Programmer - ~/intelFPGA_lite/16.${ver}/quartus/bin/quartus_pgmw
- ModelSim - ~/intelFPGA_lite/16.${ver}/modelsim_ase/bin/vsim
Для диагностики проблем подключения программатора можно запустить jtag демон в отладочном режиме:
jtagd --foreground --debug
Перед этим следует убить работающую копию сервера, запускаемую автоматическими любым инструментом, использующим jtag (напр. Programmer и SignalTap).
Добавление ярлыков на рабочий стол оставим на усмотрение читателя =)