Екілік кодында берілген екі жылжымалы үтірлі сандарды екі разряд бойынша талдап көбейту



Кіріспе
1.Операция орындалуының алгоритмін құру.
1.1 Жылжымалы үтірлі сандарды кіші разряд бойынша талдап көбейту.
1.2Жылжымалы үтірлі сандарды кіші разряд бойынша талдап көбейтуге мысал.
1.3 Операциялы автоматтың құрылымы.
1.4 Программаның сипаттамасы
1.5 Қолданушыға нұсқау
1.6 Программаның алгоритмі
1.7 Операция орныдалуының уақытын және операциялық автоматтың (ОА) аппараттық шығындарын есептеу.
1.8 Операция орындалуын бақылау.
2. Басқару автоматын синтездеу.
2.1 Микропрограмманы кодалау.
2.2 Микропрограммалық автоматтың құрылымдық кестесін құру
3. Техникалық құрал жабдықтар.
Қорытынды
Қолданылған әдебиеттер
Қосымша
Бұл курстық жобада жылжымалы үтірлі сандарды екі разряд бойынша талдап көбейту операциясын орындайтын басқарушы автомат синтезделеді. Тексеру модуль бойынша жүргізіледі. Негізгі мақсаты – БА-тың функционалдық сұлбасын құру. Функционалдық сұлбаны құру үшін “ЖӘНЕ-НЕМЕСЕ” логикалық элементтер және жады элементі ретінде Т триггер қолданылады.
Курстық жоба 2 бөлімнен тұрады: операция орындалуының алгоритмін құру және осы алгоритмді жүзеге асыратын БА синтездеу. Сонымен қатар, осы тәсілді жүзеге асыратын программа жазу керек.
1. Айтхожаева Е. Ж., Тынымбаев С. Т.
«Арифметические и логические устройства ЭВМ».

2. Савельев А. Я.
Прикладная теория цифровых автоматов: Учеб. для вузов по спец. ЭВМ. – М.: Высш. школа, 1987. – 272 стр.

3. Тынымбаев С. Т.
Вычислительные машины, системы, комплексы и сети. Учебник для вузов. – Алматы: Рауан, 1996 г.
4. Айтхожаева Е. Ж., Тынымбаев С. Т.
Цифрлық автоматтардың қолданбалы теориясы: Оқулық – Алматы: Рауан, 1992ж.

Кіріспе

Бұл курстық жобада жылжымалы үтірлі сандарды екі разряд бойынша талдап
көбейту операциясын орындайтын басқарушы автомат синтезделеді. Тексеру
модуль бойынша жүргізіледі. Негізгі мақсаты – БА-тың функционалдық сұлбасын
құру. Функционалдық сұлбаны құру үшін “ЖӘНЕ-НЕМЕСЕ” логикалық элементтер
және жады элементі ретінде Т триггер қолданылады.
Курстық жоба 2 бөлімнен тұрады: операция орындалуының алгоритмін құру
және осы алгоритмді жүзеге асыратын БА синтездеу. Сонымен қатар, осы
тәсілді жүзеге асыратын программа жазу керек.

1.Операция орындалуының алгоритмін құру.

1.1 Жылжымалы үтірлі сандарды кіші разряд бойынша талдап көбейту.
мен сандарының көбейтіндісі мынаған тең: .
Бұдан көбейтіндінің реті , ал мантиссасы екені көрініп тұр.
Мантиссаларды көбейту табиғи түрде көрсетілген тиянақты үтірлі сандарды
көбейтуге ұқсас. Көбейтіндінің реті көбейткіштер реттерін қосу арқылы
анықталады. Ауытқыған реттердің қосқанда мынаны еске алу керек: ,
және мұнда ауытқыған реттер қосындысы С мәніне артық, сондықтан
одан С мәнін шегеру керек: .
Жалпы алғанда көбейту операциясы мынандай кезеңдерден тұрады: 1.
көбейтінді таңбасы А мен Б сандары таңбаларын екі модуль бойынша қосындылау
арқылы анықталады; 2. көбейтіндінің реті анықталады; 3. көбейтіндінің
мантиссасы есептеледі; 4. нәтиже қалыпталынады.
Жылжымалы үтірлі сандарды көбейткенде мына кезеңдерді еске алу керек: 1.
егер көбейгіштердің мантиссалары 0-ге тең болса, онда нәтижеге операцияның
орындамай-ақ 0 мәні меншіктеледі; 2. егер реттер қосындысын анықтау үстінде
теріс таңбалы аса толу пайда болса, онда мантиссаларды көбейтпей-ақ
нәтижеге 0 мәні меншіктеледі; 3. егер реттер қосындысы анықтағанда оң
таңбалы аса толу алынса, онда мантиссаларды көбейтуге кіріседі:
мантиссаларды көбейткен соң қалыптану оңға қарай бұзылуы мүмкін, мантиссаны
қалыптылағаннан кейін ретте аса толу жоюлуы мүмкін.

