скачать Министерство образования Российской Федерации ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС Методические указания к практическим (лабораторным) работам Екатеринбург 2003 Содержание Список сокращений, условных обозначений и терминов Введение
Список сокращений, условных обозначений и терминов MAX+plus – Multiple Array MatriX Programmable Logic User System (Пользовательская система программирования логики упорядоченных структур) AHDL – Altera Hardware Description Language (Язык описания аппаратуры Altera) VHDL – Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (язык описания аппаратуры сверхвысокоскоростных интегральных схем) ПЛИС – программируемая логическая интегральная схема ПЗУ – постоянное запоминающее устройство ОЗУ – оперативное запоминающее устройство ДОС – дисковая операционная система Введение Прогресс микроэлектроники привёл к созданию программируемых пользователем логических интегральных схем (ПЛИС) с очень высокой степенью интеграции, применение которых, совместно с использованием современных микропроцессоров и микроконтроллеров, позволяет в короткие сроки выполнить разработку и начать производство электронной аппаратуры нового поколения. Развитие ПЛИС существенно изменило задачи и возможности проектировщиков цифровой аппаратуры. Проектирование сложных цифровых устройств на классической базе — наборе простейших вентилей и триггеров, сохранилось только при реализации изделий в виде заказных микросхем, изготавливаемых на основе базовых матричных кристаллов или создаваемых из стандартных ячеек. Разработка таких устройств выполняется с помощью дорогостоящих систем автоматизированного проектирования (САПР СБИС), применение которых обеспечивает эффект в случае создания высокосложных изделий массового применения — микропроцессоров, микроконтроллеров, стандартных интерфейсных устройств и узлов телекоммуникационного оборудования. Для большинства электронных изделий малой и средней серийности наиболее перспективной является их реализация на базе ПЛИС, которые освободили проектировщиков от необходимости сборки разрабатываемых устройств из отдельных микросхем малой и средней степени интеграции (монтаж из “россыпи”). Можно с уверенностью сказать, что эффективное использование ПЛИС при разработке широкой номенклатуры цифровых устройств является непременным условием для достижения успеха в создании современной электронной аппаратуры. Применение ПЛИС требует новых знаний и навыков от специалистов промышленности, а следовательно, и от преподавателей технических университетов и студентов. Новой становится технология проектирования цифровых устройств, центральное место в ней занимает описание проекта на языках высокого уровня типа HDL (Hardware Description Language), например, AHDL, VHDL и VerilogHDL. Процесс проектирования стал замкнутым в рамках одного класса инструментальных средств, поскольку появилась возможность исследовать проект с использованием редактора конфигурации микросхемы, функционального симулятора и временного анализатора. Одним из наиболее известных производителей ПЛИС является фирма Altera. В качестве средства автоматизации проектирования устройств на основе собственных микросхем фирма Altera разработала систему MAX+plusII. Её продукция стала одним из стандартов “де-факто”, отличающимся высоким уровнем при невысокой цене микросхем ПЛИС и скромных требованиях к инструментальному компьютеру (достаточно PC типа 486-DX4 с оперативной памятью от 16 Мбайт). ^
Компания XILINX начала выпуск программируемых вентильных матриц Field Programmable Gate Arrays (FPGA), с возможностью конфигурирования через Internet непосредственно в системе. Архитектура, названная, Internet Reconfigurable Logic (IRL), позволяет при необходимости дистанционно менять конфигурацию и принцип действия пользовательских сетевых устройств. В основе архитектуры лежит подход, дающий возможность загружать прикладные программы на основе языка Java и с их помощью воздействовать на аппаратные средства. В результате, логическая схема сетевого оборудования, реализованного на вентильных матрицах компании XILINX, известных как Virtex, может быть неоднократно изменена для обеспечения новых функций локальных и глобальных сетей. Считается, что технологии IRL станут базисом для построения продуктов, которые будут иметь возможность удалённого обновления не только программного, но и аппаратного обеспечения на стороне клиента. Можно отметить, что компания XILINX уже получила большое признание за счёт применения идеи реконфигурирования логических схем на базе программируемых вентильных матриц в автономных изделиях, таких как оборудование для микширования и монтажа цифрового звука, а также в некоторых сетевых устройствах, таких как маршрутизаторы. Сейчас компания прилагает усилия, чтобы победить в борьбе за применение концепции удалённого реконфигурирования для принципиально разных приложений, например, для систем кабельного и сетевого телевидения, персональных и сетевых компьютеров, мобильных телефонов и видеофонов, интегрированных систем безопасности и систем управления производственными процессами, так как рано или поздно все они будут объединены в сети различной степени интеграции, в том числе и Internet. В целях получения дополнительного содействия фирма XILINX заключила договоры о партнёрстве с компаниями SUN MICROSYSTEMS, SIEMENS AG, с разработчиком систем электронного проектирования (EDA) SYNPLICITY (Саннивейл, штат Калифорния), поставщиком перепрограммируемых плат ANNAPOLIS MICROSYSTEMS (Аннаполис, штат Мэриленд), а также заручилась поддержкой IBM и COMPAQ. По мнению представителей компании XILINX, для разработки продуктов на основе архитектуры IRL необходимо применение и развитие трёх современных технологий: всеохватывающего объединения в сети, языка Java и частично переконфигурируемых матриц Virtex. Архитектура Virtex уже сейчас позволяет разрабатывать устройства с количеством вентилей до миллиона и может включать в себя аппаратную реализацию интерпретатора Java–программ Java Virtual Machine. Компания XILINX представляет два новых инструментальных пакета для проектирования систем по технологии IRL. Пакет JBits предназначен для создания специальных аплетов на языке Java, которые могли бы использоваться для модификации аппаратных средств компьютера через Internet. Другой пакет ChipScope представляет собой платформонезависимый интерактивный отладчик, реализованный на языке Java и дающий возможность разработчикам проверять функционирование схем на базе FPGA компании XILINX через канал Internet. Пакет JBits представляет собой набор программных средств на основе языка Java, позволяющий разработчикам записывать информацию непосредственно в FPGA производства XILINX. JBits передаёт в FPGA последовательные данные, которые частично или полностью видоизменяют логическую схему устройства, реализованную на базе вентильных матриц. Кроме того, пакет JBits имеет возможность формирования синхроимпульсов и, тем самым, обеспечивает интеграцию программируемых матриц Virtex с другими цифровыми устройствами, такими как встраиваемые микропроцессоры или периферийное оборудование. Аплеты JBits используют интерфейс прикладного программирования Java для системы Boundary Scan компании XILINX. Второй пакет, предлагаемый компанией XILINX, ChipScope позволяет отслеживать внутреннее состояние системы из нескольких матриц FPGA, контролировать форму и уровни сигналов, а также состояние многоразрядных шин данных. Пакет может использоваться для удалённой отладки оборудования систем IRL или для соразработки автономных систем или отдельных кристаллов через Internet различными рабочими группами. Продукты JBits и ChipScope представляют собой новые системы электронного проектирования, развивающиеся в рамках инициативы Silicon Xpresso компании XILINX. ^ системе OrCAD В версиях OrCAD 7.x в модель OrCAD Express входил редактор проектов Capture и программы синтеза ПЛИС и моделирования цифровых устройств. Начиная с версии OrCAD 9.0 модуль OrCAD Capture поставляется отдельно, обеспечивая создание всех типов проектов с помощью принципиальных схем и/или текстового VHDL-описания. Команды синтеза ПЛИС вызываются из менеджера проектов модуля OrCAD Capture. Программа моделирования цифровых устройств реализована в виде программы Simulate.exe. ПЛИС типа CPLD и FPGA фирм Actel, Altera, Lattice, Lucent, Philips, Vantis, Xilinx и др. (таблица 1) синтезируется с помощью соответствующих программ типа MAX + Plus фирм, производящих ПЛИС, которые не входят в состав OrCAD Express и поставляются отдельно. С помощью OrCAD Capture можно лишь составить схемное или текстовое описание проекта (с помощью библиотек *.olb, *.vhd), а с помощью OrCAD Express выполняется лишь подготовка к синтезу ПЛИС и производится обмен данными со специализированными программами синтеза. Самостоятельно с помощью OrCAD Express выполняется синтез лишь простых ПЛИС (Simple PLD, SPLD). По терминологии OrCAD Express к простым относятся ПЛИС типа EP1800, EP180C, EP1830, EP310, EP910C, GAL16V8, PAL10H8,PAL20x8C, PEEL22CV10z, PHD48N22, PROM8KB8. Существуют две версии программы: OrCAD Express Plus и OrCAD Express. Версия OrCAD Express Plus по сравнению с OrCAD Express обеспечивает возможность синтеза ПЛИС с учётом временных ограничений (timing-driven synthesis option) и имеет более широкую номенклатуру ПЛИС (ORCA 3C фирмы Lucent Semiconductor и Xilinx SPARTAN фирмы Xilinx). Кроме того, Express Plus обеспечивает дополнительные возможности синтеза ПЛИС (Register Transfer Level, RTL), используемых при синтезе сложных FPGA, содержащих более 100 тысяч вентилей. Компиляция описания ПЛИС в OrCAD состоит из двух процессов: синтеза и оптимизации. Процедура логического синтеза заключается в составлении списка соединений проекта на основании составленной принципиальной схемы и VHDL-описаний. Этот список соединений затем передаётся в программы размещения и трассировки кристалла ПЛИС. Процедура оптимизации заключается в преобразовании списка соединений для упрощения его физической реализации в виде ПЛИС выбранного типа с учётом ряда ограничений, задаваемых пользователем. Таблица 1.1 – Перечень ПЛИС
Продолжение таблицы 1.1
При оптимизации уравнений проекта стараются обеспечить достижение экстремумов двух целевых функций: уменьшение геометрических размеров кристалла и повышение его быстродействия. Оптимизация сложных ПЛИС производится с помощью программы Leonardo Spectrum фирмы Exemplar Logic, оптимизация простых ПЛИС выполняется с помощью модуля OrCAD Express. Для уменьшения количества вариантов реализации ПЛИС при выполнении процедуры оптимизации проекта принимаются во внимание требования, задаваемые пользователем.
До последнего времени MAX+PLUS II являлась единственной системой проектирования устройств на ПЛИС Altera. Только в 1999 году появилась система проектирования нового поколения Quartus, предназначенная для разработки устройств на ПЛИС APEX20K. Программное обеспечение системы MAX+PLUS II, представляющее собой единое целое, обеспечивает управление пользователя средой логического проектирования и помогает достичь максимальной эффективности и производительности. Все пакеты работают как на платформе IBM PC, так и на платформах SUN, IBM RISC/6000 и HP9000. Система MAX+PLUS II предлагает полный спектр возможностей логического дизайна: разнообразные средства описания проектов с иерархической структурой, мощный логический синтез, компиляцию с заданными временными параметрами, разделение на части, функциональное и временное тестирование (симуляцию), тестирование нескольких связанных устройств, анализ временных параметров системы, автоматическую локализацию ошибок, а также программирование и верификацию устройств. В системе MAX+PLUS II можно как читать, так и записывать файлы на языке AHDL и файлы трассировки в формате EDIF, файлы на языках описания аппаратуры Verilog HDL и VHDL, а также схемные файлы OrCAD. Таблица 1.2 – Основные характеристики пакета MAX+PLUS II BASELINE ver.9.6
продолжение таблицы 1.2
Кроме того, система MAX+PLUS II читает файлы трассировки, созданные с помощью программного обеспечения XILINX, и записывает файлы задержек в формате SDF для удобства взаимодействия с пакетами, работающими с другими промышленными стандартами. Увеличение логической ёмкости ПЛИС и появление новой идеологии проектирования систем-на-кристалле (System-on-Chip) привели к тому, что ведущие производители ПЛИС вместе с выпуском на рынок собственно кристаллов с эквивалентной ёмкостью более 500 000 вентилей существенно обновили программное обеспечение, предоставив разработчику возможность использовать все преимущества новых БИС. В середине 1999 года на рынок вышел САПР 4-го поколения фирмы Altera – система Quartus. Отличительные свойства данного пакета:
поддержка мегафункций MegaCore. В дополнение к уже привычным редакторам, используемым в пакете MAX+PLUS II, введён редактор блоков (Block Editor), позволяющий упростить графическое описание проекта, используя механизм параметризируемых блоков. Поуровневый планировщик (FloorPlan Editor), имеет возможность распределять ресурсы как внутри логических блоков, так и по мегаблокам. Новым средством, облегчающим работу над иерархическим проектом является навигатор проекта (Project Navigator), позволяющий легко ориентироваться во всех файлах проекта. Улучшены возможности синтеза с заданными временными параметрами (Time driven Compilation). Возрастающее внимание уделяется функциональному и поведенческому моделированию с использованием языков описания аппаратуры, в том числе тестирование проектов из нескольких ПЛИС. Наличие встроенного логического анализатора Signal TAP позволяет проводить контроль сигналов внутри ПЛИС. Механизм подсказок сориентирован на использование Internet технологий. ^ MAX+Plus II Название системы MAX+PLUS II является аббревиатурой от Multiple Array MatriX Programmable Logic User System. Что переводится как, пользовательская система программирования логики упорядоченных структур. Система MAX+PLUS II имеет средства удобного ввода проекта, компиляции и отладки, а также непосредственного программирования устройств. Процедуру разработки нового проекта от концепции до завершения можно упрощённо представить следующим образом: 1. Задание имени файла – проекта верхнего уровня (Top of hierarchy) в качестве имени проекта (Project name); 2. Создание нового файла (design file) проекта или иерархической структуры нескольких файлов проекта с помощью любого сочетания редакторов в системе MAX+PLUS II, то есть графического, текстового и сигнального редакторов; 3. Назначение семейства ПЛИС для проекта. Это может быть произведено вручную или автоматически; 4. Открытие окна компилятора Compiler и выбор кнопки Start для начала компиляции проекта. По желанию пользователя можно подключить модуль извлечения временных параметров проекта Timing SNF Extractor для создания файла, используемого при временном моделировании; 5. В случае успешной компиляции возможен временной анализ, для чего следует выполнить следующее:
для проведения симуляции нужно сначала создать тестовый вектор в файле канала тестирования (.scf), пользуясь сигнальным редактором, или в файле вектора (.vec), пользуясь текстовым редактором. Затем открыть окно отладчика Simulator и нажать кнопку Start; 6. Открытие окна программатора Programmer с последующим выбором одного из двух способов: использование программатора MPU (Master Programming Unit) или подключение загрузочных устройств BitBlaster, Byte-Blaster или FLEX Download Cable к устройству, программируемому в системе; 7. Выбор кнопки Program для программирования устройств с памятью типа EPROM или EEPROM либо выбор кнопки Configure для конфигурации устройства с памятью типа SRAM (FLEX). При запуске системы MAX+PLUS II автоматически открывается её Главное окно, меню которого охватывают все приложения системы MAX+PLUS II. Н ![]() а рисунке 2.1 представлено Главное окно пакета MAX+PLUS II: Рисунок 2.1 – Главное окно системы MAX+PLUS II В верхней части окна отображается имя проекта и текущего файла проекта. Затем следует строка меню, под ней панель основных инструментов системы, обеспечивающая быстрый вызов её компонентов. В нижней части окна располагается строка подсказки. ПО системы MAX+PLUS II содержит 11 приложений и главную управляющую программу. Различные приложения, обеспечивающие создание проекта, могут быть активизированы мгновенно, что позволяет пользователю переключаться между ними щелчком мыши или с помощью команд меню. В это же время может работать одно из фоновых приложений, например, компилятор, симулятор, анализатор синхронизации и программатор. Одни и те же команды разных приложений работают одинаково, что облегчает задачу разработки логического дизайна проекта. Окно любого приложения можно свернуть до пиктограммы, не закрывая приложения, а затем снова развернуть его. Это позволяет работать эффективно, не загромождая рабочий экран. В ![]() ызов компонентов системы удобно производить через окно меню MAX+PLUS II, представленное на рисунке 2.2 Рисунок 2.2 – Окно меню MAX+PLUS II В таблице 2.1 приведено описание приложений. Таблица 2.1 – Описание приложений САПР MAX+PLUS II
продолжение таблицы 2.1
продолжение таблицы 2.1
Перед тем как начать работать в системе MAX+PLUS II, следует понять разницу между файлами проекта, вспомогательными файлами и проектами. Файл проекта — это графический, текстовый или сигнальный файл, созданный с помощью графического или сигнального редакторов системы MAX+PLUS II или в любом другом, использующем промышленные стандарты, схемном или текстовом редакторе либо при помощи программы netlist writer, имеющейся в пакетах, поддерживающих EDIF, VHDL и Verilog HDL. Этот файл содержит логику для проекта MAX+PLUS II и обрабатывается компилятором. Компилятор может автоматически обрабатывать следующие файлы проекта:
Вспомогательные файлы – это файлы, связанные с проектом MAX+PLUS II, но не являющиеся частью его иерархического дерева. Большинство таких файлов не содержит логики проекта. Некоторые из них создаются автоматически приложением системы MAX+PLUS II, другие – пользователем. Примерами вспомогательных файлов являются файлы назначений и конфигурации (.acf), символьные файлы (.sym), файлы отчета (.rpt) и файлы тестовых векторов (.vec). Проект состоит из всех файлов иерархической структуры проекта, в том числе вспомогательных и выходных файлов. Именем проекта является имя файла проекта верхнего уровня без расширения. Система MAX+PLUS II выполняет компиляцию, тестирование, анализ синхронизации и программирование сразу целого проекта, хотя пользователь может в это время редактировать файлы этого проекта в рамках другого п ![]() роекта. Рисунок 2.3 – Иерархия проекта в MAX+Plus II В иерархической структуре проекта на любом уровне допускается смешанное использование файлов с расширениями “.gdf .tdf .vhd .v .edf .sch”. Однако файлы с расширением “.wdf .xnf .adf .smf ” должны быть либо на самом нижнем иерархическом уровне проекта, либо быть единственными. Для каждого проекта желательно создавать отдельный подкаталог в рабочем каталоге системы MAX+PLUS II. В системе MAX+PLUS II легко доступны все инструменты для создания проекта. Разработка проекта ускоряется за счёт имеющихся стандартных функций, в том числе примитивов, мегафункций, библиотеки параметризованных модулей (LPM) и макрофункций устаревшего типа микросхем 74 серии. В системе MAX+PLUS II есть три редактора для разработки проекта: графический, текстовый и сигнальный, а также два вспомогательных редактора: поуровневый планировщик и символьный редактор. Схемные файлы проекта создаются в графическом редакторе MAX+PLUS II. Можно также открыть, редактировать и сохранять схемы, созданные схемным редактором OrCAD. Проекты на языках AHDL, VHDL и Verilog HDL создаются в текстовом редакторе MAX+PLUS II или любом другом текстовом редакторе. Сигнальные проекты создаются в сигнальном редакторе MAX+PLUS II. Файлы формата EDIF и Xilinx, разработанные другими стандартными инструментами системы EDA, могут быть импортированы в среду MAX+PLUS II. Схемные и тестовые файлы, созданные в системе MAX+PLUS II (под ДОС) и программных пакетах фирмы Altera A+PLUS и SAM+PLUS могут быть интегрированы в среде MAX+PLUS II. Назначения физических ресурсов для любого узла или контакта в текущем проекте могут быть введены в графическую среду с помощью поуровневого планировщика. В ![]() о всех приложениях MAX+PLUS II есть возможность с помощью команд из меню Assign (Назначить) вводить, редактировать и удалять типы назначений ресурсов, устройств и параметров, которые управляют компиляцией проекта. На рисунке 2.4 представлены команды меню Assign. Рисунок 2.4 – Меню назначений проекта Assign Пользователь может делать назначения для текущего проекта независимо от того, открыт ли какой-нибудь файл проекта или окно приложений. Система MAX+PLUS II сохраняет информацию для проекта в файле с расширением .acf. Изменения назначений, сделанные в окне поуровневого планировщика, также сохраняются в файле ACF. Следующие функции являются общими для всех приложений MAX+PLUS II: назначение устройств, ресурсов и зондов; сохранение предыдущей версии; глобальные опции устройства в проекте; глобальные параметры проекта; глобальные требования к временным параметрам проекта; глобальный логический синтез проекта. Ресурс является частью устройства, как, например контакт или логический элемент, который выполняет конкретное, определённое пользователем задание. Управление компиляцией проекта и его временными параметрами осуществляется с помощью различных назначений (Assign).Доступны следующие типы назначений: Clique assignment (Назначение клики) задаёт, какие логические функции должны оставаться вместе в одном и том же блоке логической структуры LAB, блоке ячеек памяти EAB, в одном ряду или устройстве. Chip assignment (Назначение кристалла) задаёт, какие логические функции должны быть реализованы в одном и том же устройстве в случае разделения проекта на несколько устройств. Pin assignment (Назначение контакта) назначает вход или выход одной логической функции конкретному контакту или нескольким контактам чипа. Location assignment (Назначение ячейки) назначает единственную логическую функцию конкретной ячейке чипа. Probe assignment (Назначение зонда) присваивает уникальное имя входу или выходу логической функции. Connected pin assignment (Назначение соединенных контактов) задаёт внешнее соединение двух или более контактов на схеме пользователя. Local routing assignment (Назначение местной разводки) присваивает коэффициент разветвления по выходу узла логическому элементу, находящемуся в том же блоке LAB, что и узел, или в соседнем LAB, прилежащем к узлу, с использованием общих местных разводок. Device assignment (Назначение устройства) назначает тип ПЛИС, на которой реализуется проект. Logic option assignment (Назначение логической опции) управляет логическим синтезом отдельных логических функций во время компиляции с применением стиля логического синтеза. Timing assignment (Назначение временных параметров) управляет логическим синтезом и подгонкой отдельных логических функций для получения требуемых характеристик для времени задержки tPD (вход – неподрегистренный выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота синхросигнала). Можно определить глобальные опции устройства для компилятора, чтобы он использовал их для всех устройств при обработке проекта. Для резервирования дополнительных возможностей на будущее можно задать процентное соотношение контактов и логических элементов, которые должны оставаться неиспользованными во время текущей компиляции. С использованием команды Global Project Parameters можно задать имена и глобальные установки, которые будут использованы компилятором для параметров всех параметризованных функций в проекте. При помощи команды Global Project Timing Requirements можно ввести глобальные требования по синхронизации для проекта, задавая общие характеристики для времени задержки tPD (вход – нерегистрируемый выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота синхросигнала). Команда Global Project Logic Synthesis позволяет сделать глобальные установки для компилятора в части логического синтеза проекта. Все пять редакторов MAX PLUS II и три редактора создания дизайна (графический, текстовый и сигнальный) имеют общие функции, такие как, например, создание, сохранение и открытие файла. Кроме того, приложения редактора MAX PLUS II имеют следующие общие функции:
Графический редактор (Graphic Editor) обеспечивает проектирование в реальном формате изображения (WYSIWIG). Графические файлы проекта (.gdf) или схемные файлы OrCAD (.sch), созданные в данном графическом редакторе, могут включать любую комбинацию символов примитивов, мегафункций и макрофункций. Символы могут представлять собой любой тип файла проекта (.gdf .sch .tdf .vhd .v .wdf .edf .xnf .adf .smf). ![]() Рисунок 2.5 – Окно графического редактора Инструмент выбора (“стрелка”) облегчает разработку дизайна. Он позволяет двигать и копировать объекты, а также вводить новые символы. Если переместить его на контакт или конец линии, он автоматически преобразуется в инструмент рисования ортогональных линий. Если им щелкнуть на тексте, он автоматически преобразуется в инструмент редактирования текста. Символы соединяются сигнальными линиями или линиями шин (bus), которые представляют собой несколько логически сгруппированных узлов. Узлом называется именованный вход или выход логического примитива, макро- или мегафункции. Если присвоить узлу имя, то его можно соединить с другими узлами или символами только по имени. Шины соединяются по имени, но возможно и их графическое соединение. Пользователь может переопределить порты, используемые в каждом отдельном примере символа мега- или макрофункции, а также инвертировать их. При этом, для указания инвертированного порта появляется кружок, обозначающий инверсию. Можно выбрать несколько объектов. В прямоугольной области и редактировать их вместе или по отдельности. При перемещении выбранной области сигнальные связи сохраняются. Для каждого символа можно просматривать назначения зондов, выводов, расположения, чипов, клик, временных параметров, местную трассировку, логические опции и назначения параметров. Для облегчения тестирования можно также создать назначения групп выводов, которые будут определять соединения внешнего устройства между выводами. Поставляемые фирмой Altera примитивы, мега- и макрофункции сокращают время разработки дизайна. Пользователь может также создавать свои собственные библиотеки функций. При редактировании символа или восстановлении его по умолчанию можно автоматически создавать выбранные примеры или все примеры этого символа в файле в графическом редакторе. Графический редактор обеспечивает ряд других возможностей. Например, можно увеличивать или уменьшать масштаб отображения на экране и увидеть дизайн целиком или какую-либо его деталь. Можно выбирать гарнитуру и размер шрифта, задавать стили линий, устанавливать и отображать направляющие. Можно копировать, вырезать, вставлять и удалять выбранные фрагменты; получать зеркальное отображение (вертикальное или горизонтальное); поворачивать выделенные фрагменты на 90, 180 или 270 градусов; задавать размер и ориентацию текущего листа схемы по вертикали и горизонтали. С ![]() имвольный редактор (Symbol Editor) позволяет просматривать, создавать и редактировать символ. Символьный файл имеет то же имя, что и проект, и расширение “.sym”. Команда Create Default Symbol меню File, которая есть в графическом, текстовом и сигнальном редакторах, создает символ для любого файла проекта. Рисунок 2.6 – Окно символьного редактора Символьный редактор обладает следующими характеристиками:
Текстовый редактор (Text Editor) является инструментом для создания текстовых файлов проекта на языках описания аппаратуры: AHDL (.tdf), VHDL (.vhd), Verilog HDL (.v). В этом текстовом редакторе можно работать также с произвольным файлом формата ASCII. Все перечисленные файлы проекта можно создавать в любом текстовом редакторе, однако данный редактор имеет встроенные возможности ввода файлов проекта, их компиляции и отладки с выдачей сообщений об ошибках и их локализацией в исходном тексте или в тексте вспомогательных файлов; кроме того, существуют шаблоны языковых конструкций для AHDL, VHDL и Verilog HDL, выполнено окрашивание синтаксических конструкций. В данном редакторе можно вручную редактировать файлы назначений и конфигурации (.acf), а также делать установки конфигурации для компилятора, симулятора и временного анализатора. Пользуясь данным текстовым редактором, можно создавать тестовые векторы (.vec), используемые для тестирования, отладки функций и при вводе сигнального проекта. Можно также создавать командные файлы (.cmd — для симулятора и .edc — для EDIF), а также макробиблиотеки (.lmf). ![]() Рисунок 2.7 – Окно текстового редактора В текстовом редакторе MAX PLUS II обеспечивается контекстная справка. Сигнальный редактор (Waveform Editor) служит инструментом создания описания проекта, ввода тестовых векторов и просмотра результатов тестирования. Пользователь может создавать сигнальные файлы проекта (.wdf), которые содержат временные диаграммы, описывающие логику работы проекта, а также файлы каналов тестирования (.scf), которые содержат входные вектора для тестирования и функциональной отладки. Разработка описания проекта в сигнальном редакторе является альтернативой его созданию в графическом или текстовом редакторах. Здесь можно графическим способом задавать комбинации входных логических уровней и требуемых выходов. Созданный таким образом файл WDF может содержать как логические входы, так и входы цифрового автомата, а также выходы комбинаторной логики, счётчиков и цифровых автоматов. Способ разработки дизайна в сигнальном редакторе лучше подходит для цепей с чётко определёнными последовательными входами и выходами, то есть для цифровых автоматов, счётчиков и регистров. С помощью сигнального редактора можно легко преобразовывать временные диаграммы сигналов целиком или частично, создавая и редактируя узлы и группы. Простыми командами можно создавать файл таблицы ASCII-символов (.tbl) или импортировать файл тестовых векторов в формате ASCII (.vec) для создания файлов тестируемых каналов SCF и сигнального дизайна WDF. Можно также сохранить файл WDF как SCF для проведения тестирования или преобразовать SCF в WDF для использования его в качестве файла проекта. ![]() Рисунок 2.8 – Окно сигнального редактора Сигнальный редактор имеет следующие отличительные черты:
Поуровневый планировщик (Floorplan Editor) предназначен для назначения ресурсов физических устройств и просмотра результатов разводки, сделанных компилятором. В окне поуровневого планировщика могут быть представлены два типа изображения:
После выполнения всех назначений и задания проекта приступают к его компиляции. Сначала компилятор извлекает информацию об иерархических связях между файлами проекта и проверяет проект на простые ошибки ввода описания проекта. Он создаёт организационную карту проекта и затем, комбинируя все файлы проекта, превращает их в базу данных без иерархии, которую может эффективно обрабатывать. ![]() Рисунок 2.9 – Окно поуровневого планировщика (LAB View) Компилятор применяет разнообразные способы увеличения эффективности проекта и минимизации использования ресурсов устройства. Если проект слишком большой, чтобы быть реализованным в одном устройстве, компилятор может автоматически разбить его на части для реализации в нескольких устройствах того же самого семейства ПЛИС, при этом число соединений между устройствами минимизируется. В файле отчёта (.rpt) затем будет отражено, как проект будет реализован в одном или нескольких устройствах. Кроме того, компилятор создает файлы программирования или загрузки, используемые программатором системы MAX+PLUS II или другим, для программирования одного или нескольких устройств. Несмотря на то, что компилятор может автоматически компилировать проект, существует возможность задать обработку проекта в соответствии с точными указаниями разработчика. Например, можно задать стиль логического синтеза проекта по умолчанию и другие параметры логического синтеза в рамках всего проекта, что позволит провести логический синтез в соответствии с частными потребностями. Кроме того, можно ввести требования по синхронизации в рамках всего проекта, точно задать разбиение большого проекта на части для реализации в нескольких устройствах и выбрать варианты параметров устройств, которые будут применены для всего проекта в целом. Можно также выбрать, сколько выводов и логических элементов должно быть оставлено неиспользованными во время текущей компиляции, чтобы зарезервировать их для последующих модификаций проекта. ![]() Рисунок 2.10 – Окно компилятора с редактором сообщений Компилятор автоматически обрабатывает все входные файлы текущего проекта. Процесс компиляции можно наблюдать в окне компилятора в следующем виде:
Processor), в котором отображается список сообщений об ошибке, предупреждающих и информационных сообщений, а также сразу даётся справка по исправлению ошибки. Кроме того, возможно определить источники сообщений в файлах проекта или в его поуровневом плане назначений.
Модуль экстрактора форматов (Compiler Netlist Extractor) преобразует каждый файл проекта в один или несколько двоичных файлов с расширением .cnf (compiler netlist file). Поскольку компилятор подставляет значения всех параметров, используемых в параметризованных функциях, содержимое файла CNF может меняться последовательной компиляции, если значения параметров меняются. Данный модуль создаёт также файл иерархических взаимосвязей (.hif) (hierarchy interconnect file), в котором документируются иерархические связи между файлами проекта, а также содержится информация, необходимая для показа иерархического дерева проекта в окне “Hierarchy Display”. Кроме того, данный модуль создаёт файл базы данных узлов (.ndb) (node database), в котором содержатся имена узлов проекта для базы данных назначений ресурсов. Модуль построителя базы данных (Database Builder) использует файл иерархических связей HIF для компоновки созданных компилятором файлов CNF, в которых содержится описание проекта. На основании данных об иерархической структуре проекта данный модуль копирует каждый файл CNF в одну базу данных без иерархической структуры. Таким образом, эта база данных сохраняет электрическую связность проекта. Модуль логического синтезатора (Logic Synthesizer) применяет ряд алгоритмов, которые уменьшает использование ресурсов и убирают дублированную логику, обеспечивая тем самым максимально эффективное использование структуры логического элемента для архитектуры целевого семейства устройств. Данный модуль компилятора применяет также способы логического синтеза для требований пользователя по временным параметрам и др. Кроме того, логический синтезатор ищет логику для несоединённых узлов. Если он находит неприсоединённый узел, он убирает все примитивы, относящиеся к этому узлу. Если проект не помещается при монтаже в одно устройство, модуль Partitioner (разделитель) разделяет базу данных на несколько ПЛИС одного и того же семейства, стараясь при этом разделить проект на минимально возможное число устройств. Разбиение проекта происходит по границам логических элементов, а число выводов, используемое для сообщения между устройствами, минимизируется. Используя базу данных, обновлённую модулем разбиения, модуль трассировки (Fitter) приводит в соответствие требования проекта с известными ресурсами одного или нескольких устройств. Он назначает каждой логической функции расположение реализующего её логического элемента и выбирает соответствующие пути взаимных соединений и назначений выводов. Данный модуль пытается согласовать назначения ресурсов, то есть выводов, логических элементов, элементов ввода/вывода, ячеек памяти, чипов, клик, устройств, местной трассировки, временных параметров и назначения соединения выводов из файла назначений и конфигурации (.acf) (Assignment & Configuration File), с имеющимися ресурсами. Модуль имеет параметры, позволяющие определить способы трассировки, например автоматическое введение логических элементов или ограничение коэффициента объединения по входу. Если трассировка не может быть выполнена, то выдаётся сообщение, предлагающее выбор, игнорировать некоторые или все назначения либо прекратить компиляцию. Независимо от того, завершена ли полная трассировка проекта, данный модуль генерирует файл отчёта (.rpt) (report file), в котором документируется информация о разбиении проекта, именах входных и выходных контактов, временных параметрах проекта и неиспользованных ресурсах для каждого устройства в проекте. Возможно включить в файл отчёта разделы, показывающие назначения пользователя, файловую иерархию, взаимные соединения логических элементов и уравнения, реализованные в логических элементах. Компилятор также автоматически создаёт файл трассировки (.fit), в котором документируются назначения ресурсов и устройств для всего проекта, а также информация о трассировке. Существует возможность дать указание модулю трассировщика сгенерировать выходные текстовые файлы проекта на языке AHDL (.tdo). Экстрактор для функционального тестирования (Functional SNF Extractor) создаёт файл для функционального тестирования (.snf) Компилятор генерирует этот файл перед синтезом проекта, поэтому он содержит все узлы, присутствующие в первоначальных файлах проекта. Этот функциональный файл SNF не содержит информации о временных параметрах. Его генерация возможна только в случае, если компиляция проекта произошла без ошибок. Экстрактор для тестирования временных параметров (Timing SNF Extractor) создаёт файл для тестирования временных параметров (,snf), который содержит данные о временных параметрах проекта. Экстрактор для тестирования компоновки (Linked SNF Extractor) создаёт файл (.snf) для тестирования компоновки нескольких проектов. Такой файл SNF комбинирует информацию из файлов SNF двух типов: для тестирования временных параметров и функционального тестирования, которые были сгенерированы для этих нескольких проектов по отдельности. Скомпонованные проекты могут использовать устройства, принадлежащие разным семействам. Программа записи в формат EDIF (EDIF Netlist Writer). Компилятор MAX+PLUS II может взаимодействовать с большинством стандартных программных средств САПР, которые могут читать файлы стандартного формата EDIF 200 или 300. Данный модуль компилятора, содержащий программу записи в формат EDIF, создаёт один или несколько выходных файлов в формате EDIF (.edo), содержащих информацию о функциях и временных параметров, полученную после проведения синтеза. Программа записи в формат Verilog (Verilog Netlist Wtiter). Необязательный модуль, программа записи в формат Verilog. Генерирует выходные файлы с расширением .vo, содержащие информацию о функциях и временных параметрах, полученную после проведения синтеза. Программа записи в формат VHDL (VHDL Netlist Writer). Необязательный модуль компилятора с программой записи в формат VHDL генерирует один или несколько выходных файлов (.vho) на языке VHDL с синтаксисом 1987 или 1993, содержащих информацию о функциях и временных параметрах, полученную после проведения синтеза. Выходные файлы на языках описания аппаратуры можно использовать при верификации проекта с использованием внешнего симулятора. Модуль ассемблера (Assembler). Модуль ассемблера преобразует назначения логических элементов, выводов и устройств, сделанные модулем трассировки Fitter, в программный образ для устройства в виде одного или нескольких двоичных объектных файлов для программатора (.pof), для некоторых устройств компилятор также генерирует ASCII-файлы JEDEC (.jed), содержащие информацию для программатора, конфигурационные ASCII-файлы (.ttf) и ASCII-файлы формата Intel (.hex). Утилита диагностики проекта (Design Doctor Utility). Необязательная утилита диагностики проекта проверяет логику каждого файла проекта для выявления элементов, которые могут вызвать проблемы надёжности на системном уровне. Существует возможность выбора одного из трёх предварительно определённых наборов правил разработки проекта с разными уровнями. Кроме того, возможно разработать свой собственный свод правил разработки дизайна. Для верификации проекта в системе MAX+PLUS II используется три приложения: симулятор (Simulator), анализатор временных параметров (Timing Analyzer) и сигнальный редактор (Waveform Editor). Перед тестированием проект компилируется с генерацией файла (.snf) для функционального тестирования и тестирования временных параметров. Симулятор тестирует логические операции и внутреннюю синхронизацию проекта, позволяя пользователю моделировать проект. ![]() Рисунок 2.11 – Симулятор MAX+PLUS II В качестве источника входных векторов используется либо графический сигнальный файл каналов тестирования (.scf), либо текстовый ASCII-файл (.vec). Для проектов, работающих с памятью, можно задать некое исходное содержимое памяти в файлах шестнадцатеричного формата (Intel) с расширением .hex или в файлах инициализации памяти с расширением .mif. Сигнальный редактор может автоматически создавать файл SCF (Simulator Channel File) по умолчанию, который пользователь может редактировать с целью получения нужных ему тестовых входных векторов. Если вместо этого используется текстовый ASCII-файл векторов, сигнальный редактор автоматически генерирует из него файл каналов тестирования SCF. Симулятор позволяет проверить выходные значения, получаемые в ходе тестирования, по выходам, содержащимся в файле SCF. Используя различные опции симулятора можно контролировать проект на появление сбоев (glitches), а также нарушение установочных параметров и временных задержек. После тестирования можно открыть обновлённый SCF файл в сигнальном редакторе или сохранить полученные выходные значения в табличном файле (.tbl) и просмотреть его затем в текстовом редакторе. Если компилятор сгенерирует файл SCF для функционального тестирования, то при функциональном тестировании можно смоделировать все узлы проекта. При функциональном тестировании симулятор игнорирует все задержки распространения. Поэтому в файле SCF для функционального тестирования нет задержек, выходные логические уровни изменяются одновременно со входными векторами. Файл SNF для тестирования временных временных параметров компилятор генерирует после того как проведены полный синтез и оптимизация проекта. Поэтому этот файл содержит только те узлы, которые не были уничтожены в процессе логического синтеза. Из этого файла симулятор берёт информацию об аппаратной части, которая была собрана из файлов моделей устройств (.dmf), имеющихся в комплекте системы MAX+PLUS II. Если проект был разбит на несколько устройств, компилятор создаёт файл SNF для проекта в целом и для каждого устройства. Однако тестирование временных параметров осуществляется только для проекта в целом. При создании файла SNF для тестирования компоновки нескольких проектов компилятор комбинирует файлы SNF для функционального тестирования и/или файлы для тестирования временных параметров нескольких отдельных проектов. Отдельные “подпроекты” в компоновочном SNF файле могут быть предназначены для устройств разных семейств. Кроме того, поскольку файлы SNF для функционального тестирования создаются до окончания полной компиляции, можно ввести подпроекты, которые представляют логику, не реализованную в устройстве фирмы Altera. Компоновочный файл SNF можно использовать для тестирования на уровне платы. Кроме того, если он содержит только информацию о временных параметрах, его можно использовать для прогона временного анализатора системы MAX+PLUS II. Симулятор позволяет выполнить следующие задачи:
тестировании в автоматическом режиме, а затем использовать этот файл LOG для повторения этого цикла тестирования. Загрузка готового проекта в ПЛИС или конфигурационное ПЗУ выполняется с помощью программатора (Programmer).
Цель и содержание работы: В данной работе изучается графический редактор и осуществляется ввод в систему MAX+plusII принципиальной схемы комбинационного устройства, описанного булевым уравнением. После этого выполняется трансляция проекта, с помощью редактора логико-временных диаграмм формируется последовательность входных тестовых векторов и осуществляется симуляция (логическое моделирование). В результате система MAX+plusII формирует диаграмму состояний для выходов устройства, анализируя которую совместно с таблицей истинности, можно сделать заключение о правильности функционирования разработанного устройства. 2.2.1 Запуск системы MAX+plusII Запуск САПР осуществляется из стартового меню Windows командой MAX+plus II 9.6 BASELINE, которая находится в группе MAX+plusII.
|