RU2753184C1 - Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде - Google Patents

Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде Download PDF

Info

Publication number
RU2753184C1
RU2753184C1 RU2020143213A RU2020143213A RU2753184C1 RU 2753184 C1 RU2753184 C1 RU 2753184C1 RU 2020143213 A RU2020143213 A RU 2020143213A RU 2020143213 A RU2020143213 A RU 2020143213A RU 2753184 C1 RU2753184 C1 RU 2753184C1
Authority
RU
Russia
Prior art keywords
inputs
bit
multiplier
adders
output
Prior art date
Application number
RU2020143213A
Other languages
English (en)
Inventor
Андрей Александрович Беляев
Иван Андреевич Беляев
Ярослав Ярославович Петричкович
Original Assignee
Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС»)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») filed Critical Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС»)
Priority to RU2020143213A priority Critical patent/RU2753184C1/ru
Application granted granted Critical
Publication of RU2753184C1 publication Critical patent/RU2753184C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Изобретение относится к области цифровой обработки сигналов, к структурам вычислительных блоков микропроцессоров. Техническим результатом является повышение универсальности за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде; улучшение параметризуемости, за счет возможности имплементации для множителей с любым количеством разрядов; уменьшение размеров по площади и увеличение быстродействия, за счет отсутствия дополнительных сумматоров для преобразования произведения и более простой топологии; повышение универсальности вследствие возможности вывода результата в двухрядном коде, что позволяет использовать частичные произведения дальше без задержки переноса. Устройство содержит массив одноразрядных умножителей, логические блоки XOR, массив одноразрядных полных сумматоров и полусумматоров. 8 ил.

Description

