Московский авиационный институт
(Государственный технический университет) «МАИ»
Факультет радиоэлектроники летательных аппаратов
Кафедра 403 «Электронно-вычислительные средства и информатика»
Расчётно-графическая работа по курсу
«Вычислительные системы и микропроцессорная техника»
Синтез комбинационных схем
Выполнил: студент гр. 04-427
Проверил: доцент
Москва, 2010 г.
Оглавление
1. Задание на проектирование………………………………………………..3
2. Уточнение задания…………………………………………………………4
3. Разработка схемы алгоритма и составление операционного описания..7
4. Составление операционного описания…………………………………...9
5. Разработка функциональной схемы устройства………………………..12
6. Построение управляющего автомата с жесткой логикой………………13
7. Сокращенная таблица переходов и выходов автомата Мили………….18
8. Построение УА с программируемой логикой…………………………..21
9. Структурная схема УА с естественной адресацией…………………….24
10. Список литературы…………………………...………………………….25
Задание на проектирование
Вариант №6
Даны два параллельных кода A{1:32} и B{1:32}. Сформировать коды номеров совпавших разрядов и подсчитать их количество.
Уточнение задания
Первоначальная формулировка задания выглядит следующим образом: даны два параллельных кода A{1:32} и B{1:32}. Сформировать коды номеров совпавших разрядов и подсчитать их количество.
Такая формулировка является явно недостаточной, задание требует дополнительной информации.
Примем, что источник входного кода гарантирует правильность выставленной информации во время действия стробирующего импульса СТРОБ, а само устройство подтверждает выдачу кода номеров совпавших разрядов и номера разрядов, в которых совпадают значения разрядов двух параллельных кодов кода A{1:32} и B{1:32}, генерацией импульсов считывания УСЧИТ_КОЛ и УСЧИТ_НОМ.
Будем считать, что смена кодов осуществляется по положительному фронту импульсов ГИ, длительность импульсов СТРОБ и УСЧ равны периоду тактовой последовательности и положительные фронты этих импульсов появляются вслед за положительным фронтом импульсов ГИ.
Далее определим разрядности выходных кодов. Выходной код НОМКОД{1:k} по заданию равен номерам кодов совпавших разрядов двух параллельных кодов A{1:32} и B{1:32}. Заметим, что наибольшим значением номера кода совпавшего разряда, который мы можем получить, является самый старший разряд равный 32, что потребует формирование шестиразрядного выходного кода НОМКОД{1:6}, так как (32)10=(100000)2, что потребует шестиразрядной шины.
Выходной код КОЛИЧ{1:k} по заданию равен количеству совпавших разрядов двух параллельных кодов A{1:32} и B{1:32}. Заметим, что в случае совпадений всех разрядов двух параллельных кодов, мы имеем максимальное количество совпавших разрядов равное 32, что потребует формирование шестиразрядного выходного кода КОЛИЧ{1:6}, так как (32)10=(100000)2 ,что потребует шестиразрядной выходной шины.
Итак, задание на проектирование может быть выражено в виде функциональной схемы и эпюр напряжения, изображенных на рис. 1. Входные данные приходящие по двум параллельным кодам сопровождаются управляющим сигналом СТРОБ (передний фронт сигнала СТРОБ совпадает с установившимися сигналами на шинах A и В). Выходные данные КОЛИЧ{1:6}, формируемые устройством, сопровождаются управляющим сигналом УСЧ_КОЛ, чтобы последующие устройства знали в какой момент времени необходимо считать результат работы нашего устройства. Выходные данные НОМКОД{1:6}, формируемые устройством, также сопровождаются управляющим сигналом УСЧИТ_НОМ (передний фронт сигнала УСЧИТ_НОМ совпадает с установившимся сигналом на шине НОМКОД). Считывание данных происходит по переднему фронту управляющих сигналов.


