asyan.org
добавить свой файл
1 2 3 4
К О В А Л Ь Д И

56 86 72 32 76 53 12 94

4.1 Виконати порозрядні операції над двома 16-розрядними кодами:

(1ц1л)(2ц1л)(1ц2л)(2ц2л) and (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція І,

(1ц1л)(2ц1л)(1ц2л)(2ц2л) or (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція АБО,

(1ц1л)(2ц1л)(1ц2л)(2ц2л) xor (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція ВИКЛЮЧНЕ АБО.

Синтезувати в базисі Буля функціональні схеми пристроїв, які виконують дані операції, і навести значення сигналів на входах схеми і на виходах кожного елемента схеми.

5 6 8 6 1 2 9 4

(1ц1л)(2ц1л)(1ц2л)(2ц2л) AND (1ц7л)(2ц7л)(1ц8л)(2ц8л)

(1ц1л)(2ц1л)(1ц2л)(2ц2л) OR (1ц7л)(2ц7л)(1ц8л)(2ц8л)

(1ц1л)(2ц1л)(1ц2л)(2ц2л) XOR (1ц7л)(2ц7л)(1ц8л)(2ц8л)
a = 0101 0110 1000 0110

b = 0001 0010 1001 0100

___________________
a&b = 0001 0010 1000 0100

avb = 0101 0110 1001 0110

a#b = 0100 0100 0001 0010

untitled-1.jpg


4.2 Виконати операцію віднімання чисел у двійковому коді:

(1ц3л)(1ц1л)(2ц1л)-(1ц8л)(2ц8л),

(1ц8л)(2ц8л)-(1ц3л)(1ц1л)(2ц1л).

Від'ємний результат подати у прямому коді. Після виконання вказаних операцій навести у шістнадцятковому коді значення операндів і результату. Синтезувати на базі повних однорозрядних суматорів функціональну схему багаторозрядного суматора, який виконує дані операції, і навести значення сигналів на входах схеми і на виходах кожного однорозрядного суматора. Синтезувати в базисі Буля функціональну схему повного однорозрядного суматора, навести його таблицю істинності і значення сигналів на входах суматора і на виходах кожного його елемента для кожного розряду згаданого вище багаторозрядного суматора.

7 5 6 9 4

(1ц3л)(1ц1л)(2ц1л) - (1ц8л)(2ц8л)

9 4 7 5 6

(1ц8л)(2ц8л) - (1ц3л)(1ц1л)(2ц1л)

a = 756 = 0111 0101 0110

a(об) = 1000 1010 1001

a(доп) = 1000 1010 1010

b = 94 = 0000 1001 0100

b(об) = 1111 0110 1011

b(доп) = 1111 0110 1100

_ _ _ _ _ _ _ _ _ _ _ _

a-b :

a(пр) = 0,0111 0101 0110

b(доп) = 1,1111 0110 1100

___________________________

(a+b)доп = 0,0110 1100 0010

(a+b)пр = 0,0110 1100 0010 = 6C2

b-a :

b(пр) = 0,0000 1001 0100

a(доп) = 1,1000 1010 1010

___________________________

(b+a)доп = 1,1001 0011 1110

(b+a)пр = 1,0110 1100 0010 = -6C2

Внутрішня схема 16 розрядного суматора на базі одно розрядних суматорів:

untitled-2.jpg

Внутрішня схема однорозрядного суматора в базисі Буля:


Таблиця істинності однорозрядного суматора:
untitled-3.jpguntitled-4.jpg

Co = /ABCi v A/BCi v AB/Ci v ABCi = BCi v ACi v AB;

S = /A/BCi v /AB/Ci v A/B/Ci v ABCi.

4.3 Виконати округлення 16-розрядних двійкових кодів із точністю до 1/2 одиниці

молодшого розряду, який залишається. Коди:

1(1ц4л)(2ц4л)(1ц5л)(2ц5л) - від'ємне число в доповняльному коді,

0(1ц4л)(2ц4л)(1ц5л)(2ц5л) - додатне число в доповняльному коді.

При першому округленні відкинути два молодших розряди. Наступні округлення провести послідовно через кожних два двійкових розряди. Результат чергового округлення – це початкові дані для наступного округлення.

3 2 7 6

0(1ц4л)(2ц4л)(1ц5л)(2ц5л)

3 2 7 6

1(1ц4л)(2ц4л)(1ц5л)(2ц5л)

3276 = 0011001001110110

Округлення додатнього числа:

1 округлення:

a = 00110010011101(10)

+ 00000000000000(10)

_____________________

00110010011110(00)

Результат 1 округлення :00110010011110(00)

2 округлення:

a = 001100100111(1000)

+ 000000000000(1000)

_____________________

001100101000(0000)

Результат 2 округлення :001100101000(0000)

3 округлення:

a = 0011001010(000000)

+ 0000000000(100000)

_____________________

0011001010(100000)

Результат 3 округлення :0011001010(000000)

4 округлення:

a = 00110010(10000000)

+ 00000000(10000000)

_____________________

00110011(00000000)

Результат 4 округлення :00110011(00000000)

5 округлення:

a = 001100(1100000000)

+ 000000(1000000000)

_____________________

001101(0100000000)

Результат 5 округлення :001101(0000000000)

6 округлення:

a = 0011(010000000000)

+ 0000(100000000000)

_____________________

0011(110000000000)

Результат 6 округлення :0011(000000000000)

7 округлення:

a = 00(11000000000000)

+ 00(10000000000000)

_____________________

01(01000000000000)

Результат 7 округлення :01(00000000000000)

Округлення вiд'ємного числа:

1 округлення:

a = 00110010011101(10)

+ 00000000000000(01)

_____________________

00110010011101(11)

Результат 1 округлення :00110010011101(00)

2 округлення:

a = 001100100111(0100)

+ 000000000000(0111)

_____________________

001100100111(1011)

Результат 2 округлення :001100100111(0000)

3 округлення:

a = 0011001001(110000)

+ 0000000000(011111)

_____________________

0011001010(001111)

Результат 3 округлення :0011001010(000000)

4 округлення:

a = 00110010(10000000)

+ 00000000(01111111)

_____________________

00110010(11111111)

Результат 4 округлення :00110010(00000000)

5 округлення:

a = 001100(1000000000)

+ 000000(0111111111)

_____________________

001100(1111111111)

Результат 5 округлення :001100(0000000000)

6 округлення:

a = 0011(000000000000)

+ 0000(011111111111)

_____________________

0011(011111111111)

Результат 6 округлення :0011(000000000000)

7 округлення:

a = 00(11000000000000)

+ 00(01111111111111)

_____________________

01(00111111111111)

Результат 7 округлення :01(00000000000000)

4.4 Виконати операцію віднімання чисел у двійково-десятковому коді (числа задані в шістнадцятковому коді):

(1ц1л)(2ц1л)-(1ц8л)(2ц8л),

(1ц8л)(2ц8л)-(1ц1л)(2ц1л).

Від'ємний результат подати у прямому двійково-десятковому коді.

5 6 9 4

(1ц1л)(2ц1л) - (1ц8л)(2ц8л)

a(дв.десятк код) = 0101 0110

b(дв.об.код) = 0110 1011

b(дв.доп.код) = 0110 1100

Двiйково - десятковий обернений та доповняльний коди:

0110 1100

+

1001 1001

_________

0000 0101

b(дв-дес.об.код) = 0000 0101

0000 0101

+

0000 0001

_________

0000 0110

b(дв-дес.об.код) = 0000 0110

Додавання доповняльних кодiв а та b

0101 0110

+

0000 0110

_________

0101 1100

1 тетрада приймає недопустиме значення, тому виникла потреба її корегувати

Корекцiя першої тетради :

0101 1100

+

0000 0110

________

0110 0010

2 тетрада приймає допустиме значення, тому немає потреби її корегувати

Переносу за межi розрядної сiтки не виникло, це свiдчить про те, що результат вiд'ємний у доповняльному кодi

Переведення:

0110 0010 <-вiд'ємний результат у доповняльному кодi

1001 1101 <-iнверсiя двiйкових розрядiв
1001 1101

+

0000 0001

_________

1001 1110 <-додавання 1 молодшого розряду
1001 1110

+

1001 1001

_________

0011 0111 <-доповнення до 9 9
0011 0111

+

0000 0001

_________

0011 1000 <-додавання 1 молодшого розряду
Результат: 0011 1000 = -38

9 4 5 6

(1ц8л)(2ц8л) - (1ц1л)(2ц1л)

b(дв.десятк код) = 1001 0100

a(дв.об.код) = 1010 1001

a(дв.доп.код) = 1010 1010

Двiйково - десятковий обернений та доповняльний коди:

1010 1010

+

1001 1001

_________

0100 0011

a(дв-дес.об.код) = 0100 0011

0100 0011

+

0000 0001

_________

0100 0100

a(дв-дес.об.код) = 0100 0100

Додавання доповняльних кодiв b та a

1001 0100

+

0100 0100

_________

1101 1000

1 тетрада приймає недопустиме значення, тому виникла потреба її корегувати

Корекцiя першої тетради :

1101 1000

+

0000 0110

________

1101 1110

2 тетрада приймає недопустиме значення, тому виникла потреба її корегувати

Корекцiя другої тетради :

1101 1000

+

0110 0000

________

00111000

Перенос за межi розрядної сiтки свiдчить про те, що результат додатнiй

0011 1000 = 38

4.5 Виконати операції множення в доповняльному коді двійкових чисел, поданих спочатку в прямому коді:

(+2ц1л) х (+2ц8л),

(-2ц1л) х (+2ц8л),

(+2ц1л) х (-2ц8л),

(-2ц1л) х (-2ц8л).

Попередньо всі числа перевести в доповняльний код. Навести алгоритм множення й таблицю, яка відображає зміни всіх операндів (множеного, множника, лічильника, проміжної суми, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму. Синтезувати на базі повних однорозрядних суматорів і з використанням елементів базиса Буля функціональну схему матричного помножувача, який виконує операцію множення додатніх чисел (+2ц1л) х (+2ц8л), і навести значення сигналів на входах схеми і на виходах кожного елемента схеми.
Алгоритм множення:

Початок




Лч = n

S = 0




0

Мол.р. Мк



1




S = S + Ме



S = АЗП(S)

Мк = ЛЗП(Мк)

Лч = Лч - 1



0

Лч = 0



1



0

Мол.р. Мк



1




S = S - Ме



Кінець



На алгоритмі множення введені такі позначеня:

Лч - лічильник;

n - кількість двійкових розрядів множника без знаку;

Мк - множник;

Ме - множене;

S - суматор, після виконання алгоритму в ньому буде знаходитися результат. Розрядність суматора без врахування знаку дорівнює n+m, де m - кількість розрядів множеного без врахування знаку (у прикладі n=m);

мол.р. - молодший розряд;

АЗП - арифметичний зсув праворуч;

ЛЗП - логічний зсув праворуч.

( +6 )*( +4 )

(+2ц1л)*(+2ц8л)

Очiкуваний результат (+6)*(+4) = +24

Me = 00.0110

-Me = 11.1010

Mk = 00.0100

Лч | S | Mk |м.р. Мк| Наступна операцiя

____|______________|________|_______|__________________

4 | |00.0100 |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0010 | |Лч = Лч - 1

____|______________|________|_______|__________________

3 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0001 | |Лч = Лч - 1

____|______________|________|_______|__________________

2 | | |1 |S := S + Me

|______________|________|_______|__________________

| 00.00000000 | | |

| + | | |

| 00.0110 | | |

| ___________ | | |

| 00.01100000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->00.00110000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0000 | |Лч = Лч - 1

____|______________|________|_______|__________________

1 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00011000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0000 | |Лч = Лч - 1

____|______________|________|_______|__________________

0 |00.00011000 | | 0 |Кiнець
S =00.00011000 Результат додатнiй у прямому кодi!

S = 00011000 = 24

( -6 )*( +4 )

(-2ц1л)*(+2ц8л)

Очiкуваний результат (-6)*(+4) = -24

Me = 11.1010

-Me = 00.0110

Mk = 00.0100

Лч | S | Mk |м.р. Мк| Наступна операцiя

____|______________|________|_______|__________________

4 | |00.0100 |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0010 | |Лч = Лч - 1

____|______________|________|_______|__________________

3 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0001 | |Лч = Лч - 1

____|______________|________|_______|__________________

2 | | |1 |S := S + Me

|______________|________|_______|__________________

| 00.00000000 | | |

| + | | |

| 11.1010 | | |

| ___________ | | |

| 11.10100000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->11.11010000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0000 | |Лч = Лч - 1

____|______________|________|_______|__________________

1 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->11.11101000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0000 | |Лч = Лч - 1

____|______________|________|_______|__________________

0 |11.11101000 | | 0 |Кiнець
S = 11.11101000 Результат вiдємний у доповняльному кодi!

Переведення у прямий код:

00010111<- Iнверсiя двiйкових розрядiв

00011000<- Доповнення до 1

S = -00011000 = -24


( +6 )*( -4 )

(+2ц1л)*(-2ц8л)

Очiкуваний результат (+6)*(-4) = -24

Me = 00.0110

-Me = 11.1010

Mk = 00.0100

-Mk = 11.1100

Лч | S | Mk |м.р. Мк| Наступна операцiя

____|______________|________|_______|__________________

4 | |11.1100 |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |01.1110 | |Лч = Лч - 1

____|______________|________|_______|__________________

3 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.1111 | |Лч = Лч - 1

____|______________|________|_______|__________________

2 | | |1 |S := S + Me

|______________|________|_______|__________________

| 00.00000000 | | |

| + | | |

| 00.0110 | | |

| ___________ | | |

| 00.01100000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->00.00110000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0111 | |Лч = Лч - 1

____|______________|________|_______|__________________

1 | | |1 |S := S + Me

|______________|________|_______|__________________

| 00.00110000 | | |

| + | | |

| 00.0110 | | |

| ___________ | | |

| 00.10010000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->00.01001000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0011 | |Лч = Лч - 1

____|______________|________|_______|__________________

0 | | |1 |S := S - Me

|______________|________|_______|__________________

| 00.01001000 | | |

| + | | |

| 11.1010 | | |

| ___________ | | |

| 11.11101000 | | |Кiнець
S = 11.11101000 Результат вiдємний у доповняльному кодi!

Переведення у прямий код:

00010111<- Iнверсiя двiйкових розрядiв

00011000<- Доповнення до 1

S = -00011000 = -24

( -6 )*( -4 )

(-2ц1л)*(-2ц8л)

Очiкуваний результат (-6)*(-4) = +24

Me = 11.1010

-Me = 00.0110

Mk = 11.1100

-Mk = 00.0100

Лч | S | Mk |м.р. Мк| Наступна операцiя

____|______________|________|_______|__________________

4 | |11.1100 |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |01.1110 | |Лч = Лч - 1

____|______________|________|_______|__________________

3 | | |0 |S := АЗП(S)

|______________|________|_______|__________________

|->00.00000000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.1111 | |Лч = Лч - 1

____|______________|________|_______|__________________

2 | | |1 |S := S + Me

|______________|________|_______|__________________

| 00.00000000 | | |

| + | | |

| 11.1010 | | |

| ___________ | | |

| 11.10100000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->11.11010000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0111 | |Лч = Лч - 1

____|______________|________|_______|__________________

1 | | |1 |S := S + Me

|______________|________|_______|__________________

| 11.11010000 | | |

| + | | |

| 11.1010 | | |

| ___________ | | |

| 11.01110000 | | |S := АЗП(S)

|______________|________|_______|__________________

|->11.10111000 | | |Mk = ЛЗП(Mk)

|______________|________|_______|__________________

| |00.0011 | |Лч = Лч - 1

____|______________|________|_______|__________________

0 | | |1 |S := S - Me

|______________|________|_______|__________________

| 11.10111000 | | |

| + | | |

| 00.0110 | | |

| ___________ | | |

| 00.00011000 | | |Кiнець
S =00.00011000 Результат додатнiй у прямому кодi!

S = 00011000 = 24

Синтез на базі повних однорозрядних суматорів і з використанням елементів базиса Буля функціональної схеми матричного помножувача, який виконує операцію множення додатніх чисел:



следующая страница >>