
Книги / Книга Проектирование ВПОВС (часть 2)
.pdfНа втором слое имеем
Р1 4 Р1 Р2 R1 Р3 R2 R1 P4 R3 R2 R1 , |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
R1 4 R4 R3 R2 R1 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
e3 P4 e4 R4 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
e2 P3 P4 R3 e4 R3 R4 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
e1 P2 P3 R2 P4 R3 R2 e4 R4 R3 R2 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P5 8 P5 P6 R5 P7 R5 R6 P8 R5 R6 R7 , |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
R5 8 R5 R6 R7 R8 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
e7 P8 e8 R8 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
e6 P7 P8 R7 e8 R7 R8 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
e5 P6 P7 R6 P8 R6 R7 e8 R6 R7 R8 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P9 12 P9 P10 R9 P11R9 R10 P12 R9 R10 R11, |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
R9 12 R9 R10 R11R12 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
e11 P12 e12 R12 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
e10 P11 P12 R11 e12 R11R12 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
e9 P10 P11R10 P12 R10 R11 e12 R10 R11R12 , |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
(2.7) |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P |
|
|
P |
P R |
|
P R R |
|
|
P R R R |
|
|
, |
|
|
|||||||||||||||||||||||||||
|
13 16 |
|
13 |
|
14 13 |
|
|
15 13 14 |
|
|
16 13 14 15 |
|
|
|
|
||||||||||||||||||||||||||
R1 4 R13R14 R15 R16 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
e15 P16 e16 R16 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
e14 P15 P16 R15 e16 R15 R16 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
e13 P14 P15 R14 P16 R14 R15 e16 R14 R15 R16 , |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P17 20 P17 P18 R17 P19 R17 R18 P20 R17 R18 R19 , |
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
R17 20 R17 R18 R19 R20 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
e19 P20 e20 R20 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
e18 P19 P20 R19 e20 R19 R20 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
e17 P18 P19 R18 P20 R18 R19 e20 R18 R19 R20 , |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Р |
|
|
P |
P |
R |
|
|
P |
|
R |
|
|
R |
|
|
P |
|
R |
|
|
R |
|
|
R |
|
, |
|
||||||||||||||
|
|
21 24 |
|
21 |
|
22 |
|
|
21 |
|
23 |
|
|
21 |
|
|
22 |
|
|
24 |
|
|
21 |
|
|
22 |
|
|
|
23 |
|
|
|||||||||
R21 24 R21R22 R23R24 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
e23 P24 e24 R24 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
e22 P23 P24 R23 e24 R23R24 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
P |
P |
|
|
|
P |
|
|
|
|
|
|
|
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
e |
21 |
R |
22 |
R |
22 |
R |
23 |
24 |
R |
22 |
R |
23 |
R |
24 |
. |
|
|
|
|
||||||||||||||||||||||
|
|
22 |
|
23 |
|
|
|
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
|
|
|
|
|
|

