ПЛИС Altera. Часть 5: Quartus Pin Planner

Это пятая часть цикла посвященная программируемой логике и среде разработки Quartus II компании Intel (Altera).

Ссылки на предыдущие части:

ПЛИС Altera. Часть 1: установка и настройка среды разработки.

ПЛИС Altera. Часть 2: проектирование цифровой схемы.

ПЛИС Altera. Часть 3: первая компиляция проекта

ПЛИС Altera. Часть 4: доработка схемы и плата CTRL-CPLD-EPM570

В первой части рассказывалось о загрузке и установке Quartus II Web Edition 13.1, создании пустого проекта с помощью мастера.

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

В третьей части описывался процесс компиляции проекта и работа с окном сообщений выводимых при компиляции. Там же выполнялась настройка главного модуля проекта.

Четвертая часть целиком посвящена электрической части проекта: плате CTRL-CPLD-EPM570 и пробной схеме с кнопками и светодиодами.

В пятой части рассказывается о настройке выводов микросхемы ПЛИС.

Напоминаю, что процесс создания конфигурации ПЛИС предполагает следующие этапы:

  1. проектирование цифровой схемы;

  2. анализ созданной схемы на наличие ошибок;

  3. привязка входов и выходов схемы к конкретным выводам ПЛИС;

  4. компиляция проекта и создание двоичных файлов для конфигурирования ПЛИС;

  5. конфигурирование ПЛИС посредством USB Blaster.

Первые два этапа были подробно описаны в предыдущих частях. Пятая часть полностью посвящена третьему этапу.

Настройка выводов ПЛИС выполняется с помощью инструмента «Pin Planner». Он используется для привязки спроектированной в Quartus II схемы к физическим выводам микросхемы ПЛИС. Здесь же настраиваются их электрические параметры: стандарт ввода‑вывода и максимальный рабочий ток.

Общий вид окна «Pin Planner»

«Pin Planner» можно вызвать либо из главного меню программы, Assigments → Pin Planner. Либо с помощью кнопки на стандартной панели инструментов. Эта кнопка обозначена на следующем рисунке.

Рис 35 Quartus run pin planner

Само окно «Pin Planner» представлено на рисунке ниже. В центре окна располагается схематичное представление чипа Altera. Изображение корпуса микросхемы может выводится в двух режимах: «Top View» и «Bottom View».

Рис 36 Quartus pin planner window

Режим «Top View» выводит изображение с видом сверху на корпус микросхемы, первая ножка располагается в левом верхнем углу корпуса. «Bottom View» – это вид снизу, первая ножка располагается в правом верхнем углу. Указанные режимы можно переключать с помощью меню View → Show → Package Top и View → Show → Package Bottom соответственно. Пункты Package Top и Package Bottom доступны и из контекстного меню изображения чипа. Название текущего режима отображения выводится в первой строке на изображении микросхемы. По умолчанию включен – «Top View».

Помимо режима отображения на корпусе микросхемы указываются:

  • «Wire Bond» – название способа соединения кристалла микросхемы с ее корпусом, проволокой микронной толщины.

  • «MAX II» – серия используемой микросхемы.

  • «EPM570T100C5» – наименование модели чипа.

По периметру корпуса расположены условные обозначения выводов микросхемы. Расшифровка обозначений выводов приводится в окне «Pin Legend». Окно «Pin Legend» находится в правой части окна «Pin Planner», оно выделено блоком под номером один на рисунке выше. Если окно «Pin Legend» отсутствует, то его можно вызвать с помощью меню View → Pin Legend Window.

