ВВЕДЕНИЕ 1. ОБЩИЕ ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА 1.1 Задание на курсовой проект 1.2. Содержание курсового проекта 1.3. Оформление курсового проекта 2. МЕТОДИЧЕСКИЕ УКАЗАНИЯ 2.1. Принципы реализации управляющих автоматов. 2.2. Формализация задачи. 2.3. Переход к абстрактному автоматному описанию. 2.4. Минимизация автомата 2.5. Структурный синтез автомата с жесткой логикой. 2.5.1. Выбор типа элементов памяти. 2.5.2. Структурное кодирование состояний, входных и выходных сигналов 2.5.3. Составление функций выходов и функций возбуждения. 2.5.4. Минимизация функций выходов и функций возбуждения. 2.6. Разработка логической схемы автомата. 3. ПРОЕКТИРОВАНИЕ УНИВЕРСАЛЬНОГО МИКРОПРОГРАММНОГО АВТОМАТА. 3.1. Принудительная адресация микрокоманд. 3.2. Естественная адресация в МПА. 3.3. Методика проектирования универсальных МПА. 3.3.1. Оптимизация микропрограммы. 3.3.2. Выбор способа кодирования МК и определение формата микрокоманды. 3.3.3. Кодирование операционной части МК.
3.3.4. Кодирование адресной части МК. 3.3.5. Микропрограммирование. 3.3.6. Построение логической схемы МПА.
Методические указания к выполнению курсового проекта.
ВВЕДЕНИЕ
Высокие темпы развития микроэлектроники способствуют все большему проникновению средств вычислительной техники в системы управления производственными объектами и технологическими процессами. Это позволяет повысить качество управления. Курсовой проект является важной составной частью подготовки студентов специальности 21.03 по изучению принципов построения и методов проектирования современных цифровых устройств управления. Основная цель курсового проектирования заключается в приобретении студентами практических навыков и освоения методики и специфики разработки цифровых систем управления различного рода объектами и технологическими процессами.
1. ОБЩИЕ ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА
1.1 Задание на курсовой проект
Курсовой проект выполняется по индивидуальным заданиям и заключается в разработке устройства управления конкретным объектом или функционально законченным модулем (блоком) сложной системы с использованием принципов "жесткой" логики или микропрограмного управления. Алгоритм работы устройства задается либо словесным описанием, либо в виде циклограммы. Элементная база для реализации автомата - интегральные микросхемы серии К155. Индивидуальные задания определяют конкретные ограниченгия на ее использование; возможно полное использование всех элементов серии, либо одного из универсальных базисов ( И-НЕ, ИЛИ-НЕ). В отдельных случаях студенты могут получать индивидуальные задания с учетом предполагаемой темы дипломного проектирования по алгоритмическому синтезу устройств управления на базе мини- и микро ЭВМ.
1.2. Содержание курсового проекта
В процессе выполнения курсового проекта студентом должны быть решены следующие вопросы 1) Предварительный анализ требований к системе управления с обоснованием выбранного или заданного принципа реализации проектируемого устройства. 2) Формализация задачи с разработкой содержательной и формальной граф-схем алгоритмов ( ГСА ), определением предварительного состава функциональных узлов операционного автомата. 3) Переход к абстрактному автоматному описанию и минимизация автомата на абстрактном уровне. 4) Для автоматов с жесткой логикой - выбор элементов памяти, структурное кодирование, составление функций выходов и переходов и их минимизация. Для универсальных микропрограммных автоматов - определение формата микрокоманды, размещение микрокоманд в памяти МПА, расчет параметров и обоснование выбранной структуры автомата. 5) Разработка логической схемы автомата на заданном или произвольном элементном базисе с учетом реальных серий интегральных компонентов. 6) Анализ результатов проектирования и проверка соответствия этих результатов с исходными требованиями.
1.3. Оформление курсового проекта
Курсовой проект оформляется в виде пояснительной записки и графического материала. Примерный объем пояснительной записки 25-35 страниц текста. При оформлении курсового проекта студент должен руководствоваться стандартами предприятия, правилами ГОСТ и ЕСКД, указанным в списке литературы. Пояснительная записка к курсовому проекту должна содержать: 1) Титульный лист. 2) Задание на курсовой проект. 3) Содержание (оглавление). 4) Введение. 5) Основную часть. 6) Заключение. 7) Список литературы. 8) Приложения. Введение должно содержать четкую формулировку поставленной задачи, ее взаимосвязь с современным состоянием научно-технической проблемы, обоснование актуальности и новизны разработки. Основная часть состоит из нескольких разделов в соответствии с основным cодержанием проекта. Первый раздел должен включать обзор существующих подходов к решению поставленной задачи, их анализ и сравнительные характеристики. Исходя из этого материала дается обоснование заданного или выбранного способа реализации управляющего устройства. В этом же разделе дается подробное описание алгоритма функционирования устройства, предварительное выделение основных элементов операционного автомата (объекта управления) на уровне источников осведомительных сигналов (датчиков) и операционных элементов (исполнительных механизмов). В соответствии с основными принципами формализации составляются содержательная и формализованная ГСА.
Второй раздел должен содержать материал по проектированию управляющего автомата, реализующего полученную ГСА на принципе жесткой логики или с помощью универсального МПА. В этом разделе приводится описание разметки ГСА в соответствии с моделью Мили или Мура, составление таблиц переходов автомата. Описывается процесс минимизации автомата на абстрактном уровне с использованием П-разбиений или треугольных таблиц. Далее описывается процесс структурного синтеза автомата в соответствии с общей методикой: структурное кодирование (если необходимо) входных и выходных сигналов, минимизирующее кодирование состояний автомата, выбор типа элементов памяти, составление функций выходов и переходов и их минимизация. При проектировании универсального автомата по принципу микропрограммирования во втором разделе приводится описание процесса оценки и выбора базовой структуры МПА путем анализа ГСА. Затем рассматриваются вопросы кодирования операционной части микрокоманд, их адресной части и с учетом полученных результатов определяется полный формат микрокоманды и базовая структура МПА. Для разработанной структуры выполняется размещение микрокоманд в памяти (микропрограммирование). Третий раздел пояснительной записки должен содержать описание процесса разработки принципиальной схемы автомата с учетом результатов, полученных в первом и втором разделах. На основе базовых структурных схем автомата с учетом реальной (или заданной) элементной базы выполняется преобразование логических функций выходов и переходов к необходимому виду, а также привязка и уточнение параметров элементов структур МПА (регистров, счетчиков, мультиплексоров, ПЗУ и т.п.) к конкретной серии интегральных схем. Результирующая принципиальная схема и спецификации включаются в приложение к пояснительной записке.
В заключении приводится оценка результатов проектирования с точки зрения их соответствия требованиям технического задания. В приложения к курсовому проекту выносится весь графический материал, выполненный в соответствии с ГОСТами, а именно: принципиальная схема спроектированного устройства, спецификация к принципиальной схеме, конструкторский чертеж возможной компоновки спроектированного устройства.
2. МЕТОДИЧЕСКИЕ УКАЗАНИЯ
2.1. Принципы реализации управляющих автоматов.
Известно два подхода к реализации логики управляющих автоматов (УА) - жесткая и гибкая логика управления. Жесткая логика (схемная реализация логики управления) (рис.2.1.) предусматривает реализацию множества состояний автомата блоком памяти (БП) на запоминающих элементах (триггерах, регистрах), а функции выходов и переходов формируются комбинационной схемой (КС). Алгоритм функционирования УА в этом случае полностью определяется схемой соединения его элементов. Достоинством УА с жесткой логикой управления является максимально высокое быстродействие, определяемое используемой элементной базой. К недостаткам следует отнести большую трудоемкость проектирования, возрастание сложности структуры УА при усложнении алгоритма и отсутствие универсальности. Последнее свойство определяет, что УА проектируется под конкретную задачу и при малейшем изменении алгоритма работы устройство должно быть спроектировано заново. Ввиду этого подобная реализация УА получила также название специализированных УА.

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

