Донецкий национальный технически университет

Данилов Максим Васильевич

Рус
Укр
Eng
 
Магистр ДонНТУ Данилов Максим Васильевич
 
Факультет: Вычислительная техника и информатика
Специальность: "Компьютерные системы и сети"
Тема магистерской работы: Разработка и исследования системы автоматизированного проектирования композиционных микропрограммных устройств управления
Руководитель магистерской работы: Ковалев Сергей Александрович
E-mail email -->: dmx@net.dn.ua
 
 

Автореферат


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

Автореферат работы магистра.


Руководитель: доцент Ковалев С.А.


Автор: Данилов М.В.

ВВЕДЕНИЕ


Данная работа ставит себе целью автоматизированную разработку устройств микропрограммного управления, а именно композиционных микропрограммных устройств управления (КМУУ), с дальнейшей их реализацией в базисе FPGA. Под словами автоматизированная следует понимать, что процесс разработки будет неким образом облегчен. В данной работе для достижения поставленной цели предполагается использование псевдоязыка, с помощью которого осуществлялось бы кодирование микропрограммы автомата. В качестве среды отладки и переноса на FPGA предполагается использование известной CAD среды — VHDL. Другими словами полученный программный продукт будет представлять собой компилятор язык описания микропрограмм — VHDL код.

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

Хотя VHLD и появился достаточно давно не все его знают. И исходя из простых математических подсчетов можно сделать следующий вывод: гораздо проще выучить язык содержащий несколько синтаксических конструкций (язык описания микропрограмм очень прост), чем тот который содержит их несколько сотен (нормальный язык высокого уровня). Кстати, если кому-то по религиозным или иным соображениям не нравится VHDL несложно получить код и для других программных продуктов.
Как уже было сказано VHDL является универсальным языком и поэтому при разработке на нем возникают сложности связанные с переводом конструкций языка в аппаратные решения. Результат же работы данного программного продукта будет представлять собой код содержащий только логические операнды, а следовательно может быть интерпретирован только одним единственным образом.
Из вышеизложенного вытекает и еще одно преимущество — полученный код может быть легко оптимизирован, а главное можно быть уверенным, что он соответствующим образом будет закодирован в FPGA.
Ну и наконец может возникнуть последнее (на мой взгляд) замечание — цифровые автоматы не представляют никакого интереса с момента появления микроконтроллеров. Я позволю себе не согласиться с этим утверждением. С момента возникновения микросхем программируемой логики — ПЛИС и FPGA, достаточно много аппаратных решений выпускается и отлаживается с их использованием. И хотя объем кристалла в современных СБИС достигает миллионов вентилей, объем занимаемый решением на кристалле по прежнему играет очень важную роль. И я уверен, что никто не будет спорить с тем утверждением, что по части занимаемого места и быстродействия никакой микроконтроллер не сможет соперничать с микропрограммным автоматом (существует возможность зашивать микроконтроллер в кристалл FPGA).

Рисунок 1
    Структурная схема операционного устройства (анимированный рисунок)

Рисунок 1 Структурная схема операционного устройства (анимированный рисунок)

ОСНОВЫ МИКРОПРОГРАММНОГО УПРАВЛЕНИЯ


Принцип микропрограммного управления предложен в 1951г. М. Уилксом и предполагает наличие в любой цифровой системе устройства управления (УУ), координирующего работу всех блоков системы. Исполнительная часть системы, осуществляющая обработку данных, называется операционным автоматом (ОА), а цифровая система в целом называется операционным устройством. Алгоритм работы системы задается одним из формальных методов, в практике инженерного проектирования наиболее широко применяется язык граф-схем алгоритмов ГСА.

В операторных вершинах ГСА записываются наборы микроопераций Yt Y, где Y={y1,...,yN} — множество микроопераций, инициирующих определённый вид обработки данных в ОА. В условных вершинах ГСА записываются логические условия xl X, где X ={x1,...,xL} — множество выходных сигналов ОА, идентифицирующих состояние процесса обработки информации.

Алгоритм управления системы задаётся кодом управления, поступающим в УУ из внешней среды. Алгоритм управления ОА называется микропрограммой, откуда и произошло название принципа М. Уилкса.

Микропрограмма может быть представлена в виде последовательности микрокоманд, хранящихся в специальной управляющей памяти и представляющих собой определённым образом организованные битовые строки. Такой подход порождает автоматы с "программируемой" логикой или микропрограммные устройства управления (МУУ).

Реализация микропрограммы в виде сети элементов "И", "ИЛИ", "НЕ", связанной с регистром памяти RG, порождает автомат с "жёсткой" логикой или микропрограммный автомат (МПА). Сеть элементов называется комбинационной схемой (КС).


