Виаком
телефон
поискпоиск входаккаунт корзинакорзина


на складе в Киеве под заказ

не выполнен вход

 

Новости компании



26.09.2012

Особенности работы в среде проектирования ПЛИС Altera Quartus II. Первый проект

Загрузить статью в PDF (2,7 Мб) >>

Игорь Коврига, технический консультант ООО «Виаком»

Имея опыт проведения семинаров по продукции и САПР Altera, получая многочисленные вопросы от их участников, я пришел к выводу, что для того, чтобы писать углубленные в определенную тематику статьи, необходимо начать цикл статей с основ по двум причинам. Первая — это помощь разработчикам, только присматривающимся к ПЛИС и осваивающим азы проектирования по многочисленной информации, размещенной на сайте производителя, из которой часто трудно собрать полную картину. Вторая — это помощь опытным в проектировании ПЛИС разработчикам, которым зачастую сложно разобраться с англоязычной документацией или попросту не хватает на это времени. Первая статья этого цикла посвещена САПРу Quartus II.

Введение

Одни из главных преимуществ ПЛИС — это их универсальность и гибкость. Универсальность заключается в том, что можно построить практически любые решения, выполненные на специализированных микросхемах, а также заменить (интегрировать) любой микроконтроллер или DSP-процессор, выиграв при этом в производительности, потому как FPGA матрицы, как правило, производятся на технических процессах высокой точности (на сегодняшний день — 28 нм). Гибкость заключается в том, что можно, к примеру, иметь одну настроенную плату с ПЛИС и затем адаптировать ее под различные приложения, не опасаясь, что как минимум 5–7 лет аппаратное решение устареет или ПЛИС снимут с производства (при условии применения новых семейств). Если вам необходимо такое решение, но вы ранее не работали с ПЛИС, рекомендую начать с освоения программной среды Quartus II, которой посвящена данная статья.

Quartus II (QII) — это система проектирования на ПЛИС Altera, подходящая для всех выпускаемых семейств микросхем Altera (лишь в последних версиях QII нет поддержки всех семейств одновременно из-за сложности выполнения универсального трассировщика). Это именно система, т. к. она включает весь необходимый набор утилит, подпрограмм и настроек для полного создания проекта (опять же, кроме последних версий QII, где временное моделирование перекладывается на оболочку Model Sim от компании Mentor Graphics).

Все подпрограммы и утилиты QII можно разделить на группы согласно этапам выполнения проекта на ПЛИС, которые выглядят следующим образом:

  1. Создание файла проекта
  2. Анализ и синтез проекта
  3. Трассировка связей и размещение проекта
  4. Временной анализ при помощи утилиты Time Quest. При необходимости создание базы данных для передачи в другую САПР для моделирования
  5. Программирование конфигурационной памяти

Рассмотрим каждый этап детальнее.

Создание файла проекта

Файл проекта можно создавать на аппаратных языках, графическом редакторе и редакторе конечных автоматов

Quartus ii: файлы с описанием проекта.
Файлы с описанием проекта

Аппаратные языки, применимые для QII, общеизвестны — это VHDL (расширение файла *.vhd), Verilog (*.v) и System Verilog.

Вы вольны при создании проекта выбрать любой язык из перечисленных выше, который вам больше импонирует. Однако следует учесть, что почти все IP-ядра, поставляемые со средой QII, написаны на языке Verilog, а на языке System Verilog — самые современные ядра. При компиляции некоторых ядер, отличных от написаных на Verilog, могут появляться ошибки или замечания, которые затем необходимо устранить. Компания Altera пытается это исправить, но, тем не менее, в каждом релизе эти замечания присутствуют. В пользу Verilog говорит также и то, что его синтаксис очень похож на синтаксис языка С++, к которому обязательно придет проектирование на FPGA матрицах: как гов рится, "солнце руками не закроешь".

Текстовый редактор можно использовать любой, но тот, который встроен в QII, позволяет следующее:

  • вносить групповые комментарии;
  • возможность использования языковых шаблонов;
  • синтаксическая подсветка;
  • поиск по ключевому слову;
  • возможность сворачивания громоздких функций;
  • написание скриптов TСL.

Скриптам на языке TCL необходимо посвятить отдельный раздел, однако, поскольку статья предназначена в большей степени для начинающих разработчиков на ПЛИС, которые вряд ли будут прибегать сразу к написанию скриптов, отмечу лишь то, что для создания сложных проектов написание скриптов станет нормой из-за необходимости описания структуры на языке низкого уровня после описания сложного проекта на языках высокого уровня.

