ООО ЭФО
Поиск по складу
Программа поставок 2016
Сегодня
www.powel.ru
источники питания
www.korpusa.ru
конструктивы и корпуса РЭА
www.wless.ru
беспроводные технологии
www.mymcu.ru
микроконтроллеры
altera-plis.ru
микросхемы Altera
www.infiber.ru
волоконно-оптические
компоненты в
промышленности
www.efo-power.ru
силовая электроника
www.efo-electro.ru
электротехническая
продукция
www.efometry.ru
контрольно-измерительные приборы
www.golledge.ru
кварцевые резонаторы и генераторы Golledge
www.sound-power.ru
профессиональные усилители класса D
Поиск по сайту
Подписка на новости

Система менеджмента
качества сертифицирована на соответствие требованиям:
ISO 9001, ГОСТ Р ИСО 9001 и СРПП ВТ - подтверждено сертификатами соответствия в системах сертификации Русского Регистра, ГОСТ Р, международной сети IQNet, "Оборонсертифика" и "Военный Регистр".

ООО "ЭФО" в 2011г. получило Лицензию Федеральной службы по экологическому, технологическому и атомному надзору на изготовление оборудования для ядерных установок.


Rambler s Top100



ChipFind - поисковая система по электронным компонентам
EEN
webmaster
Санкт-Петербург: (812) 327-86-54  zav@efo.ru Москва: (495) 933-07-43  moscow@efo.ru Екатеринбург: (343) 278-71-36  ural@efo.ru Пермь: (342) 220-19-44  perm@efo.ru
Казань: (843) 518-79-20  kazan@efo.ru Ростов-на-Дону: (863) 220-36-79  rostov@efo.ru Н. Новгород: (831) 434-17-84  nnov@efo.ru Новосибирск: (383) 286-84-96  nsib@efo.ru
о нас склад библиотека статьи
 

System Designer

Роман Золотухо
Журнал "Chip News" N2 2001г.

System Designer - пакет для разработки устройств на основе Atmel FPSLIC.

         Устройства класса "Конфигурируемая Система на Кристалле" (Configurable System on Chip - CSoC), как следует из названия, объединяют на одном кристалле различные узлы, характерные для микропроцессорной системы - ядро микропроцессора, память и периферийные устройства - встроенные ("жесткие") и конфигурируемые разработчиком. Характерная для CSoC возможность создания реконфигурируемых пользователем устройств позволяет рассматривать системы на кристалле с двух разных точек зрения. С одной точки зрения, система на кристалле может рассматриватся как обычная процессорная система с шинной архитектурой, где главенствующим элементом является процессорное ядро (как вариант микроконтроллера с конфигурируемой периферией). С другой точки зрения система на кристалле может быть рассмотрена как набор независимых узлов (ядер) и памяти, интерфейс между которыми не является предопределенным и может быть выбран разработчиком "под задачу".

         Для корпорации Atmel характерен второй подход. FPSLIC представляет собой два независимых ядра - ядро микроконтроллера AVR и ядро FPGA (подробно архитектура FPSLIC рассмотрена в [1]). Гибкость архитектуры FPSLIC позволяет реализовывать различные варианты обмена данными между ядрами.

         Как известно, проектирование электронных устройств на современной элементной базе невозможно без соответствующих средств поддержки разработок. Различие подходов к системам на кристалле определяет не только различие их архитектур у разных производителей, но также и различия в построении и использовании программных средств поддержки разработок. Предлагаемая вашему вниманию статья посвящена программному пакету Atmel SystemDesigner - среде разработки устройств на основе Atmel FPSLIC.

Увеличить картинку
Рис. 1. Окно проекта SystemDesigner.


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

         На рис. 1 представлено рабочее окно SystemDesigner. В нем указан тип выбранного кристалла и файлы проекта (разбитые на группы по типам), а также графическое изображение процесса разработки, представленное в виде этапов, с указанием последовательности их исполнения.

         Как было отмечено выше, с точки зрения Atmel система на кристалле представляет собой набор независимых ядер (ядро AVR и ядро FPGA). Соответственно, в состав SystemDesigner входят средства разработки приложений для микроконтроллера (программная часть проекта) и для FPGA (аппаратная часть проекта), а также средства разработки интерфейса между ядрами.

         Гибкая архитектура FPSLIC и широкий набор встроенных в SystemDesigner средств разработки позволяет проводить независимое проектирование программной (ядро AVR) и аппаратной (ядро FPGA) частей проекта. При этом в процессе проектирования разработчик пользуется привычными средствами как для написания программ (C, ассемблер), так и для создания языкового описания аппаратуры (VHDL, Verilog HDL).

         Главной отличительной чертой SystemDesigner является наличие в его составе средств совместной (т.е. одновременной для аппаратной и программной частей) программной симуляции проекта. Преимущество совместной верификации проекта, т.е. отладки при помощи моделирующих программ по сравнению с отладкой проекта непосредственно в реальной разрабатываемой системе заключается в гораздо более раннем обнаружении ошибок как в программной, так и в аппаратной частях проекта. Это позволяет вносить изменения в проект на более ранней стадии, и таким образом избегать многократного повторения процедуры синтеза, размещения и разводки, которые, как правило, являются самыми длительными из всего процесса проектирования. Таким образом, совместная верификация позволяет существенно сократить время разработки.

