Главная              Рефераты - Разное

Учебное пособие: Методические указания Пенза 1997 удк 681 06

Министерство общего и профессионального образования Российской Федерации

Пензенский государственный технический университет

-----------------------------------

Н.П.Вашкевич, А.П.Захаров


Проектирование и моделирование микропрограммных цифровых устройств

Методические указания

Пенза 1997


УДК 681.3.06

П 79

Рассмотрены методы проектирования цифровых устройств, выполняющихоперации с плавающей точкой, а также проектирование и моделирование микропрограммных устройств управления с жесткой и программируемой логикой. Моделирование выполняется с использованием пакета PCAD на ПЭВМ типа IBM PC.

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

Рецензент Р.А.Бикташев, канд. техн. наук, зав. кафедрой ”Вычислительные машины и системы” Пензенского. технологического ин-та.


Содержание

Введение...........................................................................................................

1. Операционные автоматы..........................................................................

1.1. Операционный автомат с непосредственными связями.....................

1.2. Микрооперации, реализуемые в операционном автомате с непосредственными связями.........................................................................

1.3 Операционный автомат с магистральной структурой.......................

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

3. Микропрограммный управляющий автомат с программируемой логикой

3.1. Моделирование микропрограммного устройства с программируемой логикой..........................................................................................................

4. Микропрограммный управляющий автомат с жесткой логикой..........

4.1. Абстрактный синтез управляющего автомата..................................

4.2. Структурный синтез управляющего автомата..................................

4.3. Моделирование управляющего автомата с жесткой логикой..........

5. Создание БИС управляющего автомата.................................................

Библиографический список...........................................................................


Введение

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

Данные методические указания закладывают основу для создания высокопроизводительных вычислительных систем использующих опе-рации с плавающей точкой, а также определяют методику проекти-рования микропрограммных устройств управления с жесткой и про-граммируемой логикой. Излагаемая методика поддерживается разра-ботанной на базе пакета PCAD системой моделирования, позволяющей оценить работоспособность и эффективность устройств управления, реализованных как на основе микропрограммы записанной в ПЗУ, так и реализованных аппаратно на элементах цифровой логики.

1. Операционные автоматы

На рис. 1 приведена классификация операционных автоматов.

Рис. 1 Классификация операционных автоматов

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

1.1. Операционный автомат с непосредственными связями

Для иллюстрации принципов выполнения основных микроопераций (МО), необходимых для реализации арифметических операций над двоичными числами, представленными в различных кодах с фиксированной и плавающей точкой, в работе используется упрощенная структура операционного автомата (ОА), имеющая минимальное число функциональных узлов. Для подобной структуры ОА рассматриваются условия выполнения микроопераций, их представление в операторах присваивания и состав осведомительных сигналов (признаков), которые могут возникнуть при выполнении конкретных микроопераций. Такая информация о микрооперациях и их реализации позволит значительно упростить разработку алгоритмов выполнения заданного набора макроопераций для конкретной заданной структуры операционного автомата.

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

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

Одноразрядный регистр РС предназначен для хранения переноса из старшего разряда СМ. Под действием управляющих сигналов в регистрах ОА могут выполняться операции записи и сдвига информации, а также приведение регистров в нулевое состояние. Предполагается, что записываемая в регистры ОА информация поступает из ОЗУ через соответствующую магистраль. На рис. ב введены следующие сокращенные обозначения для исходных чисел, записываемых в регистры ОА перед выполнением арифметических операций:

· Хcл.1, Усл.2 - первое и второе слагаемые;

· Хмн-е, Умн-ль , Уд-ль - множимое, множитель и делитель;

· Xд.ст., Xд.мл. - старшая и младшая часть делимого.

Для выполнения операции умножения и деления в ОА используется счетчик тактов СчТ, в который перед соответствующими операциями заносится число тактов, равное числу разрядов в множителе или частном.

Так как структура ОА для выполнения арифметических операций над числами с фиксированной точкой и структура ОА для операций над мантиссами чисел с плавающей точкой ничем не отличаются друг от друга, за исключением необходимости сдвига информации в регистре Р1 для чисел с плавающей точкой, то в дальнейшем все записи микроопераций для чисел с плавающей точкой, представленные в операторах присваивания, будут иметь индекс ”м” для мантисс и индекс ”p” для порядков.

Структура ОА для операций с порядками двоичных чисел с плавающей точкой представлена на рис. 3. Эта структура является упрощенной копией структуры ОА, представленной на рис. ב. Обозначениям отдельных составляющих структуры ОА для действий над порядками чисел присвоен индекс ”p”. Максимальное и минимальное значения допустимых порядков для чисел с плавающей точкой имеют вид:

· для ”классического” формата чисел с плавающей точкой Pmax.доп.=+(2m - 1), Pmin.доп.=-(2m - 1);

· для формата в стандарте ”короткий вещественный” (КВ)

Pmax.доп.=127, Pmin.доп.= -126.

В структуры ОА (см. рис. 2, 3) входят также узлы формирования признаков осведомительных сигналов с соответствующими регистрами признаков РП.

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

1.1.1. Перечень используемых осведомительных сигналов и сокращенных обозначений

С - сигнал переноса из старшего разряда основного сумматора. C=1, при единичном значении переноса, иначе C=0.

П - сигнал переноса в старший разряд основного сумматора. П=1 при единичном значении переноса, иначе П=0.

V - сигнал переполнения в основном сумматоре. V=1, если в результате операции происходит переполнение разрядной сетки основного сумматора, иначе V=0.

S - признак знака числа в РСМ. S=1, если старший разряд результата операции равен 1, иначе S=0.

Z - сигнал нуля. Z=1 при нулевом значении результата операции, иначе Z=0.

ОV- cигнал переполнения порядка числа. OV=1, если в результате операции происходит переполнение разрядной сетки сумматора порядков, иначе OV=0.

Un - сигнал антипереполнения порядка числа. Un=1, если порядок результата операции над порядками стал меньше минимально допустимой величины, иначе Vn=0.

HR - сигнал нарушения нормализации вправо. HR=1, если значения кодов цифр в знаковом разряде и в старшем разряде после запятой совпадают, иначе HR=0.

x0 - код знака делимого (множимого, уменьшаемого).

y0 - код знака делителя (множителя, вычитаемого).

z0 - код знака результата арифметических операций.

z1 - код цифры первого разряда результата операции в сумматоре.

РСМ(0)1 - значение нулевого разряда РСМ после первого пробного вычитания(сложения).

1.2. Микрооперации, реализуемые в операционном автомате с непосредственными связями

Сведения о микрооперациях и принципах их выполнения (в операционном автомате) при реализации отдельных арифметических операций, представлены в виде таблиц (1-6).

Таблица 1

Сложение и вычитание чисел с фиксированной точкой

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваивания

Признаки, вырабатывае­мые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры ОА:

- числа в дополнительном коде

РСМ:=|х|2 Р1:=|y|2;