Графический редактор продолжает поддерживаться QII от версии к версии, т. к. существует большое количество инженеров, которым удобнее именно такой способ описания проекта. Но, зачастую, применяется смешанное проектирование с языковым описанием блоков и схемотехническим описанием взаимодействий этих блоков проекта. Эта возможность служит также для лучшей визуализации и доступности прочтения проекта.

Файл графического редактора имеет расширение *.bdf.

Утилита графического редакторара Mega Wizard Plug in manager предлагает широкий набор разнообразных IP-функций:

  • арифметические (умножители, сумматоры, делители);
  • память (RAM (1 и 2 портов), ROM (1 и 2-портовые), FIFO, сдвиговый регистр на базе ОЗУ);
  • логические примитивы (и; или; или- не и т. д);
  • функции ввода-вывода (буферы, а также ФАПЧи (фазовые автоподстройщики частоты));

А также широкий набор подписных (платных) функций:

  • интерфейсы: ASI, ETHERNET, Hydertransport, SDI и т. д.;
  • DSP (фильтры) преобразования Фурье;
  • функции обработки видео.

Редактор памяти ROM. Очень удобная утилита для создания собственных табличных значений. Например, можно создать таблицу синусов (адрес — это аргумент функции, значение — это значение ячейки памяти) или смоделировать сигнал в оболочке Mathlab и полученные значения записать в таблицы памяти. Также такой редактор может пригодиться для записи устойчивых состояний при создании, например, модулятора. В одном таком проекте мне необходимо было каждые 8 (6, 7 — в зависимости от выбранного режима) тактов останавливать, а на следующем такте запускать группу счетчиков. Для этого необходимо было удвоение тактовой частоты, но не хватало ресурсов PLL в выбранной матрице, поэтому я просто записал все состояния счетчиков в память и считывал их по порядку.

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

Редактор конечных автоматов (state machine) — единственный файл проекта, который не может находиться в верхнем уровне иерархии. Существует для создания автомата состояний с назначением условий перехода в графическом виде (графами) с возможностью последующего преобразования в HDL язык (любой) для возможности просмотра реализации вашего автомата.

Основное окно проекта кроме отображения самого проекта содержит Навигатор проекта, в котором описана иерархия файлов проекта и список используемых библиотек, символов и файлов, а также окно состояния компиляции (синтеза) проекта и окно сообщения ошибок и предупреждений:

Quartus ii: менеджер пакета
Менеджер пакета Quartus II

Анализ и синтез

Синтез — это процесс создания проекта с учетом особенностей микросхемы (ОЗУ, DSP-блоков, логики) для просмотра использования ресурсов на раннем этапе. Реальное использование ресурсов матрицы будет видно только после компиляции. Цифры, показанные в синтезе, могут отличаться до 20–30 %.

Для того, чтобы оценить правильно-ли выполнена поведенческая модель вашего проекта после синтеза в Quartus II, можно просмотреть временные диаграммы без учета трассировочных особенностей, хотя можно задать и режим симуляции с привязкой ко времени. На этом этапе проектирования уже необходимо пользоваться установками (Settings) и назначениями (Assigments).

Установки (Settings) — это такие глобальные настройки, как:

  • выбор микросхемы (рис. ниже), хотя он производится и при старте проекта;
  • оптимизатор синтеза (по времени);
  • простейшие установки фиттера (трассировщика);
  • установки анализатора оценки потребляемой мощности.

Quartus ii: окно выбора ПЛИС
Окно выбора ПЛИС

С помощью анализатора мощности можно получить приблизительное вычисление потребления мощности по результатам синтеза (с задачей тактовой частоты и параметра toggle rate, типа микросхемы, использования логических элементов).

Также существует отдельный калькулятор мощности в оболочке Excel для предварительной оценки ее потребления еще до выхода версии QII, поддерживающей эту функцию в новых семействах. Однако точность такого предварительного вычислении 50 % — называется эта утилита «Ранний оценщик мощности».

На этапе синтеза можно оптимизировать лист связей двумя способами:

1) получить после синтеза файл в гра- фическом редакторе RTL-Viewer, отредактировать его и снова отпра- вить на синтез

2) с помощью Gate-level оптимизации можно осуществлять временное выравнивание между регистрами внутри матрицы, к примеру, время прохождения сигнала между регист- рами R1 и Rn, равное 15 нс, выравнивается по соотношению 15/n.

Компиляция

В САПР QII существует два типа компиляции:

  • глобальная, т. е. проект компилируется весь одновременно. Такая компиляция доступна в Веб-версии QII;
  • инкрементальная, т. е.частичная (см. рис. ниже). Доступна только в лицензионной версии и Logic Lock.

Quartus ii: окно выбора ПЛИС
Инкрементальная компиляция