На третьем слое имеем
P |
24 |
P |
|
|
|
P |
|
R |
|
|
|
P |
11 |
R |
R |
|
P |
|
|
R |
11 |
R |
R |
|
|
|
|
|
|
|
|||||||||||||||||||
|
1 |
|
|
|
1 4 |
|
|
|
5 8 |
|
|
1 4 |
|
|
9 |
|
|
5 8 |
1 4 |
|
|
|
13 16 |
|
9 |
5 8 |
1 4 |
|
|
|
|
|
|
||||||||||||||||
P |
|
|
R |
|
|
|
R |
|
|
R |
|
|
|
R |
|
R |
|
|
|
P |
|
|
R |
|
|
R |
|
|
R |
R |
|
|
R |
R |
, |
||||||||||||||
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
21 |
24 |
|
|
11 |
|
||||||||||||||||||||||||||||||
|
17 20 |
|
17 20 |
|
13 16 |
|
9 |
|
5 8 |
|
|
1 4 |
|
|
21 24 |
|
|
17 20 |
12 16 |
9 |
|
5 8 |
1 4 |
|
|||||||||||||||||||||||||
P |
|
|
|
R |
21 |
R |
|
|
|
R |
|
|
|
R |
|
|
|
|
R |
R |
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
21 24 |
|
24 17 20 |
|
12 16 |
|
9 11 |
|
5 8 |
1 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
R |
|
|
R |
|
|
R |
|
|
R |
|
|
|
R |
|
|
R |
|
|
|
R |
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
1 24 |
|
|
|
|
1 4 |
5 8 |
|
9 12 |
|
|
13 16 |
|
|
17 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
e |
|
P |
|
|
|
|
e |
|
R |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
20 |
|
|
|
|
|
21 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
20 24 |
|
|
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
e |
|
P |
|
|
|
e |
|
|
R |
|
|
|
|
R |
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
16 |
|
|
13 16 |
|
|
24 13 16 |
|
21 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
e |
|
P |
|
|
|
e |
|
|
R |
|
|
|
|
|
R |
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
12 |
|
|
13 16 |
|
16 |
13 16 |
|
21 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
e |
P |
|
|
|
P |
|
|
R |
|
|
|
|
e |
|
|
R |
|
|
|
R |
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
11 |
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
8 |
|
|
9 |
|
|
13 16 |
|
9 11 |
|
16 |
|
9 |
13 16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
e |
4 |
P |
|
|
P |
|
|
R |
|
|
|
P |
|
|
|
|
R |
|
R |
|
e |
R |
|
|
R |
R |
. |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
5 8 |
|
|
|
9 11 |
5 8 |
|
|
|
13 16 |
|
|
5 8 |
9 11 |
|
|
|
16 |
5 8 |
|
9 11 13 16 |
|
|
|
|
|
|
|
|
(2.8)
Аналогично для всех групп на этом слое. Как видно из сравнения систем
(2.7) и (2.8) они идентичны, если под группой во втором случае понимать разряд.
Поэтому схемные решения устройств второго и третьего слоя одинаковы.
Каждый блок содержит пять логических элементов (рис. 2.21).
P1
P2
R1
P3
R2
P3
R3
R4
& 1
&
&
&
&
P |
4 |
P2 |
1 |
||
|
|
P3 |
|
|
R2 |
P4
R3
e4
R4
R1-4
|
|
e1 |
||||
& |
1 |
|
|
P3 |
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
& |
|
|
|
P4 |
||
|
|
|
|
|
||
|
|
|
R3 |
|||
& |
|
|
|
e4 |
||
|
|
|
|
|
|
|
|
|
|
R4 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
&
P4
e4
R4
Рис. 2.21
e2
& 1
&
&
e3
& 1
&
Сигнал P1-24 есть перенос из сумматора, а функция R1-24 разрешает пробег переноса через весь сумматор. Устройство содержит три логических схемы (рис.
2.22).
92

Как и в предыдущем случае будем считать, что задержка логической схемы равна . Время суммирования определяется распространением сигнала сначала вниз по схеме, а затем вверх. Нетрудно посчитать, что общая задержка сигнала равна 8 , т.е. Т = 8 . При этом время распространения по слоям равно 6 .
Тогда время решения в общем случае равно Т = (2М + 2) , где М – число слоев.
P1-16
P17-24
R1-16
& |
1 |
P17-24 |
|
|
|
|
|
P1-24 |
& |
|
e24 |
|
R17-24 |
|
|
|
& |
1 |
|
e16 |
& |
|
R17-24 |
& |
R1-24 |
|
||
|
|
Рис. 2.22
Быстродействие сумматора существенно зависит от числа слоев, на которые разбита схема переноса. В случае, если коэффициент объединения равен K, разрядность равна n = KM, где М – число слоев. Таким образом, при
K = 4, М = 3, полная разрядность равна 64 разрядам. В нашем примере n = 32
разрядам и поэтому третий слой неполный. Для полного сумматора время суммирования остается близким и равно Т = (2М + 3) . Так как М = logk n, то
Т = (2 logk n + 3) и сильно зависит от коэффициента объединения. В рас-
сматриваемом примере T = 9 . При коэффициенте объединения k равным 8,
таким же быстродействием обладает сумматор с n = 128 разрядов. Нетрудно заметить, что при росте k и сохранении разрядности будет уменьшаться число слоев. Однако при увеличении k растёт:
1) число входов в элементах "И" и "ИЛИ";
2) нагрузка на элементы.
Предельным случаем является сумматор с полным параллельным переносом. Он возможен, если в уравнениях систем (1.3) и (1.4) все функции Р и
R представить через входные переменные ai и ci.
93