В окне «Pin Legend» перечисляются следующие варианты обозначения выводов, доступные для выбранной модели микросхемы:

  • «User I/O» – эти выводы доступны для использования в создаваемых пользователем схемах.

  • «User assigned I/O» – эти выводы уже выбраны пользователем для схемы.

  • «Fitter assigned I/O» – данные выводы выбраны средой Quartus автоматически. Автоматический выбор выводов выполняется во время полной компиляции, в том случае, если в схеме имеются входы или выходы, для которых пользователь не задал выводов микросхемы.

  • «Unbonded pad» – эти выводы не используются (не соединены с кристаллом) в выбранной микросхеме.

  • «Reserved pin» – настраиваются пользователем. Эти выводы не будут использоваться в синтезированной схеме. Данная настройка переопределяет глобальную настройку по умолчанию для неиспользуемых выводов в среде Quartus. О зарезервированных выводах рассказывается ниже.

  • «DEV_OE», «DEV_CLR», «CLK_n» – выводы с предопределенной функцией. Они имеют особую разводку на кристалле микросхемы и могут использоваться для выполнения специальных функций. «DEV_OE» – для перевода в высокоимпендансное (High‑Z) состояние всех выводов. «DEV_CLR» – для сброса в исходное состояние всех регистров микросхемы. «CLK_n» – как вход тактового сигнала схемы. Тем не менее их можно использовать и как обычные входы/выходы пользовательской схемы. Но не стоит этого делать без особой необходимости.

  • «TDI», «TCK», «TMS», «TDO», «VCCINT», «VCCIO», «GNDINT», «GNDIO» – группа выводов с жестко заданной функцией. Эти выводы нельзя использовать для пользовательской схемы. Так «VCCINT» и «GNDINT» это выводы питания ядра ПЛИС. А «TDI», «TCK», «TMS», «TDO» используются для подключения программатора.

Для того чтобы выбрать конкретные выводы микросхемы для своей схемы используйте окно «All pins». Это окно находится в нижней части окна «Pin Planner», на предыдущем рисунке оно обозначено блоком под номером два. Если окно «All pins» закрыто, то его можно вызвать с помощью меню View → All Pins List.

Настройка выводов в «All pins»

Окно «All pins» оформлено в виде таблицы из семи колонок: «Node Name», «Direction», «Location» и «I/O Bank», «I/O Standart», «Reserved», «Current Strength».

Рис 37 all pins edit field

Ячейки этой таблицы редактируются как привычным двойным кликом левой кнопки мыши, так и с помощью специализированного поля «Edit:» в верхней части окна «All pins».

Ячейки в колонках «Node Name» и «Location» допускают ввод новых значений с клавиатуры. В остальных колонках реализован выбор значений из выпадающего списка.

При непосредственном редактировании ячейки, ввод нового значения подтверждается клавишей «Enter», после чего выполняется автоматический переход на ячейку строкой ниже. Это может немного дезориентировать, так как выделена будет не та ячейка что была изменена.

По сравнению с этим, использование поля «Edit:» выглядит более предсказуемым, так как выделение никуда автоматически не перемещается. Для ввода нового значения с использованием «Edit:» сначала необходимо выбрать ячейку. После, выполнить двойной клик на значении ячейки в поле «Edit:» и задать новое значение. Подтверждение ввода выполняется кликом на кнопке с зеленой галочкой. Отмена — красный крестик. Кнопки активны только во время редактирования. Описанный порядок действий обозначен на рисунке выше.

Рассмотрим назначение каждого столбца окна «All pins».

В первой колонке – «Node Name» перечисляются входы и выходы спроектированной схемы. Все существующие выводы схемы добавляются сюда автоматически после выполнения «Analysis & Synthesis». Список выводов в «Node Name» автоматически обновляется и при выполнении каждой новой компиляции. Следовательно, можно отредактировать схему: добавить или удалить несколько выводов. Запустить анализ и синтез схемы. В результате, среда автоматически добавит новые или удалит отсутствующие на схеме выводы. Удалять выводы из списка можно и вручную с помощью меню Edit → Delete, или кнопкой «Del» на клавиатуре.

Добавлять входы и выходы можно вручную, просто выполнив двойной клик на ячейке с текстом <<new node>> и введя имя вывода с клавиатуры. Аналогично можно отредактировать названия уже добавленных выводов схемы. Но имя вывода в «Node Name» должно до буквы совпадать с его именем на схеме, иначе Quartus не сможет выполнить их сопоставление и во время компиляции обозначит этот вывод как неизвестный.

