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

 

Каталоги пакета на диске?

 

Во время инсталляции пакета создаются две папки: \maxplus2, которая содержит все приложения и библиотеки пакета, и папка \max2work, которая содержит подкаталог \chiptrip со всеми файлами учебного проекта, рассмотренного в MAX+PLUS II Tutorial, а также ряд подкаталогов, используемых электронным справочником MAX+PLUS II Help. В этой же папке (\max2work) следует размещать и рабочие папки создаваемых проектов устройств.

 

Рекомендуется создавать отдельные папки для каждого разрабатываемого проекта. Это обусловлено тем, что в процессе разработки проекта системой MAX+PLUS II создается и поддерживается множество файлов, относящихся к текущему проекту. Прежде всего, это файл проекта (Project File), имя которого определяет имя проекта в целом. Этот файл содержит основную логику и иерархию проекта, обрабатываемую компилятором. Кроме того, создается ряд вспомогательных файлов, связанных с проектом, но не являющихся частью его логики. Большая часть вспомогательных файлов создается и автоматически помещается в папку проекта в процессе ввода и компиляции проекта. Это, прежде всего, файлы назначений и конфигурации (.acf), файлы отчетов(.rpt), файлы данных для функционального моделирования и временного анализа (.snf), файлы данных для программирования (.pof) и ряд других. Имена этих файлов всегда совпадают с именем проекта. Некоторые вспомогательные файлы создаются пользователем, например, для выполнения функционального моделирования создается файл (.scf), содержащий описание начальных и текущих состояний входных сигналов (входов) и перечень выходов, для которых должны быть определены выходные сигналы. Поэтому перед началом работы над новым проектом следует создать рабочую папку проекта, при этом имя папки можно выбирать произвольно, т. е ее имя может не совпадать с именем файла проекта.

 

Запускаем

 

 

Рис. 1. Главное окно MAX+PLUS II

 

После запуска пакета открывается главное окно MAX+PLUS II, основная часть, которого показана на рис.1. В самой верхней строке содержится имя последнего проекта, с которым велась работа. Две следующие строки являются обычными для Windows-приложений: строка основного меню и панель инструментов, в левой части которой расположены обычные инструменты Windows (New, Open, Save, Print, Cut, Copy, Paste, Undo), а в правой - специфические инструменты пакета, с помощью которых осуществляется запуск основных приложений пакета (см. врезку).

 

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

 

Для запуска приложений можно использовать также соответствующие пункты меню MAX+plus II, которые находятся в основном меню.


Разрабатываем простое устройство

 

Порядок использования основных приложений MAX+PLUS II рассмотрим на примере разработки устройства индикации двоичных данных в шестнадцатеричной форме на двухразрядном 7-сегментном светодиодном индикаторе для гипотетической микропроцессорной системы с 8-разрядной шиной данных и 16-разрядной шиной адреса. Для определенности будем считать, что порт индикации имеет адрес 10h, а в качестве индикатора используется индикатор типа DA-56 с общим анодом, т. е сигналы управления сегментами должны иметь активные низкие уровни для подсветки сегментов соответствующих 16-ричному представлению входного двоичного кода.

 

Основными элементами такого устройства являются:

  • схема формирования сигнала записи в порт, включающая 16-разрядный адресный селектор и схему стробирования сигнала записи;
  • 8-разрядный регистр порта;
  • комбинационные схемы преобразования двоичных кодов тетрад в сигналы управления сегментами индикатора (нагрузочная способность ПЛИС фирмы Altera позволяет подключать светодиоды непосредственно к выводам микросхем через нагрузочные сопротивления номиналом 330..390 Ом).

Разрабатываемый проект целесообразно построить в двух уровнях иерархии:

  • уровень структурных элементов, включающий схему формирования сигнала записи в порт и комбинационные схемы преобразования двоичных кодов тетрад в сигналы управления сегментами индикатора;
  • уровень проекта в целом.

Для начала, используя стандартные средства Windows, создадим в папке \max2work рабочую папку под именем \mod_ind. Затем создадим проект схемы формирования сигнала записи в порт. Будем создавать его в графическом редакторе. Для этого запускаем систему MAX+PLUS II, создаем новый файл (крайний левый значок панели инструментов). В открывшемся диалоговом окне New выбираем пункт Graphic Editor file и нажимаем кнопку ОК, при этом автоматически открывается окно графического редактора (рис. 2).

 

 