Встроенные средства разработки.

         В SystemDesigner интегрированы все необходимые средства для проведения разработки и отладки как аппаратной так и программной частей проекта. Интегрированные в пакет средства можно классифицировать по назначению - средства разработки и средства отладки (верификации).

К встроенным средствам разработки относятся :

  • Средства разработки программной части проекта;
    • AVR Assembler v1.3;
  • Средства разработки аппаратной части проекта;
    • с использованием языкового описания аппаратуры;
      • редактор языкового описания аппаратуры HDL Planner;
      • синтезатор языкового описания аппаратуры LeonardoSpectrum;
    • среда размещения и разводки FPGA Figaro ISD7.

         Редактор языкового описания аппаратуры HDL Planner содержит набор средств для упрощения ввода VHDL- или Verilog-описания, например набор заготовок (templates) языкового описания различных цифровых блоков (счетчиков, регистров и т.п.). Кроме того, из-под HDL Planner может быть запущен генератор макросов Macro Generator. Макрос представляет собой подготовленный к размещению и разводке в FPGA аппаратный узел, учитывающий все особенности архитектуры FPGA AT94. Кроме того, библиотеки макросов могут использоваться средой размещения и разводки IDS7 при имплементации параметризируемых модулей (мегафункций).

         Входящий в состав SystemDesigner синтезатор LeonardoSpectrum является "облегченной" версией стандартного продукта Exemplar Logic, и содержит только библиотеку логических элементов FPGA Atmel.

К встроенным средствам верификации относятся :

  • Программный отладчик-симулятор AVR Studio;
  • Симулятор языкового присания аппаратуры ModelSim;
  • Среда совместной верификации аппаратуры и исполняемого кода микроконтроллера Seamless;

         Кроме того SystemDesigner содержит средства для создания интерфейса между ядрами (AVR-FPGA Interface), управления разделяемыми ресурсами FPSLIC (AT94 Device Option) и создания файла для программирования конфигурационного ПЗУ (Bitstream Generation).

Интеграция со средствами разработки третьих фирм.

         Разработчик может по своему желанию вместо встроенных средств разработки использовать программные продукты других фирм. Это не относится в средствам верификации. Встроенные в SystemDesigner AVR Studio и ModelSim адаптированы для поддержки совместной верификации под управлением Seamless.

         Вместо AVR Assembler разработчик может подключить к пакету любой внешний компилятор, поддерживающий процесоры AVR - например компиляторы С фирм IAR Systems или ImageCraft Software.

         Передача информации из синтезатора в среду размещения и разводки осуществляется в формате EDIF2.0.0. Поэтому для синтеза может использоваться любой синтезатор, удовлетворяющй двум условиям :

  • содержащий библиотеку логических элементов FPGA Atmel;
  • совместимый по формату EDIF c Figaro IDS7.

Среда размещения и разводки Figaro IDS7 совместима по формату EDIF со следующими синтезаторами, поддерживающими FPGA Atmel :

  • FPGA Express / FPGA Compiler II фирмы Synopsys;
  • LeonardoSpectrum фирмы Exemplar Logic;
  • Synplify фирмы Synplicity;
  • Everest фирмы Everest Design Software;

Кроме того, среда ISD7 совместима с некоторыми пакетами, поддерживаюшими схемотехническую форму описания проектов :

  • OrCAD Capture;
  • WorkVIEW Office ViewDRAW;

