Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мой / Пояснительная.docx
Скачиваний:
31
Добавлен:
11.06.2015
Размер:
111.68 Кб
Скачать

2.4 Канонический метод структурного синтеза.

Основной задачей структурного синтеза автоматаявляется построение структурной схемы автомата на основе композиции автоматов, принадлежащих к заранее заданному конечному числу типов автоматов (структурному базису). Эта задача имеет решение не при всяком выборе системы элементарных автоматов. В том случае, когда она имеет решение, заданная система элементарных автоматов называетсяструктурно полной. В настоящее время нет сколько-нибудь эффективных методов решения основной задачи структурного синтеза при любом выборе структурно полных систем элементарных автоматов.

Канонический метод структурного синтезаоперирует с элементарными автоматами, разделяющимися на следующие два класса: элементарные автоматы с памятью (то есть автоматы, имеющие более одного внутреннего состояния) –элементы памятиилизапоминающие элементы; автоматы без памяти (с одним внутренним состоянием) –комбинационные, илилогические элементы.

Результатом композиции логических элементов являются автоматы без памяти – комбинационные схемы. Комбинационная схема характеризуется векторной функцией выходов, устанавливающей зависимость выходного сигналаy(x)от входного сигналаx(t)в один и тот же момент автоматного времени:y(t)=λ(x(t)). Основнаязадача структурного синтеза комбинационных схемзаключается в построении автомата без памяти, имеющего заданную векторную функцию выходов, на основе композиции логических элементов из заданной системы логических элементов.

Не всякая композиция автоматов, и в том числе, не всякая не всякая комбинационная схема может рассматриваться как структурная схема некоторого автомата. В случае, когда такое рассмотрение оказывается возможным, соответствующая комбинационная схема называется корректно построенной. К числу корректно построенных комбинационных схем относятся т. н. правильные комбинационные схемы. Правильной комбинационной схемой называют комбинационную схему без петель, у которой к каждому узлу, отличному от входных полюсов схемы, подсоединен точно один выходной канал какого-либо логического элемента или точно один входной полюс; выходные каналы логических элементов не подсоединены ни к одному из входных полюсов.

Не при всяком выборе системы логических элементов задача структурного синтеза имеет решение. Система логических элементов называется функционально полной, если существует общий конструктивный прием, позволяющий строить из логических элементов заданной системы корректные комбинационные схемы, имеющие любые наперед заданные выходные функции.

Справедлива следующая теорема о функциональной полноте:

Для того, чтобы система S булевых функций была функционально полной, необходимо и достаточно, чтобы эта система содержала хотя бы одну функцию, не сохраняющую константу 0, хотя бы одну функцию, не сохраняющую константу 1, хотя бы одну несамодвойственную функцию, хотя бы одну нелинейную функцию и хотя бы одну немонотонную функцию.

Таким образом, система логических элементов И-ИЛИ-НЕ является функционально полной.

При каноническом методе структурного синтеза в качестве запоминающих элементов выбираются автоматы Мура, обладающие полной системой переходов и полной системой выходов.

Полнота системы переходовавтомата означает, что для всякой упорядоченной пары состояний этого автомата найдется входной сигнал, переводящий первый элемент этой пары во второй. Иначе говоря, еслиδ(a,x)– функция переходов автомата, то для полноты системы переходов в этом автомате необходимо и достаточно, чтобы для любой пары(a,b)его состояний уравнениеb=δ(a,x)было бы разрешимым относительно входного сигналаx. Полнота системы переходов гарантирует корректность записи в память автомата.

Полнота системы выходовв автомате Мура означает, что каждому состоянию автомата соответствует свой собственный выходной сигнал, отличный от выходного сигнала, соответствующего любому другому состоянию. Иначе говоря, для полноты системы выходов автомата Мура необходимо и достаточно, чтобы его сдвинутая функция выходовy=λ(a)осуществляла взаимно однозначное отображение множества состояний автомата на множество всех его выходных сигналов. Полнота системы выходов гарантирует корректность считывания из памяти.

Справедлива следующая теорема о структурной полноте:

Всякая система элементарных автоматов, которая содержит автомат Мура с нетривиальной памятью, обладающий полной системой переходов и полной системой выходов, и какую-нибудь функционально полную систему логических элементов, является структурно полной системой. Существует общий конструктивный прием (канонический метод структурного синтеза), позволяющий в этом случае свести задачу структурного синтеза произвольных конечных автоматов к задаче структурного синтеза комбинационных схем.

Структурная схема всякого автомата, синтезированного в соответствии с каноническим методом структурного синтеза, имеет вид, изображенный на рис. 2.

Комбинационная часть автомата описывается канонической системой логических уравнений:

функция выходовавтомата. Для автомата Мили, для автомата Мура. Функция выходов реализуется схемой выходов.

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

Схема выходов и схема обратных связей образуют комбинационную часть автомата.

  1. Неформальное описание алгоритма