Мантиссаларды көбейту.
Адыңғы разрядтар жұптарының кіші разрядтарына келетін тасымалды
ескеріп, көбейткіштің екі разрядына қосындыны жылжыту және 1,0 цифрлары
жүйесіне көшу арқылы көбейту әдісін қарастырдым.
Көбейткіштің екі кіші разрядтар тобының мәндері мынандай болуы мүмкін: 00,
01, 10, 11.
Екі разряд мәні 00 болғанда көбейгіш КБҚ-ға қосындыланбай, КБҚ оңға қарай
екі разрядқа жылжытылады. Екі разряд мәні 10 болса, екі еселенген көбейгіш
КБҚ- ға қосындыланып, содан соң КБҚ оңға екі разрядқа жылжытылады. 01
комбинациясында КБҚ –ға көбейгіш қосылып, қосынды оңға екі разрядқа
жылжытылады. Егер талданатын разрядтар тобының мәні 11 болса, онда 11= 1000-
001=101 түрінде қаралады. Онда тасымал осынща жады элементінде сақталады,
ал КБҚ –дан көбейгіш азайтылады да, нәтиже оңға қарай екі разрядқа
жылжытылады.
Бұл әдіспен көбейткенде төменгі қос разрядтан берілетін тасымал түзету
тіркегішінде (ТТР) сақталады да, көбейткіштің келесі қос разрядын
талдағанда ескеріледі. ТТР 1 болғанда, егер келесі қос разрядтар мәні 00
болса, онда оларды 01 деп, ал 01 болса, онда – 10 деп, 10 болса – 11 деп,
11 болса – 00 деп қараймыз. Соңғы екі комбинацияда бірлік ТТР –де
сақталады. 1-ші таблицада төменгі қос разрядтар ауысатын тасымал мәні
ескеріліп көбейткіштің төменгі екі разрядын талдау ережесі келтірілген.
1-кесте

Реттерді қосындылау.

Рх және Ру реттерін алгебралық қосындылағанда шағатын нәтиже Pz –нің бес
жағдайын орнатуға болады.
1.
2.
3.
4.
5.
Мұндағы К реттердің разрядтылығы
1. жағдайда оң аса толу жағдайы орын алады. Бұл жағдайда реттер операцияға
оң таңбамен қатысады. Егер реттер операцияға теріс таңбамен қатысса онда 2-
ші жағдай орындалады. Бұл жағдайда теріс таңбалы аса толу алынады.
3-ші жағдай орын алады, егер операцияға қатысатын реттердің таңбалары
әртүрлі болып, модулдері бірдей болса. 4-ші және 5-ші жағдайлар реттердің
(Pz мәні реттердің разрядтық торының шекарасында болса) таңбалары әртүрлі
болғанда орын алады.
4-ші жағдай орын алады, егер реттердің алгебралық қосындысының нәтижесі Pz
оң таңбалы (+Р) болса. 5-ші жағдай орын алады, егер реттердің алгебралық
қосындысының нәтижесі Pz теріс таңбалы (-Р) болса.
Алуда жылжымалы үтірлі сандардың реттерімен операцияларды орындағанда әрі
қарай әрекеттерді орындау үшін осы бес жағдайды қарастыру қажет.

1.2Жылжымалы үтірлі сандарды кіші разряд бойынша талдап
көбейтуге мысал.

[X]ТУРА =0 11111010
[Y]ТУРА =-0 10100001

Шешеуі:
а) Көбейтіндінің таңбасын анықтаймыз:
Т1+Т2=0+1=1
б) Реттерін есептейміз:
РX* = 0100
+
PY* = 0101
----------------------
PX *+РY* = 1001

в) Мантиcсаларды көбейтеміз:

0000000000000000
11111010
1111101000000000
0000011111010000 R(5)
11111010
1 0000000111010000
0100000001110100 R(2)
11111010
1. 0011101001110100
1001110100111010 R(1)

Z=0,1001110100111010

г) Нәтижені қалыптастырамыз, ол үшін MZ бір разрядқа солға жылжытамыз да
PZ*-тен. Сонда нәтиже мына түрде болады:
Z=1 111111000 0110.

1.3 Операциялы автоматтың құрылымы.