а так же с форматом XNF фирмы XILINX. Однако при использовании схемотехнического ввода проектов теряется очень важное преимущество - возможность совместной верификации ДО РАЗМЕЩЕНИЯ И РАЗВОДКИ ПРОЕКТА (Pre-layout Coverification), и, как следствие, при этом нельзя обнаружить ошибку на этапе логического моделирования. Это, в свою очередь, ведет к увеличению времени разработки.

         Процесс разработки в SystemDesigner происходит в несколько этапов.

  1. Создание проекта.
    Создание проекта в SystemDesigner начинается с запуска менеджера проектов. В менеджере проектов разработчик указывает имя проекта и выбирает тип кристалла FPSLIC, причем и то и другое может быть изменено на любом этапе разработки. Здесь же может быть задан список используемых в процессе проектирования программных средств из состава SystemDesigner по выбору разработчика, однако на сегодняшний день эта опция недоступна и к проекту подключаются все программные средства пакета. Следующим этапом открытия проекта является указание количества выбранных кристаллов (один или несколько), что позволяет создавать более сложные устройства в случае, если проект не помещается в один кристалл. На этом создание проекта заканчивается.

  2. Разработка программной части проекта.
    Как уже говорилось, при работе в SystemDesigner разработчик пользуется привычными средствами написания программ. При создании исполняемого кода AVR для определения символических имен регистров FPSLIC (как регистров AVR, так и регистров, определяющих межъядерный интерфейс) служит специальный включаемый (заголовочный) файл, предоставляемый фирмой Atmel. Компиляция и компоновка программы определяются используемым разработчиком программным средством, и практически ничем не отличаются от аналогичных операций при создании программ для AVR. Результатом этого этапа разработки является создание объектного файла AVR (используется при совместной верификации) и шестнадцатеричного файла с исполняемым кодом AVR (используется при создании загрузочного файла).

  3. Разработка аппаратной части проекта.
    На этом этапе действия разработчика повторяют разработку аппаратуры на основе FPGA. Как уже отмечалось, SystemDesigner ориентирован на языковое описания аппаратной части проекта. Для того, чтобы использовать все преимущества совместной верификации, разработчик должен создать языковое описание своего устройства, используя либо HDL Planner, либо внешний текстовый редактор по своему усмотрению.

  4. Конфигурирование интерфейса AVR-FPGA.
    Межъядерный интерфейс FPSLIC, благодаря своей гибкости, может быть сконфигурирован "под задачу". Обмен данными между устройством, реализованным в FPGA и микроконтроллером может быть осуществлен как по шине под управлением сигналов разрешения чтения/записи, так и через двухпортовую память (память данных AVR).



Конфигурирование разделяемых ресурсов FPSLIC.

На этом этапе разработчик задает (рис. 2):
  • распределение памяти AVR между пространствами кода и данных (и, соответственно, объем двухпортового ОЗУ);
  • назначение глобального тактового сигнала GCLK6 ядра FPGA.

         Источником глобального тактового сигнала GCLK6 может быть тактовый сигнал AVR, сигнал переполнения Tаймера0 AVR или сигнал переполнения сторожевого таймера AVR.


Рис. 2. Конфигурирование разделяемых ресурсов FPSLIC.


Создание межъядерного интерфейса.

         Создание межъядерного интерфейса заключается в соединении портов размещаемого в FPGA пользовательского устройства с линиями управления и шинами ядра AVR путем сопоставления имен. (рис. 3). Внутренние сигналы FPSLIC, определяющие способ взаимодействия ядер, разбиты по следующим группам :

AVRIoSelect - 16 селектирующих линий для выбора устройств в FPGA;
FPGAInterrupt - 16 линий запросов прерываний AVR.
DataFromAVR - Шина записи данных из ядра AVR в FPGA;
DataToAVR - Шина чтения данных из FPGA в ядро AVR;
AVRControl - Стробы чтения и записи данных в FPGA;
SRAMAddress - Шина адресции памяти данных AVR ядром FPGA
DataFromSRAM - Шина чтения из памяти данных AVR в FPGA;
DataToSRAM - Шина записи в память данных AVR из FPGA;
SRAMControl - Стробы записи данных из FPGA в память данных AVR;
FPGAClock - Глобальные тактовые сигналы FPGA.