Изобретение относится к области цифровой обработки сигналов, к структурам вычислительных блоков микропроцессоров, а конкретно к параметризуемым однотактным умножителям двоичных чисел с фиксированной точкой в прямом и дополнительном коде, и может быть использовано для вычисления произведения чисел с фиксированной точкой в прямом и дополнительном коде.
Для решения задач цифровой обработки сигналов одной из ключевых операций является операция умножения. Наряду со сложением, это основная операция, необходимая для вычисления преобразований Фурье, фильтров и произведений матриц, что, в свою очередь, является основой решения задач коммуникации, обработки изображений и видео, а также свёрточных нейронных сетей. Таким образом, производительность операций умножения является основой быстрого решения важнейших задач цифровой обработки сигналов. Это относится к умножению как чисел с плавающей точкой, так и с фиксированной. При этом быстрое и эффективное умножение чисел с фиксированной точкой наиболее важно, поскольку в основе умножения чисел с плавающей точкой лежит умножение их мантисс, которые являются числами с фиксированной точкой в прямом коде.
Традиционный подход к разработке однотактных умножителей чисел с фиксированной точкой подразумевает использование массива одноразрядных умножителей, вычисляющих частичные произведения множителей, а также массива одноразрядных полных сумматоров и полусумматоров, расположенных каскадами и вычисляющих суммы частичных произведений. При этом традиционная схема рассчитана на умножение чисел в прямом коде. В случае, если один или оба множителя представлены в дополнительном коде, требуется коррекции множителей и/или результата, замедляющие выполнение операции умножения.
Известен умножитель, описанный в патенте RU2422881 (C1), который основан на массиве одноразрядных полных сумматоров и полусумматоров. Данная структура обладает низкой задержкой переноса, кроме того в ней существует возможность параметризации для множителей различной разрядности.
Недостатком данного умножителя является не достаточная универсальность, вследствие наличия возможности умножения только чисел в прямом коде.
В патентах US5313414 (A) и US5351206 (A) приведены структуры умножителей, основанные на массиве одноразрядных полных сумматоров и полусумматоров. Данные структуры обладают низкой задержкой переноса. В них существует возможность параметризации для множителей различной разрядности.
Недостатком данных умножителей является не достаточная универсальность, вследствие наличия возможности умножения только чисел в дополнительном коде и то, что один из множителей является константой.
Наиболее близким к заявленному изобретению является умножитель, описанный в патенте US5153850 (A), который позволяет умножать как числа в прямом коде, так и в дополнительном. Данный умножитель выбран в качестве прототипа заявленного изобретения.
Недостатками умножителя прототипа являются большие размеры по площади и низкое быстродействие, вследствие отсутствия параметризации и наличия дополнительных сумматоров для преобразования произведения.
Техническим результатом изобретения является создание параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде, который обладает: повышенной универсальностью за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде; улучшенной параметризуемостью, за счет возможности имплементации для множителей с любым количеством разрядов; меньшими размерами по площади и увеличенным быстродействием, за счет отсутствия дополнительных сумматоров для преобразования произведения и более простой топологии; повышенной универсальностью, вследствие возможности вывода результата в двухрядном коде, что позволяет использовать частичные произведения для дальнейших вычислений без задержки переноса на сумматоре приведения.
Поставленный технический результат достигнут путем создания параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде, содержащего соединенные между собой:
- массив одноразрядных умножителей [1], выполненных с возможностью формирования частичных одноразрядных произведений входных множителей;
- логические блоки XOR [2], выполненные с возможностью модифицирования множителей с учётом их типа, а также с возможностью приема входных сигналов (tcA) и (tcB)
- массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединённых с возможностью сформирования конечного произведения, представленного двухрядным кодом в виде двух частичных произведений.
В предпочтительном варианте осуществления умножителя входными данными умножителя являются:
- первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;
- второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит;
- сигнал (tcA), выполненный с возможностью определения типа первого множителя (a): 0 – прямой код, 1 – дополнительный код;
- сигнал (tcB), выполненный с возможностью определения типа второго множителя (b): 0 – прямой код, 1 – дополнительный код;
выходными данными умножителя являются:
- первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;
- второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит.
В предпочтительном варианте осуществления умножителя при n ≥ 4, m ≥ 4
- для любого из блоков одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4] порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами;
- сигнал (nA) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA);
- сигнал (nB) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB);
- массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3;
- каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1);
- каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1, ..., m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1);
- элементы каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0);
- элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1);
- элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1);
- выход умножителя (p0) соединён с логическим нулём;
- выход умножителя (s0) соединён с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0);
- выход умножителя (p1) соединён с логическим нулём;
- выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1);
- выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2);
- выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно;
- выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3), соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно;
- выход умножителя (sm+n–2) соединён с выходом логического блока XOR [2], вход (a) которого соединён с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1), и вход (b) которого соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB);
- выход умножителя (pm+n–1) соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB);
- выход умножителя (sm+n–1) соединён с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB);
- входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно, и входы (b) которых соединены с сигналами (nA);
- входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно;
- вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединён с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1);
- входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1).
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами.
Фиг. 1. Схема работы умножения двоичных чисел в прямом коде, известного из уровня техники.
Фиг. 2. Схема матричного умножителя для множителей размером 4 разряда, известного из уровня техники.
Фиг. 3. Обозначение и таблица истинности одноразрядного умножителя, известного из уровня техники.
Фиг. 4. Обозначение и таблица истинности логического блока XOR, известного из уровня техники.
Фиг. 5. Обозначение и таблица истинности одноразрядного полного сумматора, известного из уровня техники.
Фиг. 6. Обозначение и таблица истинности одноразрядного полусумматора, известного из уровня техники.
Фиг. 7. Схема параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде для множителей размером 6 разрядов, выполненного согласно изобретению.
Фиг. 8. Упрощённая схема параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде для множителей размером 6 разрядов, выполненного согласно изобретению, в которой графические обозначения одноразрядных умножителей и блоков XOR заменены логическими выражениями.
Рассмотрим более подробно функционирование заявленного параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде (Фиг. 7 - 8).
Умножение многоразрядных двоичных чисел осуществляют аналогично умножению десятичных чисел: частичные произведения, полученные при поразрядном умножении цифр, составляющих каждое число, складывают с учётом веса и формируют итоговое произведение. На Фиг. 1 приведён пример умножения четырёхразрядных двоичных чисел в прямом коде.
В основе заявленного изобретения лежит традиционная структура двоичного матричного умножителя. Пример такой структуры для двух четырёхразрядных множителей в прямом коде приведён на Фиг. 2. Данная структура состоит из массива одноразрядных умножителей, формирующих частичные произведения, и массива одноразрядных полных сумматоров и полусумматоров, соединённых таким образом, чтобы выполнять последовательное сложение частичных произведений для формирования итогового произведения. Достоинствами данной структуры являются масштабируемость, то есть такую структуру легко составить для множителей любого размера и легко параметризовать, и простота разводки при разработке топологии ИС, что положительно сказывается на площади и быстродействии устройства. Недостатком данной структуры является то, что она не позволяет выполнить умножение чисел в дополнительном коде. Заявленное изобретение решает эту проблему с помощью введения коррекции частичных произведений, в которых участвуют старшие (знаковые) разряды множителей. Коррекцию осуществляют на основании флагов, указывающих на тип множителей (прямой или дополнительный код). При этом дополнительная задержка выполнения умножения отсутствует.
Аппаратной реализацией заявленного изобретения является IP-блок параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде. Схема заявленного умножителя (вариант для множителей размером 6 разрядов) приведена на Фиг. 7.
В состав заявленного умножителя входят:
- одноразрядные умножители [1], формирующие частичные одноразрядные произведения входных множителей;
- логические блоки XOR [2], модифицирующие множители с учётом их типа, который определяется входными сигналами (tcA) и (tcB);
- массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединённых таким образом, чтобы сформировать конечное произведение, представленное двухрядным кодом (двумя частичными произведениями).
Входными данными умножителя являются:
- первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;
- второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит;
- сигнал (tcA), определяющий тип первого множителя (a) (0 – прямой код, 1 – дополнительный код).
- сигнал (tcB), определяющий тип второго множителя (b) (0 – прямой код, 1 – дополнительный код).
Выходными данными умножителя являются:
- первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;
- второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит.
Рассмотрим вариант выполнения заявленного умножителя, в котором (n ≥ 4, m ≥ 4).
Варианты выполнения заявленного умножителя для случаев (n < 4) или (m < 4) не рассматриваются, однако могут быть осуществлены на основе формулы для случая (n ≥ 4, m ≥ 4).
Как следует из таблиц истинности одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4], для любого из этих блоков порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами.
Обозначим как сигнал (nA) выход логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA).
Обозначим как сигнал (nB) выход логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB).
Массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3).
Каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1).
Каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1).
Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0).
Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1).
Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1).
Выход умножителя (p0) соединён с логическим нулём.
Выход умножителя (s0) соединён с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0).
Выход умножителя (p1) соединён с логическим нулём.
Выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1).
Выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2).
Выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно.
Выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3), соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно.
Выход умножителя (sm+n–2) соединён с выходом логического блока XOR [2], вход (a) которого соединён с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1), и вход (b) которого соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).
Выход умножителя (pm+n–1) соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).
Выход умножителя (sm+n–1) соединён с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB).
Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно, и входы (b) которых соединены с сигналами (nA).
Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно.
Вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединён с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1).
Входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно.
Входы (ci) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–1) соединены с выходами (co) одноразрядных полных сумматоров [3] с индексами (i–1; j) соответственно.
Вход (ci) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).
Входы (b) одноразрядных полных сумматоров [3] с индексами (i = m–3; j = 1,...,n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно, и входы (b) которых соединены с сигналами (nB).
Входы (b) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–4; j = 2,...,n–1), при условии (m > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.
Входы (b) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.
Вход (ci) одноразрядного полного сумматора [3] с индексами (i = 0; j = n–1) соединён с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).
Вход (a) одноразрядного полного сумматора [3] с индексами (i = 0; j = n–2), соединён с выходами логического блока XOR [2], вход (a) которого соединён с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (aj+1) и (bi), и вход (b) которого соединён с сигналом (nA).
Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–3), при условии (n > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj+1) и (bi) соответственно.
Входы (b) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–1) соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.
Входы (ci) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–2) соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно.
Выходные данные умножителя, представленные первым частичным произведением (s) (сумма частичных произведений множителей) и вторым частичным произведением (p) (вектор переносов) могут быть преобразованы в итоговое произведение (x), представленное битовым вектором xn+m–1,xn+m–2,...,x1,x0, где (n+m) – размер вектора, xn+m–1 – старший (знаковый) бит.
Для получения итогового произведения (x), необходимо подать выходные данные умножителя, представленные первым и вторым частичными произведениями, на входы (n+m)-разрядного полусумматора, называемого сумматором приведения.
Итоговое произведения (x) является выходом сумматора приведения.
Заявленный параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде имеет следующие преимущества.
Обладает свойством универсальности за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде.
Является параметризуемым за счет того, что может быть имплементирован для множителей с любым количеством разрядов.
Имеет меньшие размеры по площади по сравнению с не универсальными умножителями.
Обладает простотой разводки при реализации в качестве топологии интегральной микросхемы, что уменьшает его размеры по площади и увеличивает быстродействие.
Выдает результат в двухрядном коде, что позволяет использовать частичные произведения дальше без задержки переноса при формировании полного произведения.
Выдает полное произведение множителей, при наличии в нем дополнительного (n+m)-разрядного полусумматора, осуществляющего суммирование частичных произведений двухрядного кода.
Хотя описанный выше вариант выполнения заявленного изобретения был изложен с целью иллюстрации заявленного изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленного изобретения, раскрытого в прилагаемой формуле изобретения.