Операция умножения относится к классу «длинных» операций, выполняемых за большое число тактов. С целью ускорения процесса умножения используются алгоритмические методы, основанные на формировании частичных произведений, получаемых умножением множимого на группу, состоящую из k соседних разрядов. При k=2 частичные произведения вычисляются следующим образом. Пара разрядов bi+1bi+2множителя может иметь значения 00, 01, 10, 11. Первым трем наборам соответствуют частичные произведения 0, A, 2A (A – множимое). Набор 11 можно рассматривать в виде 11=100-1, и обрабатывать его следующим образом: запомнить единицу переноса в следующую пару разрядов, и считать частичное произведение равным –A. Если на предыдущем шаге был перенос, то к очередной паре обрабатываемых разрядов прибавляется 1. Таким образом алгоритм анализа множителей можно представить в виде следующей таблицы:

p0

bi+1bi+2

ЧП

p1

0

0 0

0

0

0

0 1

A

0

0

1 0

2A

0

0

1 1

-A

1

1

0 0

A

0

1

0 1

2A

0

1

1 0

-A

1

1

1 1

0

1

Здесь p0– первоначальное значение флага переноса, bi+1bi+2– анализируемая пара разрядов, ЧП – значение частичного произведения, p1– новое значение флага переноса.

Пусть IA(0:15) – множимое, IB(0:15) – множитель, OC(0:15) – результат умножения.

Для хранения сумм частичных произведений выделяется слово C, разрядность которого равна удвоенной разрядности операндов плюс дополнительный разряд переполнения, т. е. всего 33 разряда. Необходимость удвоения разрядности связана с особенностью сложения чисел в дополнительном коде. При циклическом сложении единица переноса из старшего знакового разряда прибавляется к младшему цифровому разряду результата. При отбрасывании младших разрядов суммы частичных произведений может появиться погрешность, равная единице младшего разряда, поэтому младшие разряды необходимо учитывать при сложении. Введение дополнительного разряда переполнения связано с особенностью ускоренного метода сложения: сумма частичных произведений, получаемая в момент увеличения ее на удвоенное значение множимого, может содержать (n+2) цифровых разряда (где n – число цифровых разрядов операндов, в нашем случае n=30). Поскольку сумма может иметь отрицательный знак, для хранения и формирования которого необходим дополнительный разряд, сумма частичных произведений должен иметь не менее (n+3) разрядов, т. е. в данном случае 33 разряда.

Введём обозначения:

Условимся обозначать порядок нумерации (старшинство) разрядов слева направо от 0 до k. A(m:n) – слово А, где m – номер младшего разряда слова, n – номер старшего разряда.. А(x) означает x-ый разряд слова.

! – логическая операция отрицания;

* – логическая операция И

 – логическая операция ИЛИ

+ – операция циклического сложения;

. – операция конкатенации;

A(0,32):=IA(0).IA.0.....0; //мод. мантисса - 2 старших разряда - знаковые

B(0,15):=IB; //обыч. мантисса - старший разряд - знаковый

C(0,32):=0; //мод. мантисса

T(0,3):=0; //беззнаковый счетчик

P(0):=0; //единица перехода

while(T!=7){

if((!B(14)*B(15)*!P(0))v(!B(14)*!B(15)*P(0))){

C:=C+A;

P(0):=0;

}

else if((B(14)*!B(15)*!P(0))v(!B(14)*B(15)*P(0))){

C:=C+A(0).A(1).A(3,32).0;

P(0):=0;

}

else if((B(14)*B(15)*!P(0))v(B(14)*!B(15)*P(0))){

C:=C+!A;

P(0):=1;

}

else if(B(14)*B(15)*P(0)){

P(0):=1;

}

C:=С(0).C(0).C(1).C(1).C(2,30);//сдвиг вправо на 2 разряда, знаковые разряды не двигаются

B:=0.0.B(0,13);//сдвиг вправо на 2 разряда

T++;

}

//теперь B(14) - знак, B(15)- старший разряд, в зависимости от знака добавляется поправка !A

if((!B(14)*!B(15)*P(0))v(!B(14)*B(15)*!P(0))){

C:=C+A;

}

if(!B(14)*B(15)*P(0)){

C:=C+A(0).A(1).A(3,32).0;

}

if(B(14)*!B(15)*!P(0)){

C:=C+!A;

}

if(C(0)^C(1)){

C:=C(0).C(0,31);

}

while(!(C(1)^C(2))){

C:=C(0).C(1).C(3,32).0;

}

OC:=C(1,16);

  1. Функция операционного устройства

Функция ОУ задается тройкой множеств {D,F,R} (см. п. 2.1). Для записи микропрограммы используем язык функционального микропрограммирования. D и R (множество входных и выходных слов) определяем таблицей спецификации слов, а F (множество операций) зададим СГСА.

Соседние файлы в папке Мой