- модули исходных чисел

РСМ:=|х| Р1:=|y|

Запись модулей исходных чисел производится для организации сложения и вычитания чисел без знака, поэтому в знаковом разряде регистров устанавливаются нули

2

Сложение и вычитание исходных чисел в дополни­тельном коде:

- сложение целых чисел и простых дробей

РСМ:= РСМ+Р1;

- вычитание целых чисел и простых дробей

Сигнал переполнения разрядной сетки сумматора определяется по формуле

.

При V=1 фиксируется пе­реполнение. Единица, пред­ставляющая младший раз­ряд имеет вес: для целых - 20, для простых дробей - 2-n


Продолжение табл.1

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваивания

Признаки,вырабатываемые в результате выполнения МО и комментарии


3

Сложение и вычитание исходных чисел без знака по модулю ( для целых по модулю 2n, для простых дробей по модулю 20):

- сложение целых чисел и простых дробей

РСМ:=РСМ+Р1;

- вычитание целых чисел и простых дробей

Сигнал переполнения разрядной сетки опреде­ляется как в п. 2. При V=0 знак регистра сумматора определяет знак результата:

- при РСМ(0)=0 результат положительный;

- при РСМ(0)=1 результат отрицательный и представлен в виде дополнения до модуля (2n или 20)

4

Получение отрицательного результата в прямом виде:

- для целых чисел и простых дробей

См. комментарий в п.2

Таблица 2

Сложение и вычитание чисел с плавающей точкой

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваивания

Признаки, вырабатываемые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры мантисс и порядков ОА:

РСМм:=[Mx]2;

Р1м:=[My]2;

РСМp:=[Рx]2;

Р1p:=[Рy]2

Исходные числа представ­лены в дополнительном коде

2

Вычитание порядков исход­ных чисел:

Px - Py=k;

При Px - Py=0 выпол­няется сложение или вычитание мантисс без их денормализации.

При Px - Py>0 произво­дится денормализация ман­тиссы My.

При Px-Py<0 производится денормализация мантиссы Mx


Продолжение табл.2

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки,вырабатываемые в результате выполнения МО и комментарии

3

Завершение операции сло­жения или вычитания при

Px - Py > Pmax.доп. и

Px - Py < Pmin.доп. :

- при Px - Py > Pmax.доп. результату операции z присваи­вается значение слагаемого x

Mz := Mx, Pz = Px;

- при Px - Py < Pmin.доп. результату операции z присваи­вается значение слагаемого y

Mz = My, Pz = Py

При сдвиге мантиссы My или Mx вправо при выравнивании порядков она выйдет за пределы разрядной сетки, поэтому результат сложения или вычитания будет равен тому слагаемому, мантисса которого не должна сдвигаться. Для первого условия значения кодов в РСМм и РСМp не изменяются. Для второго условия после сброса регистров РСМм и РСМp в нуль выполняются операции

РСМм := РСМм + Р1м ;

РСМp := РСМp + Р1p

4

Сложение или вычитание мантисс при Px - Py = 0

Mz=Mx+ My;

РСМм:=РСМм+Р1м;

При V=1 возникает нарушение нормализации влево.

При z0=z1 возникает нарушение нормализации вправо и вырабатывается сигнал HR=1

Продолжение табл. 2

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки,вырабатываемые в результате выполнения МО и комментарии

5

Денормализация слагаемого y. При Px-Py>0 мантисса My сдвигается вправо на k разрядов M¢y:=ARS(My,k).

Для реализации k сдвигов в СчТ заносится величина k = Px - Py, СчТ:= РСМp. После каждого сдвига мантиссы My вправо Р1м := ARS(Р1м,1), из СчТ вычитается единица СчТ := CчТ - 1

Результату сложения (вы­читания) присваивается по­рядок первого слагаемого Pz = Px. В связи с этим после занесения в СчТ величины k порядок Px в РСМp восстанавливается пу­тем выполнения операций:

Px - Py + Py = Px,

РСМp := РСМp + Р1p

Продолжение табл. 2

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки,вырабатываемые в результате выполнения МО и комментарии

6

Денормализация слагаемого x. При Px-Py<0 мантисса Mx сдвигается вправо на k разрядов M¢x:=ARS(Mx,k).

Для реализации k сдвигов в СчТ заносится величина k = Px - Py , CчТ : =РСМp. После каждого сдвига мантиссы Mx вправо, РСМм := ARS(РСМм,1) в СчТ прибавляется единица, т.к. величина k отрицательная, СчТ := СчТ + 1

Результату сложения (вы­читания) присваивается по­рядок второго слагаемого Pz = Py. В связи с этим в РСМp заносится Py путем выполнения операций:

РСМp := 0;

РСМp := РСМp + Р1p

7

Сложение или вычитание мантисс слагаемых после денормализации одной из них

Mz=M¢x+ M¢y;

РСМм:=РСМм+Р1м;

Признаки формируются в соответствии с п.4. M¢x и M¢y - мантиссы слагаемых после их денормализации

Продолжение табл. 2

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваивания

Признаки,вырабатываемые в результате выполнения МО и комментарии

8

Нормализация мантиссы результата Mz вправо при V=1 и коррекция его порядка:

Pz:=Pz+1;

РСМм:=ARS(РСМ,1);

РСМp:=РСМp+1

Возможны особые случаи:

- при Pz>Pmax.доп. вырабатывается сигнал пере­полнения порядка OV=1;

- при Pz<Pmin.доп. вырабатывается сигнал антипереполнения порядка Uп=1


9

Нормализация мантиссы результата Mz влево при HR=1 и коррекция его порядка:

Pz:=Pz-i;

РСМм := ALS(РСМм,i);

РСМp := РСМp-1

Возможны особые случаи как в п.8.

Вычитание константы i из порядка результата осуще­ствляется за i тактов: в каждом такте вычитается по единице; такты вычитания выполняются до тех пор, пока сигнал HR не станет равным нулю

Таблица 3

Умножение чисел с фиксированной точкой

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры ОА:

- числа в прямом коде (модули чисел)

Р1:=|x|, Р2:=|y|;

- числа в дополнительном коде

Р1:=[x]2, Р2:=[y]2

Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули

2

Проверка исходных чисел на нуль

В результате проверки на нуль при x=0 или y=0 вырабатывается сигнал нулевого результата

3

Установка регистров РС и РСМ в нуль:

РС:=0;

РСМ:=0

Установка регистров РС и РСМ в нуль связана с тем, что в первом такте умножения осуществляется сложение множимого с нулем

4

Запись в счетчик тактов числа тактов умножения

СчТ:=n


Продолжение табл. 3

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

5

Определение кода знака произведения и его запись в регистр произведения:

- для чисел в прямом коде код знака частного определяется по формуле

z0=x0 Å y0 и заносится в разряд знака регистра РСМ после выполнения тактов умножения

РСМ(0):=z0 ;