Увеличить картинку
Рис. 3. Описание межъядерного интерфейса FPSLIC.

         После завершения описания межъядерного интерфейса SystemDesigner по запросу разработчика может сгенерировать тестовый vhdl-файл для проведения программной симуляции. Этот файл объединяет описания разрабатываемого устройства и его входного воздействия, определяемого программной моделью AVR. Кроме того, этот файл содержит заготовку входного воздействия для тех портов устройства, на которые подаются внешние сигналы. Разработчик должен сам задать входное воздействие на эти порты путем ручного редактирование тестового файла.

         Распределение разделяемых ресурсов и формирование межъядерного интерфейса завершается на этапе создания файла для программирования конфигурационного ПЗУ, когда разработчик определяет начальное содержимое управляющего регистра FPSLIC (об этом речь пойдет позднее).

Совместная верификация (Pre-layout CoVerification).

         На этапе Pre-layout CoVerification проверяются алгоритмы функционирования аппаратной и программной частей проекта, и правильность работы межъядерного интерфейса.

         Процессом совместной верификации управляет скрытая от разработчика среда Seamless, которая позволяет :

  • транслировать вырабатываемые программной моделью ядра AVR воздействия в симулятор языкового описания аппаратуры ModelSim;

  • транслировать реакцию аппаратной части проекта из ModelSim в отладчик-симулятор исполняемого кода AVR Studio.

         Результаты совместной верификации отображаются в двух окнах : в окне программной отладки (AVR Studio) и в окне отладки аппаратуры (ModelSim). AVR Studio отображает состояние внутренних регистров ядра AVR, регистров встроенных периферийных устройств, памяти программ и данных. ModelSim отображает все внутренние и внешние сигналы аппаратной части проекта в виде временных диаграмм (рис. 4). При этом если по ходу исполнения программного кода AVR активизирует какой-либо сигнал, связанный с аппаратной частью проекта, это изменение тутже отображается в виде изменения уровня соответствующего сигнала в окне ModelSim. И наоборот, если аппаратная часть проекта вырабатывает сигнал, являющийся входным для AVR (например запрос прерывания), он тут же отображается в виде взведеного флага в соответствующем регистре.

Увеличить картинку
Рис. 4. Совместная верификация до размешения проекта в кристалле.


Управление параллельными процессами аппаратной и программной отладки.

         При совместной верификации и аппаратный и программный симуляторы работают одновременно. Seamless не может управлять обоими симуляторами одновременно и поэтому переключает управление с одного на другой в зависимости от действий разработчика. Таким образом, в любой момент времени только один симулятор может находиться под управлением Seamless, то есть быть неактивным. Другой симулятор в это время активен, т.е. управляется разработчиком.

         Для переключения управления из AVR Studio в ModelSim (активизации ModelSim) в отладчик-симулятор добавлена функция Hardware Break. Для обратного переключения управления (активизации AVR Studio) добавлена функция Continue. Кроме того, AVR Studio может быть активизирован при запуске ModelSim на исполнение - функция Run all.

Синтез языкового описания.

         Этот этап аналогичен синтезу языковых описаний проектов на основе FPGA. Результатом синтеза является edif - файл, содержаций информацию о структуре аппаратной части проекта на уровне примитивов, определяемых технологической библиотекой.

         Интегрированный в SystemDesigner синтезатор LeonardoSpectrum, как и большинство современних синтезаторов (FPGA Compiler II, Synplify и др.) позволяет просматривать результат синтеза в виде схемы как на уровне регистровых пересылок(RTL), так и на уровне технологических примитивов (рис. 5).

Увеличить картинку
Рис. 5. Синтезатор LeonardoSpectrum. Просмотр результатов синтеза на уровне регистровых пересылок.

Размещение и разводка аппаратной части проекта.

         Интегрированная в SystemDesigner среда размещения и разводки Figaro IDS7 может работать в двух режимах : в автономном (standalone) режиме и в составе SystemDesigner.

         При запуске в составе SystemDesigner в Figaro IDS7 автоматически открывает полученный в результате синтеза языкового описания аппаратной части проекта edif-файл и назначает в качестве целевого заданный в SystemDesigner тип кристалла FPSLIC.

         Разработчик должен лишь назначить расположение внешних портов устройства на выводы кристалла (рис 6).


Рис. 6. Назначение внешних портов устройства на выводы кристалла FPSLIC.

         После назначения портов запускается процедура размещения и разводки, которая происходит в несколько этапов :

  • начальное размещение проекта в кристалле;
  • оптимизация размещения;
  • начальная разводка;
  • оптимизация разводки;

         После завершения автоматического размещения и разводки по желанию разработчика может быть создан отчет о временных задержках сигналов и указан критический путь (рис. 7). Разработчик имеет возможность ручной корректировки результата размещения и разводки.

         Этап заканчивается формированием bitstream-файла, который содержит данные для конфигурирования ядра FPGA.

         При формировании bitstream-файла создаются также back-anotation vhdl-файл (файл языкового описания аппаратной части проекта с учетом всех внутренних сигналов) и sdf-файл (файл, содержащий информацию о задержках сигналов во всех внутренних цепях проекта).