Рис. 2. Окно графического редактора


Это окно имеет ряд дополнительных пунктов основного меню и панель инструментов редактора, расположенную вертикально с левой стороны окна. Сохраним новый файл проекта (через меню File/Save) под именем write_port (расширение присвоится автоматически) в созданном каталоге \mod_ind.

 

Имя файла проекта обязательно привязывается к имени проекта. Привязка имени файла к имени проекта осуществляется через подменю Project меню File главного меню рабочего окна выбором пункта: Set Project to Current File.

 

Для создания графического проекта можно использовать библиотеки примитивов (..\maxplus\max2lib\prim), макрофункций (..\maxplus\max2lib\mf) и параметризированных мегафункций (..\maxplus\max2lib\mega_lpm).

 

Примитивы включают большой набор основных логических элементов, триггеров, элементов входа и выхода (input, output, bidir), а также вспомогательные элементы: GND (логический ноль), VCC (логическая единица).

 

Макрофункции включают, главным образом, эквиваленты логических микросхем 74-й серии.

 

Параметризированные мегафункции позволяют реализовывать многовходовые и многоразрядные элементы цифровой схемотехники (логику, регистры, мультиплексоры и т. д.), вводя ряд параметров в специально обозначенных местах на условных графических обозначениях этих элементов. Порядок использования мегафункций можно найти в соответствующем разделе электронного справочника (Help) системы, а также в документе: LPM Quick Reference Guide, который можно найти на CD-ROM, прилагаемом к [2]. Прежде чем перейти непосредственно к созданию проекта схемы, формирующей сигнал записи в порт, рассмотрим некоторые особенности и свойства графического редактора системы MAX+PLUS II.

 

О графическом редакторе

 

 

Рис. 3. Диалоговое окно Enter Symbol

 

Для размещения элементов в окне редактора используется диалоговое окно Enter Symbol (рис. 3), которое можно открыть через меню Symbol основного меню редактора (пункт Enter Symbol). Однако удобнее вызывать это окно двойным щелчком левой клавиши мыши на свободном месте открытого окна редактора, поскольку выбранный элемент будет размещен именно в этом месте (позиционирование элемента производится по верхнему левому углу условного обозначения элемента). Выбрать и установить необходимый элемент можно двумя способами:

  • Набрать имя элемента (примитива, мега-, макрофункции) в окне Symbol Name диалогового окна Enter Symbol и нажать кнопку ОК.
  • Выбрать необходимую библиотеку в окне Symbol Libraries диалогового окна Enter Symbol и двойным щелчком левой клавиши мыши открыть ее. Затем аналогичным образом выбрать необходимый элемент в окне Symbol File.

Установленный элемент можно перетащить в другое место. Перемещение элементов может производиться без сохранения или с сохранением соединений, проведенных между элементами, в зависимости от состояния кнопок Rubberbanding Functions on/оff , расположенных в нижней части панели инструментов редактора.

 

Соединение выводов символов элементов можно выполнить двумя способами.

  • Первый способ предполагает проведение сигнальных линий. Для этого курсор мыши совмещают с выводом элемента, при этом он автоматически превращается в инструмент рисования ортогональных линий (перекрестие), затем нажимают левую кнопку мыши и, удерживая ее, проводят линию. За один прием можно провести два ортогональных отрезка линии. Если этого недостаточно, то процедуру можно повторить, начиная с конца проведенной линии или с вывода другого элемента.
  • Второй способ состоит в присвоении одинаковых имен тем выводам, которые должны быть соединены между собой. Именованный вывод элемента называется узлом (Node). Для присвоения имени узлу необходимо сначала провести короткую сигнальную линию. Так как по окончании рисования линии она остается выделенной (выделенные элементы обозначаются красным цветом или красной рамкой), то имя узла можно вводить сразу. Если линия не выделена (имеет черный цвет), то необходимо, выделить ее одинарным щелчком левой клавиши мыши в том месте, где должно начинаться имя узла и набрать на клавиатуре требуемое имя.

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

 

Часть инструментов редактора предназначена для создания поясняющих надписей, рисунков и таблиц, которые не являются частью проекта и не обрабатываются в дальнейшем компилятором.

 

Схема проекта устройства формирования сигнала записи

 