- для чисел в дополнительном коде код знака частичного и окончательного произведения формируется после очередного сдвига по формуле

Для чисел в дополни­тельном коде код знака частичного и окончательного произведений формируется автоматически после каждого арифметического сдвига вправо и корректируется при переполнении в сумматоре: при V=1 код знака РСМ(0) меняется на обратный


Продолжение табл. 3

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

6

Сложение в сумматоре для чисел в прямом и дополните­льном коде производится в каждом такте умножения, если очередная цифра множителя равна единице РСМ:=РСМ+Р1 при Р2(n)=1

Для чисел в дополни­тельном коде после каждого сложения определяется сигнал переполнения в сумматоре, по которому корректируется код знака в регистре РСМ после очередного сдвига (см.п.5)

7

Сдвиг вправо в регистрах РС, РСМ и Р2 производится:

- в каждом такте умножения после сложения в сумматоре или при наличии очередной цифры множителя, равной нулю

РСМ:=ARS (РСМ,1);

Р2:=RS (Р2,1);

- в конце тактов умножения для целых чисел в дополни­тельном коде, если в Р2 был записан множитель со знаком: (n+1)-й сдвиг

Сдвиг вправо в регистрах РСМ и Р2 арифметический для чисел в дополнительном коде. После каждого сдвига значение кода знака в РСМ(0) корректируется (см. п.5).

Дополнительный (n+1)-й сдвиг обеспечивает для целых чисел установку произведения в регистрах РСМ и Р2 так, чтобы в n-м разряде регистра Р2 был зафиксирован его младший разряд. Для простых дробей (n+1)-й сдвиг не производится


Продолжение табл. 3

№ п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

8

Вычитание из счетчика тактов единицы

СчТ:=СчТ-1

Вычитание единицы из счет-чика тактов выполняется после каждого такта умно-жения

Признаки вырабатываемые в результате выполнения МО и комментарии

9

Коррекция произведения для чисел в дополнительном коде производится для отрицательного множителя после n-го сдвига путем вычитания из суммы частич­ных произведений величины [x]2 2n

Такая коррекция возникает в связи с представлением отрицательного множителя в дополнительном коде

Таблица 4

Умножение чисел с плавающей точкой

№п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры:

- числа в прямом коде

Р1м:=|Mx| Р2м:=|My|;

РСМp:=|Px|2 Р1n:=|Py|2 ;

- числа в дополнительном коде

Р1м:=[Mx]2 Р2м:=[My]2;

РСМp:=[Px]2;

Р1p:= [Py]2

Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули

Продолжение табл. 4

№п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

2

Проверка исходных чисел на нуль

Осуществляется так же как и для чисел с фиксированной точкой

3

Установка регистров РСм и РСМм в нуль

РСм:=0; РСМм:=0

4

Другие микрооперации, связанные с умножением мантисс сомножителей, выполняются так же как и для чисел с фиксированной точкой для p=0

Мантисса произведения Mz может быть получена с нарушением нормализации вправо. Сигнал нарушения нормализации вправо HR=1 вырабатывается при z0=z1

5

Определение порядка результата умножения Pz=Px+Py

РСМp:=РСМp+Р1p

Возможны особые случаи:

- при Pz>Pmax.доп. вырабатывается сигнал пере­полнения порядка OV=1;

- при Pz<Pmin.доп. вырабатывается сигнал анти­переполнения, Uп=1

6

Нормализация результата умножения влево при HR=1:

Mz:=ALS (Mz,1);

Pz:=Pz-1;

РСМм:=ALS(РСМм,1);

Р2м:=LS(Р2м,1);

РСМp:=РСМp+(2n-1)

Возможны особые случаи, как в п.5

Таблица 5

Деление чисел с фиксированной точкой

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры ОА:

- числа в прямом коде (модули чисел)

РСМ(0/n):=|x(0/n)|;

Р2(0/n-1):=|x(n+1/2n)|;

Р1:=|y|;

- числа в дополнительном коде

РСМ(0/n):=[x(0/n)]2;

Р2(0/n-1):=[x(n+1/2n)]2;

Р1:=[y]2

Для целых чисел делимое располагается так, чтобы младший разряд делимого был в (n-1)-м разряде Р2.

Для простых дробей делимое располагается так, чтобы старший разряд делимого располагался в старшем разряде РСМ после кода знака делимого.

Для чисел в прямом коде в знаковом разряде регистров устанавливаются нули

2

Проверка исходных чисел на нуль

В результате проверки исходных чисел на нуль вырабатываются сигналы:

- сигнал нулевого результата при x=0, y 0;

- сигнал деления на нуль при x 0, y=0;

- сигнал вещественной неопределенности при x=y=0

3

Запись в счетчик тактов числа тактов деления

СчТ:=n


Продолжение табл. 5

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

4

Пробное вычитание (сложе­ние) для анализа на пере­полнение:

- для чисел в прямом коде анализ на переполнение вы­полняется вычитанием дели­теля из делимого

;

- для чисел в дополни­тельном коде для этой цели выполняется вычитание при x0=y0

, а при x0 y0 сложение в сумматоре

РСМ:=РСМ+Р1

Сигнал переполнения вы­рабатывается:

- для чисел в прямом коде при С=1 (остаток поло­жительный);

- для чисел в допол­нительном коде при РСМ(0)1=x0.

При наличии переполнения операция деления прек­ращается.

При отсутствии перепол­нения осуществляется сдвиг влево в РСМ и Р2 после чего начинаются такты деления, для чисел в дополнительном коде формируется код знака частного z0 (см. п.5)


Продолжение табл. 5

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

5

Определение кода знака частного и его запись в регистр частного:

- для чисел в прямом коде код знака частного определяется по формуле z0=x0Åy0. Р2(n):=z0;

- для чисел в допол­нительном коде код знака частного определяется по результату пробного вычита­ния (сложения) таким образом:

для y0=1 ;

для y0=0 z0=C0;

- код знака частного зано­сится в младший разряд регистра Р2 перед выпол­нением тактов деления

Для чисел в прямом коде код знака частного формируется комбинацион­ной схемой, реализующей сложение по модулю 2 кодов знаков делимого и делителя.

Для чисел в дополни­тельном коде код знака частного формируется авто­матически в результате ана­лиза на переполнение

6

Сдвиг влево в регистрах РСМ и Р2 выполняется:

- после пробного вычитания (сложения) в сумматоре;

- после вычитания или сложения в сумматоре в каждом такте деления

РСМ:=ALS(РСМ,1);

Р2:=ALS(Р2,1)


Продолжение табл. 5

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

7

Сложение или вычитание в сумматоре после анализа на переполнение для чисел в прямом коде:

- при С=0 выполняется сложение

РСМ:=РСМ+Р1;

- при С=1 выполняется вычитание

После каждого сложения или вычитания вырабаты­вается сигнал С, по которому определяется значение оче­редной цифры частного:

zi=Ci

8

Сложение или вычитание в сумматоре после анализа на переполнение для чисел в дополнительном коде:

- при РСМ(0)=y0 вы­полняется вычитание

;

- при РСМ(0) y0 вы­полняется сложение

РСМ:=РСМ+Р1

После каждого сложения или вычитания вырабатывается сигнал С, по которому определяется в зависимости от знака делителя очередная цифра частного:

zi=Ci при y0 =0;

при y0=1

9

Вычитание из счетчика тактов единицы

СчТ:=СчТ-1

Вычитание единицы из счетчика тактов выполняется после каждого такта деления.

При СчТ=0 вырабатывается сигнал окончания тактов деления


Продолжение табл. 5

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

10

Коррекция частного при делении чисел в допол­нительном коде производится после окончания тактов деления путем прибавления единицы к содержимому реги­стра частного в следующих случаях:

- при делении ненацело для z0=1;

- при делении нацело для y0 = 1

P2 := P2 + 1

Коррекция частного при делении чисел в прямом коде не требуется



Продолжение табл. 5

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

11

Восстановление последнего остатка делимого для чисел в дополнительном коде произво­дится, если знаки остатка и делимого не совпадают. Для этой цели:

- при РСМ(0) y0 вы­полняется сложение в сум­маторе

РСМ:=РСМ+Р1;

- при РСМ(0)=y0 вы­полняется вычитание в сум­маторе

.

Для чисел в прямом коде восстановление последнего остатка производится, если он отрицательный, выполнением операции сложения в сумматоре

РСМ:=РСМ+Р1

Признаком отрицательного остатка делимого для прямого кода является появление нуля в регистре C


Таблица 6

Деление чисел c плавающей точкой

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

1

Запись исходных чисел в регистры мантисс и порядков ОА:

- числа в прямом коде (модули чисел)

РСМм(0/n):=|Mx(0/n)|,

Р2м(0/n-1):=|Mx(n+1/2n)|,

Р1м:=[My],

РСМp:=[Px]2, Р1p:=[Py]2;

- числа в дополнительном коде

РСМм(0/n):=[Mx(0/n)]2,

Р2м(0/n-1):=[Mx(n+1/2n)]2,

Р1м:=[My]2,

РСМn:=[Px]2 ,Р1n:=[Py]2

Мантиссы делимого распо­лагаются так, чтобы старший разряд мантиссы распо­лагался в старшем разряде РСМ после кода знака делимого.

Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули

2

Проверка исходных чисел на нуль

Осуществляется так же как и для чисел с фиксированной точкой

3

Пробное вычитание (сложе­ние) для анализа на пере­полнение выполняется так же как и для деления двоичных чисел с фиксированной точкой

При наличии переполнения для чисел с плавающей точкой осуществляется вос­становление мантиссы дели­мого с последующей ее денормализацией



Продолжение табл. 6

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

4

Восстановление мантиссы делимого после пробного вычитания (сложения) при РСМ(0)1=x0.

Для этой цели в сумматоре выполняется:

- сложение, если при анализе на переполнение выполнялось вычитание

РСМм:=РСМ(0)1+P1м;

- вычитание, если при анализе на переполнение выполнялось сложение

При отсутствии перепол­нения формируется код знака частного для чисел в допол­нительном коде и осуще­ствляется сдвиг в РСМ и Р2 после чего начинаются такты деления чисел обоих кодов

5

Денормализация мантиссы делимого после анализа на переполнение производится при РСМ(0)1=x0 сдвигом мантиссы Mx вправо на 1 разряд и увеличением порядка Px на единицу

P¢x=Px+1;

M¢x:=ARS(Mx,1);

РСМp:=РСМp+1

Знак мантиссы делимого после сдвига сохраняется, так как сдвиг арифметический



Продолжение табл. 6

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

6

Деление мантисс после анализа на переполнение осуществляется по алгоритму деления чисел с фиксиро­ванной точкой (для p=0); при этом необходимо иметь в виду, что при наличии перепол­нения деление мантисс может производиться только после восстановления мантиссы делимого и ее денормализации

Mz:=M¢x/My

Если переполнение имело место, то код знака частного для мантисс в дополни­тельном коде может сфор­мироваться только в резуль­тате первого такта деления, выполняемого после денор­мализации делимого.

В результате деления нор-мализованных мантисс и в случае деления денормали-зованных мантисс результат деления представляется в нормализованном виде



Продолжение табл. 6

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

7

Определение кода знака частного и его запись в регистр частного.

Если переполнения не было, то определение кода знака частного и его запись в регистр Р2 производится так же как и для чисел с фиксированной точкой.

Если переполнение было, то код знака частного для мантисс в дополнительном коде определяется только в результате первого такта деления мантисс после денормализации делимого.

Запись кода знака частного в младший разряд регистра Р2 при наличии переполнения осуществляется только после первого такта деления

Р2(n):=z0

Для чисел в прямом коде наличие сигнала перепол­нения не влияет на опреде­ление кода знака частного, так как он определяется по формуле z0=x0 Å y0

8

Восстановление последнего остатка делимого и коррекция частного

Производится так же как и при делении чисел с фиксированной точкой


Продолжение табл. 6

п/п

Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания

Признаки, вырабатываемые в результате выполнения МО и комментарии

9

Определение порядка ре­зультата с учетом возможной денормализации делимого Pz=P¢x-Py

Возможны особые случаи:

- при Pz > Pmax.доп. вырабатывается сигнал пере­полнения порядка ОV=1;

- при Pz < Pmin.доп. вырабатывается сигнал анти­переполнения Uп=1

На рис. 4 для примера представлен фрагмент ГСА операции сложения двоичных чисел с плавающей точкой - сложение мантисс после выравнивания порядков слагаемых и нормализация результата сложения. Для этого фрагмента ГСА в целях его завершенности предполагается, что начальному оператору соответствует размещение результатов выполненных микроопераций выравнивания порядков слагаемых в регистрах РСМм и Р1м, а конечному оператору - микрооперации записи результатов сложения в ОЗУ. Во фрагменте ГСА использованы два возможных способа записи логических условий: в первом случае значение сигнала переполнения разрядной сетки мантисс V, равное единице, свидетельствует о нарушении нормализации результата сложения мантисс влево; во втором случае условие нарушения нормализации результата сложения мантисс вправо записано в виде отношения HR = 0, при его ложности производится нормализация мантиссы результата влево.

Рис. 4 Фрагмент ГСА операции сложения чисел с плавающей точкой

1.3 Операционный автомат с магистральной структурой

На рис. 5 приведена структура операционого автомата c магистральной структурой.

Рис. 5 Структура операционного автомата с магистральной структурой

Операционный автомат включает:

– блок из 8-ми регистров общего назначения Р0 - Р7, предназначенных для хранения промежуточных результатов;

– регистр адреса РА, определяющий адрес оперативной памяти при чтении и записи данных;