Claims (35)

  1. Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде, содержащий соединенные между собой:
  2. - массив одноразрядных умножителей [1], выполненных с возможностью формирования частичных одноразрядных произведений входных множителей;
  3. - логические блоки XOR [2], выполненные с возможностью модифицирования множителей с учетом их типа, а также с возможностью приема входных сигналов (tcA) и (tcB)
  4. - массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединенных с возможностью сформирования конечного произведения, представленного двухрядным кодом в виде двух частичных произведений, причем входными данными умножителя являются:
  5. - первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;
  6. - второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит;
  7. - сигнал (tcA), выполненный с возможностью определения типа первого множителя (a): 0 – прямой код, 1 – дополнительный код;
  8. - сигнал (tcB), выполненный с возможностью определения типа второго множителя (b): 0 – прямой код, 1 – дополнительный код;
  9. выходными данными умножителя являются:
  10. - первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;
  11. - второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит;
  12. при n ≥ 4, m ≥ 4
  13. - для любого из блоков одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4] порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами;
  14. - сигнал (nA) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA);
  15. - сигнал (nB) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB);
  16. - массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3);
  17. - каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1);
  18. - каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1, ..., m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1);
  19. - элементы каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0);
  20. - элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1);
  21. - элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1);
  22. - выход умножителя (p0) соединен с логическим нулем;
  23. - выход умножителя (s0) соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0);
  24. - выход умножителя (p1) соединен с логическим нулем;
  25. - выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1);
  26. - выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2);
  27. - выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно;
  28. - выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3), соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно;
  29. - выход умножителя (sm+n–2) соединен с выходом логического блока XOR [2], вход (a) которого соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1), и вход (b) которого соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB);
  30. - выход умножителя (pm+n–1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB);
  31. - выход умножителя (sm+n–1) соединен с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB);
  32. - входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно, и входы (b) которых соединены с сигналами (nA);
  33. - входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно;
  34. - вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединен с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1);
  35. - входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1).