Вторая колонка – «Direction» заполняется системой автоматически после анализа и синтеза схемы. Она недоступна для редактирования и несёт информационную функцию. В этой колонке указывается тип вывода схемы: «Input» – вход, «Output» – выход, «Bidir» – двунаправленный вывод и «Unknown» – вывод тип которого не удалось определить.

Выводы с типом «Unknown» — это свидетельство ошибок проектирования. Если «Direction» вывода – «Unknown», то это говорит о том что, либо был удален контакт схемы, с которым этот вывод был связан, либо это неправильно настроенный зарезервированный вывод.

Следующая пара колонок: «Location» и «I/O Bank». Именно в них определяется принадлежность входов и выходов схемы конкретным ножкам микросхемы.

Столбец «Location» дает возможность задать назначение для входа/выхода схемы с точностью до конкретной ножки чипа. Новое значение «Location» можно как ввести с клавиатуры, так и выбрать из выпадающего списка. Кнопка вызова выпадающего списка появляется при редактировании ячейки. Пример выпадающего списка «Location» представлен на следующем рисунке.

Рис 38 all pins location

В списке доступны следующие варианты:

  • EDGE_BOTTOM, EDGE_LEFT, EDGE_RIGHT, EDGE_TOP: указывают что настраиваемый вывод схемы будет автоматически выбран из выводов на нижней, левой, правой или верхней грани корпуса чипа соответственно.

  • I/O BANK 1, I/O BANK 2: настраиваемый вывод схемы будет автоматически выбран из первого или второго банка выводов.

  • PIN_номер: назначение выводу схемы конкретной ножки микросхемы.

Первые две группы вариантов не определяют конкретной ножки микросхемы. Здесь выбор ножки остается за Quartus. Вывод микросхемы будет назначен средой автоматически при выполнении полной компиляции на этапе «Fitter (Place & Route)». Данные настройки предназначены для работы с широкими сигнальными шинами, когда множество дорожек должны идти от чипа рядом друг с другом. Параметр «EDGE_» является более общим по сравнению с «I/O BANK X», так как по одному краю корпуса чипа могут идти выводы разных банков.

Группировка же выводов в банки обуславливается внутренним устройством микросхемы Max II. Внутри чипа предусмотрены цепи для преобразования входного напряжения питания в различные по уровню выходные напряжения логических единицы и ноля. В EPM570T100C5 таких преобразователей всего два. Поэтому все доступные пользователю выводы разделены на две группы. Рабочее напряжение любой ножки в каждой из групп может настраиваться в широких пределах от 1,5 до 3,3 В. Но это напряжение должно быть одинаковым для всех ножек в пределах одного банка.

Для схем с небольшим числом входов и выходов наиболее удобным вариантом настройки является прямое указание конкретной ножки микросхемы — третий вариант. Эта настройка может быть выполнена как прямой правкой значения в «Location», так и простым перетаскиванием конкретного вывода схемы из столбца «Node Name» на требуемую ножку на изображении корпуса микросхемы.

Следующая колонка — «I/O Bank» позволяет указать банк выводов микросхемы. Этот параметр является взаимосвязанным с параметром «Location». При указании номера банка в колонке «I/O Bank», в «Location» будет автоматически подставлен соответствующий банк ввода‑вывода. И наоборот, при выборе банка или вывода в «Location» значение банка будет определено автоматически. Так как для малых проектов нет необходимости работать с банками ввода‑вывода, то подойдет и автоматически подставляемое значение «I/O Bank».

А вот следующий параметр «I/O Standart» является важным для любого проекта. Здесь настраивается стандарт ввода‑вывода для выбранной ножки микросхемы. Стандарт ввода‑вывода определяется его электрическими характеристиками, в первую очередь — это максимально допустимые уровни напряжения и тока. Как уж говорилось выше, ПЛИС Max II может работать в широком диапазоне напряжений, и очень важно выбрать правильное напряжение для своей схемы. Если напряжение сигнала приходящего на вход ПЛИС окажется выше заданного, то оно может вывести из строя как отдельную ножку ПЛИС, так и ядро микросхемы в целом. И наоборот, чрезмерно высокое выходное напряжение на ножке ПЛИС может вывести из строя подключенное к ней устройство.