Операциялық автоматты құру үшін Т тригерін және “И - ИЛИ” логткалық
элементтерін пайдаландық. Осы элементтер арқылы Мили автоиатының
құрылымын құрдық. Операциялық автоматтың құрылымын анықтау үшін қажет
ригистрлердің санын және олардың разрядтылығын анықтау керек. Берілген
алгоритмді пайдаланып, көбейтуді орындау үшін мыналар қажет болады:
1. Бірінші көбейткішке арналған алты разрядты бір регистр.
2. Екінші көбейткішке арналған алты разрядты бір регистр.
3. Көбейтіндіге арналған он екі разрядты бір регистр.
4. Он екі разрядты сумматор.
5. Бірінші ретке арналған төрт разрядты регистр.
6. Екінші ретке арналған төрт разрядты регистр.
7. Төрт разрядты сумматор.
8. Алты разрядты счетчик

1.4 Программаның сипаттамасы

Програма, Delphi-6 программалау тілінде жазылған. Бұл программаның аты
АЛУ. Программаны орындау үшін АЛУ.dfm файлын іске қосу керек. Программа
арнайы процедураларды шақыру арқылы орындалады.
Программаның листингісі А-қосымшасында келтірілген.

Программада қолданылданылған процедуралар:

Draw процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура схема салады
Функциялары Берілген процедура программаның структуралық
схемасын салады
Процедураларды шақырады Жоқ
Шақырылады Негізгі программадан

Solve процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура реттерді қосындылайды
Функциялары Берілген процедура енгізілген реттерді қосады. Оң
немесе теріс аса толу бар жоғын тексерді.Жоқ
болса коррекция енгізеді.
Процедураларды шақырады Add процедурасын шақырады
Шақырылады Негізгі программадан

Inv процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура 1-ші саның мантиссасын терістейді
Функциялары Берілген процедура, егер кестені талдаған кейін
орындалатын операция –1М болса, онда1-ші саның
мантиссасын терістейміз.
Процедураларды шақырады Жоқ
Шақырылады Негізгі программадан

Add процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура енгізілген сандардың мантиссаларын
қосындылайды
Функциялары Берілген процедура енгізілген мантиссаларды
қосады.
Процедураларды шақырады Inv, Valu, Proc процедураларын шақырады
Шақырылады Негізгі программадан

Valu процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура кесте құрады
Функциялары Берілген процедура екі разряд бойынша талдап
көбейтудің кестесін құрады.
Процедураларды шақырады Жоқ
Шақырылады Негізгі программадан

Proc процедурасы

Шақыру жолы Жоқ
Тағайындалуы Процедура талдау жүргізеді
Функциялары Берілген процедура кесте бойынша талдау жүргізеді
Процедураларды шақырады Valu процедурасын шақырады
Шақырылады Негізгі программадан

Norm процедурасы
Шақыру жолы Жоқ
Тағайындалуы Процедура нормализацияны жүргізеді
Функциялары Берілген процедура көбейтіндіге нормамализация
жүргізеді. Мантиссалар қосындысы қанша рет
жылжытылса, сонша рет реттер қосындысынан алады.
Процедураларды шақырады Жоқ
Шақырылады Негізгі программадан

1.5 Қолданушыға нұсқау

Бұл программаны жұмыс істету Delphi-да Ctrl+F9 пернелерін басамыз.

1.6Программаның алгоритмі

1.7Операция орныдалуының уақытын және операциялық автоматтың (ОА)
аппараттық шығындарын есептеу.