RU2020143213A 2020-12-26 2020-12-26 Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде RU2753184C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020143213A RU2753184C1 (ru) 2020-12-26 2020-12-26 Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020143213A RU2753184C1 (ru) 2020-12-26 2020-12-26 Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде

Publications (1)

Publication Number Publication Date
RU2753184C1 true RU2753184C1 (ru) 2021-08-12

Family

ID=77348986

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020143213A RU2753184C1 (ru) 2020-12-26 2020-12-26 Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде

Country Status (1)

Country Link
RU (1) RU2753184C1 (ru)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1758644A1 (ru) * 1989-10-09 1992-08-30 Конструкторское Бюро Электроприборостроения Устройство дл умножени чисел с фиксированной зап той
US5153850A (en) * 1990-08-24 1992-10-06 Mass Microsystems Method and apparatus for modifying two's complement multiplier to perform unsigned magnitude multiplication
US5313414A (en) * 1992-11-12 1994-05-17 Vlsi Technology, Inc. Canonical signed two's complement constant multiplier compiler
US5351206A (en) * 1992-11-12 1994-09-27 Vlsi Technology, Inc. Signed two's complement constant multiplier compiler
CN1561478A (zh) * 2001-10-01 2005-01-05 皇家飞利浦电子股份有限公司 用于有效的混和精度dsp的分割乘法器
RU2422881C1 (ru) * 2010-03-04 2011-06-27 Лев Петрович Петренко ФУНКЦИОНАЛЬНАЯ ВХОДНАЯ СТРУКТУРА ПАРАЛЛЕЛЬНО-ПОСЛЕДОВАТЕЛЬНОГО УМНОЖИТЕЛЯ fΣ(Σ) В ПОЗИЦИОННОМ ФОРМАТЕ МНОЖИМОГО [mj]f(2n) И МНОЖИТЕЛЯ [ni]f(2n) (ВАРИАНТЫ)

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1758644A1 (ru) * 1989-10-09 1992-08-30 Конструкторское Бюро Электроприборостроения Устройство дл умножени чисел с фиксированной зап той
US5153850A (en) * 1990-08-24 1992-10-06 Mass Microsystems Method and apparatus for modifying two's complement multiplier to perform unsigned magnitude multiplication
US5313414A (en) * 1992-11-12 1994-05-17 Vlsi Technology, Inc. Canonical signed two's complement constant multiplier compiler
US5351206A (en) * 1992-11-12 1994-09-27 Vlsi Technology, Inc. Signed two's complement constant multiplier compiler
CN1561478A (zh) * 2001-10-01 2005-01-05 皇家飞利浦电子股份有限公司 用于有效的混和精度dsp的分割乘法器
RU2422881C1 (ru) * 2010-03-04 2011-06-27 Лев Петрович Петренко ФУНКЦИОНАЛЬНАЯ ВХОДНАЯ СТРУКТУРА ПАРАЛЛЕЛЬНО-ПОСЛЕДОВАТЕЛЬНОГО УМНОЖИТЕЛЯ fΣ(Σ) В ПОЗИЦИОННОМ ФОРМАТЕ МНОЖИМОГО [mj]f(2n) И МНОЖИТЕЛЯ [ni]f(2n) (ВАРИАНТЫ)