Создание схемы этого проекта нижнего уровня иерархии целесообразно начинать с размещения и присвоения имен узлам входов и выходов. В нашем случае необходимо разместить входы адресных линий A0..A15, вход сигнала записи /WR (низкий активный уровень) и один выход сигнала записи в порт WR_Port. Используем для этой цели библиотеку примитивов, которая содержит примитивы: input (для входов) и output (для выходов). Каждому входу и выходу должно быть присвоено свое имя. Для этого необходимо сделать двойной щелчок на поле имени входа (выхода), в появившемся черном прямоугольнике набрать новое имя и нажать клавишу Enter.

 

Логика разрабатываемого проекта также может быть реализована с использованием примитивов: двух элементов or8 (восьмивходовый элемент “ИЛИ”), одного элемента nor3 (трехвходовый элемент “ИЛИ-НЕ”) и одного инвертора not. В описанном ранее порядке, размещаем требуемые элементы и выполняем необходимые соединения. Составленный проект устройства формирования сигнала записи в порт приведен на рис.4.

 

 

Рис. 4. Проект устройства формирования сигнала записи в порт

 

Заметим, что предложенный вариант реализации логики устройства является не единственным и не самым лучшим. Заинтересованному читателю предоставляется возможность реализовать этот проект с использованием языка AHDL (самый предпочтительный вариант) или мегафункции lpm_or.

 

Компиляция

 

Следующий этап - компиляция и создание символа проекта для включения его в файл проекта верхнего уровня. Перед компиляцией можно выполнить проверку корректности введенного проекта. Проверка осуществляется через подменю Project меню File главного меню рабочего окна выбором пункта: Save & Check или щелчком левой кнопки мыши на пиктограмме соответствующего инструмента основной панели инструментов.

 

Компиляция осуществляется через подменю Project меню File главного меню рабочего окна выбором пункта: Save & Compile или опять же с помощью соответствующего инструмента основной панели инструментов. Вид окна компилятора после успешного завершения компиляции показан на рис. 5.

 

 

Рис. 5. Окно компилятора

 

По результатам компиляции процессор сообщений информирует нас о том, что в данном проекте могут быть использованы ПЛИС семейства MAX3000A, а именно ПЛИС типа EPM 3032ALC44 (в корпусе PLCC c 44 выводами).

 

Создание символа проекта осуществляется через подменю Project меню File главного меню рабочего окна выбором параметра: Create Default Symbol, который становится доступным только после закрытия окна компилятора. Созданный символ помещается в папку проекта. Использование созданных символов, также как и элементов других библиотек, производится через диалоговое окно Enter Symbol.

 

Состав пакета

 

САПР MAX+PLUS II обеспечивает выполнение всех этапов, необходимых для разработки и выпуска готовых изделий цифровых устройств на ПЛИС фирмы Altera, включающих:

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

Для реализации всех этих этапов в состав MAX+PLUS II входят следующие, связанные между собой приложения.

 

Приложения для ввода проектов (редакторы проектов):

  • Graphic Editor — графический редактор, предназначенный для ввода проекта в виде схемы соединений символов элементов, извлекаемых из библиотек пакета (стандартных или пользовательских).
  • Waveform Editor — редактор временных диаграмм (некоторые авторы называют этот редактор сигнальным редактором), который выполняет двойную функцию: на этапе ввода обеспечивает ввод логики проекта в виде диаграмм (эпюр) состояний входов и выходов, а на этапе моделирования обеспечивает ввод диаграмм тестовых (эталонных) входных состояний моделируемого устройства и задание перечня тестируемых выходов.
  • Text Editor — текстовый редактор, предназначенный для создания и редактирования текстовых файлов, содержащих описание логики проекта на языке описания устройств AHDL (Altera Hardware Description Language), или близких к нему языках типа VHDL,Verilog.

Для освоения языка AHDL можно рекомендовать [1, 2], а также статьи, опубликованные в ряде номеров журнала CHIP NEWS (Россия) в 2000 г., электронная версия которого доступна по адресу: http:/chipnews.gaw.ru.

  • Symbol Editor — символьный редактор, позволяющий редактировать существующие символы и создавать новые. Кстати, любой откомпилированный проект может быть свернут в символ, помещен в библиотеку и использован как элемент в любом другом проекте.
  • Floorplan Editor — редактор связей (поуровневый планировщик), который на плане расположения основных логических элементов позволяет вручную распределять выводы ПЛИС (закреплять выводы за конкретными входными и выходными сигналами) и перераспределять некоторые внутренние ресурсы ПЛИС.