Операция орындалуының уақыты – уақыт бірлігімен есептелнеді, себебі
операцияның орындалуы қосу және жылжыту микрооперациялардың орындалуынан
тұрады. Сонымен уақыттың шартты бірлігі деп, бір екілік разрядқа ((ж)
жылжыту микрооперациясын орындауға кеткен уаөытты айтамыз. Сонымен қосу
микрооперациясын орындауға кеткен уақыт төрт жылжыту операцияларға тең
болады:
(қосу = 4(ж.
Операциялық автоматта операцияны орындауға кеткен уақыт мынаған тең
болады:
( = n(Tқосу + Tж )+ Tқ1+Рт Tж
Бұл жерде n – разряд саны
Tқ – қосу уақыты (4Tқ)
Tқ1 – тәртіпті қосу
Рт Tж – түзету (0,5)
Ақпараттық шығындар.
QОА = QРг1 + QРг2 + QРг3 + QСМ = 16 + 8 + 8 + 5 + 5
+ 5 + 8 +5=55ж.э.
ОА-ның ақпараттық шығандар жады элементінің шартты бірлігімен яғни,
тригерлермен есептелнеді. Бұл кезде логикалық элементтер ескерілмейді.

1.8 Операция орындалуын бақылау.

Модуль бойынша бақылауда сан кодына қосымша бақылау разрядтары енгізіледі.
Олраға берілген белгілі бүтін санға бөлу жолымен алынған қалдық жазылады.
Мүндай кодта машиналық сан шартты түрде бүтін сан түрде қаралады. Берілген
ақпараттармен қандай операция жүргізілсе қалдықтармен сондай операциялар
жүргізіледі. Қалдықтармен жүргізілген операциялар нәтижесі бақылауға тиісті
операция нәтижесінде берілген модульге бөліну арқылы алынған қалдыққа тең
болу керек. Қалдықтар (Р) бір – бірімен тең болмаса, онда ол жіберілген
қателік белгісі болып табылады. Бұл тәсілмен модуль мөлшері не еселі емес
барлық қателерді табуға болады.
Модуль мөлшеріне мынандай талаптар қойылады: 1. модульдің көптеген
қателерді табу мүмкіндігі болу керек; 2. қалдық бөлу амалы орындалуын талап
етпейтін қарапайым жолмен табылуы керек; 3. модуль мөлшері және ол арқылы
алынған қалдық разрядтылығы үлкен болмау керек.
А = 0.11111 010
В = -0.10100001
Z = -0.1001110100111010
X (mod 3) = 01

Amod3=01

Bmod3=10

Zmod3=10

Amod3* Bmod3==01*10=10

10===10 дұрыс

Модуль бойынша бақылау көрсеткеніндей нәтиже дұрыс шықты.

2. Басқару автоматын синтездеу.

2.1 Микропрограмманы кодалау.

Алгоритмнің граф схемасы (АГС) бойынша микропрограммалық автоматты
синтездеуге көшейік. Мили автоматын синтездеу кезінде белгіленген АГС алу
былай жүзеге асырылады: а) бастапқыдан кейінгі төбенің кірісімен соңғы
төбе кірісі а1 сигналымен белгіленеді; б) операциялық төбелерден кейінгі
төбелер кірісі а2, а3, ..., аn белгіленеді.; в) белгіленітін төбелердің
кірістері әртүрлі символдармен белгіленеді және бір реттен артық емес.
Пайдаланатын символдар санын синтезделінетін автоматтың А= { а1, а2, ...,
аn } күйлер алфавиті анықтайды.
Жоғарыда айтылған ережелерді пайдаланып, белгіленген ГСА – ны аламыз
(қосымша Б)

2.2 Микропрограммалық автоматтың құрылымдық кестесін құру

Берілген типті автоматты синтездеу үшін берілген АГС бойынша құрылған МПА
– ның құрылымдық тура кестесін құру керек. Бұл жағдайда Мили МПА – ның көшу
кестесінде жеті бағана болады: ам – бастапқы күй; к(ам) – бастапқы күйінің
екілік коды; х(ам, аs) - ам күйінен аs күйіне көшуге себепші болатын
енгізу сигналы. Y(ам, аs) – берідген көшуге сәйкес шығару сигналы; F(ам,
аs) – МПА – ны ам күйінен аs күйіне көшіруге қажетті жады элементтерінің
қозу сигналдары.

аm K(аm) аs(Y) K(аs) X(am,as)) F(am,as))
a1 0001 A2(y1-y7) 0101 1 S2
a2 0101 A3(y8) 1101 1 S1
а3 1101 A4(y9) 1100 X1 R4
a3 1101 A5(y10) 1110 X2 S3R4
а3 1101 A6(y11) 1111 S3
a4 1100 A5(y10) 1110 X2 S3
а4 1100 A6(y11) 1111 S3S4
a5 1110 A6(y11) 1111 1 S4
а6 1111 A1(y0) 0001 R1R2R3
а6 1111 A7(y12) 0111 X5 R1
а6 1111 A8(y13) 0110 R1R4
X6
a6 1111 A9(y14) 0100 [pR1R3R4
ic]
a7 0111 A8(y13) 0110 X6 R4
a7 0111 A9(y14) 0100 R3R4
a8 0110 A9(y14) 0100 1 R3
a9 0100 A10(y15) 0000 1 R2
a100000 A11(y16) 0010 S3
a100000 A12(y17y181000 X7S1
)
a100000 A13(y19) 1001 X7 X8 S1S4
a110010 A8(y13) 0110 X6 S2
a110010 A9(y14) 0100 X6 S2R3
a121000 A1(y0) ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Жылжымалы үтірлі сандарды бөлу операциясын орындайтын басқарушы автомат жобалау
Тиянақты үтірлі сандарды тура кодта көбейту
ЭЕМ арифметикалық негіздері. ЭЕМ-де ақпаратты көрсету
Екілік-ондық сандарды қосындылау (Д1 кодында)
Компьютердің логикалық және арифметикалық негіздері
САНДЫҚ ТЕХНИКАДА ҚОЛДАНЫЛАТЫН ЕСЕПТЕУ ЖҮЙЕЛЕРІН ҰЙЫМДАСТЫРУ
Бекітілген үтірлі сандарды қосымша кодада қосу
Информатиканың теориялық негіздері пәнінен дәрістік конспектілер
Бекітілген үтірлі сандарды тура кодада көбейту
Жылжымалы регистрлер
Пәндер