Similar Documents

Publication Publication Date Title
Swartzlander et al. Computer arithmetic
Mohan et al. Residue Number Systems
JP2662196B2 (ja) 演算結果正規化方法及び装置
EP0992885A1 (en) Multiplier accumulator circuits
Srinivas et al. A fast VLSI adder architecture
JPH02196328A (ja) 浮動小数点演算装置
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
Zimmermann Computer arithmetic: Principles, architectures, and VLSI design
Sarkar et al. Comparison of various adders and their VLSI implementation
GB2262637A (en) Padding scheme for optimized multiplication.
US4866655A (en) Arithmetic processor and divider using redundant signed digit
RU2753184C1 (ru) Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде
RU205198U1 (ru) Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде
Ushasree et al. VLSI implementation of a high speed single precision floating point unit using verilog
US20200183650A1 (en) Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction
US4873660A (en) Arithmetic processor using redundant signed digit arithmetic
US4866657A (en) Adder circuitry utilizing redundant signed digit operands
KR100329914B1 (ko) 제산장치
JPH0346024A (ja) 浮動小数点演算器
Koç A Tutorial on p-adic Arithmetic
US7051062B2 (en) Apparatus and method for adding multiple-bit binary-strings
Prusty et al. A modified redundant binary adder for efficient VLSI architecture
Santhi et al. Realization of parallel prefix adders for power and speed critical applications
Latha et al. Residue-to-Binary converters for the seven moduli set {2 n-5-1, 2 n-3-1, 2 n-2+ 1, 2 n-1-1, 2 n-1+ 1, 2n, 2 n+ 1} for n even
JPH061437B2 (ja) 演算処理装置