
- •Раздел I синтез дискретнх устройств.
- •Глава I
- •I.I.Задачи и последовательность синтеза комбинационных
- •1.2 Абстрактный синтез комбинационных дискретных устройств.
- •1.3. Структурный синтез бесконтактных комбинационных ду.
- •1.4. Построение функциональных схем дискретных устройств на бесконтактных логических элементах.
- •Глава 2
- •2.1. Общая характеристика типовых
- •2.2. Сумматоры.
- •2.3. Универсальные логические модули
- •Глава3.
- •3.1. Задачи и последовательность синтеза
- •3.2. Построение и минимизация первичной
- •3.3. Построение реализуемой таблицы переходов
- •3.4. Построение таблиц переходов-выходов и возбуждений.
- •3.5 Получение условий работы синтезируемого
- •3.6 Структурный синтез дискретных устройств с памятью
- •Раздел II
- •4.2. Структурная схема микропрограммного устройства (автомата).
- •Глава 5.
- •5.1 Методы и этапы синтеза микропрограммных устройств.
- •5.2. Получение математической модели микропрограммных устройств в виде гса, лса и мса.
- •5.3. Последовательность решения задачи синтеза микропрограммных устройств упрощенным косвенным интерпретационным методом по гса
- •5.4 Построение отмеченной граф-схемы алгоритма
- •5.6. Построение обобщенной таблицы возбуждений и выходов микропрограммного устройства и получение
5.6. Построение обобщенной таблицы возбуждений и выходов микропрограммного устройства и получение
функций возбуждения и выходов МПУ.
После кодирования состояний памяти МПУ необходимо построить обобщенную таблицу возбуждений и выходов. Таблица строится на основе графа переходов и таблицы входов выбранного элемента памяти.
Таблица содержит строки по числу всех возможных переходов МПУ, отраженных на графе переходов, и столбцы. Количество столбцов задающей части таблицы равно суммарному числу элементов памяти и входных сигналов. Количество столбцов исполнительной части таблицы равно суммарному числу входов элементов памяти и выходов МПУ плюс число элементов памяти. Таблица является обобщенной, так как в нее вносятся не все возможные состояния элементов памяти и входных сигналов, а только те, которые имеют место при переходах МПУ. Остальные состояния в таблицу не вносятся и считаются условными.
Обобщенная таблица возбуждений и выходов МПУ совмещает свойства таблиц возбуждения элементов памяти и переходов-выходов. Для заполнения таблицы необходимо на графе переходов рассмотреть, начиная с начальной вершины, все возможные переходы. В каждую строку обобщенной таблицы возбуждений и выходов заносятся в задающую часть исходное состояние элементов памяти (код вершины) и значение входных сигналов, под влиянием которых происходит переход.
В столбцы исполнительной части каждой строки записывают состояния элементов памяти в t+1 такте (куда идет переход), значения входов элементов памяти, которые необходимы для осуществления данного перехода, взяты из таблицы входов элементов памяти, и значения выходных сигналов на данном переходе.
Построим обобщенную таблицу возбуждений и выходов для примера 2. Граф переходов изображен на рис. 5.12. В качестве элемента памяти примем IK-триггер, таблица входов которого представлена в виде табл. 5.1. Граф имеет всего 7 различных переходов, значит, таблица должна содержать 7 строк.
МПУ содержит 2 элемента памяти – у1 у2, 3 входных сигнала – х1, х2, х3и 3 входных сигнала –z1,z2,z3. Значит, задающая часть таблицы должна содержать пять столбцов – у2, у1, х3, х2, х1, а исполнительная часть должна содержать 9 столбцов – у2(t+1),y1(t+1),I2,K2,I1,K1,z3,z2,z1.
Таблица 5.1
y(t) |
y(t+1) | |
0 |
1 | |
0 |
0~ |
1~ |
1 |
~1 |
~0 |
Рассмотрим начальную вершинуY0графа переходов. Из нее идет 3 перехода: один – в вершинуY1и два – в вершинуY2. Переход в вершинуY1происходит при подаче входных сигналов *х2(т.е. х1= 0, х2= 1); при переходе возбуждается выходz2(т.е. выходные сигналы равныz3= 0,z2= 1,z1= 0) и
МПУ переходит из состояния памяти 00 (у2= 0, у1= 0) в состояние 01 (у2= 0, у1= 1). По таблице входовIK–триггера определяем, что для перехода элемента памяти у2из состояния 0 в состояние 0 на него должны быть поданы сигналы 0 ~ (I2= 0,K2= ~), а для перехода элемента памяти у1из состояния 0 в состояние 1 должны быть поданы сигналыI~ (I1= 1,K1= ~).
Вся эта информация заносится в первую строку обобщенной таблицы возбуждений и выходов. В пустых клетках задающей части таблицы проставляем тире.
Аналогичным образом рассматриваем все переходы из всех вершин графа переходов и заполняем все строки таблицы.
Полученная таким образом обобщенная таблица возбуждений и выходов представлена в виде табл. 5.2.
Таблица 5.2.
y2 |
y1 |
x3 |
x2 |
x1 |
y2(t+1) |
y1(t+1) |
J2 |
K2 |
J1 |
K1 |
Z3 |
Z2 |
Z1 |
0 |
0 |
-- |
1 |
0 |
0 |
1 |
0 |
~ |
1 |
~ |
0 |
1 |
0 |
0 |
0 |
-- |
-- |
1 |
1 |
0 |
1 |
~ |
0 |
~ |
0 |
1 |
1 |
0 |
0 |
-- |
0 |
0 |
1 |
0 |
1 |
~ |
0 |
~ |
1 |
1 |
1 |
0 |
1 |
-- |
-- |
1 |
0 |
0 |
0 |
~ |
~ |
1 |
0 |
1 |
1 |
0 |
1 |
-- |
-- |
0 |
1 |
0 |
1 |
~ |
~ |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
-- |
-- |
0 |
1 |
~ |
1 |
1 |
~ |
0 |
1 |
0 |
1 |
0 |
0 |
-- |
-- |
0 |
0 |
~ |
1 |
0 |
~ |
1 |
0 |
0 |
Запись значений переменных в задающий части таблицы образует при данной базе обобщенный код (СК) данной строки.
Например, первая строка (база y2 у1 х3х2 х1) имеет ОК 00-I0, вторая строка имеет ОК 00--Iи т.д.
Таким образом, для каждой переменной исполнительной части таблицы можно записать условия работы (логическую функцию) в виде наборов рабочих и запрещенных, обобщенных кодов. Затем, произведя минимизацию методом поразрядного сравнения ОК можно получить минимальную форму логических функций выходов и возбуждения элементов памяти.
Если символы "-" в ОК заменить переборами значений переменных этих разрядов, то получим полный набор состояний, отвечающих данной строке. Перейдя от двоичного кода к восьмеричному, можно получить набор весовых состояний, соответствующих данной строке при выбранной базе. Например, для первой строки: 00-10=00010v00110=02v06; для второй строки: 00—1=
=00001v00011v00101v00111=01v03v05v07.
Тогда минимизации логических функций можно проводить методом наглядного сравнения рабочих и запрещенных весовых состояний.
Проведем минимизацию функции I2. Для этого выпишем из обобщенной таблицы возбуждений и выходов рабочие и запрещенные обобщенные коды, расположив их группами – табл. 5.3.
Таблица 5.3
y2 |
y1 |
x3 |
x2 |
x1 |
J2 |
0 |
[0] |
-- |
-- |
[1] |
1 |
0 |
[0] |
-- |
[0] |
0 |
1 |
0 |
[1] |
-- |
-- |
[0] |
1 |
0 |
0 |
-- |
1 |
0 |
0 |
0 |
1 |
-- |
-- |
1 |
0 |
Сравниваем первый рабочий ОК с запрещенными. Видим, что для отличия от первого запрещенного ОК надо сохранить "I" в разряде х1, а для отличия от второго запрещенного ОК надо сохранить "0" в разряде у1. Обведем их "квадратиками". Значит, из первого рабочего ОК образовался результирующий ОК – 0- -1. Сравнивая второй рабочий ОК с запрещенными, получаем результирующий код – 0 – 0-, а сравнивая третий, получаем – 1 - - 0.
Итак, получили:
J2(y2y1x3x2x1) = (- 0 - - 1)v(- 0 – 0 -)v(- 1 - - 0) =
Аналогичным образом минимизируются и остальные функции исполнительной части обобщенной таблицы возбуждений и выходов. Однако при небольшом числе строк обобщенной таблицы нет необходимости для каждой функции выписывать отдельно все рабочие и запрещенные обобщенные коды. Целесообразно минимизацию функций делать прямо по обобщенной таблице возбуждений и выходов.
Проведя минимизация, получим результирующие коды и алгебраические выражения для всех функций исполнительной части обобщенной таблицы:
К2=1 (запрещенных состояний нет);
К1=1 (запрещенных состояний нет);
Таким образом, в результате минимизации получили логические функции возбуждения элементов памяти (регистра микрокоманд) и выходов (команд управления):
По полученным логическим функциям необходимо построить функциональную схему МПУ.
Построение функциональных схем узлов, реализующих функции возбуждения и функции выходов, в несложных случаях можно проводить обычными способами.
Однако для реальных МПУ системы логических функций возбуждения и выходов содержат десятки и сотни функций, зависящих от десятков и сотен переменных. В связи с этим при построении функциональных схем МПУ надо широко применять методы, позволяющие упростить схемы, - совместную реализацию функций возбуждения и выходов, выявление общих элементов, вынесение за скобки общих частей конъюнкции и т.д.
Имеются и специфичные методы упрощения функциональных схем МПУ, которые применяются в зависимости от конкретных условий решаемой задачи. К этим методам можно отнести раздельное формирование функций возбуждения и выходов, объединенное формирование этих функций, использование дешифратора и преддешифратора и т.д. Мы эти методы не рассматриваем.
Заметим, что не всегда синтезируемый автомат точно укладывается в схему Уилкса. Однако можно указать, что память – это регистр (запоминающее устройство) микрокоманд; схема возбуждения элементов памяти – это формирователь адреса микрокоманд, а схема формирования выходов – это формирователь команд управления.
Если в качестве элементов памяти применяются задержки (Д-триггеры), то вместо функций возбуждения элементов памяти следует получать функции у (t+1). Тогда получим для нашего примера:
Построим схему такого МПУ с памятью на задержках на ПЛМ:
При построении схемы на ПЛМ с обратными связями (память на задержках) не нужно приводить функции к виду, удобному для построения схемы на элементах И-НЕ, строим ПЛМ сразу по ДНФ.
Можно даже не производить минимизацию ЛФ, брать сразу дизъюнкции конъюнкций ОК. Однако в этом случае потребуется большее количество вертикальных шин в матрице. Так, для Z2в случае минимизации потребовалось 2 вертикальные шины, а без минимизации понадобилось бы 6 вертикальных шин.