Перед запуском компиляции проекта необходимо выполнить настройки (assigments).

Pin Planer - утилита, позволяющая назначать сигналы на физические выводы микросхемы. Их можно назначить как жестко привязанные так и перебрасываемые по определенным правилам (в пределах банка) для улучшения результатов трассировки.

Quartus ii: окно выбора ПЛИС
Интерфейс утилиты Pin Planer

Тут-же назначаются группы связей, например это шина, которую необходимо выровнять (при этом в группе можно назначать невыровненными, к примеру, старшие разряды для улучшения результатов трассировки)

Выводы в Pin Planer разделяются формой и цветом для обозначения:

  • разделения на банки;
  • дифференциальных пар;
  • выводов ФАПЧ;
  • выводов питания и тех, которые не используются (серым цветом);
  • назначенных и неназначенных выводов.

Назначать выводы можно перетаскиванием из нижнего окна списка сигналов. Практически всегда трассировку кристалла нужно согласовывать с трасировкой печатной платы (что-то получается в плате, но не получается в матрице, и наоборот). Поэтому для трассировки плат Альтера рекомендует пользоваться пакетом от компании Ментор-Графикс. Этот пакет работает с нет-листом, переданным от САПР QII. При этом значительно упрощается создание символа посадочного места корпуса, т. к. в Mentors Graphycs уже имеется распиновка ПЛИС Альтера.

Для установок трассирования все чаще применяют TCL-скрипты. TCL-скрипт на более низком уровне описывает конструкцию, которую вы выбираете для интерпретации функционального поведения, описанного на языке HDL.

Chip Planer — утилита, позволяющая просматривать топологию микросхемы и редактировать ее поле трассировки. Она применима в таких случаях:

  • когда не устраивает работоспособность устройства;
  • не использовались рекомендации при трассировке;
  • неверное кодирование.

Прибегать к корректировке в Chip Planer рекомендуется лишь опытным инженерам, имеющим достаточный опыт работы с ПЛИС.

Временное моделирование

Временное моделирование производится с помощью прилагаемого (входящего в комплект пакета QII) программного продукта Model Sim от Mentors Graphycs, который поставляется в зависимости от вида лицензии — с ограничением общего размера моделируемого кода (Starter Edition) и без него (Altera Edition). Однако следует помнить, что ни одна из поставляемых вместе с QII версий Model Sim не поддерживает моделирование программ, написанных на 2-х языках одновременно (двуязычие). Такое возможно лишь при использовании версии Model Sim SE с соответствующей лицензией от Mentors Graphycs. При установке версии SE создавать и отлаживать проекты становится возможным непосредсвенно в самой среде Model Sim и лишь потом передавать их в QII для привязки к конкретному корпусу ПЛИС. Но об этом, как и об использовании утилиты Nativlink, поговорим в следующих статьях этого цикла.

В разрезе моделирования стоит также упомянуть Signal Tab. Эта утилита представляет собой внутренний цифровой анализатор. Она забирает ресурс памяти и логики в ПЛИС и записывает туда сигналы ее работы, которые потом отражаются в виде диаграмм, однако нельзя посмотреть тактовый сигнал.

Программирование конфигурационной памяти или флеш CPLD

Программирование проверенного в симуляторе проекта осуществляется тут же в QII при помощи утилиты Programmer

Quartus ii: Утилита Programmer. Установка средств программирования ПЛИС
Утилита Programmer. Установка средств программирования ПЛИС

Перед началом программирования необходимо выбрать средство из предлагаемых, нажав кнопку Hardware Setup. Альтера предлагает различные инструменты для программирования: через USB-порт (USB-Blaster) и через порт Ethernet (Ethernet Blaster). Поддерживаемый ранее программатор через LPT-порт (ByteBlaster) сейчас снят с производства. Перед стартом прожига следует не забыть включить опцию Program/Configure, поставив галочку в соответствующей колонке.

На этом можно завершить краткий обзор работы в среде QII, хотя за ее пределами осталось множество деталей, зачастую оказывающихся очень важными, но перечислить их все невозможно в рамках одной статьи. В следующей статье этого цикла мы поговорим об общих подходах к системному проектированию на ПЛИС.

За более подробной информацией обращайтесь к официальному дистрибьютору компании Altera в Украине — ООО «Виаком »:
03061, г. Киев, пр. Отрадный, 95-с, тел./факс: (044) 507-02-02 (многоканальный)
http://www.biakom.com




 
изготовление печатных плат | плис altera | микроконтроллеры atmel | магазин электронные компоненты | разъёмы amphenol | трансформаторы hahn | okw | tyco | vicor | marquardt | инструмент pro'skit