В публикации рассказывается о том, как произвести установку САПР Altera Quartus II Web Edition (далее просто Quartus) в пакетном режиме на компьютер, работающий под управлением ОС Debian Linux amd64. Автор использует Quartus для работы с платами семейства Марсоход, так что в публикации также приведён небольшой обзор этого семейства, и то, какие версии Quartus для каких плат Марсоход годятся.
Материал будет полезен всем, кто начинает работать с Quartus под ОС GNU/Linux.
На сайте marsohod.org имеется инструкция по установке Quartus, однако прошло больше 5 лет с момента публикации этой инструкции, а кроме того, в инструкции приводится описание установки Quartus для ОС семейства Windows. Скачав с сайта Altera несколько версий Quartus для Linux я убедился в том, что установка Quartus не является чем-то сверхсложным, но на первых порах может вызывать затруднения: количество версий этого самого Quartus'а велико, требуется осуществлять манипуляции с гигабайтными файлами — допустить ошибку довольно легко. Отдельно меня очень расстраивала невозможность установить Quartus в пакетном режиме — т.е. подготовить в текстовом файле/скрипте конфигурацию, запустить установку и заниматься другими делами, а не ждать, когда установщик соизволит задать свой новый, неожиданный вопрос.
Для того, чтобы сделать установку совсем несложной были написаны соответствующие скрипты (см. ниже) и создана эта публикация.
Однако прежде чем устанавливать Quartus надо проделать предварительные расчёты — определиться с тем, для чего будет использоваться Quartus и уточнить, под какой ОС будем Quartus запускать.
Предварительные расчёты: платить или не платить?
На первый взгляд не очевидно, но не все Quartus'ы одинаково полезны; иначе говоря, то, что позволено Quartus'у одной версии, то совершенно не обязательно позволено Quartus'у другой версии.
Перво-наперво следует сразу уяснить себе, что есть два варианта САПР Quartus: Subscription Edition и Web Edition. Subscription Edition — это платный вариант, который позволяет работать со всеми ПЛИС, которые выпускает Altera; ознакомиться со стоимостью Subscription Edition можно вот по этой ссылке.
В дальнейшем рассматривается исключительно Web Edition — это бесплатный вариант, однако, он имеет ряд ограничений, и поддерживает далеко не все семейства ПЛИС Altera. Впрочем, платы Марсоход (да и вообще недорогие платы) сделаны на базе ПЛИС семейств Cyclone, MAX10 и MAX II, а эти семейства поддерживаются Quartus Web Edition.
Предварительные расчёты: с какой ПЛИС работать будем?
Следует иметь в виду, что САПР Quartus (даже Subscription Edition) поддерживает не все когда либо выпущенные Altera семейства ПЛИС, а лишь сравнительно современные. Если вдруг вам требуется работать с ПЛИС старых семейств, то скорее всего придётся поискать старую версию Quartus.
Уточню, что на момент написания данной публикации последней была версия Quartus 15.0.
Давайте сравним платы семейства Марсоход:
Марсоход2 | Марсоход2bis | Марсоход3 | Марсоход3bis | |
---|---|---|---|---|
Семейство ПЛИС | Cyclone III | Cyclone IV | MAX10 | MAX10 |
ПЛИС | EP3C10E144C8 | EP4CE6E22C8 | 10M50SAE144C8GES | 10M08SAE144C8GES |
— Логических элементов (LE) | 10'320 | 6'272 | 49'760 | 8'064 |
— Встроенная память, бит | 423'936 | 276'480 | 1'677'312 | 387'072 |
— USER I/O | 91 | 94 | 101 | 101 |
версия Quartus II Web Edition | <= 13.1 | <= 15.0 | >= 15.0 | >= 15.0 |
Примечание: плата Марсоход в таблицу не вошла, использованная в ней ПЛИС MAX II относится совсем к иному классу нежели ПЛИС Cyclone и MAX10. Уточню лишь, что для работы с пока MAX II годятся как сравнительно старые так и новейшие версии Quartus.
Как видно, использовать одну единственную версию Quartus для работы со всеми платами Марсоход не удастся: с одной стороны плата Марсоход2 построена на сравнительно старой ПЛИС Cyclone III, и новейшие версии Quartus не работают с такой старой ПЛИС; с другой стороны платы Марсоход3 и Марсоход3bis построены на ПЛИС новейшего семейства MAX10 о существовании которой старые версии Quartus ничего не знают.
Таким образом, для охвата всех плат семейства Марсоход придётся установить сразу две версии Quartus: 13.1 и 15.0.
Замечание: конечно же для работы с Cyclone III можно установить более старую, нежели 13.1 версию Quartus, однако попытка установить какую-нибудь немолодую версию навроде 9.1 может выявить отсутствие каких-то древних системных библиотек в современной версии Debian, а разбираться с этий без должных оснований ой как не хочется.
Для пользователей других плат скажу, что уточнить, какая версия Quartus требуется для работы с вашей ПЛИС можно вот по этой ссылке.
Предварительные расчёты: 32 или 64 разряда?
Ни для кого не секрет, что в 2015 году подавляющее большинство поставляемых Intel/AMD x86-процессоров поддерживает 64-разрядный режим. Требования САПР Quartus к производительности процессора и объёму ОЗУ таковы (см., например, Quartus 15.0: Recommended Physical RAM for Altera Devices, что едва ли кто-то без крайней нужды будет запускать Quartus под 32-разрядной ОС на 32-разрядном (читай, <<старом>> и <<слабом>>) процессоре.
Соответственно Altera заявляет, что начиная c версии 14.0 САПР Quartus поддерживает только 64-разрядные ОС.
Но, тут надо сделать пару замечаний.
Замечание первое. Даже установив весь из себя такой 64-разрядный Quartus можно обнаружить, что внутри у него всё-таки есть 32-разрядные компоненты. Например, при попытке вызвать Altera PLL Wizzard из 64-разрядного варианта Quartus 13.1 было получено следующее сообщение:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/altera/13.1/quartus/linux/jre/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory ... Error: Wizard "Altera PLL v13.1" cannot be launched.
Лечение в данном случае довольно несложно — надо установить отсутствующую 32-разрядную библиотеку:
# apt-get install libxtst6:i386
Замечание второе. Хотя Quartus 13.1 поддерживает как 32-разрядную ОС, так и 64-разрядную, при попытке скомпилировать проект для платы Terrasic DE1-SoC (ПЛИС Cyclone V SoC 5CSEMA5F31C6) я с удивлением обнаружил сообщение:
Error (11371): Compiling a design on Cyclone V 5CSEMA5 requires at least a 64-bit version of the Quartus II software.
Общий вывод такой: если вы ещё не перешли на 64-разрядную версию Debian Linux, то самое время это сделать.
Поддерживает ли ваш процессор 64-разрядный режим?
Самый простой способ — использовать команду lscpu. В выводе этой команды нас интересует графа "CPU op-mode(s):". Если в этой графе будет присутствовать "64-bit", то процессор поддерживает 64-разрядный режим. Вот пример вывода:
$ lscpu | grep "^CPU op-mode" CPU op-mode(s): 32-bit, 64-bit
В отсутствии lscpu можно посмотреть графу flags:
в /proc/cpuinfo
: если там присутствует флаг lm, то процессор поддерживает 64-разрядный режим.
Собственно установка Quartus
Для установки Quartus версий 13.1 и 15.0 в пакетном режиме (т.е. без взаимодействия с пользователем) я написал пару скриптов, см. quartus-linux-install.
В прилагаемом README содержится краткая инструкция по применению, но на всякий случай я её продублирую.
Итак, предположим у вас имеется ОС Debian Linux amd64 (т.е. 64-разрядная ОС). Как мы выяснили, даже 64-разрядный Quartus может затребовать 32-разрядные библиотеки, поэтому давайте их установим:
dpkg --add-architecture i386 apt-get update apt-get install libc6:i386 apt-get install libpng12-0:i386 apt-get install libfreetype6:i386 apt-get install libsm6:i386 apt-get install libxrender1:i386 apt-get install libfontconfig1:i386 apt-get install libxext6:i386 apt-get install libxtst6:i386
Скрипты написаны на expect, так что его придётся установить:
apt-get install expect
Скачиваем скрипты в каталог quartus-linux-install
:
git clone https://github.com/open-design/quartus-linux-install
В каталоге quartus-linux-install
имеется два подкаталога: Quartus-13.1
и Quartus-15.0
. В них следует посместить отдельные файлы дистрибутива Quartus и файлы из Updates. Списки файлов для скачивания из Altera Download Center можно просмотреть в файлах MD5SUMS.
Проверить наличие требуемых файлов и их целостность можно при помощи программы md5sum
, вот пример для Quartus 13.1:
$ cd quartus-linux-install/Quartus-13.1 Quartus-13.1 $ md5sum -c MD5SUMS arria_web-13.1.0.162.qdz: OK cyclonev-13.1.0.162.qdz: OK cyclone_web-13.1.0.162.qdz: OK max_web-13.1.0.162.qdz: OK ModelSimSetup-13.1.0.162.run: OK QuartusSetup-13.1.4.182.run: OK QuartusSetupWeb-13.1.0.162.run: OK
Теперь надо от имени пользователя root запустить установку Quartus 13.1 в каталог /opt/altera/13.1, предварительно отключив поддержку X11, если вдруг она оказазалась включена:
Quartus-13.1# unset DISPLAY Quartus-13.1# ./install-quartus-13.1.4.182.exp /opt/altera/13.1
Через несколько минут Quartus 13.1 вместе с обновлением до версии 13.1.4 будет установлен!
Автор: Frantony