– регистр аккумулятор АС, хранящий один из операндов или результат выполнения микрооперации;

– арифметико-логическое устройство АЛУ, в котором выполняются заданные микрооперации;

– регистр признаков РП, хранящий признаки выполненной микрооперации.

Все регистры операционного автомата 8-ми разрядные. В табл 7 приведен состав микроопераций Мj их 8-ми разрядная кодировка, а также описаны действия выполняемые каждой из них.

Таблица 7

Состав микроопераций

N

Код микрооперации

Действие

п/п

м8 м7 м6 м5 м4 м3 м2 м1

1

0000 0000

АС = РА

2

0000 0001

РА = РА + АС

3

0000 0010

Арифметический сдвиг вправо АС

4

0000 0011

Арифметический сдвиг вправо Р7

5

0000 0100

Циклический сдвиг вправо АС

6

0000 0101

Циклический сдвиг вправо Р7

7

0000 0110

Арифметический сдвиг влево АС

8

0000 0111

Арифметический сдвиг влево Р7

9

0000 1000

Циклический сдвиг влево АС

10

0000 1001

Циклический сдвиг влево Р7

11

0000 1010

Пустая микрокоманда (NOP )

12

0000 1011

Стоп

13

0000 1100

П(РА) = АС, запись в память содержимого аккумулятора по адресу в регистре РА

14

0000 1101

АС = П(РА), чтение в аккумулятор из памяти по адресу в регистре РА

15

0000 1110

АС => Стек

16

0000 1111

АС <= Стек


Продолжение табл.7

N

Код микрооперации

Действие

п/п

м8 м7 м6 м5 м4 м3 м2 м1

17

0001 <N>

АС = АС + Р(N), где N номер регистра Р0-Р7

18

0010 <N>

АС = АС & Р(N), где & операция коньюнкции

19

0011 <N>

АС = АС U Р(N), где U операция дизъюнкции

20

0100 <N>

Р(N) = АС

21

0101 <N>

АС = Р(N)

22

0110 <N>

АС = АС - Р(N)

23

0111 <N>

АС = ~Р(N), где ~ операция инверсии

24

1000 <N>

Р(N) = Р(N) + 1

25

1001 <N>

Р(N) = Р(N) - 1

Примечание: Операция сдвига в операционном автомате может выполняться только в регистрах АС и Р7 и всегда осуществляется на 1 разряд.

При выполнении микроопераций в регистре РФ формируются следующие признаки: N, C, V, Z, T. Ниже приведены правила формирования отдельных признаков.

Признак N - знак результата микрооперации;

Признак Z - признак нулевого результата;

Признак V - переполнение;

Признак С - выдвигаемый разряд, при операциях сдвига и арифметических микрооперациях. В операционном автомате выполняется 2 вида сдвигов: арифметмческий и циклический. В операциях циклического сдвига признак С формируется в соответствии с рис. 6.

а)

б)

Рис. 6 Циклический сдвиг влево (a) и вправо (б)

При операциях арифметического сдвига признак С формируется в соответствии с рис. 7.

а)

б)

Рис. 7 Арифметический сдвиг влево (а) и вправо (б)

При необходимости арифметического сдвига 16-ти разрядного числа в операциях умножения и деления (рис. 8), необходимо число располагать в регистре АС (старшие 8 разрядов) и в регистре Р7 (младшие 8 разрядов). В регистре АС необходимо выполнить арифметический сдвиг (при этом нулевой разряд выдвинется в С), а в регистре Р7 выполнить циклический сдвиг (при этом разряд из С вдвигается в 7 разряд Р7).

Рис. 8 Сдвиг 2n разрядного числа

Признак T - разряд переноса из 3-го разряда аккумулятора в 4-й разряд. Используется при работе с двоично-десятичными числами.

Для ускорения выполнения микроопераций операционный автомат использует 8 дополнительных бинарных управляющих сигналов Yi =(y1 , у2 , у3 , у4 , у5 , у6 , у7 , у8 ). Данные сигналы формируются управляющим автоматом и подаются в операционный автомат совместно с микрокомандой в одном такте. Одновременно может формироваться несколько сигналов Уi , при условии, что совместное действие микрокоманды и дополнительных сигналов не приводит к противоречиям. В табл. 8 приведен состав дополнительных сигналов Yi .

Таблица 8

Состав дополнительных сигналов

N п/п

Дополнительный сигнал

Кодировка допо-лнительного сигнала

Действие

1

У1

0000 0001

АС = 0

2

У2

0000 0010

АС = АС + 1

3

У3

0000 0100

РА = 0

4

У4

0000 1000

С = 0


Продолжение табл.8

N п/п

Дополнительный сигнал

Кодировка допо-лнительного сигнала

Действие

5

У5

0001 0000

С = 1

6

У6

0010 0000

РА = РА + 1

7

У7

0100 0000

Резерв

8

У8

1000 0000

Резерв

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

Алгоритм работы операционного устройства строится на основе использования СА. На рис. 9 приведена СА вычисления выражения У = 2(В+0,625А). Целые числа А и В, заданные в дополнительном коде, хранятся в оперативной памяти по адресам 0 и 1, результат У записывается в память по адресу 2. Каждая из вершин СА включает одну микрокоманду и, если это необходимо, дополнительные сигналы Yi . Если в данном такте в операционный автомат подаются только дополнительные сигналы Yi , то необходимо использовать пустую микрооперацию NOP (см. вершину 1 на СА). При вычислении значений 0.5А, 0.25А, 0.125А используется арифметический сдвиг вправо AR(AC). При вычислении значения 2(В+0.625А) используется арифметический сдвиг влево AL(AC), после которого осуществляется проверка на переполнение (V).

3. Микропрограммный управляющий автомат с программируемой логикой

На рис. 10 показана структура микропрограммного управляющего автомата с принудительной адресацией микрокоманд [2,7].

Рис. 9 Схема алгоритма

Автомат включает:

– ПЗУ, постоянное запоминающее устройство. В нем хранится микропрограмма управления цифровым устройством;

– РАМ, регистр адреса выполняемой микрокоманды. Перед пуском микропрограммы в РАМ задается адрес первой микрокоманды Ан микропрограммы;

– ФАМ, блок формирования микрокоманды. Формирует разряды микрооперации Мi , дополнительные управляющие сигналы Уi , и адрес следующей микрокоманды А.

Запуск в работу управляющего автомата производится сигналом ПУСК, завершение работы фиксируется появлением сигнала СТОП.

Рис. 10 Структура управляющего автомата

Формат микрокоманды записанной в ПЗУ приведен на рис. 11.

Рис. 11 Формат микрокоманды

Микрокоманда включает следующие поля [2]:

– М, 8-ми разрядное поле кода микрооперации выполняемой микрокоманды. Коды микроопераций приведены в табл. 9;

– Y, 8-ми разрядное поле дополнительных управляющих сигналов. Кодировка дополнительных сигналов приведена в табл. ח;