Уровень тока задается в колонке «Current Strength». Его максимальное значение напрямую зависит от выбранного стандарта ввода‑вывода. Стандарты TTL (ТТЛ — основана на биполярных транзисторах) являются более энергоемкими, работают с большими токами. Появившаяся следом технология CMOS (КМОП — основана на использовании полевых транзисторов) является гораздо более экономичной, и соответственно, работает с в разы меньшими токами.

Последняя из рассматриваемых — колонка «Reserved», она полезна для больших проектов. Зарезервированные выводы используются в случаях когда планируется расширение функционала спроектированного устройства. В этом случае можно развести плату. Подключить еще незадействованные выводы ПЛИС к схеме, и изготовить устройство не дожидаясь реализации всех запланированных возможностей. А позже, просто обновить конфигурацию ПЛИС. Но если зарезервированные выводы не присоединены к схеме внутри ПЛИС, то какие сигналы будут на них? Именно сигнал и задается в колонке «Reserved». Вывод можно подключить к питанию («As output driving VCC»), к «земле» («As output driving ground»), настроить как неподключенный вход («As input tri-stated») и так далее.

Теперь, когда Вам известно назначение основных параметров «All pins», можно выполнить настройку выводов ПЛИС.

Значения параметров «I/O Standart» и «Current Strength» установленные по умолчанию: 3.3-V LVTTL и 16mA соответственно, хорошо подходят для первой схемы. Параметры «Node Name» и «Direction» определяются системой автоматически. «Node Name» обычно не нуждается в ручной правке, а «Direction» не предоставляет такой возможности. И так как проект довольно мал, то производить назначения контактов микросхемы целыми банками или использовать зарезервированные выводы не требуется. Таким образом, единственным параметром требующим ручной настройки остается — «Location».

Просто укажите в «Location», с помощью выпадающего списка или посредством «Drag & Drop», контакты микросхемы для подключения кнопок и светодиодов. Выбирайте контакты из множества «User I/O», согласно легенды в «Pin Planner». Не используйте те контакты, что уже заняты ресурсами платы CTRL‑CPLD‑EPM570.

Окно «All pins» с настроенными выводами представлено на следующем рисунке.

Рис 39 all pins done

Проверка назначений ввода-вывода

Теперь, когда все необходимые выводы микросхемы настроены, нужно проверить корректность сделанных настроек. Проверка настроек выводов в «Pin Planner» выполняется во время процесса «I/O Assignment Analysis». Запуск анализа выполненных назначений ввода‑вывода осуществляется с помощью главного меню «Pin Planner»: Processing → Start I/O Assignment Analysis. Либо с помощью одноименной кнопки на панели «Pin Planner», которая располагается у левой границы окна «Pin Planner» (имя панели совпадает с именем окна «Pin Planner»). Данная кнопка (вторая снизу) выделена на следующем рисунке.

Рис 40 pin planner panel

При запуске анализа назначений ввода‑вывода Quartus автоматически переключится на основное окно программы, где в уже знакомых окнах «Tasks» и «Messages» будут отображены прогресс и результат выполнения анализа.

Наиболее частые ошибки, которые могут быть выявлены в процессе анализа:

  • опечатки в имени вывода в «Node Name»;
  • задание настройки «Reserved» для используемых в схеме контактов;
  • указание различных стандартов ввода‑вывода для контактов из одного банка;
  • ненастроенные выводы схемы, для которых не было сделано никаких назначений.

Но так как единственной настройкой, которую Вы сделали, было «Location». То и единственная ошибка, которую Вы могли допустить – это пропустить настройку одного из выводов.

Но даже не смотря на безупречную настройку всех выводов Вы обязательно получите предупреждение следующего содержания: «Warning: The Reserve All Unused Pins setting has not been specified, and will default to ‘As output driving ground’.» Из него следует, что в Вашем проекте остаются какие-то ненастроенные выводы, которым будет задан некий параметр по умолчанию? О каких именно выводах идет речь?

Речь идет обо всех контактах микросхемы, которые не используются в Вашем проекте. Настройка таких контактов выполняется не в «Pin Planner», а в параметрах проекта.

Параметры проекта «Device and Pin Options»