Рисунок №2.2
2.2. Формализация задачи.
Задача разработки управляющего автомата может быть поставлена перед разработчиком в различных вариантах. Это может быть словесное описание функционирования устройства, различного рода таблицы, временные диаграммы, циклограммы, ориентированные графы и т.п., определяющие последовательность и условия выполнения тех или иных операций по реализации алгоритма функционирования устройства. Для применения общепринятых методов синтеза исходную постановку задачи необходимо формализовать, т.е. привести из канонических форм описания управляющих алгоритмов. Обычно при проектировании используется методика синтеза микропрограммных управляющих автоматов (7.8), основанная на использовании граф-схем алгоритмов (ГСА). На первом этапе формализации алгоритма функционирование устройства разбивается на ряд шагов, выполняемых последовательно во времени (дискретизируется). В процессе такого разбиения выделяются все операции (действия) по выполнению алгоритма, а также условия выполнения этих операций на каждом конкретном шаге. Условия обязательно формулируются в виде вопроса, на который возможными ответами являются ДА и НЕТ. Выполняемые операции каждого шага заносятся в операторные вершины ГСА, а условия перехода от одного оператора к другому - в условные вершины. Такая ГСА носит название содержательной. Правила составления содержательной ГСА соответствуют общим требованиям
При составлении содержательной ГСА производится ее уточнение. Для каждой элементарной операции в объекте управления выделяется исполнительный механизм (операционный элемент), аппаратно ее реализующей. Если такого соответствия достигнуть не удалось, операции подлежат разбиению на более мелкие с соответствующей корректировкой ГСА. Кроме того, проверяется возможность совмещения одновременно нескольких операций на некоторых шагах алгоритма, а также объединение нескольких мелких операций в более крупную при наличии соответствующего исполнительного механизма в объекте управления. Завершают этап формализации составление таблиц соответствия (кодирования) операций и логических условий формальными переменными Yi и Xi и построение формальной ГСА, в которой содержательные термины заменены формальными переменными.
2.3. Переход к абстрактному автоматному описанию.
Описание автомата на абстрактном уровне позволяет осуществить анализ его функционирования без учета конкретно реализуемых функций и условий. Самым важным на этом этапе является минимизация автомата, т.е. построение абстрактного автомата, удовлетворяющего заданному описанию, но содержащего минимально возможное количество состояний. Проведение минимизации на абстрактном уровне во многих случаях позволяет существенно уменьшить аппаратные затраты в процессе структурного синтеза. Функционирование абстрактного автомата может быть описано с помощью двух моделей - модели Мура и модели Мили, отличающихся принципами формирования выходных сигналов и числом внутренних состояний. Переход от алгоритмического описания к автоматному осуществляется путем разметки ГСА в соответствии с выбранной моделью абстрактного автомата. Правила разметки ГСА по модели Мили: -символом начального состояния ас отмечается вход вершины, следующей за начальной, а также вход конечной вершины; -входы всех вершин, следующих за операторными, отмечаются различными символами аi……аn; -вход любой вершины ГСА может быть отмечен не более чем одним символом аi. -Разметка ГСА мо модели Мура отличается тем, что символами состояний аi отмечаются сами операторные вершины. При этом символом аo обозначаются начальная и конечная вершины. Указанные правила сформулированы для циклически выполняемых алгоритмов, когда конечное состояние АКА отождествляется с начальным. Для однократно выполняемых алгоритмов конечное состояние необходимо отметить собственным символом аn+1. После разметки выполняется описане АКА с помощью таблиц переходов [7]. В процессе проектирования используют два типа таблиц переходов прямые и обратные.Оба типа таблиц имеют одну и ту же структуру:
Таблица №1

