Синтез умножителей, делителей и счетчиков
113
Устройство для деления с основанием системы счисления больше двух [19],
где деление выполняется через умножение делимого на число, обратное делите-
лю, которое находится итерационным способом, может быть использовано и для
многофазного принципа кодирования основания системы счисления. Однако оно
отличается значительной сложностью и невысоким быстродействием вследствие
необходимости выполнения операции полного деления в несколько циклов.
Классический метод деления без восстановления остатка изложен в [17]. В
этой работе авторов с мировыми именами описан принцип построения делителя
для системы счисления с основанием n, где сформулирован принцип обработки
остатка (B
i
): если B
i
≥ 0 (B
i
< 0), то из B
i
n многократно вычитают (прибавляют)
делитель C до тех пор, пока знак разности (суммы) станет противоположным
знаку величины B
i
или пока количество произведенных сложений (вычитаний)
не сделается равным (n – 1).
Устройство [29], реализующее этот способ деления для системы счисления
n=2, выполнено в виде итеративной сети матрицы, составленной из одинаковых
блоков, образующих L строк по числу разрядов частного, где в каждой строке
содержатся m блоков по числу разрядов делителя, блок сигнала опережающего
переноса и
логический блок. Для ускорения операции сложения или вычитания
каждый остаток B
i
в каждой строке вычисляется в виде двух чисел: числа S, со-
ставленного из поразрядных сумм s
j
, и числа E, составленного из поразрядных
переносов e
j
, где перенос в знаковый разряд строки, очередной разряд частного
и управляющий сигнал для следующей строки (сложить или вычесть) форми-
руются при помощи схемы опережения переносов. По сигналу блока переноса
осуществляется операция сложения либо вычитания в блоках строк матрицы,
где переход от операции вычитания к операции сложения осуществляется пере-
водом делителя из прямого кода в дополнительный.
Аппаратурная сложность устройства при его реализации для систем счис-
ления с основанием больше двух приведет к еще большему усложнению и по-
тере быстродействия. Это связано с тем, что в каждой строке необходимо мно-
гократно осуществлять операцию сложения либо вычитания (для двоичного ко-
да это выполняется один раз).
Вместе с тем классическое, известное из общеобразовательной школы де-
ление «углом», где элементарная операция деления выполняется последова-
тельным подбором результата, может быть реализована без этого перебора, а
непосредственно сразу с максимальным быстродействием [4, 5]. Структурная
схема такого устройства приведена на рис. 2.11.
Синтез устройства проведем на примере деления двух чисел A и B (A – де-
литель, B – делимое), представленных в пятифазном коде (n=10). Примем, что
оба операнда заданы в нормализованном виде, когда в старших разрядах со-
держится сигнал, отличающийся от цифры 0. Пусть делимое содержит семь
разрядов, делитель содержит три разряда, а результат деления выдается в семи
разрядах.
Входные шины трех разрядов делителя A(A
1
, A
2
, A
3
) соединены с входом
генератора кратностей, выходные шины которого содержат кратные делителя:
A×1, A×2=C, A×3=D, A×4=E, A×5=F, A×6=G, A×7=H, A×8=J, A×9=L.
Цифровой блок первой строки осуществляет деление числа, заданного стар-
шими разрядами делимого B
7
, B
6
, B
5
, на делитель и результат деления, который