В проекте используется всего лишь 8 контактов из почти сотни доступных для пользователя. А как известно оставлять неподключенными входы микросхемы нельзя. И так как почти любой контакт ПЛИС можно настроить и как выход, и как вход, то необходимо обеспечить корректный уровень напряжения на каждом из них. Для этого не понадобятся десятки резисторов, ведь ПЛИС Max II позволяет соединить любой из неиспользуемых контактов с плюсом или минусом питания с помощью своих внутренних цепей. Такое соединение настраивается с помощью параметра «Reserve all unused pins:».

Для изменения настройки «Reserve all unused pins:» необходимо открыть окно «Device» (главное меню Quartus → Assignments → Device). В окне «Device», среди уже известных параметров, можно увидеть кнопку «Device and Pin Options…». Она выделена на следующем рисунке.

Рис 41 device and pin options

Эта кнопка отсутствует в аналогичном окне мастера создания проекта.

С помощью «Device and Pin Options…» вызывается окно «Device and Pin Options», в котором перечисляются параметры проекта относящиеся к микросхеме ПЛИС: включение/выключение сигналов «DEV_CLRn» и «DEV_OE» (вкладка «General»), компиляция дополнительных файлов конфигурации (вкладка «Programming Files»), стандарт ввода‑вывода по умолчанию (вкладка «Voltage») и, среди прочего, вкладка «Unused pins». Именно эта кладка содержит параметр «Reserve all unused pins:». Вкладка «Unused pins» обозначена цифрой 1 на следующем рисунке.

Рис 42 device and pin window

По умолчанию параметр «Reserve all unused pins:» имеет значение «As output driving ground», на рисунке оно обозначено цифрой 2. Это означает что все незадействованные в проекте контакты будут подключены к «земле» – минусу питания. Не самый удачный вариант. Ведь, если один из таких выводов окажется случайно соединен снаружи с плюсом питания, то получится короткое замыкание. Здесь лучше выбрать вариант «As input tri-stated» или «As input tri-stated with weak pull-up» (обозначен на рисунке цифрой 3).

Выводы «As input tri-stated» переключаются в высокоимпендансное (High‑Z) состояние. В таком состоянии выводы практически полностью отключаются от внешних цепей, как если бы они не были подключены к ним физически. Недостаток такого режима работы в снижении помехоустойчивости схемы. Поэтому вариант «As input tri-stated with weak pull-up» оказывается более предпочтительным в большинстве случаев. При использовании вывода со слабой подтяжкой к питанию (weak pull‑up) в связанных с ним цепях гарантируется наличие напряжения высокого логического уровня, до тех пор пока оно не будет изменено извне каким-либо подключенным устройством.

После настройки состояния неиспользуемых контактов еще раз выполните анализ сделанных назначений ввода‑вывода. Его можно запустить и из меню основного окна Quaturs: Processing → Start → I/O Assignment Analysis. Предупреждение «The Reserve All Unused Pins setting has not been specified…» исчезло. Осталась лишь пара коммерческих предупреждений устраняемых исключительно за деньги.

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

Конфигурирование ПЛИС будет описано в следующей части.

 


Изменено:

ПЛИС Altera. Часть 5: Quartus Pin Planner: 6 комментариев

  1. Спасибо вам больше, очень понятные, подробные уроки, низкий вам поклон

  2. Шестая часть в процессе. Текст готов. Доделываю иллюстрации. Хочу опубликовать в феврале.
    Спасибо за комментарии. Приятно осознавать что пишешь не в пустоту.

  3. День добрый, собственно в бесплатной версии .pof file не создаётся, имею в окне после компиляции — «Warning Can’t generate programing files because you are currently using the Quartus II software in Evaluation Mode»

    • Добрый день.
      Странная ситуация. Возможно файл лицензии побился.
      Что пишет Quartus в параметрах лицензии? Посмотреть можно так: Tools -> License Setup -> Current license (блок в правой верхней части окна, сразу под чекбоксом «Use LM_LICENSE_FILE variable»).
      Переустановить, с полным удалением папки altera (или другой, в которую ставили) пробовали?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.