Проектирование и моделирование микропрограммных цифровых устройств
Проектирование цифровых устройств, выполняющих операции с плавающей точкой, а также проектирование и моделирование микропрограммных устройств управления с жесткой и программируемой логикой. Моделирование с использованием пакета PCAD на ПЭВМ типа IBM PC.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 28.06.2009 |
Размер файла | 609,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2
Министерство общего и профессионального образования Российской Федерации
Пензенский государственный технический университет
Н.П. Вашкевич, А.П.Захаров
Проектирование и моделирование микропрограммных цифровых устройств
Методические указания
Пенза 1997
УДК 681.3.06
П 79
Рассмотрены методы проектирования цифровых устройств, выполняющих операции с плавающей точкой, а также проектирование и моделирование микропрограммных устройств управления с жесткой и программируемой логикой. Моделирование выполняется с использованием пакета PCAD на ПЭВМ типа IBM PC.
Методические указания подготовлены на кафедре ”Вычислительная техника” Пензенского государственного технического университета и предназначены для студентов специальности 2201 и ряда смежных специальностей, занимающихся вопросами проектирования устройств вычислительной техники. Материалы указаний могут быть использованы в курсовом проектировании по дисциплинам ”Прикладная теория цифровых автоматов”, ”Схемотехника”, а также при выполнении лабораторных работ по курсам ”Моделирование” и ”Основы комплексной автоматизации проектирования”.
Рецензент Р.А.Бикташев, канд. техн. наук, зав. кафедрой ”Вычислительные машины и системы” Пензенского. технологического ин-та.
20
Содержание
- Введение
- 1. Операционные автоматы
- 1.1 Операционный автомат с непосредственными связями
- 1.2 Микрооперации, реализуемые в операционном автомате с непосредственными связями
- 1.3 Операционный автомат с магистральной структурой
- 2. Разработка алгоритма работы операционного устройства.
- 3. Микропрограммный управляющий автомат с программируемой логикой
- 3.1 Моделирование микропрограммного устройства с программируемой логикой
- 4. Микропрограммный управляющий автомат с жесткой логикой
- 4.1 Абстрактный синтез управляющего автомата
- 4.2 Структурный синтез управляющего автомата.
- 4.3 Моделирование управляющего автомата с жесткой логикой
- 5. Создание БИС управляющего автомата
- Библиографический список
Введение
Постоянно расширяющаяся сфера применения микропроцессорной техники требует разработки новых, более производительных средств обработки данных. Развитие данного направления связано как с разработкой сопроцессоров, использующих плавающую арифметику, так и с совершенствованием устройств управления, обеспечивающих более эффективное использование систем обработки.
Данные методические указания закладывают основу для создания высокопроизводительных вычислительных систем использующих опе-рации с плавающей точкой, а также определяют методику проекти-рования микропрограммных устройств управления с жесткой и про-граммируемой логикой. Излагаемая методика поддерживается разра-ботанной на базе пакета PCAD системой моделирования, позволяющей оценить работоспособность и эффективность устройств управления, реализованных как на основе микропрограммы записанной в ПЗУ, так и реализованных аппаратно на элементах цифровой логики.
Операционные автоматы
На рис. 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.0.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:=y2; - модули исходных чисел РСМ:=х Р1:=y |
Запись модулей исходных чисел производится для организации сложения и вычитания чисел без знака, поэтому в знаковом разряде регистров устанавливаются нули |
|
2 |
Сложение и вычитание исходных чисел в дополнительном коде: - сложение целых чисел и простых дробей РСМ:= РСМ+Р1; - вычитание целых чисел и простых дробей |
Сигнал переполнения разрядной сетки сумматора определяется по формуле . При V=1 фиксируется переполнение. Единица, представляющая младший разряд имеет вес: для целых - 20, для простых дробей - 2-n |
|
№ п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки,вырабатываемые в результате выполнения МО и комментарии |
|
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 |
|
№ п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки,вырабатываемые в результате выполнения МО и комментарии |
|
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 разрядов My:=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 |
|
№ п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки,вырабатываемые в результате выполнения МО и комментарии |
|
6 |
Денормализация слагаемого x. При Px-Py<0 мантисса Mx сдвигается вправо на k разрядов Mx:=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=Mx+My; РСМм:=РСМм+Р1м; |
Признаки формируются в соответствии с п.4. Mx и My - мантиссы слагаемых после их денормализации |
|
№ п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки,вырабатываемые в результате выполнения МО и комментарии |
|
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) меняется на обратный |
|
№ п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
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:=Px2 Р1n:=Py2 ;- числа в дополнительном кодеР1м:=[Mx]2 Р2м:=[My]2;РСМp:=[Px]2;Р1p:= [Py]2 |
Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
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, y0;- сигнал деления на нуль при x0, y=0;- сигнал вещественной неопределенности при x=y=0 |
|
3 |
Запись в счетчик тактов числа тактов деленияСчТ:=n |
Продолжение табл. 5
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
4 |
Пробное вычитание (сложение) для анализа на переполнение:- для чисел в прямом коде анализ на переполнение выполняется вычитанием делителя из делимого;- для чисел в дополнительном коде для этой цели выполняется вычитание при x0=y0, а при x0y0 сложение в сумматореРСМ:=РСМ+Р1 |
Сигнал переполнения вырабатывается:- для чисел в прямом коде при С=1 (остаток положительный);- для чисел в дополнительном коде при РСМ(0)1=x0.При наличии переполнения операция деления прекращается.При отсутствии переполнения осуществляется сдвиг влево в РСМ и Р2 после чего начинаются такты деления, для чисел в дополнительном коде формируется код знака частного z0 (см. п.5) |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
5 |
Определение кода знака частного и его запись в регистр частного:- для чисел в прямом коде код знака частного определяется по формуле z0=x0y0. Р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 вырабатывается сигнал окончания тактов деления |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
10 |
Коррекция частного при делении чисел в дополнительном коде производится после окончания тактов деления путем прибавления единицы к содержимому регистра частного в следующих случаях:- при делении ненацело для z0=1;- при делении нацело для y0 = 1P2 := 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 |
Пробное вычитание (сложение) для анализа на переполнение выполняется так же как и для деления двоичных чисел с фиксированной точкой |
При наличии переполнения для чисел с плавающей точкой осуществляется восстановление мантиссы делимого с последующей ее денормализацией |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
4 |
Восстановление мантиссы делимого после пробного вычитания (сложения) при РСМ(0)1=x0.Для этой цели в сумматоре выполняется:- сложение, если при анализе на переполнение выполнялось вычитаниеРСМм:=РСМ(0)1+P1м;- вычитание, если при анализе на переполнение выполнялось сложение |
При отсутствии переполнения формируется код знака частного для чисел в дополнительном коде и осуществляется сдвиг в РСМ и Р2 после чего начинаются такты деления чисел обоих кодов |
|
5 |
Денормализация мантиссы делимого после анализа на переполнение производится при РСМ(0)1=x0 сдвигом мантиссы Mx вправо на 1 разряд и увеличением порядка Px на единицуPx=Px+1;Mx:=ARS(Mx,1);РСМp:=РСМp+1 |
Знак мантиссы делимого после сдвига сохраняется, так как сдвиг арифметический |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
6 |
Деление мантисс после анализа на переполнение осуществляется по алгоритму деления чисел с фиксированной точкой (для p=0); при этом необходимо иметь в виду, что при наличии переполнения деление мантисс может производиться только после восстановления мантиссы делимого и ее денормализацииMz:=Mx/My |
Если переполнение имело место, то код знака частного для мантисс в дополнительном коде может сформироваться только в результате первого такта деления, выполняемого после денормализации делимого.В результате деления нор-мализованных мантисс и в случае деления денормали-зованных мантисс результат деления представляется в нормализованном виде |
Продолжение табл. 6
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
7 |
Определение кода знака частного и его запись в регистр частного.Если переполнения не было, то определение кода знака частного и его запись в регистр Р2 производится так же как и для чисел с фиксированной точкой.Если переполнение было, то код знака частного для мантисс в дополнительном коде определяется только в результате первого такта деления мантисс после денормализации делимого.Запись кода знака частного в младший разряд регистра Р2 при наличии переполнения осуществляется только после первого такта деленияР2(n):=z0 |
Для чисел в прямом коде наличие сигнала переполнения не влияет на определение кода знака частного, так как он определяется по формуле z0=x0 y0 |
|
8 |
Восстановление последнего остатка делимого и коррекция частного |
Производится так же как и при делении чисел с фиксированной точкой |
|
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
9 |
Определение порядка результата с учетом возможной денормализации делимого Pz=Px-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 |
АС Стек |
|
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).
2.1 Микропрограммный управляющий автомат с программируемой логикой
На рис. 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 Фрагмент схемы алгоритма
В поле М микрокоманды, описывающей данный фрагмент, записывается код 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. Моделирование микропрограммного устройства с программируемой логикой
На рис. 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) |
сигналы |
|
SХ |
_____ Сброс |
SХ |
Х |
|
Сброс |
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 |
|
SХ |
Х |
_____ Сброс |
SХ |
Х |
Х |
Х |
|
Х |
Сброс |
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.
Подобные документы
Проектирование цифровых устройств на ПЛИС фирмы Xilinx с применением языка VHDL, использование систем Leonardo Spectrum, Foundation Express и Integrated Synthesis Environment (ISE). Синтез и реализация проекта, разработка регистровой схемы и умножителя.
курсовая работа [2,3 M], добавлен 28.06.2009Обзор программного обеспечения для проектирования устройств фильтрации, исследование их возможностей и свойств, обоснование выбора. Моделирование фильтра на схемотехническом уровне в системе Electronic Workbench в частотной и временной областях.
курсовая работа [2,8 M], добавлен 13.03.2012Анализ особенностей управляющих операционных устройств, которые позволяют выполнить преобразование некоторых кодов в соответствии с логикой выполняемой операции. Изучение основных типов управляющих устройств: с жесткой логикой; с микропрограммной логикой.
контрольная работа [49,1 K], добавлен 05.09.2010Моделирование цифровых узлов комбинационного и последовательностного типа electronic work bench. Основы программирования на Ассемблере: арифметические команды, манипуляции над битами, строковые операции. Программирование с использованием пакета MASM.
отчет по практике [1,9 M], добавлен 10.01.2015Исследование принципа работы основных логических элементов цифровых устройств. Описания вычислительных машин непрерывного и дискретного действия. Инверсия конъюнкции, дизъюнкции и равнозначности. Разработка программы, реализующей логические операции.
практическая работа [230,8 K], добавлен 25.03.2015Электронная система, реализующая сложный алгоритм обработки данных. Общая структура устройства управления. Проектирование процессорного модуля. Основные операционные элементы. Общие вопросы функционирования устройств управления с программируемой логикой.
курсовая работа [1,3 M], добавлен 29.06.2011Общие сведения о САПР MAX+PLUS II. Ввод проекта, компиляция и моделирование. Средство для отображения иерархической структуры проекта, для просмотра и редактирования результатов размещения и трассировки. Программа моделирования Simulator и другие модули.
курсовая работа [1,1 M], добавлен 28.06.2009Изучение концепций обратного проектирования встроенных устройств. Инструменты для практического использования при обратном проектировании. Протоколы, используемые при передаче данных. Аналоговые устройства ADV7611. Программное обеспечение Flashroom.
отчет по практике [7,4 M], добавлен 28.09.2015Оценка риска статического сбоя по всем выходным переменным. Анализ цифровых схем по методу простой итерации и событийному методу. Моделирование аналоговых схем: метод узловых потенциалов и переменных состояния. Анализ цифровых схем по методам Зейделя.
контрольная работа [382,1 K], добавлен 10.11.2010Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.
курсовая работа [125,2 K], добавлен 24.09.2010