94
|
|
1 - 4 |
|
|
|
5 - 8 |
|
|
|
9 - 12 |
|
|
1316 |
|
|
1720 |
|
|
2024 |
|
|||
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
3 |
3 |
3 |
3 |
4 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
6 |
6 |
6 |
6 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
|
|
P,R |
|
e |
|
P,R |
|
e |
|
P,R |
|
e |
|
P,R |
|
e |
|
P,R |
|
e |
|
P,R |
|
|
|
1-4 |
4 |
|
5-8 |
8 |
|
9-12 |
12 |
|
13-16 |
16 |
|
17-20 |
20 |
|
16-24 |
||||||
|
|
|
|
|
|
|
|
|
|
P,R1-24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.23 |
|
|
|
|
|
|
|
|
|
|
|
|
94
В этом случае число слоев равно 1, а предельная задержка равна трём элементам: «исключающее ИЛИ» и «НЕ-И-ИЛИ». Однако, как нетрудно заметить, число входов элемента «И» может доходить до 80.
На практике используют каскадное соединение схем ускорения переносов с k = 3. Если разрядность сумматора велика, то между схемами ускоренного переноса реализуется последовательный перенос.
2.7.3. Высокоскоростные умножители
Умножение относится к "длинным" операциям и вопрос увеличения быстродействия данной операции является весьма актуальной при проектировании систем цифровой обработки. Стандартный алгоритм умножения базируется на последовательном суммировании частичных произведений. Под частичным произведением понимается произведение множимого на разряд множителя. Сумма некоторого числа частичных произведений называется текущим произведением, а сумма всех частичных произведений суть полное произведение. Так как формирование частичного произведения по времени равно времени прохождения через элемент "И", то основное влияние на время умножения оказывают операции сдвига частичных произведений и их суммирование. Время сдвига может быть уменьшено до нуля за счет пространственного изменения направления передачи числа на величину сдвига. Таким образом, дальнейшее снижение времени умножения возможно лишь только за счет уменьшения времени суммирования частичных произведений. Здесь можно выделить четыре способа сокращения времени суммирования:
1)применение для суммирования сумматоров с параллельным переносом;
2)применение сумматоров с запоминанием переносов;
3)суммирование частичных произведений на основе разрядных счетчиков;
4)матричное суммирование частичных произведений.
95

Рассмотрим временные параметры каждого из приведенных методов умножения.
2.7.3.1. Умножитель на сумматорах с параллельным переносом
Данный умножитель базируется на использовании сумматора с параллельным переносом. Процесс умножения организуется по стандартной схеме поразрядного умножения с младших разрядов, как это показано на рис. 2.24.
x |
y |
Регистр множимого |
|
Регистр множителя |
|||
|
n |
С |
сд |
1 |
|
|
|
|
|
||
|
|
|
|
|
|
n-разрядная схема "И" |
|
|
|||
|
|
частичное |
|
|
|
n |
n |
произведение |
|
||
|
|
(ЧП) |
|
|
|
Сумматор с |
|
|
|
||
параллельным |
|
|
|
||
|
переносом |
|
|
|
|
|
n |
|
|
|
n |
Регистр текущего |
|
|
n младших |
||
произведения |
|
|
разрядов |
||
|
n старших |
|
С |
дв |
|
|
разрядов |
|
|
|
|
|
|
|
|
|
Рис. 2.24
При умножении со старших разрядов структура умножителя сохраняется,
однако перенос и сдвиг текущего произведения осуществляется влево, в
сторону старшего разряда на один разряд. Последнее приводит к тому, что необходимо использовать сумматор двойной разрядности. Время выполнения
96