Каждая строка таблицы соответствует одному из путей перехода, имеющемуся в АКА. Прямая таблица содержит перечисление всех переходов в порядке возрастания номера исходного состояния и используется обычно на этапе минимизации АКА. В обратных таблицах переходы перечисляются в порядке возрастания номеров состояний переходов. Их использование предпочтительнее на этапе структурного синтеза. Рассмотрению подлежат все пути переходов от отметок а i к а j. Для автоматов Допустимыми являются пути вида
ai X(аi, aj) Yk aj (2.1.)
ai Yk aj (2.2.)
ai X(ai, a0) a0 (2.3.)
Каждому пути на ГСА вида (2.1.) ставится переход АКА из состояния аi в состояние аj под действием вхлдного сигнала X(ai,aj) с выдачей выходного сигнала Yk. Для пути перехода вида (2.2.) входной сигнал равен 1, а на переходе вида (2.3.) выходной сигнал полагается равным Yo (пустой оператор).Поскольку в автоматах Мура выходной сигнал определяется текущим состоянием рассмотреню подлежат переходы вида:
ai X(аi, aj) aj (2.4.)
выполняемые под действием входного сигнала X(ai,aj), а также являющиеся частным случаем (2.4.), при входном сигнале равном 1, переходы вида:
аi, aj (2.5.)
2.4. Минимизация автомата
Основная идея минимизации автоматов на абстрактном уровне заключается в поиске эквивалентных состояний (неразличимых с точки зрения внешней реакции) состояний, бъединения их в группы и замены каждой такой группы единственным состоянием - ее представителем. Обычно при минимизации используется метод П-разбиений [7], (алгоритм Ауфенкампа-Хона) или метод треугольных таблиц [8], (метод Пола Ангера). Суть метода П-разбиений состоит в следующем. Два состояния автомата Мили am и an одноэквивалентны, если под действием одних и тех же входных сигналов в них выдаются одинаковые выходные сигналы. Таким образом для состояний am и an сравниваются множества выходных сигналов Yk-{Vi} выдаваемых на переходах из этих состояний. Если эти множества тождественны, причем каждый сигнал yi для обоих состояний обусловлен одинаковыми входными сигналами Х т.е. X(am…}-X(an…), то состояния am и an являются одноэквивалентными. К - эквивалентность двух состояний определяется следующими условиями am и an (К - 1)-эквивалентны множества (К - 1)-эквивалентных классов состояний переходов из состояний am и an совпадают. множества выходных сигналов, выдаваемых на переходах из am и an в состоянии некоторго (К - 1) класса эквивалентности должны быть одинаковы при эквивалентных входных сигналах. Процедура минимизации заключается в последовательном разбиении на классы одно-, двух-, трех- и т.д. эквивалентных состояний до тех пор, пока два следующих друг
за другом разбиения не совпадут. Полученные разбиения являются подмножествами полностью эквивалентных состояний. Из каждого подмножества (класса) эквивалентных состояний выбирается по одному состоянию и на их основе составляется минимизированная таблица переходов. Аналогичным образом выполняется минимизация и для АКА Мура. Единственное отличие - первое разбиение производится на классы О-эквивалентных состояний, имеющих одинаковые выходные сигналы вне зависимости от входных.
2.5. Структурный синтез автомата с жесткой логикой.
Построение структурной схемы автомата с жесткой логикой включает в себя следующие этапы: -выбор типа элементов памяти, -структурное кодирование состояний, входных и выходных сигналов, -составление функций и возбуждения, -минимизация функций выходов и возбуждения.
2.5.1. Выбор типа элементов памяти.
На этом этапе выбирается один из четырех типов элементарных автоматов, т.е. триггеров T, D, RS или JK - типа и записываются их таблицы переходов. На основе таблицы переходов составляется матрица возбуждения триггера, т.е. таблица, определяющая необходимые входные сигналы для всех возможных переключений триггера.
2.5.2. Структурное кодирование состояний, входных и выходных сигналов
Структурное кодирование входных и выходных сигналов при алгоритмическом методе синтеза обычно не требуется, т.к. логические условия xi и выходные сигналы yj обычно уже имеют двоичное кодирование. В случае, если эти сигналы закодированы в каком либо другом, отличном от двоичного алфавите, требуется определение числа реальных входных и выходных сигналов с учетом их перекодировки в двоичный алфавит. Это осуществляется по формуле:
n=1+int log2(N-1) (2.6.)
где: N - число символов абстрактного алфавита, n - число разрядов при двоичном кодировании.
При двоичном кодировании выходных сигналов для наиболее часто встречающихся сигналов выбираются коды, содержащие наименьшее количество единиц (эвристическое кодирование). Определение количества элементов памяти (триггеров) выполняется также с использованием формулы (2.6.). При кодировании состояний возможно использование эвристического кодирования. Однако лучший результат дает использование методики Мороза [7], минимизирующей за счет кодирования суммарное число переключений триггеров и соответственно упрощающей результирующие выражения для функций возбуждения. Суть методики в следующем: Строится матрица М, из всех пар m и n номеров состояний, для которых есть переходы из am в an. Строки упорядочиваются таким образом, чтобы хотя бы один из компонентов каждой строки встречался в предыдущих строках. Состояния первой строки кодируются кодами К(am)-00..00; К(an)-00..01 и первая строка матрицы вычеркивается. Для незакодированного состояния an первой строки оставшейся матрицы составляем подматрицу Мк из строк, содержащих его номер. Для неизвестных кодов состояний в этой подматрице (Кr) составляется множество соседних кодов (Кs), еще не занятых для кодирования и вычисляются весовые функции для всех КiE{Ks}

