Введение…………………………………………………………………………...4 1. Разработкамикропрограммывыполненияоперации…………...……………5
Представлениечисел с фиксированнойзапятой…………………………………………5
1.2 Обзор дополнительногокода числа……………………………………………………….5 1.3 Рассмотрениепроцесса выполненияоперации делениябез восстановления(8421)…..6 1.4 Структурнаясхема ОА………………………………………………………………..…..12 1.5 Разработкаграф-схемыалгоритма………………………………………………………12 1.6 Описаниемоделирующейпрограммы……………………………………...……………15 1.7 Оценка временивыполненияоперации иоценка аппаратныхзатрат ОА…………….15 1.8 Контрольвыполненияоперации деленияпо модулю…………………………………..16 2. Синтезуправляющегоавтомата……………………………………………...17
Кодированиемикропрограммы………………………………………………………….17
2.2 Переход отначальногоязыка заданияавтомата кстандартномузаданию…………...18 2.3 СоставлениеструктурнойтаблицыМПА……………………………………………….18 2.4 Построениефункциональнойсхемы…………………………………………………….21 2.5 Расчет тактаработы управляющегоавтомата………………………………………….22 Заключение………………………………………………………………………23 Списоклитературы……………………………………………………………..24 ПриложениеА (графическийматериал)……………………………………….25 ПриложениеВ (моделирующаяпрограмма)…………………………………..26
Делениебез восстановленияостатка сосдвигом остатка
В формес фиксированнойзапятой: формат(1, 8)
Дополнительныйкод
Двоично-десятичнаясистема счисления(код 8421, 8421+6)
Контрольпо модулю
Синхронныйавтомат Мили
Логическийэлемент “ИЛИ-НЕ”
ТриггерJK-типа
Заданиевыдал І___ І_______ 2003г. Преподаватель:ШерстобитоваТ.М.
Заданиепринял І___ І_______ 2003г. Студент:Родионов С.В. .Специальность: 3704 Группа: ЭВМ 00-2 .
Как известноцифровые электронныевычислительныемашины, т.е.компьютеры,предназначеныдля обработкицифровой информациии являютсячастным, нонаиболеераспространеннымвидом цифровыхавтоматов. Дляуспешногоизучения общихпринциповобработкицифровой информациирационально,по возможностимаксимально,отвлечься отреальногоаппаратногообеспечениякомпьютераи рассматриватькомпьютер какнекоторыйабстрактныйцифровой автомат,предназначенныйдля обработкиинформации,представленнойв цифровойформе. Знанияпо прикладнойтеории такихавтоматовнеобходимыдля успешногопоиска новыхпринциповпостроениякомпьютеров,совершенствованияуже известныхалгоритмовобработкицифровой информации,грамотнойэксплуатациивычислительнойтехники и разработкиразличногопрограммногообеспечения.
Для всегоэтого необходимычеткие знанияарифметическихи логическихоснов цифровыхавтоматов,принципованализа и синтезаэтих автоматов.
В данном курсовомпроекте описанпроцесс проектированияуправляющегоавтомата (УА),осуществляющийуправлениевыполненияоперации делениябез восстановленияв коде 8421, 8421+6. Курсоваяработа состоитиз двух разделов:разработкаалгоритмавыполненияоперации инепосредственносинтеза УА,реализующегоэтот алгоритм,а также программына языке программированияАссемблера,выполняющейоперацию деленияв коде 8421, 8421+6.
Основнойцелью курсовойработы являетсязакреплениеосновныхтеоретическихположений курсаПТЦА, приобретениепрактическихнавыков пообработкеалгоритмоввыполненияарифметическихоперации в ЦВМ,построениюуправляющихцифровых автоматов,средств ихконтроля идиагностики.
1. Разработкамикропрограммывыполненияоперации
Представлениечисел с фиксированнойзапятой
Необходимостьв указанииположениязапятой отпадает,если местозапятой в разряднойсетки машинызаранее фиксированораз и навсегда.Такая формапредставлениячисел называетсяпредставлениемс фиксированнойзапятой (точкой).
Так какчисла бываютположительныеи отрицательные,то формат (разряднаясетка) машинногоизображенияразбиваетсяна знаковуючасть и полечисла. В полечисла размещаетсясамо изображениечисла, котороемы условноназываем мантиссойчисла. Длякодированиязнака числаиспользуетсясамый старшийразряд разряднойсетки, отведеннойдля изображениядвоичногочисла, а остальныеразряды отводятсяпод мантиссучисла. Положениезапятой в разряднойсетке строгофиксируется,обычно илиправее самогомладшего разрядамантиссы, илилевее самогостаршего. Впервом случаечисло представляетсякак целое, вовтором - какправильнаядробь.
В настоящеевремя, в подавляющембольшинстве,в компьютерахв формате сфиксированнойточкой представляютсяцелые числа.
В знаковуючасть записываетсяинформацияо знаке числа.Принято, чтознак положительногочисла "+" изображаетсясимволом 0, азнак отрицательногочисла " – "изображаетсясимволом 1.
1.2 Обзордополнительногокода числа
Известно,что одним изспособов выполненияоперации вычитанияявляется заменазнака вычитаемогона противоположныйи прибавлениеего к уменьшаемому:
А - В = А + ( - В)
Этим операциюарифметическоговычитаниязаменяют операциейалгебраическогосложения, которуюможно выполнитьпри помощидвоичных сумматоров.
Для машинногопредставленияотрицательныхчисел используютего дополнительныйкод. Определениеэтого кодаможет быть даноследующимобразом. Есличисло А в обычномдвоичном коде- прямомдвоичном коде,изобразитькак
[A]пр= 0.an an-1 an-2.....a1 a0,
тогдачисло – А в этомже коде представляетсякак
[-A]пр= 1.an an-1 an-2.....a1 a0,
тогдачисло -Aв дополнительномкоде изображаетсяв виде
[-A]доп= [-A]об + 1
где
[-A]об =1.an an-1 an-2.....a1 a0,
где
ai= 1, если ai= 0,
ai= 0, если ai= 1,
ai– цифра i- того разрядадвоичногочисла. Следовательно,при переходеот прямого кодак обратномувсе цифры разрядовмантиссы числаинвертируются.
Таким образом,для получениядополнительногокода отрицательныхчисел нужносначала инвертироватьцифровую частьисходногочисла, в результатечего получаетсяего обратныйкод, а затемдобавить единицув младший разрядцифровой частичисла.
Дополнительныйкод некоторогочисла получаетсяего заменойна новое число,дополняющееего до числа,равного весуразряда, следующегоза самым старшимразрядом разряднойсетки, используемойдля представлениямантиссы числав формате сфиксированнойзапятой. Поэтомутакой код числаназываетсядополнительным.
Подчеркну,что дополнительныйкод используютсятолько дляпредставленияотрицательныхдвоичных чисел.Положительныечисла в этомкоде не меняютсвоего изображения,и представляютсякак в прямомкоде.
Таким образом,цифровые разрядыотрицательногочисла в прямомкоде остаютсянеизменными,а в знаковойчасти записываетсяединица.
1.3 Рассмотрениепроцесса выполненияоперации делениябез восстановленияв коде 8421,8421+6
a)Двоично-десятичнаясистема счисления:
Двоично-десятичныйкод (Д-код) десятичногочисла, это такоеего представление,в котором каждаядесятичнаяцифра изображаетсячетырьмя двоичнымиразрядами(тетрадой издвоичных символов):
A = {a4,n a3,n a2,na1,n}n {a4,n-1 a3,n-1 a2,n-1 a1,n-1}n-1 ... {a4,0 a3,0 a2,0 a1,0}0 ,
где
-двоичные разрядытетрады, i- номер разрядавнутри тетрады,j -номер самойтетрады.Для однозначностиперевода чиселв Д-код и обратножелательно,чтобы разрядытетрад имелиопределенныйвес. Максимальноедопустимоечисло в тетраде- 9. Если возникаетчисло 10 и больше,то единицапереходит вследующуюстаршую тетраду.СуществуютразличныеД-коды, мы рассматримД-код, вес разрядов,тетрады которогоследующий: 8,4, 2, 1.
Десятичные цифры | 8421 | 8421(+6) |
0 | 0000 | 0110 |
1 | 0001 | 0111 |
2 | 0010 | 1000 |
3 | 0011 | 1001 |
4 | 0100 | 1010 |
5 | 0101 | 1011 |
6 | 0110 | 1100 |
7 | 0111 | 1101 |
8 | 1000 | 1110 |
9 | 1001 | 1111 |
б) Свойствакода 8421
1) Коды 8421 и 8421(+6)взаимно дополняющиедруг друга, иэто свойствоиспользуетсяпри выполнениеалгебраическогосложения.
-3 = 1.0011 пк
1.1100 ок
1
1.1101 дк = | 7 |
1.1101 №7 (8421)
1.1101 = 7 (8421(+6))
Для рассматриваемогокода 8421нельзяполучить обратныйили дополнительныйкод простыминвертированием,т.к. инвертированиенабора тетрадозначает получениедополнениядо
.Следовательно,необходимоубрать разницу.Один из используемыхпри этом приемовсостоит в том,что во все цифровыететрады числав коде 8421 добавляется0110 и после этогопроизводитсяинвертированиенабора.
Полученноеизображениепредставляетсобой обратныйкод числа. Адополнительныйкод получается,как обычно,добавлением1 к младшемуразряду младшейтетрады.
2) Аддитивностьсистемы:
Сi= I1I2I3...In
Cj= J1J2J3...Jn
Eij= E1E2E3...En
Системасчисления 8421аддитивна
3= 0.0011
4= 0.0100
7= 0.0111
в) Алгебраическоесложение в коде8421,8421+6
Первый случай– если слагаемыететрады имеютодинаковыезнаки
А>0,В>0, е– ?
Aе– ?
+ | |
|
Если приэтом был переносp =1, то выполняетсяК = 0
Если приэтом не былопереноса p= 0, то выполняетсяК = – 6
Второй случай– если слагаемыететрады имеютразличные знаки
А>0,В
A0
+ | ||
е |
Если е> 0 и при этом былперенос p= 1, то выполняетсяК = 0,
Если е> 0 и при этом небыло переносаp =0, то выполняетсяК = – 6
Если е
Если е
г) Делениев коде 8421, 8421+6
1) Тетрадарассматриваетсякак единоецелое, и сдвигосуществляетсяна одну тетрадупосле формированияочереднойтетрады частного.
2) Для формированиятетрады частногоиз делимоговычитают делительдо тех пор, показнак остаткане изменитсяна противоположный.Если послеположительногоостатка получилиотрицательный,то он не восстанавливается,в следующуютетраду частногозаписывается9 и после сдвиганачинаетсяприбавлениеделителя, накаждый отрицательныйостаток изтекущей тетрадычастного отнимается1. При смене знакана положительныйв следующуютетраду частногозаписывается0 и на каждыйположительныйостаток в текущую тетраду частногоприбавляется1.
3) Появлениеостатка спротивоположнымзнаком являетсяпризнаком концаформированияочереднойтетрады частного,осуществляетсясдвиг остаткасразу на однутетраду. И переходятк формированиюследующейтетрады частного.
4) Каждоеалгебраическоесложение требуетсоответствующейкоррекции.
5) Пункты 2,3,4повторяютстолько раз,сколько нужнополучить тетрадв частном.
д.к.=9.4267
+ | 0.13570011 | 0.5733 |
9.4267 | 0 . 9 0 9 0 | |
¬ + | 9.56240011 5.62400110 | -1+1-1 +1 -1+1-1 +1 |
0.5733 | -1+1-1 +1 | |
+ | 6.19730110 | -1 -1 +1 |
0.5733 | -1 -1 +1 | |
+ | 6.77060110 | -1 -1 +1 |
0.5733 | -1 +1 | |
+ | 7.34390110 | 0 . 2 3 6 7 |
0.5733 | ||
+ | 7.91720110 | |
0.5733 | ||
+ | 8.49050110 | |
0.5733 | ||
+ | 9.06380110 | |
0.5733 | ||
+ | 9.63710110 | |
0.5733 | ||
¬ + | 0.21040110 2.10401100 | |
9.4267 | ||
+ | 1.53071100 | |
9.4267 | ||
+ | 0.95741100 | |
9.4267 | ||
+ | 0.38411100 | |
9.4267 | ||
¬ + | 9.81081100 8.10811000 | |
0.5733 | ||
+ | 8.68141000 | |
0.5733 | ||
+ | 9.25471000 | |
0.5733 | ||
+ | 9.82801000 | |
0.5733 | ||
¬ + | 0.40131000 4.01310000 | |
9.4267 | ||
+ | 3.43980000 | |
9.4267 | ||
+ | 2.86690000 | |
9.4267 | ||
+ | 2.29320000 | |
9.4267 | ||
+ | 1.71990000 | |
9.4267 | ||
+ | 1.14660000 | |
9.4267 | ||
+ | 0.57330000 | |
9.4267 | ||
0.00000000 |
Реализацияпримера вдвоично-десятичномкоде 8421, 8421+6
д.к.1111101010001100 1101
+ | 0000 0001 0011 0101 0111 0000 0000 0001 0001 | 0110 1011 1101 1001 1001 |
1111 1010 1000 1100 1101 | 0000 1001 0000 1001 0000 | |
+ | 1111 1011 1100 0010 0100 | -0001+0001-0001+0001 |
1010 1010 1010 коррекция | -0001+0001-0001+0001 | |
¬ + | 1001 0101 0110 0010 0100 0000 0000 0001 0001 | -0001+0001-0001+0001 |
0101 0110 0010 0100 0000 0000 0001 0001 0000 | -0001 -0001+0001 | |
0110 1011 1101 1001 1001 | -0001 -0001+0001 | |
+ | 1100 0001 1111 1101 1001 | -0001 -0001+0001 |
1010 1010 1010 1010 коррекция | -0001 +0001 | |
+ | 0110 0001 1001 0111 0011 | 0010 0011 0110 0111 |
0110 1011 1101 1001 1001 | ||
+ | 1100 1101 0111 0000 1100 | |
1010 1010 1010 коррекция | ||
+ | 0110 0111 0111 0000 0110 | |
0110 1011 1101 1001 1001 | ||
+ | 1101 0011 0100 1001 1111 | |
1010 1010 1010 коррекция | ||
+ | 0111 0011 0100 0011 1001 | |
0110 1011 1101 1001 1001 | ||
+ | 1101 1111 0001 1101 0010 | |
1010 1010 1010 коррекция | ||
+ | 0111 1001 0001 0111 0010 | |
0110 1011 1101 1001 1001 | ||
+ | 1110 0100 1111 0000 1011 | |
1010 1010 1010 коррекция | ||
+ | 1000 0100 1001 0000 0101 | |
0110 1011 1101 1001 1001 | ||
+ | 1111 0000 0110 1001 1110 | |
1010 1010 1010 коррекция | ||
+ | 1001 0000 0110 0011 1000 | |
0110 1011 1101 1001 1001 | ||
+ | 1111 1100 0011 1101 0001 | |
1010 1010 1010 коррекция | ||
+ | 1001 0110 0011 0111 0001 | |
0110 1011 1101 1001 1001 | ||
+ | 0000 0010 0001 0000 1010 | |
1010 коррекция | ||
¬ + | 0000 0010 0001 0000 0100 0000 0001 0001 0000 0010 0001 0000 0100 0000 0001 0001 0000 0000 | |
1111 1010 1000 1100 1101 | ||
+ | 0001 1011 1001 0000 1101 | |
1010 1010 1010 коррекция | ||
+ | 0001 0101 0011 0000 0111 | |
1111 1010 1000 1100 1101 | ||
+ | 0000 1111 1011 1101 0100 | |
1010 1010 1010 коррекция | ||
+ | 0000 1001 0101 0111 0100 | |
1111 1010 1000 1100 1101 | ||
+ | 0000 0011 1110 0100 0001 | |
1010 коррекция | ||
+ | 0000 0011 1000 0100 0001 | |
1111 1010 1000 1100 1101 | ||
+ | 1111 1110 0001 0000 1110 | |
1010 1010 1010 коррекция | ||
¬ + | 1001 1000 0001 0000 1000 0001 0001 0000 0000 1000 0001 0000 1000 0001 0001 0000 0000 0000 | |
0110 1011 1101 1001 1001 | ||
+ | 1110 1100 1110 0001 1010 | |
1010 1010 1010 1010 коррекция | ||
+ | 1000 0110 1000 0001 0100 | |
0110 1011 1101 1001 1001 | ||
+ | 1111 0010 0101 0101 1101 | |
1010 1010 1010 коррекция | ||
+ | 1001 0010 0101 0100 0111 | |
0110 1011 1101 1001 1001 | ||
+ | 1111 1110 0010 1110 0000 | |
1010 1010 1010 коррекция | ||
+ | 1001 1000 0010 1000 0000 | |
0110 1011 1101 1001 1001 | ||
+ | 0000 0100 0000 0001 1001 | |
1010 коррекция | ||
¬ + | 0000 0100 0000 0001 0011 0001 0000 0000 0000 0100 0000 0001 0011 0001 0000 0000 0000 0000 | |
1111 1010 1000 1100 1101 | ||
+ | 0011 1010 1001 1111 1110 | |
1010 1010 1010 1010 коррекция | ||
+ | 0011 0100 0011 1001 1000 | |
1111 1010 1000 1100 1101 | ||
+ | 0010 1110 1100 0110 0101 | |
1010 1010 коррекция | ||
+ | 0010 1000 0110 0110 0101 | |
1111 1010 1000 1100 1101 | ||
+ | 0010 0010 1111 0011 0010 | |
1010 коррекция | ||
+ | 0010 0010 1001 0011 0010 | |
1111 1010 1000 1100 1101 | ||
+ | 0001 1101 0001 1111 1111 | |
1010 1010 1010 коррекция | ||
+ | 0001 0111 0001 1001 1001 | |
1111 1010 1000 1100 1101 | ||
+ | 0001 0001 1010 0110 0110 | |
1010 коррекция | ||
+ | 0001 0001 0100 0110 0110 | |
1111 1010 1000 1100 1101 | ||
+ | 0000 1011 1101 0011 0011 | |
1010 1010 коррекция | ||
+ | 0000 0101 0111 0011 0011 | |
1111 1010 1000 1100 1101 | ||
0000 0000 0000 0000 0000 |
Структурнаясхема ОА
(ПриложениеА, лист № 1 )
Дляреализациипредложенногоалгоритмавыполненияоперации делениянеобходимыследующиеоперационныеэлементы:
Рг.А(0-19) –регистр делителя:4р.- знак, 16р.- мантиссаделителя.
СМ (0-43) – сумматор:4р.- знак, 32р.- мантиссаделимого,
4р.- переносы.
3)Рг.В(0-19) – регистрчастного: 4р.-знак, 16р.- мантиссачастного.
4)регистр Рг.К(0-3)– регистр коррекции.
5) счетчикСч.1 - этот счетчикнеобходим дляформированиятетрады частного.
6) счетчикСч.2 - этот счетчикнеобходим длявыхода из цикладеления, выходбудет осуществленпосле того, какбудут пройденывсе тетрады.
7) счетчикСч.3 - этот счетчикнеобходим длявыхода из коррекции.
1.5Разработкаграф-схемыалгоритма (ГСА)
(ПриложениеА, лист № 2,3)
Дляреализациилюбой арифметическойоперации необходимознать алгоритмее выполнения,ниже приводитсяалгоритм операцииделения чиселс фиксированнойзапятой в коде8421, 8421+6. Если блокивыполняютсяпоследовательно,то ссылки наследующий блокне приводятся.
Таблица 1 -Определениеблоков
Номер блока | Назначение |
A00(Л2) | Начало. |
B00(Л2) | Начальнаяустановка: СМ:=X,Рг.А:=Y, Сч1:=0, Сч2:=0,Сч3:=0, Рг.K:="1010". |
C00(Л2) | Определяемзнак частногопутем сложениязнаковых разрядовделимого иделителя помодулю два изаносим егов Рг.B[16-19]. |
D00(Л2) | Первоепробное сложениеделимого иделителя, делительв дополнительномкоде. |
F00(Л2) | ПроверяемСМ[40-43]=0000, если Дато на G00(Л2),иначе на B00(Л3). |
G00(Л2) | Программаобработкипрерываний(АВОСТ). Выдачасообщения опереполнение. |
B00(Л3) | ПроверяемСМ[22,23]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD00(Л3),иначе на C01(Л3). |
C01(Л3) | ПроверяемСМ[21,23]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD00(Л3),иначе на E00(Л3). |
D00(Л3) | Коррекция:СМ[20-23]:=СМ[20-23] + Рг.К[0-3]. |
E00(Л3) | ПроверяемСМ[27,28]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наG00(Л3),иначе на F01(Л3). |
F01(Л3) | ПроверяемСМ[26,28]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наG00(Л3),иначе на B02(Л3). |
G00(Л3) | Коррекция:СМ[25-28]:=СМ[25-28] + Рг.К[0-3]. |
B02(Л3) | ПроверяемСМ[32,33]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD02(Л3),иначе на C03(Л3). |
C03(Л3) | ПроверяемСМ[31,33]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD02(Л3),иначе на E02(Л3). |
D02(Л3) | Коррекция:СМ[30-33]:=СМ[30-33] + Рг.К[0-3]. |
E02(Л3) | ПроверяемСМ[37,38]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наG02(Л3),иначе на F03(Л3). |
F03(Л3) | ПроверяемСМ[36,38]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наG02(Л3),иначе на B04(Л3). |
G02(Л3) | Коррекция:СМ[35-38]:=СМ[35-38] + Рг.К[0-3]. |
B04(Л3) | ПроверяемСМ[42,43]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD04(Л3),иначе на C05(Л3). |
C05(Л3) | ПроверяемСМ[41,43]=11, т.е. на наличиезапрещенныхкомбинаций,если Да то наD04(Л3),иначе на E04(Л3). |
D04(Л3) | Коррекция:СМ[40-43]:=СМ[40-43] + Рг.К[0-3]. |
E04(Л3) | ПроверяемСч.3=0, если Да,то переходимна B04(Л2),иначе на F05(Л3). |
F05(Л3) | ПроверяемСч.3=1, если Да,то переходимна B02(Л2),иначе на B06(Л2). |
B04(Л2) | Сдвигаемрегистр СМвлево на 5 разрядов. ВСч.1 заносим9. |
C04(Л2) | Сч.1:=9. |
D04(Л2) | Сложениеделимого иделителя, делительв прямом коде. |
F04(Л2) | Сч.3:=1. |
Переходна коррекцию. | |
B02(Л2) | ПроверяемСМ[40-43]=0000, если Дато на C02(Л2),иначе на C03(Л2). |
C03(Л2) | ДекрементСч1 (отнимаемот текущейтетрады частного1). |
C02(Л2) | ИнкрементСч.2 (переходк следущейтетраде частного). ПрисваиваемРг.В[0-3] значениеСч1. Сдвигаемрегистр Рг.Ввлево на 4 разряда. |
D02(Л2) | Сдвигаемрегистр СМвлево на 5 разрядов. ВСч.1 заносим1. |
E02(Л2) | Сложениеделимого иделителя, делительв дополнительномкоде. |
G02(Л2) | Сч.3:=2. |
Переходна коррекцию. | |
B06(Л2) | ПроверяемСМ[40-43]=0000, если Дато на C06(Л2),иначе на C07(Л2). |
C06(Л2) | ИнкрементСч1 (прибавляемк текущей тетрадечастного 1). |
C07(Л2) | ИнкрементСч.2 (переходк следущейтетраде частного). ПрисваиваемРг.В[0-3] значениеСч1. Сдвигаемрегистр Рг.Ввлево на 4 разряда. |
D07(Л2) | ПроверяемСч.2=0, если Да тона E07(Л2),иначе на C04(Л2). |
E07(Л2) | Выводимчастное, т.е.Z:=Рг.В. |
F07(Л2) | Конец. |
1.6 Описаниемоделирующейпрограммы
(ПриложениеВ)
Программаоперации делениябез восстановленияостатка сосдвигом остаткас фиксированнойточкой в коде8421, 8421+6 выполненана языке программированияассемблера.В моделирующейпрограмме регистрамиРг.А, Рг.В, Рг.К,а так же счетчикамиСЧ.1 и СЧ.2 СЧ.3 являютсярегистры самойЭВМ и оперативнаяпамять.
Описаниепрограммыпострочно:
1– 22 – Связываниеданных с сегментомданных DS,очистка экрана,приглашениек вводу двухчисел, записьвведенных чиселпо адресам всегменте данных.
23 –28 – Вычислениезнака частного.
29– 72 – Вычислениеколичестватетрад, подготовкапод знак целойтетрады, вызовпроцедурпреобразованияиз ASCIIв байты делимогои делителя,пробное сложение,проверка напереполнение.
73 –79 – Вывод сообщенияо переполнениии переход навыход из программы.
80– 103 – Вызов процедурыпреобразованияконечногорезультатаиз байта в ASCII,вывод знаковогоразряда и выводрезультата,стандартныйвыход из программы.
104 – 131 – Процедураперевода делимогоиз ASCII в BIN.
132 – 159 – Процедураперевода делимогоиз ASCII в BIN.
160 –176 – Процедураперевода делителяв дополнительныйкод.
177 –243 – Процедурасложения тетрадделимого иделителя сучетом возникающихмежтетрадныхпереносов,процедурапроверки накоррекцию.
244– 267 – Процедураперевода конечногорезультатаиз байта в ASCII.
268 –277 – Описаниесегмента данных,закрытие кодовогосегмента.
Оценкавремени выполненияоперации иоценка аппаратныхзатрат ОА
Времявыполненияоперации определяетсяформулой:
Т’= Lср.*Топ.сл.+ 4tсдв.
Топ.сл.= tсл.+tсл.*pкор.
Lср.=5,5 – среднееколичествошагов, т.к. самоеминимальноезначение = l,а максимальноезначение = 10.
pкор=вероятностькоррекции, для8421 равна 0,5
tсл.=4*tсдв.
Т=к(L*Tсл.+ 4tсдв.)=к(5,5Тсл.+ 4tсдв.)= 8(5,5*1,5*4*tсдв.+ 4*tсдв.)=
=8(37tсдв.)=296tсдв.
к=8, т.к. нужновычислить 8тетрад.
Оценкааппаратныхзатрат осуществляетсяпутем подсчетаразрядов вэлементах,участвующихв операцииделения:
Q=Q(Рг.А(0-19))+Q(Рг.В(0-19))+Q(Рг.К(0-3))+Q(СМ(0-43))+Q(Сч.1(0-3))+Q(Сч.2(0-1))+Q(Сч.3(0-1))=20+20+4+44+4+2+2=96
1.8Контроль выполненияоперации деленияпо модулю
Контрольвыполненияарифметическихи логическихопераций можноосуществлятьс помощью контрольныхкодов, представляющихсобой остаткиот делениячисел на некоторыймодуль. Такойконтроль называетсяконтролем помодулю. Длядвоичных чиселэтот модульобычно равенили больше 3.Различаютчисловой ицифровой контрольпо модулю.
При числовомметоде кодзаданного числаопределяетсякак наименьшийположительныйостаток отделения числана выбранныймодуль.
При цифровомметоде контроляконтрольныйкод числа образуетсяделением суммыцифр числа навыбранныймодуль. В данномварианте возможныдва пути полученияконтрольногокода:
непосредственноеделение суммыцифр на модуль;
2) простосуммированиецифр по выбранномумодулю.
Самым распространеннымметодом контроляи диагностикиявляется контрольпо модулю, принципкоторого основанна том, что остатокот деления назаданное числосуммы чиселдолжен равнятьсясумме остатковот деления наэто же числоисходных чисел.
Приэтом к модулюпредставляютследующие общиетребования:
Модульдолжен обеспечиватьобнаружение,как можно большегочисла ошибок,при обязательномобнаруженииодиночныхошибок .
Модульдолжен бытьтаким, чтобыостаток отделения нанего числаопределялсяпростым и быстрымметодом безнепосредственногоделения.
Модульдолжен бытьнебольшим,чтобы остаткиполучалисьмало разрядными,в противномслучае потребуютсябольшие дополнительныезатраты оборудования.
2. СИНТЕЗУПРАВЛЯЮЩЕГОАВТОМАТА
Кодированиемикропрограммы
В этом пунктеосуществляетсяпереход непосредственнок синтезумикропрограммногоавтомата пограф схемеалгоритма(ГСА).
Начатьследует с синтезаабстрактногоавтомата, которыйосуществляетсяпо кодированнойГСА. КодированнаяГСА получаетсяпутём пометкикаждой вершиныв содержательнойГСА.
Чтобы получитьотмеченнуюГСА для абстрактногоавтомата Мили,необходимовоспользоватьсяследующимиправилами:
1) Начальнаяи конечнаявершины обозначаютсясимволами а0;
2) Вход каждойвершины следуяза операторомотмечается а1, а2, и т.д.;
Врезультатеполучаем алфавитсостояний А= { а1,а2,... , аm}.
Используяэти правила,создаем таблицудля кодированнойГСА(см. Таблицу2).
Таблица 2 - Кодированиеблоков
ОБ и ЛУ | Условныеобозначения |
СМ:=X, Рг.А:=Y,Сч1:=0, Сч2:=0, Сч3:=0,Рг.K:="1010" | Y1 |
СМ[40-43]:=СМ[40-43]+ Рг.А[16-19] Рг.B[16-19]:=СМ[40-43] | Y2 |
СМ[20-23]:=СМ[20-23]+ Рг.А[0-3] + ''1" [20] СМ[25-28]:=СМ[25-28]+ Рг.А[4-7] + ''1" [25] СМ[30-33]:=СМ[30-33]+ Рг.А[8-11] + ''1" [30] СМ[35-38]:=СМ[35-38]+ Рг.А[12-15] + ''1" [35] СМ[40-43]:=СМ[40-43]+ Рг.А[16-19] + ''1" [40] | Y3 |
ПрограммаОбработкиПрерываний | Y4 |
СМ[20-23]:=СМ[20-23]+ Рг.К[0-3] | Y5 |
СМ[25-28]:=СМ[25-28]+ Рг.К[0-3] | Y6 |
СМ[30-33]:=СМ[30-33]+ Рг.К[0-3] | Y7 |
СМ[35-38]:=СМ[35-38]+ Рг.К[0-3] | Y8 |
СМ[40-43]:=СМ[40-43]+ Рг.К[0-3] | Y9 |
СМ:=L(5)СМ | Y10 |
Сч.1:="9" | Y11 |
СМ[20-23]:=СМ[20-23]+ Рг.А[0-3] СМ[25-28]:=СМ[25-28]+ Рг.А[4-7] СМ[30-33]:=СМ[30-33]+ Рг.А[8-11] СМ[35-38]:=СМ[35-38]+ Рг.А[12-15] СМ[40-43]:=СМ[40-43]+ Рг.А[16-19] | Y12 |
Сч.3:= 1 | Y13 |
Сч.2:=Сч.2+1 Рг.В[0-3]:=Сч1 Рг.В:=L(4)Рг.В | Y14 |
Сч.1:=Сч.1-1 | Y15 |
СМ:=L(5)СМ Сч1:=0 | Y16 |
Сч.3:=2 | Y17 |
Сч.1:=Сч.1+1 | Y18 |
Z:=Рг.В | Y19 |
СМ[40-43]=0000 | X1 |
СМ[22,23]=11 | X2 |
СМ[21,23]=11 | X3 |
СМ[27,28]=11 | X4 |
СМ[26,28]=11 | X5 |
СМ[32,33]=11 | X6 |
СМ[31,23]=11 | X7 |
СМ[37,38]=11 | X8 |
СМ[36,38]=11 | X9 |
СМ[42,43]=11 | X10 |
СМ[41,43]=11 | X11 |
СЧ.3=0 | X12 |
СЧ.3=1 | X13 |
СЧ.2=0 | X14 |
к стандартномузаданию
В отмеченнойГСА путем переходамежду состояниямиаm иаs, называетсяпоследовательностьследующеговида:
- обозначениевершины, изкоторой осуществляетсяпереход; - вершина,в которуюосуществляетсяпереход; - обозначениеусловия вершины,через которыепроходит путьот и ,причем (взависимостиот логическогоусловия Xmk).Иногдавозможно итакое что, когдаK = 0 (нет ни однойусловной вершины),в этом случаепуть имеет вид
.Любой графмикропрограммногоавтомата Милиобычно задаетсяв виде прямойили обратнойтаблицы переходов.
Выписываяпути переходадля нашей ГСА,составляемтаблицу переходовдля микропрограммногоавтомата Мили.
2.3 Составлениеструктурнойтаблицы МПА
Намзадан автоматМили. Для этогоавтомата необходимопостроитьпрямую таблицупереходов, вкоторую вписываютсяпути переходамежду соседнимиотметками. Впрямую таблицупереходов, вотличае отобратной таблицыдобавляетсятри столбца.В итоге мы имеем:
аM– исходноесостояние
K(аM)– двоичный кодисходногосостояния
аS– входной сигнал,под воздействиемкоторого происходитпереход изсостояния AMв состояниеAS
K(аS)– двоичный кодсостоянияперехода
X(аM,аS)– входной сигнал,соответствующийданному переходу
Y(аM,аS)– выходнойсигнал, соответствующийданному переходу
F(аM,аS)– обязательныесигналы возбужденияпамяти, необходимыедля переключенияМПА из состоянияAMв состояниеAS
Коды состоянийK(am)и K(as)будем кодироватьдвоичной системойсчисления.Всего у нас 20состояний, аэто значит, чтодля кодированиянам необходимои достаточно5-х разрядногочисла, т.е. используем5 JK-триггеров.
аM | K(аM) | аS | K(аS) | X(аM,аS) | Y(аM,аS) | F(аM,аS) |
a0 | 00000 | a1 | 00001 | 1 | — | J5 |
a1 | 00001 | a2 | 00011 | 1 | y1 | J4 |
a2 | 00011 | a3 | 00010 | 1 | y2 | K5 |
a3 | 00010 | a4 | 00100 | 1 | y3 | J3,K4 |
a4 | 00100 | a0 | 00000 | x1 | y3 | K3 |
a4 | 00100 | a5 | 00110 | 1 | — | J4 |
a5 | 00110 | a6 | 00111 | x2 | y5 | J5 |
a5 | 00110 | a6 | 00111 | 2,x3 | y5 | J5 |
a5 | 00110 | a6 | 00111 | 2, 3 | — | J5 |
a6 | 00111 | a7 | 00101 | x4 | y6 | K4 |
a6 | 00111 | a7 | 00101 | 4,x5 | y6 | K4 |
a6 | 00111 | a7 | 00101 | 4, 5 | — | K4 |
a7 | 00101 | a8 | 01101 | x6 | y7 | J2 |
a7 | 00101 | a8 | 01101 | 6,x7 | y7 | J2 |
a7 | 00101 | a8 | 01101 | 6, 7 | — | J2 |
a8 | 01101 | a9 | 01100 | x8 | y8 | K5 |
a8 | 01101 | a9 | 01100 | 8,x9 | y8 | K5 |
a8 | 01101 | a9 | 01100 | 8, 9 | — | K5 |
a9 | 01100 | a10 | 01000 | x10 | y9 | K3 |
a9 | 01100 | a10 | 01000 | 10,x11 | y9 | K3 |
a9 | 01100 | a10 | 01000 | 10, 11 | — | K3 |
a10 | 01000 | a11 | 01010 | x12 | y10 | J2 |
a10 | 01000 | a14 | 11010 | 12,x13,x1 | y14 | J1,J4 |
a10 | 01000 | a12 | 01011 | 12,x13, 1 | y15 | J2,J1 |
a10 | 01000 | a15 | 11100 | 12, 13,x1 | y18 | J1,J3 |
a10 | 01000 | a17 | 11000 | 12, 13, 1 | y14 | J1 |
a11 | 01010 | a12 | 01011 | 1 | y17 | J5 |
a12 | 01011 | a13 | 01111 | 1 | y12 | J3 |
a13 | 01111 | a5 | 00110 | 1 | y16 | K2,K5 |
a14 | 11010 | a15 | 11100 | 1 | y16 | J3,K4 |
a15 | 11100 | a16 | 11110 | 1 | y3 | J4 |
a16 | 11110 | a5 | 00110 | 1 | y17 | K1,K2 |
a17 | 11000 | a0 | 00000 | x14 | y19 | K1,K2 |
a17 | 11000 | a11 | 01010 | 14 | — | K1, J4 |
Составлениевыраженийфункций возбужденияавтомата:
J5=
J4=
J3=
J2=
J1=
K5=
K4=
K3=
K2=
K1=
Переведемфункции возбужденияв свой базис“ИЛИ-НЕ”:
J5=
J4=
J3=
J2=
J1=
K5=
K4=
K3=
K2=
K1=
2.4 Построениефункциональнойсхемы
(ПриложениеА, лист № 5 )
Функциональнуюсхему управляющегоавтомата согласнозаданию надопостроить вбазисе "ИЛИ- НЕ", т.е. используя логическиеэлементы "ИЛИ- НЕ".
Используявыраженияфункций возбуждения,спроектируемфункциональнуюсхему Управляющегоавтомата Милис элементамипамяти на JK– триггерах.
Для получениясигналов J1-J5и K1-K5,мы используемпрямые и инверсныесостояния x,которые подаютсяна шину X,и, используя логическиеэлементы "ИЛИ- НЕ" на шину
соответственно.Согласнорасчетам ивычислениям,проведеннымвыше, наш автоматимеет 20 состояний,это значит, чтодля получениятребуемыхсигналов внашей схемепонадобитсядешифраторсостояний (a0– a19).Затем для удобстваи читаемостисхемы, полученныесигналы подаютсяна шину А. С шиныА, используя логическиеэлементы "ИЛИ- НЕ", получаеминверсныесостояния
(а0-а19),которые выводимна шину
.Приступаемнепосредственнок формированиюсигналов возбуждениядля этого полученныенами сигналыс шин А и
,Х и подаютсяна элементы"ИЛИ - НЕ", послечего они проходятстадию обработки,на которойполучаютсянужные намсигналы J1-J5и K1-K5.Далее эти сигналыпоступают навходы пяти JKтриггеров, врезультатечего мы имеемсформированныесигналы Q1-Q5и их инверсныесостояния,которые в своюочередь образуютшину Qи подаются наначало функциональнойсхемы, где будутзаново участвоватьв формированиисигналов.Для получениявыходных сигналов,мы используемполученнуюнами шину А, врезультатечего получаемвыходную шинуУ.
JK-триггери его характеристики:
2.5 Расчет тактаработы управляющегоавтомата
Тактработы УА зависитот законафункционированияи структурыавтомата. Вавтомате Милипереключениесостояния УАпроисходитв конце тактапосле выдачивыходных сигналовв соответствиисо значениямипоступившихвыходных сигналовиз ОА. В связис этим тактработы управляющегоавтомата,функционирующегокак автоматМили, определяетсяпо формуле:
Т=Ту+Тп+Tв
где
Тв=40нс - максимальноевремя формированиявыходных сигналов,
Тп=80нс - время переключенияпамяти состояний.
Ту=20нс - время надешифрированиесостояний,
Такимобразом:
Т=40+80+20=140нс
Частота
ЗАКЛЮЧЕНИЕ
В основныхнаправленияхэкономическогои социальногоразвития впоследнее времяпоставленызадачи: развиватьтеоретическуюи прикладнуюматематику,информатикуи кибернетику,широко внедрятьмашины и оборудованиесо встроеннымисредствамимикропроцессорнойтехники, ускоренноразвить выпусксредств автоматизацииуправленческогои инженерноготруда, малыхэлектронныхвычислительныхмашин.
Сегодня трудносебе представитьдеятельностьчеловека безэлектронныхвычислительныхмашин (ЭВМ).Появившисьоколо 50 лет назад,ЭВМ открылиновую страницув историичеловеческихзнаний и возможностей,высвободилитысячи вычислителей,значительнооблегчили трудученых, даливозможностьизучать сложнейшиепроцессы. Сейчаснет ни однойотрасли народногохозяйства, гденельзя былобы применитьЭВМ более того,целые разделынауки и техникине могут существоватьбез них. Прикладнаятеория цифровыхавтоматов этотот разделнауки, без которогоне может существоватьлюбая ЭВМ, ичем она сложнее,тем сильнееона основанана последнихдостиженияхв области ПТЦА.
Вданном курсовомпроекте былсинтезировануправляющийавтомат, осуществляющийуправлениевыполнениемоперации делениябез восстановленияостатка сосдвигом остатка.Построен алгоритмобработкичисел. Расписаныуправляющиесигналы и другиефункции. Поимеющемсяданным построенафункциональнаясхема устройства.
Сравниваявсе изученныемною методыделения, я сделалдля себя вывод,что на сегодняшнийдень наиболеераспространеннымиметодами являются:деление свосстановлениемсо сдвигомостатка, делениебез восстановлениясо сдвигомделителя. Нов то же времясамый оптимальныйвариант - делениебез восстановлениясо сдвигомостатка. А самоебыстродействующееделение безвосстановлениясо сдвигомделителя, таккак сдвиг делителяможно совместитьво времени сосложением.
1.Савельев А.Я. Арифметическиеи логическиеосновы цифровыхавтоматов.
- М.:Высшая школа, 1980.
СавельевА.Я. Прикладнаятеория цифровыхавтоматов. -М.: Высшая школа,1987.
АйтхожаеваЕ.Ш. ПроектированиеУправляющегоавтомата. - А.:КазПТИ,
1987.
4. АйтхожаеваЕ.Ж. Прикладнаятеория цифровыхавтоматов.Алматы: 1993.
ПРИЛОЖЕНИЕA
ПРИЛОЖЕНИЕВ