операции определяется как Т = 2n2
сумматоре, а n – число суммирований.
, где 2n
– время пробега переноса на
2.7.3.2. Умножитель на сумматорах с запоминанием переносов
Идея второго способа ускорения операции умножения базируется на возможности формировать сумму в виде двухрядного кода, т.е. при выполнении операции сложения двух чисел образуется два числа. Первое число есть сумма по модулю 2 разрядов исходных чисел, а второе – переносы из соответствующих разрядов. Например, при сложении двух чисел
X = 011011101101 и Y = 010110111011
образуются следующие два числа:
0 1 |
1 |
0 1 |
1 |
1 0 |
1 |
1 0 |
1 |
0 1 |
0 |
1 1 |
0 |
1 1 |
1 |
0 1 |
1 |
0 0 |
1 |
1 0 |
1 |
0 1 |
0 |
1 1 |
0 - 1-й ряд; |
1 0 |
0 |
1 0 |
1 |
0 1 |
0 |
0 1 |
0 - 2-й ряд. |
Первый ряд – сумма цифр разрядов по модулю 2, а второй ряд – переносы из разрядов, в нашем случае второй ряд сдвинут на один разряд, так как переносы имеют удвоенный вес. В качестве сумматора двухрядного кода может использоваться обычный параллельный сумматор без переносов (рис. 2.25).
a1 |
a2 |
a3 |
|
an-1 |
an |
C1 |
C2 |
C3 |
|
Cn-1 |
Cn |
П1 |
П2 |
|
П3 |
Пn-1 |
Пn |
|
|
|
. . . . . |
n-1 |
n |
S1 |
S2 |
S3 |
|
Sn-1 |
Sn |
П0 |
П1 |
П2 |
|
Пn-2 |
Пn-1 |
S
П
Рис. 2.25
Схема умножения на таком сумматоре представлена на рис. 2.26.
97

Следует отметить, что после окончания умножения результат получается в двухрядном коде. Принципиально можно построить арифметические устройства, работающие в двухрядном коде. Однако выполнение операций в двухрядном коде существенно увеличивает объём оборудования и в связи с этим редко используется на практике.
|
ЧП |
Регистр входной П |
Регистр входной S |
2-рядный сумматор |
|
|
|
|
S |
n |
|
П |
S |
||
|
|||
Регистр выходной П |
Регистр выходной S |
|
Рис. 2.26
Чаще всего на выходе умножителя полученный двухрядный код переводится в однорядный код сложением суммы и переносов на обычном сумматоре, как это показано на рис. 2.27. Преобразование осуществляется в конце умножения после получения результата в двухрядном коде. Для этого необходимо сложить сумму S и переносы П двухрядного кода на обычном параллельном двоичном сумматоре с учётом весов разрядов каждого из слагаемых, как это показано на рисунке 2.27. При умножении и суммировании на двухрядном сумматоре сохраняются все получаемые разряды произведения.
Окончательное произведение на выходе однорядного сумматора формируется в текущем формате, т.е. возможна применение операции округления.
Время выполнения операции умножения складывается из времени суммирования частичных произведений (n – 1) и времени получения резуль-
тата на выходном сумматоре как Т =( пер зап ), где |
пер – время пробега |
98 |
|