где: p(k,j)-вес перехода, т.е. суммарное число переходов из аn в aj и из aj в ak в подматрице Мк; d(i,j)-кодовое расстояние между кодами Ki и Kj, т.е. число разрядов, в которых эти коды различаются
Из множества {Ks} для кодирования состояния an выбирается код Ki, имеющий наименьшую весовую функцию Kk-Ki. Вновь вычеркивается первая строка матрицы М и операция повторяется для очередного незакодированого состояния. Если соседних кодов нет, в множество {Ks} объединяют коды с кодовым расстоянием 2 относительно известных кодов для подматрицы Мк.
2.5.3. Составление функций выходов и функций возбуждения.
Для составления функций выходов и функций возбуждения необходимо составить структурные таблицы переходов. Структурные таблицы переходов отличаются от предыдущих дополнительными графами. На этом этапе удобнее использовать обратные структурные таблицы.
Таблица №2

Формирование функций выходов Y = {y1…yn} производится поочередно для каждого сигнала yi. Функция выходов yi формируется как дизъюнкция конъюнкций входного сигнала и исходного состояния автомата по всем строкам таблицы (переходам), в которых в графе "выходной сигнал" присутствует yi. Для составления функций возбуждения P = {p2…p3} предварительно заполняется графа "Обязательные функции возбуждения" таблицы. При этом на каждом переходе анализируется состояние каждого триггера до перехода и после него, т.е. определяется, как должен переключаться триггер. После этого, в соответствии с матрицей возбуждения, полученной в п.2.5.1. определяются сигналы возбуждения на входах каждого триггера и записываются в упомянутую графу. Функции возбуждения для триггеров составляются по аналогии с функциями выходов, т.е. для каждого возбуждающего сигнала pi формируется дизъюнкция конъюнкций входного сигнала и исходного состояния по всем строкам таблицы, где присутствует pi в графе "обязательная функция возбуждения".
2.5.4. Минимизация функций выходов и функций возбуждения.
Полученные выражения для функций выходов и функций возбуждения как правило достаточно сложны и громоздки и поэтому подлежат минимизации. При минимизации логических функций можно использовать любой аппарат, в частности метод Квайна-МакКласки, причем необходимо учитывать неполную определенность указанных функций. Возможно применение методики совместной минимизации функций или приемов интерпретационного метода структурного синтеза (декомпозиция термов) [9].
2.6. Разработка логической схемы автомата.
В процессе выполнения этого этапа выбирается конкретная элементная база, например интегральные микросхемы серии К155. В соответствии с полученными на предыдущем этапе логическими функциями производится подбор логических элементов реализующих эти функции и выполняются все необходимые взаимосвязи между ними. При отсутствии каких-либо элементов для прямой реализации функций выполняется преобразование этой функции с использованием законов алгебры логики. Логическая схема в виде принципиальной схемы выносится в приложение к курсовому проекту и должна быть выполнена в соответствии с правилами ГОСТ и ЕСКД. Все входные и выходные линии выводятся на разъемы. Обязательным является наличие спецификации.
3. ПРОЕКТИРОВАНИЕ УНИВЕРСАЛЬНОГО МИКРОПРОГРАММНОГО АВТОМАТА.
Принципы построения универсального МПА в миниатюре повторяют структуру устройств управления ЭВМ, распространяя идеи построения машин с внутренним хранением управляющих слов (команд) на более низкую ступень - выполнение микропрограммы. Универсальные МПА обладают возможностью формирования любых последовательностей управляющих сигналов, позволяющих обеспечить одновременное выполнение любого числа микроопераций в любом сочетании из числа реализуемых на операционном автомате. Кроме того, использование стандартной структуры для построения МПА значительно облегчает и существенно ускоряет процесс проектирования. Микропрограмма в таком автомате существует в виде упорядоченной совокупности кодов микрокоманд, хранящихся в специальных постоянных запоминающих устройствах (МПЗУ). Любая микрокоманда должна содержать сведения о наборе микроопераций, выполняемых под ее воздействием (операционная часть микрокоманды) и адрес хранения очередной микрокоманды (адресная часть микрокоманды) (рис. 3.1.).