Для формирования распределённой во времени последовательности наборов микроопераций Y(0), Y(1), ...,Y(t), где t — время, необходимо иметь информацию о предыстории работы схемы. Эту предысторию представляют собой наборы логических условий X(0), X(1), ..., X(t — 1), поступавшие на вход МПА в предыдущие моменты времени. Таким образом,

Y(t)=f(X(0),X(1),...,X(t — 1),X(t))
Вышеуказанные функции являются громоздкими и практически их нельзя реализовать аппаратно, особенно при наличии циклов с неизвестным числом повторений. Для хранения предыстории работы схемы используются состояния системы, образующие множество состояний A={a1, ..., aM}. Состояния am A кодируются кодами K(am) разрядности R?]log2M[, используя внутренние переменные Tr T={T1, ..., TR}. Коды K(am) хранятся в регистре RG, причём в момент времени t=0 в RG хранится код начального состояния a1. Код K(a1) записывается в RG по сигналу Start и обычно является нулевым. Для смены кода состояния в RG используются функции возбуждения, образующие множество ?={?1, ...,?R}. Для задания момента смены кодов состояний (переключения) автомата используются сигналы синхронизации Clock.

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

Хотя характеристики микросхем постоянно улучшаются, задача оптимизации схемы УУ остается традиционно актуальной. Успешное решение этой задачи позволяет получить более дешёвые цифровые схемы, что особенно важно при массовом производстве аппаратуры.

БИС МАТРИЧНОЙ ЛОГИКИ


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

Рисунок 3. Классификация ПЛИС по архитектурным признакам.
SPLD (Simple Programmable Logic Devices), т. е. простые программируемые логические устройства. По архитектуре эти ПЛИС делятся на подклассы программируемых логических матриц ПЛМ (PLA — Programmable Logic Arrays) и программируемой матричной логики ПМЛ (PAL — Programmable Arrays Logic, или GAL — Generic Array Logic).

Оба эти подкласса микросхем реализуют дизъюнктивные нормальные формы (ДНФ) переключательных функций, а их основными блоками являются две матрицы: матрица элементов И и матрица элементов ИЛИ, включенные последовательно. Такова структурная модель ПЛМ и ПМЛ. Технически они могут быть выполнены и как последовательность двух матриц элементов ИЛИ — НЕ, но варианты с последовательностью матриц И — ИЛИ и с последовательностью матриц ИЛИ — НЕ — ИЛИ — НЕ функционально эквивалентны, т. к. второй вариант согласно правилу де Моргана тоже реализует ДНФ, но для инверсных значений переменных.

Заметим, что термин "матрица" обозначает в данном случае не более чем "набор", "множество" и обусловлен тем, что схемные элементы ПЛМ и ПМЛ удобнее всего располагать по строкам и столбцам, обеспечивая тем самым регулярность структуры БИС.

ПЛМ — ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ МАТРИЦЫ

Структура ПЛМ


На входы первой матрицы поступают т входных переменных в виде как прямых, так и инверсных значений, так что матрица имеет 2т входных линий. На ее выходах формируются конъюнктивные термы, ранг которых не выше т. В дальнейшем для краткости конъюнктивные термы называются просто термами. Число термов не имеет прямой связи с величиной т является конструктивными параметрами матрицы — числом которое обозначим через l. Первая матрица идентична для обоих подходов SPLD, т. е. для ПЛМ и ПМЛ.

Термы поступают на вход матрицы ИЛИ. Эти матрицы для ПЛМ и ПМЛ различны. В ПЛМ матрица ИЛИ программируется, а в ПМЛ она фиксированная.

Программируемая матрица ИЛИ микросхем ПЛМ составлена из дизъюнкторов, имеющих по l входов. На входы каждого дизъюнктора при программировании можно подать любую комбинацию имеющихся термов, причем термы можно использовать многократно (т. е. один и тот же терм может быть использован для подачи на входы нескольких дизъюнкторов).

Число дизъюнкторов в матрице ИЛИ определяет число выходов ПЛМ, которое обозначим через п. Из изложенного видно, что ПЛМ позволяет реализовать систему из п переключательных функций, зависящих не более чем от m переменных и содержащих не более чем l термов.

FPGA — ПРОГРАММИРУЕМАЯ ПОЛЬЗОВАТЕЛЕМ ЛОГИЧЕСКАЯ МАТРИЦА


В данном разделе, мы детально рассмотрим архитектуру FPGA, наиболее важному классу (на сегодняшний день) из всего семейства программируемых СБИС.

FPGA(Field Programming Gate Array) — программируемая пользователем логическая матрица подобна CPLD, вывернутому наизнанку.

Логика разбита на большое количество программируемых логических блоков, которые индивидуально являются меньшими, чем PLD. Они распределены вдоль всего чипа на множество программируемых взаимосвязей, и весь массив окружен программируемыми блоками ввода/вывода. Программируемый логический блок FPGA имеет меньше возможностей чем типичный PLD, но чип FPGA содержит намного больше логических блоков, чем CPLD того же самого размера.

Логический блок с перестраиваемой конфигурацией


Рисунок 6. Логический блок с перестраиваемой конфигурацией.
Самые важные программируемые элементы CLB — генераторы логических функций — F, G, и H. И F и G могут выполнить любую комбинационную логическую функцию от четырех входов, а H может исполнить любую комбинационную логическую функцию от трех входов.

Как и в CPLD, трапециевидные поля на Рисунке 6 представляют программируемые мультиплексоры. Обратите внимание, что выводы F и G так же как дополнительные входы CLB могут быть направлены к вводам H мультиплексорами M1 — M3, так что возможно реализовать некоторые функции больше чем четырех от входов. Таксономия функций, которые могут быть реализованы F, G, и H в единственном CLB, дается ниже:

Любая функция до четырех переменных, плюс любая другая функция до четырех несвязанных переменных, плюс любая третья функция до трех несвязанных переменных.
Любая одна функция пяти переменных.
Любая функция четырех переменных, плюс другая функции шести несвязанных переменных.
Функции до девяти переменных, включая проверку четности для двух 4 битных входов.
При соответствующем программировании мультиплексоров M7 — M8 и M12 — M13, выводы функциональных генераторов могут быть направлены на выводы X и Y CLB, или они могут быть зафиксированы на D — триггерах FF1 и FF2. Триггера могут использовать фронт или срез общего синхросигнала K, что выбирается мультиплексорами M9 и M14. Они могут также использовать сигнал разрешения синхронизации, EC, выбираемый M10 и M15. Источники EC и трех других внутренних сигналов выбираются из набора четырех входов C1 — C4 мультиплексорами M3 — M6 сверху CLB.

Выходы XQ и YQ CLB выводят выходы триггеров из CLB. Если триггера не используются в CLB, мультиплексор M11 или M16 может выбрать XQ или YQ, чтобы быть "выводом обхода", который является просто копией ввода CLB, выбранного M4 или M6.

Помеченный блок "S/R control" от каждого триггера определяет, установлен или сброшен триггер в конфигурации. Это также определяет, отвечает ли триггер на глобальный сигнал установки/сброса (не показан) или на сигнал SR CLB, выбранный мультиплексором M5.

Блок ввода — вывода


Структуру блока ввода — вывода (IOB) . Контакт ввода — вывода может использоваться для ввода или вывода или обоих.

Контакты ввода/вывода содержат запускаемый фронтом D — триггер выбираемый мультиплексорами M5 — M7.

Программируемый блок соединений


Как мы показали на Рисунке 5, каждый CLB в FPGA внедрен в подключенную к сети структуру, которая действительно является только проводами с программируемыми связями. Рисунок 8 дает немного более подробную схему соединений. Провода действительно "не принадлежат" ни одной CLB.

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

Четыре сигнала в группе "Global Clock", оптимизированы для использования как вводы синхронизации к CLB, обеспечивая короткую задержку. Две группы "Singles" оптимизированы для обеспечения гибкой связи между смежными блоками.

Возможно подключить CLB к другому, находящемуся далее чем один "пролет", используя "Single" провода, но они должны пройти программируемый переключатель для каждого пролета, что добавляет задержку. Провода в группах "Doubles" проходят два CLB перед тем, как зайти на переключатель, так что они обеспечивают более короткие задержки для более длинных подключений.

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

Подобно CPLD, FPGA ценны гибкостью архитектуры и устойчивостью результатов, полученных от сборки после того, как сделаны маленькие изменения в дизайне. Нет ничего более печального чем внести небольшое изменение в большой дизайну и обнаружить, что он больше не соответствует требованиям синхронизации. Таким образом, изготовители FPGA научились обеспечивать "дополнительные" ресурсы в архитектуре, чтобы гарантировать стабильные результаты.

 

Список литературы


А.А. Баркалов "Синтез устройств управления на программируемых логических устройствах" — Донецк: ДонНТУ, 2002
Соловьев В.В. Проектирование функциональных узлов цифровых систем на программируемых логических устройствах. — Минск: Бестпринт, 1996
Mano M. Computer System Architecture. — N.D.: Prentice Hall, 1997
Угрюмов Е.П. Цифровая схемотехника — Сб.: БХВ — Петербург, 2004
Altera 1998 Data Book, January 1998
The Programmable Logic Data Book — Xilinx — 1998
ACT Family FPGA Data Book, Actel
Bursky D. Andvanced CPLD architecture Challenge FPGAs. — Electronic Design — 1998