– ЛУ, 4-х разрядное поле логических условий, в котором представлен код проверяемого в данной микрокоманде признака, поступающего из операционного автомата. В табл. 10 представлена кодировка проверяемых признаков. Проверка значения признака (0 или 1) позволяет реализовать ветвление в микропрограмме.

Таблица 9

Кодировка признаков

Кодировка признака

Наименование признака

0000

Проверка призна­­ка отсутствует

0001

N

0010

C

0011

Z

0100

V

0101

T

0110

Резерв

.......

..........

1111

Безусловный переход

– А, 8-ми разрядное поле адреса следующей микрокоманды.

Данный формат в общем случае может описывать, либо одну операторную вершину схемы алгоритма, либо операторную и условную вершину схемы алгоритма, если условная вершина непосредственно следует за операторной вершиной. Подобная ситуация представлена на рис. 12.

Рис. 12 Фрагмент схемы алгоритма

В поле М микрокоманды, описывающей данный фрагмент, записывается код

1

1

0000 0110, соответствующий микрооперации AL(AC), в поле Y код 0000 1000, соответствующий дополнительному сигналу Y4, в поле ЛУ код 0100, соответстствующий проверяемому признаку V. Если фрагмент схемы алгоритма состоит из одной операторной вершины, то в поле ЛУ записывается код 0000. Использование комбинации 1111 в поле ЛУ позволяет организовать цикл внутри микропрограммы.

В поле А микрокоманды записывается адрес следующей выполняемой микрокоманды. В общем случае он может быть любым в диапазоне 0 - 255, но для экономичного заполнения ПЗУ целесообразно использовать естественный порядок следования микрокоманд. Для организации ветвления при описании фрагмента схемы алгоритма представленного на рис. 12, значение проверяемого в микрокоманде признака (0 или 1) принудительно записывается в младший разряд поля А микрокоманды.

Пользователь должен быть достаточно аккуратным при записи подобного адреса. Ниже показан пример ошибочной записи, когда по четному адресу ХХ...Х10 в ПЗУ записана микрокоманда с полем А ХХ...Х11.

Если проверяемый в поле ЛУ признак имеет значение 0, то осуществится переход на адрес ПЗУ ХХ...Х0 и микрокоманда выполнится повторно. Для избежания подобных ситуаций, целесообразно в поле А микрокоманды использовать адрес ХХ...100. Следствием подобной ситуации может явиться появление в микропрограмме адресов (“дыр”), в которых отсутствуют микрокоманды (рис. 13).

Рис. 13 Фрагмент заполнения ПЗУ

Подобная ситуация является исправимой, ибо использование принудительной адресации позволяет вставить в “дыру” любую используемую далее микрокоманду.

В табл. 10 приведена карта прошивки ПЗУ микропрограммного управляющего автомата для СА, показанной на рис. ט. По адресу ПЗУ 0000 1011 образовалась “дыра” в микропрограмме. “Дыру” можно устранить, если в поле А микрокоманды по адресу 0000 1100 записать адрес следующей микрокоманды в виде 0000 1011 и перенести последнюю микрокоманду по адресу 0000 1011.

Таблица 10

Содержимое ПЗУ

Адрес

Микрокоманда

16-ричное

ПЗУ

М

Y

ЛУ

А

представление микрокоманды

0000 0000

0000 1010

0000 0101

0000

0000 0001

0A05001

0000 0001

0000 1101

0000 0000

0000

0000 0010

0D00002

0000 0010

0000 0010

0000 0000

0000

0000 0011

0200003

0000 0011

0100 0110

0000 0000

0000

0000 0100

4600004

0000 0100

0000 0010

0000 0000

0000

0000 0101

0200005

0000 0101

0000 0010

0000 0000

0000

0000 0110

0200006

0000 0110

0001 0110

0010 0000

0000

0000 0111

1620007

0000 0111

0100 0110

0000 0000

0000

0000 1000

4600008

0000 1000

0000 1101

0000 0000

0000

0000 1001

0D00009

0000 1001

0001 0110

0010 0000

0000

0000 1010

162000A

0000 1010

0000 0110

0000 0000

0100

0000 1100

060040C

0000 1011

“Дыра”

в

микро

программе

0000 1100

0000 1100

0000 0000

0000

0000 1101

0C0000D

0000 1101

0000 1011

0000 0000

0000

0000 1101

0B0000D

3.1. Моделирование микропрограммного устройства с программируемой логикой

На рис. 14 показана общая структура микропрограммного цифрового устройства. Исходные данные и результаты вычислений хранятся в ОЗУ. Запись данных DO в ОЗУ проводится по сигналу WR, а чтение данных DI по сигналу RD. Разрядность данных - 8 бит.

Моделирование цифрового устройства с программируемой логикой связано с разработкой на основе СА микропрограммы управления операционным автоматом. Разработанная микропрограмма записывается в ПЗУ управляющего автомата.

Рис. 14 Структура микропрограммного цифрового устройства

Модели операционного и управляющего автоматов реализованы на языке PML системы PCAD [4,5]. Моделирование проводится с использованием языка PC LOGS. Документирование результатов моделирования производится с использованием программы POSTSIM. На рис. 15 приведен шаблон программы моделирования, в которой пользователю необходимо определить лишь содержимое ОЗУ и ПЗУ.

Содержимое ОЗУ и ПЗУ определяется аналогично директивой MEMLOAD языка PC LOGS. Общий формат записи содержимого ОЗУ(ПЗУ) на языке PC LOGS имеет следующий вид:

MEMLOAD <имя ОЗУ(ПЗУ)> HEX/Ан Sн Sн+1 ... /Аi Si Si+1 ... /Aj Sj Sj+1

Допускается использование непрерывного или фрагменти-рованного адресного пространства. В первом случае задается в 16-ричной форме начальный адрес ОЗУ(ПЗУ) - Ан , вслед за которым записывается содержимое ОЗУ(ПЗУ) Sн Sн+1 ..., начиная с адреса Ан. Во втором случае описание каждого фрагмента ОЗУ(ПЗУ) следует за символом / -адрес начала фрагмента Аi и содержимое ОЗУ(ПЗУ), Si Si+1 ..., начиная с этого адреса. Содержимое ОЗУ(ПЗУ), соот-ветствующее неописанным адресам, принимает значение нео-пределенности Х. На рис. טו показана программа моделирования ци-фрового устройства, СА которого приведена на рис. ט. Исходные данные А=25h и В=14h загружены в ОЗУ, начиная с адреса 0. Микропрограмма управления цифровым устройством загружена в ПЗУ также начиная с адреса 0. Содержимое ПЗУ в программе моделирования взято из табл. י. В частности по адресу 0 в соответствии с рис. יא записана микрооперация NOP (0A), упра-вляющие сигналы y1 и у3 (05), отсутствие проверяемых признаков (0) и адрес следующей микрокоманды 01.