Рисунок №3.1
Кодирование микроопераций (МО) в микрокоманде может выполняться по одному из 3-х вариантов: 1) горизонтальное кодирование; 2) вертикальное (максимальное) кодирование; 3) смешанное кодирование. При горизонтальном кодировании за каждой микрооперацией в составе операционной части микрокоманды (ОЧМК) закрепляется свой разряд. Единичное значение разряда характеризует выполнение микрооперации в текущей микрокоманде, а нулевое - ее отсутствие. Вертикальное кодирование предусматривает выделение для каждой МО отдельного многоразрядного кода, разрядность n которого определяется общим числом N различных МО реализуемых в операционном автомате, причем
n = 1 + int log2N
Поскольку для первого способа кодирования длина ОЧМК может быть велика (при большом N), а второй способ при минимальной длине ОЧМК не позволяет включать в микро-команду более одной микрооперации и требует применения достаточно сложных дешифраторов, чаще всего используется третий компромиссный вариант - смешанное кодирование. Суть его в следующем: операционная часть разбивается на ряд операционных полей. Их число определяется максимальным количеством одновременно выполняемых МО в одной микрокоманде. С каждым полем связана группа несовместных микроопераций (которые никогда не выполняются одновременно). Внутри каждого поля кодирование осуществляется вертикальным способом. Это позволяет с одной стороны иметь практически любую комбинацию МО в составе микрокоманды, с другой стороны, вертикальное кодирование внутри полей уменьшает общую длину ОЧМК, а более короткие коды приводят к упрощению дешифраторов ОЧ микрокоманды. В зависимости от способа указания адреса очередной микрокоманды различают универсальные МПА с принудительным и естественным порядком следования микрокоманд.
3.1. Принудительная адресация микрокоманд.
При этом способе адресации адрес очередной микрокоманды (МК) указывается в каждой текущей микрокоманде. Этот адрес может задаваться безусловно, или же выбираться в зависимости от условия, определяемого текущими значениями осведомительных сигналов, что позволяет реализовать разветвления в микропрограммах. Если ограничиться проверкой в каждой микрокоманде только одного логического устройства условия xi из множества Х, то структура адресной части МК может иметь вид приведенный на рис.3.2. Естественно, что микропрограммы, содержащие участки с одновременной проверкой нескольких логических условий должны быть соответствующим образом преобразованы.
Поле Nx(1.k) содержит код номера логического условия xi, значение которого анализируется текущей микрокомандой. Разрядность этого поля может быть определена по формуле (3.1.). Адресные поля А0 и А1 определяют адрес следующей МК в зависимости от значения поверяемого осведомительного сигнала. Если в поле Nx содержится нулевой код, т.е. Nx - 1 <>0, то при xi=0 следующей выполняется МК с адресом записанным в поле А0, а при xi=1 - с адресом из поля А1. Безусловный переход определяется заданием в поле Nx нулевого кода, а адрес перехода при этом выбирается из поля А0. Длина адресных полей p зависит от количества МК в микропрограмме и может быть определена с использованием формулы (3.1.) На рис.3.3. показана структурная схема универсального МПА с двумя адресными полями.