Приложения для синтеза структуры, трассировки связей, проверки корректности проекта и локализации ошибок, формирования файлов программирования или конфигурирования ПЛИС, входящие в пакет компилятора (MAX+PLUS II Compiler):

  • Netlist Extractor — приложение, обеспечивающее извлечение списка соединений из исходного файла представления проекта, созданного при вводе проекта.
  • Database Builder — приложение, предназначенное для построения базы данных проекта.
  • Logic Synthesizer — приложение, обеспечивающее проверку корректности проекта по формальным правилам и синтез оптимальной структуры проекта.
  • Partitioner — приложение, обеспечивающее разбиение проекта на части в тех случаях, когда ресурсов одного кристалла (микросхемы) недостаточно для реализации проекта.
  • Fitter — трассировщик внутренних связей, обеспечивающий реализацию синтезированной структуры.
  • SNF Extractor — приложение, обеспечивающее извлечение параметров проекта, необходимых для функционального моделирования и временного анализа.

Приложения для верификации проектов включают:

  • Simulator — приложение, которое совместно с редактором временных диаграмм предназначено для функционального моделирования проекта с целью проверки правильности логики его функционирования.
  • Timing Analyzer — приложение, обеспечивающее расчет временных задержек от каждого входа до каждого, логически связанного с ним выхода.

Для программирования или конфигурирования ПЛИС используется MAX+PLUS II Programmer. Программирование и перепрограммирование микросхем, имеющих встроенную систему программирования (ISP), может осуществляться непосредственно в составе конечного изделия через специальный кабель, подключаемый либо к LPT-порту (Byte Blaster), либо к COM-порту (Bit Blaster) компьютера и технологического 10 контактного соединителя интерфейса JTAG, устанавливаемого на плате изделия. Схемы кабелей можно найти на сайте фирмы Altera по адресу http://www.altera.com/literature/lit-ds.html,. Если на плате изделия устанавливается несколько ПЛИС со встроенными системами программирования, то все они могут программироваться через один технологический разъем. Для этой цели приложение Programmer имеет режим Multi-Device (к сожалению, бесплатные версии пакета этот режим не поддерживают). Схемы подключения ПЛИС к интерфейсу JTAG приводятся в документации на Bit Blaster и Byte Blaster. Для программирования остальных микросхем необходимо дополнительно использовать внешний программатор, который также может подключаться к COM- или LPT- порту.

 


Кроме того, в состав САПР входят три сервисных приложения:

  • Design Doctor — приложение, предназначенное для проверки корректности проекта с использованием эмпирических правил.
  • Message Processor — процессор сообщений, обеспечивающий обработку, вывод на отображение и локализацию (указание места в проекте, к которому оно относится) сообщений трех типов: сообщений об ошибках (Error), предупреждений (Warning) и информационных сообщений (Info). Причину вывода того или иного сообщения можно выяснить через опцию Help on Message процессора сообщений. При наличии сообщений об ошибках, компиляция проекта невозможна до их полного устранения. При наличии предупреждений компиляция успешно завершается, однако, наличие предупреждения свидетельствует об обнаружении проблемы, которая может привести к неверной работе устройства. Поэтому все предупреждения должны быть тщательно проанализированы с использованием Help on Message, с целью выяснения причин их появления и последующего устранения этих причин или игнорирования предупреждения, что иногда бывает возможно. Информационные сообщения нужно только принимать к сведению.
  • Hierarchy Display — обеспечивает обзор иерархической структуры проекта, который может состоять из множества составленных в различных редакторах и свернутых в символы проектов более низких уровней, причем число уровней не ограничивается. Основной проект (проект самого верхнего уровня) должен быть создан в графическом редакторе (если проект имеет только один уровень иерархии, то он может создаваться в любом редакторе).

Продолжение следует.

 

Литература

 

Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов.— М.: ДОДЭКА, 2000.

 

Антонов А.П. Язык описания цифровых устройств AlteraHDL. Практический курс.— М.: ИП РадиоСофт, 2001 (к книге прилагается CD-ROM, содержащий бесплатные версии САПР MAX+PLUS II и необходимую для работы документацию).

2004.04.08
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".