lo poss.net

cy 3

ge [0 0] pus d0/1 d1/1 d0/50

ge [0 0] bk d0/3 (d1/1 d0/1)

memload el2 hex /00 25 14

memload pzu1 hex /00 0A05001 0d00002 0200003 4600004 0200005 0200006 1620007 4600008 0D00009 162000A 060040C /0C 0C0000D 0B0000D

mo hex(RA7 RA6 RA5 RA4) hex(RA3 RA2 RA1 RA0) % hex(m7 m6 m5 m4) >

hex(m3 m2 m1 m0) % hex(y8 y7 y6 y5) hex(y4 y3 y2 y1) >

% hex(ac7 ac6 ac5 ac4) hex (ac3 ac2 ac1 ac0) % hex (r77 r76 r75 r74) >

hex (r73 r72 r71 r70) % hex (r67 r66 r65 r64) hex (r63 r62 r61 r60) >

% hex (r57 r56 r55 r54) hex (r53 r52 r51 r50) % hex (r47 r46 r45 r44) >

hex (r43 r42 r41 r40) % hex (r37 r36 r35 r34) hex (r33 r32 r31 r30) >

% hex (r27 r26 r25 r24) hex (r23 r22 r21 r20) % hex (r17 r16 r15 r14) >

hex (r13 r12 r11 r10) % hex (r07 r06 r05 r04) hex (r03 r02 r01 r00) %% >

n % c % z % v % t %% st %%%%el1/ko

spool on

ty 6

Рис. 15 Шаблон программы моделирования

Для удобства восприятия результаты моделирования представляются в табличной форме, при этом содержимое всех 8-ми разрядных регистров операционного автомата и служебных регистров отображаются в виде двух 16-тиричных цифр. На рис. 16 показаны результаты моделирования по отдельным тактам модельного времени.

Рис. 16 Результаты моделирования

В 1-м такте (cycle step 1:2) устанавливается регистр адреса ПЗУ в нуль (RAH=0 - старшая часть регистра RA и RAL=0 - младшая часть регистра RA). В такте 3 выполняется первая микрокоманда (y1, y3, NOP), что отражается строкой 3:2 c микрокомандой MH=0, ML=5. Результатом ее выполнения является обнуление АС (ACH=0, ACL=0) и формирование значений признаков N, Z, V, T. В 27-м такте моделирование заканчивается, в АС формируется результат (5Eh) и сигнал окончания ST.

4. Микропрограммный управляющий автомат с жесткой логикой

4.1. Абстрактный синтез управляющего автомата

Абстрактный синтез включает следующие этапы:

– построение кодированной СА, описывающей алгоритм работы управляющего автомата;

– построение формальной модели управляющего автомата в виде прямой таблицы переходов;

– минимизация числа состояний управляющего автомата.

В качестве начального языка для описания алгоритма функционирования управляющего автомата с жесткой логикой используется язык СА. Размерность и вычислительная сложность задачи проектирования микропрограммного устройства управления с жесткой логикой намного превышает размерность и сложность аналогичной задачи для устройства с программируемой логикой. В силу этого дальнейшая методика проектирования и последующего моделирования будет изложена для фрагмента схемы алгоритма рис. ט, включающего вершины 9, 10, 11. Для большей общности во фрагмент добавлены вершины Начало и Конец. Выделенный фрагмент показан на рис. 17. По кодированной СА может быть построен граф переходов управляющего автомата, соответствующий автомату Мура или Мили. Автомат Мили имеет, как правило, число состояний меньшее, чем эквивалентный ему автомат Мура. Однако применение автомата Мили в качестве управляющего не всегда возможно.

Рис. 17 Фрагмент схемы алгоритма

В автомате Мили переход в новое состояние осуществляется одновременно с формированием выходных сигналов. Поэтому, если операционный автомат вырабатывает осведомительные сигналы сразу при поступлении управляющих сигналов возможна ситуация, когда автомат Мили еще не сменил состояние, а на его входы уже пришли новые осведомительные сигналы, требующие выполнения иного перехода. В силу вышеназванного замечания чаще управляющий автомат реализуется, как комбинированный автомат, у которого функции переходов реализуются как в автомате Мили, а функции выходов, как в автомате Мура. На рис. יח показан граф переходов управляющего автомата Мура для СА приведенной на рис. 18. Автомат первоначально находится в неизвестном состоянии SX, и на его выходах формируется неопределенный сигнал Х. По сигналу Сброс автомат переходит в начальное состояние S0. Слева от состояний SX, S0, S1, S2, S3 показаны выходные сигналы управляющего автомата Mi и Yi . Следует обратить внимание на то обстоятельство, что при переходе автомата в начальное состояние S0 на его выходе необходимо формировать пустую микрокоманду М11, по которой в операционном автомате не выполняется никаких действий до появления сигнала Пуск.

Рис. 18 Графическая модель автомата

На основе СА или графа переходов строится таблица переходов управляющего автомата Мура, представляющая закон функционирования управляющего автомата. [2,6,7]. Для ее построения необходимо по исходной СА выполнить сквозную нумерацию всех вершин, каждой из которых поставить в соответствие состояние автомата. Если в СА имеются петли из логических условий, то ввести пустой оператор, который размещается при выходе из условной вершины, определяющей начало пути [2]. При построении таблицы переходов управляющего автомата Мура анализируются все пути между операторными вершинами, начиная с начальной вершины. По таблице переходов управляющего автомата Мура нетрудно построить таблицу переходов и выходов управляющего автомата Мили, объединяя состояния (события), переходы из которых полностью совпадают [1, 2]. В табл. 11 приведена таблица переходов для графа переходов показанного на рис. יח.

Таблица 11

Таблица переходов

Состояние автомата в

Входной

Состояние автомата в

Выходные

момент времени (t)

сигнал

момент времени (t+1)

сигналы

_____

Сброс

Х

Сброс

S0

М11

S0

____

Пуск

S0

М11

Пуск

S1

М7,Y6

S1

V

S3

M12

__

V

S2

M13

S2

1

S3

M12

S3

1

S3

M12

Минимизация числа состояний проектируемого управляющего автомата может быть выполнена на основе использования метода таблицы пар [3].

4.2. Структурный синтез управляющего автомата.

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

– кодирование состояний управляющего автомата ;

– выбор элементов памяти;

– составление системы канонических уравнений (СКУ), на основе которой строятся функции возбуждения элементов памяти;

– составление системы выходных функций (СВФ), на основе которой строятся выходные сигналы управляющего автомата;

– реализация принципиальной схемы управляющего автомата.

Основой для структурного синтеза УА с жесткой логикой является таблица переходов управляющего автомата, полученная на этапе абстрактного синтеза. На ее основе строится кодированная таблица переходов, в которой каждому состоянию и выходному сигналу назначен его код. Табл. 12 является кодированной таблицей переходов автомата Мура, построенной на основе табл. 11 с произвольной кодировкой состояний управляющего автомата. Реализация управляющего автомата может выполняться с использованием различных элементов памяти [1], но наиболее просто она выполняется с использованием D-триггеров.