Рисунок №3.3
По коду операции КОП заносимому в регистр адреса микрокоманды РАМК из программного запоминающего устройства МПЗУ выбирается первая МК микропрограммы и заносится на время исполнения в регистр микрокоманды РМК. Коды микроопераций на операционной части МК дешифруются с помощью дешифратора микроопераций ДШМО и поступают на управляющие входы операционного автомата, который реализует требуемые действия. Адрес следующей МК формируется в зависимости от значения поля условий Nx. С помощью мультиплексора MS1, на адресный вход которого поступает код из поля Nx,выбирается необходимый сигнал xi, значение которого управляет переключением входов мультиплексора MS2. При нулевом значении xi на РАМК передается информация из поля А0 адресной части МК, а при xi=1 - из поля А1. Таким образом обеспечивается выборка следующей МК с требуемым адресом. Другой вариант МПА с принудительной адресацией предполагает использование в адресной части кроме поля Nx только одного адресного поля А. При этом алгоритм формирования адреса очередной микрокоманды несколько изменяется. При ненулевом Nx - i <> 0 следующей выполняется микрокоманда с исполнительным адресом, определяемым суммарным значением анализируемого входного сигнала и содержимого адресного поля А.
А исп. = А + xi
т.е. ветвление происходит по соседним адресам. Формирование суммы производится с помощью сумматора комбинационного типа. Структура микропрограммного автомата с одним адресным полем приведена на рис.3.4.