Разработка схемы алгоритма и составление операционного описания
Примем, что два параллельных кода А и В записываются в сдвигающий регистр РГД, который обеспечивает просмотр всех разрядов кодов А и В, начиная с первого. Это организуется засылкой в разряд РГД{1} значений разрядов РГД{2}, РГД{3} и т. д. путем сдвига кода регистра на один разряд влево. Будем подсчитывать число совпавших разрядов в счетчике количества СЧ_КОЛ{1:6}. Выходной код из счетчика СЧ_КОЛ{1:6} будем подавать на шину КОЛИЧ{1:6}. Номера разрядов, в которых произошло совпадение будем считать в счётчике номеров СЧ_НОМ{1:6}. Выходной код будем из счетчика СЧ_НОМ{1:6} подавать на шину НОМКОД{1:6}.
Работу устройства организуем следующим образом. В начале ожидаем прихода управляющего сигнала СТРОБ, как только СТРОБ пришел - обнулим содержимое счетчика единиц и запишем результат сложения по модулю два двух кодов А и В в РГД. В случае если РГД==0 завершаем процесс анализа. Проанализируем значение первого разряда регистра РГД (РГД {1:1}). Если он содержит единицу, то произведем счет числа комбинаций и подготовим устройство к работе в следующем цикле - сдвинем содержимое регистра РГД влево на один разряд, с записью в освободившийся разряд нуля, и увеличим содержимое счётчика номера разряда на единицу. Проверим, не равен ли РГД нулю. Если РГД равен 0, то закончим процесс, если нет - продолжим его для следующего разряда входного кода.
Завершение работы устройства связано с просмотром количества разрядов, что определяется появлением признака РГД==0.
Схема алгоритма преобразования изображена ниже.
Данный алгоритм может быть адаптирован в алгоритм функционирования операционного устройства, если его шаги будут выражены в терминах работы операционных элементов.
Составление операционного описания
МИКРОПРОГРАММА 1
ПЕРЕМЕННЫЕ
ВХОДНЫЕ: A {1:32}, B {1:32}, СТРОБ;
ВНУТРЕННИЕ: РГД {1:32}, СЧ_НОМ{1:6}, СЧ_КОЛ{1:6},
ГОТ;
ВЫХОДНЫЕ: КОЛИЧ{1:6}= СЧ_КОЛ{1:6}, НОМКОД{1:6}=
СЧ_НОМ{1:6}, УСЧ_НОМ, УСЧ_КОЛ, УГОТ;
ПРИЗНАКИ
Р1=
;
Р2= РГД{1:32}==0;
Р3=
;
УПРАВЛЯЮЩИЕ СИГНАЛЫ: УЗАП1, УЗАП2, УСЧ_НОМ, УСЛОЖ,
УСЧ_КОЛ, УГОТ, УН1, УН2, УСЧКОЛ, УСЧНОМ, УСДВ, ГОТ;
ПРОЦЕДУРА
УГОТ: ГОТ:=1
М1 ЕСЛИ Р1, ТО М1;
УСЛОЖ: РГД:=РГА mod2 РГВ;
УН1: СЧ_КОЛ:=0;
УН2: СЧ_НОМ:=0;
УСБР: ГОТ:=0;
М2 ЕСЛИ Р2, ТО М4;
ЕСЛИ Р3, ТО М3;
УСЧКОЛ: СЧ_КОЛ:=СЧ_КОЛ+1;
УСЧИТ_НОМ:;
М3 УСДВ: РГД:=РГД{2:48}.0;
УСЧНОМ: СЧ_НОМ= СЧ_НОМ+1;
ИДТИ К М2;
М4 УСЧИТ_КОЛ:;
УГОТ: ГОТ:=1;
КОНЕЦ.
Оптимизируем микропрограмму 1, путем обозначения эквивалентных сигналов: УЗП =УН1=УН2=УСБР;
УСДВ_СЧ=УСДВ= УСЧНОМ;
МИКРОПРОГРАММА 2
ПЕРЕМЕННЫЕ
ВХОДНЫЕ: A {1:32}, B {1:32}, СТРОБ;
ВНУТРЕННИЕ: РГД {1:32}, СЧ_НОМ{1:6}, СЧ_КОЛ{1:6},
ГОТ;
ВЫХОДНЫЕ: КОЛИЧ{1:6}= СЧ_КОЛ{1:6}, НОМКОД{1:6}=
СЧ_НОМ{1:6}, УСЧ_НОМ, УСЧ_КОЛ, ГОТ;
ПРИЗНАКИ
Р1=
;
Р2=
Р3=
;
УПРАВЛЯЮЩИЕ СИГНАЛЫ: УЗП1,УГОТ, УСЧИТ_НОМ,
УСДВ_СЧ, УСЧИТ_КОЛ;
ПРОЦЕДУРА
УГОТ:;
М1 ЕСЛИ Р1, ТО М1;
УЗП: СЧ_КОЛ:=0, СЧ_НОМ:=0, ГОТ:=0;
РГД:=А mod2 В;
М2 ЕСЛИ Р2, ТО М4;
ЕСЛИ Р3, ТО М3;
УСЧИТ_НОМ: СЧ_КОЛ:=СЧ_КОЛ+1;
М3 УСДВ_СЧ: РГД:=РГД{2:48}.0, СЧ_НОМ= СЧ_НОМ+1;
ИДТИ К М2;
М4 УСЧИТ_КОЛ: ;
УГОТ: ГОТ:=1;
КОНЕЦ.
Разработка функциональной схемы устройства.
Функциональная схема операционного автомата (ОА), составленная в соответствии с микропрограммой 2:

Устройство ГОТ устанавливает выходной сигнал УГОТ в положение 1 или 0 в зависимости от входного управляющего сигнала. Управляющий автомат генерирует управляющие сигналы сдвига УСДВ до момента появления признака обнуления Р2, после чего формирует импульсы считывания УСЧИТ_НОМ и УСЧИТ_КОЛ. Управляющий автомат может быть построен как с жесткой логикой, так и с программируемой логикой.
Построение управляющего автомата с жесткой логикой
Кодированная граф-схема алгоритма
Конечный автомат может быть построен и как автомат Мура, и как автомат Мили. Построение графов переходов и выходов УА осуществляется на основании отмеченных граф-схем алгоритмов. Выбор автомата Мура или Мили определяется минимальным числом состояний.
Автомат Мура
Отмеченная граф-схема алгоритма:
| |

|
|
|
|
|

|
|
|
|
|

|


![]() |
![]()
| ![]() | |
Автомат Мили
Отмеченная граф-схема алгоритма:
Граф переходов и выходов автомата Мили:
Можно сделать вывод, что управляющий автомат с жесткой логикой лучше строить как автомат Мили, т. к. он имеет только 3 состояния и реализуется на одном триггере. В качестве триггера будем использовать D-триггер.
Сокращенная таблица переходов и выходов автомата Мили.

Таблица кодирования внутренних состояний автомата:

Кодированная таблица переходов и выходов:

На основании кодированной таблицы переходов и выходов УА получим функции возбуждения D-триггера (все переходы распишем в 1 состояние):


Получим функции внешних переходов:


Получим выражения для управляющих сигналов:





Реализуем полученные выражения, построив схему на логических элементах И, ИЛИ, НЕ:

Построение УА с программируемой логикой
УА с естественной адресацией.
Каноническая форма микропрограммы функционирования синтезируемого ОУ:
Номер | Метка | Управляющие | Переходы |
0 | УГОТ | ||
1 | М1 | ЕСЛИ Р1, ТО М1 | |
2 | УЗП | ||
3 | М2 | ЕСЛИ Р2, ТО М4 | |
4 | ЕСЛИ Р3, ТО М3 | ||
5 | УСЧИТ_НОМ | ||
6 | М3 | УСДВ_СЧ | |
7 | ИДТИ К М2 | ||
8 | М4 | УСЧИТ_КОЛ, УГОТ | |
9 | КОНЕЦ |
Для построения УА нам потребуется 11 ячеек ПЗУ. Адрес ПЗУ будет выражаться четырехразрядным кодом А{3:0}.
Представим микрокоманду в следующем формате:
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0 | УГОТ | УЗП | УСЧИТ_НОМ | УСДВ_СЧ | УСЧИТ_КОЛ | - | - |
1 | Р1 | Р2 | Р3 | А3 | А2 | А1 | А0 |
Установим соответствие между метками и адресами переходов:
М1=110=00012, М2=310=00112, М3=610=01102, М4=810=10002
Построим кодовое выражение микропрограммы УУ:
Номер | Адрес | Разряды микрокоманд | ||
0 | 0000 | 0 | 100 | 0000 |
1 | 0001 | 1 | 100 | 0001 |
2 | 0010 | 0 | 010 | 0000 |
3 | 0011 | 1 | 010 | 1000 |
4 | 0100 | 1 | 001 | 0110 |
5 | 0101 | 0 | 001 | 0000 |
6 | 0110 | 0 | 000 | 1000 |
7 | 0111 | 1 | 000 | 0011 |
8 | 1000 | 0 | 100 | 0100 |
9 | 1001 | 1 | 000 | 0000 |
УА с принудительной адресацией.
Для принудительной адресации микрокоманда может одновременно содержать переходы и управляющие сигналы. Обратимся к канонической форме микропрограммы функционирования ОУ и выясним, возможны ли объединения строк. Здесь могут быть объединены строки 6 и 7, 8 и 9.
Номер | Метка | Управляющие | Переходы |
0 | УГОТ | ||
1 | М1 | ЕСЛИ Р1, ТО М1 | |
2 | УЗП | ||
3 | М2 | ЕСЛИ Р2, ТО М4 | |
4 | ЕСЛИ Р3, ТО М3 | ||
5 | УСЧИТ_НОМ | ||
6 | М3 | УСДВ_СЧ | ИДТИ К М2 |
7 | М4 | УСЧИТ_КОЛ, УГОТ | КОНЕЦ |
Установим соответствие между метками и адресами:
М1=110=00012, М2=310=00112, М3=610=01102, М4=710=01112
Формат микрокоманды в микропрограмме УА с принудительной адресацией выглядит так:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
УГОТ | УЗП | УСЧИТ_НОМ | УСДВ_СЧ | УСЧИТ_КОЛ | Р1 | Р2 | Р3 |
9 | 10 | 11 | 12 | ||||
А3 | А2 | А1 | А0 |
Кодовое выражение микропрограммы для управляющего автомата с принудительной адресацией строится аналогично микропрограмме автомата с естественной адресацией. При этом отсутствие в строке управляющих сигналов трансформируется в нулевой код операционного поля микрокоманды, а оператор перехода в безусловный переход к следующей команде.
Номер | Адрес | Разряды микрокоманд | ||
0 | 0000 | 10000 | 000 | 0001 |
1 | 0001 | 00000 | 100 | 0001 |
2 | 0010 | 01000 | 000 | 0011 |
3 | 0011 | 00000 | 010 | 0111 |
4 | 0100 | 00000 | 001 | 0110 |
5 | 0101 | 00100 | 000 | 0110 |
6 | 0110 | 00010 | 000 | 0011 |
7 | 0111 | 10001 | 000 | 0000 |
Сравнивая объем микропрограмм для УА с естественной и принудительной адресацией, можно убедиться в том, что естественная адресация требует меньшего объема ПЗУ (8х10=80 бит), чем принудительная (12х7=84 бит).
Структурная схема УА с естественной адресацией

Начальный адрес микропрограммы, равный 000, устанавливается сигналом СБРОС, и УА ждет прихода сигнала СТРОБ для прохождения работы. Здесь τ1 – это тактирующая последовательность, а τ2 – счетчик адреса СЧА.
Список литературы
1. Методические указания к курсовой работе по дисциплине «Вычислительные системы и микропроцессорная техника» – М.: «МАИ», 19c.: ил.
2. , Мельников вычислительные устройства. Операционный синтез. – М.: «МАИ», 19c.: ил.