Увеличить картинку
Рис. 7. Просмотр результатов резмещения и разводки аппаратной части проекта.

Совместная верификация (Post-layout CoVerification).

         Полученные в результате размещения и разводки проекта back-annotation vhdl- и sdf-файлы используются для окончательной совместной верификации (Post-layout CoVerification). В back-annotation vhdl-файле, как и в рассмотренном выше случае Pre-layout CoVerification, разработчик должен сам описать входное воздействие на внешние по отношению к FPSLIC порты проекта. Из sdf - файла, содержащего информацию о временных задержках во всех цепях проекта, разработчик может выбрать для верификаци один из трех вариантов задержек : оптимистческий (minimum), обычный (typical) или пессимистический (maximum)

         В процессе совместной верификации проекта после размещения и разводки оценивается поведение всего проекта в целом с учетом задержек, определяется критический путь и т.п. (рис. 8)

Увеличить картинку
Рис. 8. Совместная верификация после расмещения и разводки проекта.

         Если результат этого этапа не является удовлетворительным, необходимо внести изменения в проект на более ранних стадиях разработки.

         Если результат совместной отладки после размещения и разводки соотвестствует задуманному поведению системы на кристалле, наступает последний этап разработки.

Загрузка проекта в кристалл.

         Память программ ядра AVR реализована по технологии статического ОЗУ, то есть является энергозависимой. Поэтому программный код AVR должен загружаться в память программ после включения питания также, как и конфигурационные данные ядра FPGA. Кроме того, после включения питания должна производиться начальная загрузка регистра управления FPSLIC.

         Для загрузки кристаллов FPGA и FPSLIC Atmel предлагает устройства конфигурационной EEPROM семейства AT17. Эти конфигураторы могут быть запрограммированы непосредственно в системе по шине I2C.

Конфигурирование регистра управления FPSLIC.

         Как уже говорилось, этот этап завершает распределение разделяемых ресурсов FPSLIC и формирование межъядерного интерфейса. Управляющий регистр (рис. 9)содержит :

  • биты разрешения модификации памяти программ AVR пользовательским приложением;
  • дополнительные опции сброса и тактирования AVR;
  • бит разрешения функции CacheLogic (реконфигурирование FPGA под управлением ядра AVR);
  • бит разрешения записи данных из FPGA в память данных AVR.

Рис. 9. Конфигурирование регистра управления FPSLIC.

         Кроме того управляющий регистр содержит информацию о назначении выводов встроенных периферийных устройств ядра AVR (контроллера прерываний и UART) и определяет нагрузочную способность портов ввода-вывода ядра AVR.

Создание файла для программирования конфигурационного ПЗУ.

         Конфигурационный код включает в себя три составляющие : исполняемый код AVR, конфигурационные данные FPGА и содержимое регистра управления.

         При необходимости отладки только программной или только аппаратной частей проекта разработчик имеет возможность включить в конфигурационный файл либо только исполняемый код AVR, либо только конфигурационные данные FPGА. В последнем случае порты, подключаемые ко внутренним сигналам FPSLIC, должны быть обьявлены как внешние порты FPGA. Это необходимо для эмуляции микропроцессорного ядра извне.

Программирование конфигурационного ПЗУ.

         Конфигурационное ПЗУ AT17 программируется внешней относительно SystemDesigner утилитой Configurator Programming System (рис. 10). Эта программа поддерживает как автономное, так и внутрисхемное программирование конфигураторов, позволяет управлять полярностью сигнала сброса конфигуратора и может разделять загрузочный файл большого объема на несколько частей (при использовании каскадного включения нескольких конфигураторов).

Увеличить картинку
Рис. 10. Утилита внутрисхемного программирования конфигурационного ПЗУ.

         Рассмотрев особенности среды SystemDesigner, можно сделать вывод, что процессу разработки устройств на основе FPSLIC присущи все черты, характерные для разработки проекта на основе программируемой логики:

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



Литература :
  1. И. Кривченко. Системная интеграция в микроэлектронике - FPSLIC. - ChipNews N3 2000.
© 1999-2016 All Right Reserved. EFO Ltd. При использовании материалов ссылка на источник обязательна.
Контактная информация