- •Аннотация
- •1.2. Программные модули
- •2.1. Способы описания проектов бис.
- •Техническое задание
- •2.2. Подготовка описания тестовых воздействий для моделирования работы бис.
- •2.3. Этапы отладки проекта плис
- •3.1. Графический ввод и редактирование схемы
- •3.2 Ввод и редактирование тестов
- •3.3. Программа моделирование
- •3.4 Программатор плис.
- •4. Проектирование плис в базисе примитивов.
- •4.1. Мультиплексор Мультиплексор представляют собой логическую схему,имеющуюnсигнальных входов,mвходов адреса и один выходQ.
- •4.2. Шифратор Шифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •4.3. Демультиплексор Демультиплексор представляют собой логическую схему, имеющую один информационный вход, mвходов адреса иnвыходов.
- •Обычно выполняется соотношение
- •4.5. Сумматоры
- •Выходами одноразрядного сумматора являются выход суммы текущего разряда (s) и выход переноса в следующий разряд (p).
- •4.6. Вычитатели
- •Выходами одноразрядного вычитателя являются выход разности текущего разряда (r) и выход заёма в старшем разряде (z).
- •4.7. Асинхронные счетчики.
- •4.8. Синхронные счетчики
- •4.9. Последовательные сумматоры и вычитатели.
- •4.10. Дешифратор Дешифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •5. Проектирование плис с использованием lpm модулей
- •5.1 Lpm модуль счетчика
- •5.2 Lpm модуль сдвигового регистра.
- •5.3 Lpm модуль пзу.
- •6. Описание работы схем на поведенческом языке ahdl.
- •6.1. Введение в язык ahdl
- •В языке ahdl допускается числа следующих типов.
- •Выражения
- •6.2. Структура текстового описания бис на языке ahdl
- •6.3. Основные элементы языка.
- •6.3.1 Булевы уравнения, группы.
- •In0, in21, in3 : input;
- •In_f, in_s, in_t : input;
- •If in_f then
- •In[2..0] : input;
- •6.3.3 Проектирование на языке ahdl с помощью таблиц истинности.
- •In[2..0] : input;
- •6.3.4 Операторы If Generate, For Generate
- •Else generate
- •Variable
- •6.3.5. Проектирование на языке ahdl с использованием примитивов.
- •Оператор непосредственного обращения к примитиву имеет следующий вид:
- •Variable
- •7.5. Сумматоры
- •Subdesign suma
- •Variable
- •7.6. Вычитатели
- •Variable
- •7.7. Шинные формирователи
- •Subdesign shina
- •Variable
- •7.8. Счетчики
- •Variable
- •7.9. Дешифраторы
- •7.10. Компараторы
2.3. Этапы отладки проекта плис
Компиляция
Компиляция проекта ПЛИС – наиболее ответственная и сложная задача проектирования ПЛИС. Решение этой задачи сводится к формированию карты памяти ПЛИС, которая при загрузке гарантирует не только правильную работу ПЛИС, но и обеспечивает необходимые параметры схемы.
При выполнении компиляции решаются следующие операции:
a) Распознавание конструкций входного файла и установление соответствия их с элементами ПЛИС путем задания логических функций и связей. Примеры распознавания: арифметическая сумма операндов трансформируется в сумматор, оператор CASE - в мультиплексор. Сложная комбинационная логика для FLEX10K эффективно трансформируется в соответствующее ПЗУ.
b). Логический синтез и упаковка в процессе которой выбирается стратегия компиляции в соответствии с типом ПЛИС (эвристические правила), а также выполняются операции минимизации, исключения неиспользуемых элементов.
Устанавливается стиль синтеза по критериям (время, производительность),
c). Временной синтез, в процессе которого выполняется учет параметров и ограничений, установленных пользователем.
d) Контроль за соблюдение правил проектирования (асинхронные входы, начальные состояния, риск гонок, иголок и т.д.)
e) Формирование выходных файлов: для программирования, моделирования, временного анализа, отчет.
f) Выдача сообщений об ошибках, предупреждений, автоматическое открытие файлов и локализация ошибок.
g) Оптимизация в зависимости от типа ПЛИС. Разные стратегии.
h). Разбиение проекта на несколько ПЛИС. Оптимизация внешних цепей.
Моделирование
На этапе моделирования проектировщик ПЛИС проверяет правильность работы схемы путём анализа реакции модели ПЛИС на входные тестовые сигналы.
На этапе логическое моделирования решаются следующие задачи:
проверки функционирования устройства (правильность диаграммы, соответствие вычисленных и необходимых реакций);
проверки правильности использования элементов (нагрузки, временные параметры);
проверки динамических запасов работы схемы (время установки, удержания, длительность переходных процессов, иголки , проверка нарушений установленных временных ограничений);
построение временных диаграмм.
Временной анализ
На этапе временного анализа строится матрица задержек распространения сигналов от входов БИС до их выходов. На основании этой матрицы выполняется анализ быстродействия проекта
Топологическое редактирование
Это редко используемая процедура, которая служит для окончательной шлифовки проектов. На этом этапе все логические элементы, все ячейки и все связи представлены в топологическом виде. В этом случае выполняется восстановление схемы из топологии (декомпиляция). После декомпиляции - моделирование, анализ результатов и (в случае необходимости) модификация исходного проекта.
Данный подход, несмотря на дополнительную трудоемкость, имеет свои плюсы:
обеспечивается оптимизация временных соотношений путем размещения схемы в нужных ячейках;
топология имеет оптимальную структуру;
можно оптимизировать задачу цоколевка ПЛИС - печатная плата.
Программирование и загрузка
На этапе программирования и загрузки выполняются операции по записи конфигурационного файла. Этот файл записывается либо непосредственно в ПЛИС (для ПЛИС, выполненных на базе EEPROM или FLESH памяти) либо в специальное конфигурационное ПЗУ (для ПЛИС, выполненных на базе SRAM памяти).
При программировании и загрузке могут выполняться следующие процедуры:
загрузка;
чтение;
функциональный контроль;
проверка чистой ПЛИС;
функциональный контроль работы ПЛИС (используя векторы, созданные для моделирования);
загрузка через стандартный порт JTAG одновременно нескольких ПЛИС, в том числе разных типов и от разных производителей.
2.4. Создание проекта в среде MAX+PLUS II
Процесс разработки ПЛИС в укрупнённой форме может быть представлен следующим образом.
1. Создается новый файл схемы либо иерархия из нескольких таких файлов в любой комбинации с помощью редакторов MAX+PLUS II (Графического, Текстового, Редактора Временных Диаграмм).
2. Устанавливается название проекта по имени файла наивысшего уровня.
3. Определяется семейство ПЛИС, используемых в проекте, причем можно либо назначить ПЛИС самостоятельно, либо позволить это выполнить компилятору.
4. Открывается окно компиляции MAX+PLUS II и с помощью кнопки Start производится компиляция проекта. При желании можно подключить модуль Timing SNF Extractor, в результате чего создается файл списка соединений для временного моделирования и временного анализа.
5. Если проект скомпилирован успешно, можно произвести моделирование и временной анализ.
Для того чтобы произвести временной анализ необходимо открыть окно Анализатора Времен MAX+PLUS II (Timing Analyzer), выбрать режим анализа и нажать кнопку Start.
Для того чтобы произвести моделирование, необходимо создать вектор входных сигналов, либо в файле Simulator Channel File (.scf) с помощью Редактора Временных Диаграмм (Waveform Editor), либо в файле Vector File (.vec) с помощью Текстового Редактора. Затем, следует открыть окно моделирования MAX+PLUSII и нажать кнопку Start.
6. После успешного проведения моделирования можно перейти к процедуре программирования и загрузке MAX+PLUS II. Программируемая ПЛИС либо вставляется в программатор (Matser Programming Unit – MPU), либо к ней подсоединяется один из кабелей - загрузчиков: BitBlaster, ByteBlaster или FlexDownLoad. После этого нажимается кнопка Program для того, чтобы запрограммировать ПЛИС, конфигурация которых определяется внутренним ПЗУ (EPROM или EEPROM), либо нажимается кнопка Configure для записи информации в конфигурационное ПЗУ ПЛИС (для ПЛИС, выполненных по технологии SRAM).
3. Основные проектные процедуры САПР MAX+PLUSII.