Таблица 12

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

Состояние автомата в

Код состояния

Входной

Состояние автомата в

Код состояния

Выходные сигналы

момент времени (t)

Q1 Q2

сигнал

момент времени (t+1)

Q1 Q2

Мi

Yi

Х

_____

Сброс

Х

Х

Х

Х

Сброс

S0

00

0000 1010

0000 0000

S0

00

____

Пуск

S0

00

0000 1010

0000 0000

00

Пуск

S1

01

0000 0110

0010 0000

S1

01

V

S3

11

0000 1011

0000 0000

01

__

V

S2

10

0000 1100

0000 0000

S2

10

1

S3

11

0000 1011

0000 0000

S3

11

1

S3

11

0000 1011

0000 0000

Ниже на основе данных табл. יב строятся функции возбуждения D - триггеров D1 и D2, на которых реализуется управляющий автомат Мура. Для лучшего восприятия записей функций в них используется символ логического умножения (*).

__ __ __ __ __

D1 = S1*V U S1* V U S2*1 U S3*1 = Q1*Q2*V U Q1*Q2*V U Q1*Q2 U Q1*Q2 = Q1 U Q2;

__ __ __

D2 = S0*Пуск U S1*V U S2*1 U S3*1 = Q1*Q2*Пуск U Q1*Q2*V U

___ ___

Q1*Q2 U Q1*Q2 = Q1 U Q2*Пуск U Q2*V.

Ниже приведены выходные функции для отдельных разрядов микрооперации Мi (функции для дополнительных управляющих сигналов Yi не приведены, так как они строятся аналогично).

М8 = M7=M6=M5=0;

М4 = S0 U S2 U S3;

М3 = S1 U S2;

М2 = S0 U S1 U S3;

М1 = S3;

На рис. 19 приведена схема реализующая управляющий автомат с жесткой логикой, формирующая вышеописанные выходные сигналы M1-M8.

Рис. 19 Схема управляющего автомата

Так как выходные сигналы М8, М7, М6, М5 тождественно равны 0, то на схеме они показаны единым сигналом М8765. В схеме в качестве элементов памяти используется D-триггер с динамическим управлением, а смена состояний происходит по переднему фронту синхросигнала S.

4.3. Моделирование управляющего автомата с жесткой логикой

Моделирование управляющего автомата с жесткой логикой проводится на базе пакета PCAD и включает выполнение следующих этапов [4,5]:

– графическое представление принципиальной схемы управляющего автомата. Прорисовка принципиальной схемы выполняется программой PCCAPS с использованием библиотеки элементов серии К155. Библиотека включает графические изображения и программы моделирования микросхем серии К155, К1533 и К1534 [5];

– трансляция графического представления в формат данных программы моделирования. Трансляция выполняется программами PCNODES, PCLINK, PRESIM [4,5];

– описание входных воздействий и моделирование работы принципиальной схемы управляющего автомата. Описание и моделирование выполняются программой PCLOGS [4,5].

На рис. 20 приведено описание входных воздействий для схемы изображенной на рис. 19, подготовленное с использованием программы PCLOGS.

lo avt3.net

cy 10

ge [0 0] reset d0/1 d1/1 d0/29 d1/1 d0/17

ge [0 0] s d0/4 (d1/2 d0/4)

ge [0 0] v d0/30 d1/20

ge [0 0] pusk d0/9 d1/5 d0/23 d1/5 d0/23

pr reset pusk s v q1 q2 m4 m3 m2 m1

di 3

si 40

Рис. 20 Программа моделирования

Активный уровень (d0) сигнала СБРОС (reset), осуществляет перевод управляющего автомата в начальное состояние S0. Для проверки обеих ветвей СА управляющий автомат переводится в начальное состояние дважды в 1-ом и 32-ом тактах моделирования. В 10-м такте и 38-м тактах моделирования подается сигнал ПУСК (pusk). Выбор ветви СА осуществляется значением осведомительного сигнала V. Результаты моделирования в форме временных диаграмм приведены на рис. 21.

Рис. 21 Временные диаграммы

Первые 4 синхросигнала S обеспечивают переключение состояний автомата SX, S0, S1, S2, S3 при значении признака V=0 и формировании микрокоманд М11, М7, М13 и М12. В 32-том такте автомат переводится сигналом RESET опять в начальное состояние S0, имитируется высокий уровень признака V и следующие три синхросигнала S обеспечивают переключение состояний автомата S0, S1, S3 и формирование микрокоманд М11, М7, и М12. Так как значения разрядов М8, М7, М6, М5 всегда нулевые, то на временной диаграмме они не показаны.

5. Создание БИС управляющего автомата

Успешное завершение моделирования и получение требуемых функциональных и временных характеристик проектируемого цифрового устройства создает условия для создания БИС устройства управления с жесткой логикой. Для создания БИС используется программа PC CAPS пакета PCAD [5]. Сначала в режиме DETL необходимо создать принципиальную схему с обязательным именованием его входных и выходных цепей. После этого, не очищая экрана, перейти в режим SYMB и создать графический символ БИС. При этом входные и выходные контакты должны иметь те же имена, что и соответствующие цепи принципиальной схемы БИС, а идентификатор типа компонента ID необходимо установить равным 256. На рис. 22 показано графическое изображение БИС управляющего автомата с жесткой логикой.

Рис. 22 Создание БИС управляющего автомата

Библиографический список

1. Вашкевич Н.П. Синтез микропрограммных управляющих автоматов. Учеб. пособие. - Пенза: Пенз. политехн. ин-т, 1990. - 115 с.

2. Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники: Учеб. пособие. 2-е изд. перераб. и доп. - М.: Высш. шк., 1988. - 311 c.

3. Вашкевич Н.П., Вашкевич С.Н. Недетерминированные автоматы и их использование для синтеза систем управления. Часть 1. Эквивалентные преобразования НДА: Учеб. пособие. - Пенза: Изд-во Пенз. гос. техн. ун-та, 1996. - 88с.

4. Захаров А.П., Чулков В.А., Аксенов М.П. Моделирование цифровых и аналоговых схем на ПЭВМ. Учеб. пособие. - Пенза: Изд-во Пенз. гос. техн. ун-та, 1997. - 81с.

5. Разевиг В.Д. Применение программ Р-CAD и Pspice для схемотехнического моделирования на ПЭВМ. Вып. 1,2,3,4. М.: Радио и связь, 1992.

6. Баранов С.И. Синтез микропрограммных автоматов. - 2-е изд. перераб. и доп. - Л.: Энергия, Ленингр. отд-ние, 1979. - 232 с.

7. Майоров С.А., Новиков Г.И. Структура электронных вычислительных машин. - Л.: Машиностроение. Ленингр. отд-ние, 1979. - 384 с.