Рисунок №3.4
3.2. Естественная адресация в МПА.
Естественный порядок следования микрокоманд предусматривает выборку очередной МК из ячейки памяти с адресом на 1 больше адреса ячейки содержащей текущую МК. При таком способе адресации роль формирователя адреса следующей микрокоманды и РАМК может выполнять обычный счетчик адреса; а необходимость в адресной части МК фактически отпадает. МК в этом случае содержит только операционную часть и называется операционной микрокомандой (ОМО). Однако в этом случае возможна реализация алгоритмов (микропрограмм) имеющих линейную структуру, т.е. без разветвлений. Для обеспечения возможности реализации микропрограмм с разветвлениями на МПА с естественной адресацией вводится дополнительный формат МК - управляющие (УМК), содержащие только адресную часть УМК содержит поле кода номера проверяемого логического условия Nx и поле адреса А очередной МК, к которой осуществляется переход при выполнении этого условия. В случае невыполнения условия адрес следующей МК равен текущему, увеличенному на единицу. Безусловные переходы реализуются с помощью УМК содержащих нулевой код номера логического условия. Для различения УМК и ОМК в обоих форматах применяется одноразрядное поле признака. Структура МПА с естественным порядком следования МК приведена на рис.3.5.

Рисунок №3.5
3.3. Методика проектирования универсальных МПА.
Отличительная особенность универсальных МПА - предопределенность их структуры. Состав функциональных узлов, их связь друг с другом заранее известны и определяются принятым форматом микрокоманды и способом адресации МК. Благодаря этому существенно упрощается процесс проектирования. Поскольку структура универсального МПА слабо зависит от конкретной микропрограммы, возможно четкое разделение труда между схемотехниками и программистами, что повышает качество разработки. Исходными данными для проектирования любого, в том числе и универсального МПА являются: · предварительный состав функциональных узлов операционного автомата с перечнем выполняемых на них микроопераций; · микропрограмма или набор исходных микропрограмм управления работой операционного автомата (объекта); · система логических и запоминающих элементов; · критерии оценки качества разработки. При проектировании универсального МПА решаются задачи: · оптимизация микропрограммы с учетом конкретных особенностей реализации МПА; · выбор способа кодирования МК; · определение структуры и формата МК; · размещение программы в МПЗУ - микропрограммирование; · построение логической схемы МПА.
3.3.1. Оптимизация микропрограммы.
Микропрограмма, реализующая заданный алгоритм функционирования, может быть получена с помощью приемов, описанных в разделах 2.2 - 2.4. На этапе формализации определяется набор микроопераций (yi) и перечень логических условий (xi), а этап минимизации позволяет уменьшить объем микропрограммы. Дальнейшая оптимизация определяется критерием и может быть направлена либо на сокращение времени выполнения МП, либо на уменьшение емкости ПЗУ для ее хранения. При этом учитывается возможность укрупнения МК путем объединения нескольких МК в одну, совмещения микроопераций в одной микрокоманде и т.п.
3.3.2. Выбор способа кодирования МК и определение формата микрокоманды.
Выбор способа кодирования также определяется требованиями к объему МПЗУ, быстродействие автомата, а также данными о количестве различных МК и МО в микропрограмме и ее структуре (степени разветвленности алгоритма). Точных рекомендаций по выбору способа кодирования для каждой конкретной микропрограммы не существует и поэтому решения, принимаемые разработчиком, носят субъективный характер. Один из возможных подходов к решению этого этапа заключается в просмотре качественной и предварительной количественной оценке в соответствии с критерием оптимальности, нескольких вариантов кодирования. Однако этот путь связан со значительными трудозатратами. Определение формата МК позволяет уточнить принятые решения с помощью некоторых количественных оценок, в частности по разрядности операционной и адресной частей МК.
3.3.3. Кодирование операционной части МК.
В процессе кодирования ОЧМК обычно стараются уменьшить ее длину и в то же время сохранить возможность совмещения нескольких микроопераций в одной микрокоманде. В случае небольшого количества МО в автомате используют горизонтальное кодирование. Вертикальное кодирование применяется, когда в каждой микрокоманде выполняется только одна микрооперация. В остальных случаях обычно используется смешанное кодирование. Для решения задачи смешанного кодирования необходимо разбиение всего множества МО на несколько подмножеств (по числу одновременно реализуемых МО в микрокоманде), каждое из которых должно содержать только несовместные операции, т.е. такие, которые одновременно не выполняются ни в одной МК. Наиболее просто такая задача решается методом прямого включения [9]. Последовательность решения следующая: 1. Для исходного множества микроопераций Y = { y1…ym} совместимость МО в различных микрокомандах представляется по форме матрицы совместимости S=|| sij ||. Каждый элемент sij характеризует совместимость двух МО yi и yj т.е. Sij - 0, если yi ни в одной МК не выполняется одновременно, т.е. несовместна с ней (yj). 1, если yi и yj совместны Матрица S является квадратной и симметричной, диагональные элементы sij полагаются равными 1. 2. Составляется матрица включения R=|| rHJ || строки которой RK сопоставляются с операционными полями (подмножествами YK несовместных МО), а столбцы с микрооперациями. Элемент rHJ равен единице, если микрооперация yi входит в подмножество YK = RK. Заполнение матрицы выполняется за М шагов. На каждом шаге для очередной МО yi делается попытка включить ее в одно из подмножеств RK начиная с первого. МО yi может быть включена в подмножество RK ( YK ), если строка Si матрицы S не пересекается со строкой RK матрицы R.
Si Rk = 0
т.е. ни один единичный элемент строки Si не совпадает ни с одним одноименным единичным элементом строки RK. Если условие (3.2) выполняется, переходят к очередной МО yi+1, если нет - делается попытка включения yi в очередное подмножество RK+1. Процесс этот всегда результативен т.к. всегда пустая строка найдется в матрице R, обеспечивающая выполнение условия (3.2.). После распределения всех М микроопераций единицы в каждой строке RK матрицы R показывают, какие МО из множества Y размещены в каждом подмножестве (поле). Длина nK операционного поля, связанного с подмножеством YK содержащим NK микроопераций, определяются по формуле (3.1.), пречем, фактическое увеличение МО на единицу обусловлено необходимостью выделения дополнительного кода (обычно нулевого) в качестве признака пустоты поля (пустая микрооперация y).
3.3.4. Кодирование адресной части МК.
Кодирование АЧМК заключается в определении разрядности и кодов для поля условий, а также разрядности адресных полей. Длина поля условий зависит от количества одновременно анализируемых логических условий (ЛУ) и общим количеством различных условий в автомате. Обычно ограничиваются проверкой только одного ЛУ в микрокоманде. Для обеспечения такого ограничения ГСА должна быть преобразована путем введения между любыми двумя последовательными условными вершинами дополнительных операторных вершин, содержащих пустую микрооперацию. После этих преобразований кодирование поля условий может осуществляться вертикальным способом с использованием (3.1.) для определения поля номера логического условия. Длина адресного поля (полей) определяется исходя из общего числа микрокоманд (операторных вершин) в микропрограмме функционирования автомата. При этом общая структура адресной части определяется принатой за основу структурой МК и типом МПА. В зависимости полученных на этом этапе предварительных количественных оценок длины микрокоманды возможно принятие решения об изменении способов кодирования или выборе иной структуры МПА для реализации алгоритма.
3.3.5. Микропрограммирование.
На данном этапе составляется микропрограмма функционирования автомата в виде упорядоченного списка кодов микрокоманд с учетом принятого способа адресации элементов списка. Переход от ГСА к списочной форме микропрограммы выполняется в несколько приемов: выделение в ГСА фрагментов, соответствующих содержимому одной линейке МПЗУ (микрокоманде); микропрограммирование в условных адресах; замена условных адресов действительными. Особенности микропрограммирования проявляются только на первом шаге данной процедуры. Остальные задачи аналогичны решаемым при обычном программировании и не вызывают трудностей. При использовании МПА с естественным порядком следования МК каждая вершина отвечает содержимому одной ячейки ПЗУ: операторная вершина соответствует операционной МК, а условная - управляющей микрокоманде. Для МПА с принудительной адресацией в ГСА выделяются фрагменты, каждый из которых включает одну операторную и одну условную вершину. Такой фрагмент соответствует содержимому одной ячейки МПЗУ, т.е. одной микрокоманде. На рис.3.6. показаны правила преобразования фрагментов ГСА к виду удобному для программирования. Символ y0 обозначает пустую микрокоманду, а символ 1 в условной вершине - безусловный переход. На заключительном шаге микропрограммирования для формирования операционной и адресной частей микрокоманд используются полученные на предыдущих этапах коды микроопераций и коды логических условий, а также действительные адреса ячеек памяти МПЗУ.
3.3.6. Построение логической схемы МПА.
На основе обобщенных структурных схем принятого варианта МПА определяются параметры типовых функциональных узлов - регистров, шифраторов, дешифраторов, сумматоров, мультиплексоров и т.п. и определяются необходимые взаимосвязи между ними. Кроме того, выполняется синтез нетиповых узлов - обычно комбинационных схем с учетом заданной системы элементов. Содержание этого этапа, методы и средства его воплощения аналогичны тем, которые приведены в разделе 2.6.

Рисунок №3.6
|