переноса в сумматоре, а |
|
зап – время записи результата. Таким образом, общее |
||||||||||
|
||||||||||||
время суммирования равно |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
Т = (2n-1) + n пер зап . |
|
|||||
Так как время формирования переноса незначительно меньше, чем время |
||||||||||||
суммирования, то ( |
|
пер |
|
зап ) условно можно считать равным . Тогда время |
||||||||
|
|
|
|
|||||||||
умножения не превышает Т = (3n – 1) |
|
+ |
|
зап . |
|
|||||||
|
|
|
||||||||||
|
|
|
|
|
|
|
ЧП |
|
|
|
|
|
Регистр входной П |
|
|
Регистр входной S |
|
||||||||
|
|
2-рядный сумматор |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
S |
Рг младших |
|
|
|
|
|
|
|
|
|
|
|
n |
разрядов |
|
|
П |
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|
|
|
|
произведения |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр выходной П |
Регистр выходной S |
|
Cумматор Спр
Рг старших разрядов произведения
Рис. 2.27
2.7.3.3. Умножитель на основе суммирования частичных произведений на разрядных счетчиках
Идея этого способа базируется на суммировании единиц, имеющих один вес в одноименных разрядах всех частичных произведений. Если рассмотреть процесс умножения, начиная с младших разрядов, то будем иметь n частичных произведений. Расположим их так, чтобы разряды, имеющие один вес,
находились в одной колонке, тогда сумму всех единиц можно найти, используя суммирование на разрядных счетчиках, как это показано на рис. 2.28.
99

|
|
* * * * . . . . |
. |
. |
* |
* |
* * |
* * |
* * |
1 |
чп |
|
|
* * * * . . . . . |
. |
* |
* |
* |
* * |
* * |
* |
2 |
чп |
|
|
* * * * . . . . . . |
* |
* |
* |
* |
* * |
* * |
|
3 |
чп |
|
* |
* * * . . . . . . * |
* |
* |
* |
* |
* * |
* |
|
4 |
чп |
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . |
||||||||||
* |
* . |
. . . . . * * * * * |
* |
* |
* |
|
|
|
|
8 |
чп |
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
|||||||||||
|
|
|
|
|
|
|
|
|
|
Разрядный счетчик |
|
|
|
|
|
|
|
|
|
|
|
(сумматор) 2-го разряда |
|
|
|
|
|
|
|
|
|
|
|
произведения |
|
|
|
Разрядный счетчик |
|
|
|
|
Разрядный счетчик |
|
|||
|
|
(сумматор) n-го разряда |
|
|
|
|
(сумматор) 8-го разряда |
|
Рис. 2.28
Нетрудно увидеть, что разрядный счетчик (сумматор единиц) должен суммировать столько разрядов, каков его номер, если номер не превышает n
(число разрядов исходных операндов). Затем их число последовательно уменьшается. Для (n+1) разрядного счетчика число единиц равно (n – 1), затем
(n – 2) и т.д. до двух единиц. Другими словами, число суммируемых единиц плавно возрастает от 2 до n и затем убывает до 2. Однако если суммирование ведётся в дополнительном коде, то сдвиг числа производится с заполнением освобождающихся разрядов значением знакового разряда. В этом случае число единиц поступающих на разрядный счётчик возрастает с шагом +1, пока не станет равной n, и затем не изменяется. На выходе разрядного счетчика формируется число, равное сумме поступивших на его вход единиц. При этом длина выходного слова равна l = 1 + [log2 m] (целое с недостатком), где m –
число входных единиц. Полученные суммы тоже располагают так, чтобы разряды, имеющие один вес, образовывали столбец. Простым перебором можно установить, что на втором слое максимальное число единиц равно lmax= 1+ log2n
и достигается в разряде n+log2n. Таким же образом можно построить следующий слой и т.д. до тех пор, пока в каждом разряде не будет формироваться двухрядное слово. Из анализа суммирования следует, что это достигается на (l=log2n) слое. Когда получено только две единицы в разряде,
100