RU2299460C1 - Умножитель на два по модулю - Google Patents

Умножитель на два по модулю Download PDF

Info

Publication number
RU2299460C1
RU2299460C1 RU2005130894/09A RU2005130894A RU2299460C1 RU 2299460 C1 RU2299460 C1 RU 2299460C1 RU 2005130894/09 A RU2005130894/09 A RU 2005130894/09A RU 2005130894 A RU2005130894 A RU 2005130894A RU 2299460 C1 RU2299460 C1 RU 2299460C1
Authority
RU
Russia
Prior art keywords
input
value
adder
multiplier
output
Prior art date
Application number
RU2005130894/09A
Other languages
English (en)
Other versions
RU2005130894A (ru
Inventor
В чеслав Иванович Петренко (RU)
Вячеслав Иванович Петренко
Юрий Владимирович Кузьминов (RU)
Юрий Владимирович Кузьминов
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 RU2005130894/09A priority Critical patent/RU2299460C1/ru
Publication of RU2005130894A publication Critical patent/RU2005130894A/ru
Application granted granted Critical
Publication of RU2299460C1 publication Critical patent/RU2299460C1/ru

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, а также в устройствах для формирования элементов конечных полей.
Известен умножитель на два по модулю, содержащий два сумматора, элементы ИЛИ-НЕ и элементы ИЛИ с соответствующими связями (см. Пухальский Т.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах. Справочник. М.: Радио и связь, 1990, с.205, рис.3.131).
Недостатком данного устройства является низкое быстродействие.
Наиболее близким по технической сущности к заявляемому изобретению является умножитель на два по модулю, содержащий сумматор и мультиплексор (см. патент РФ №2015537, кл. G06F 7/49, 30.06.1994).
Недостатком данного устройства являются его ограниченные функциональные возможности, а именно ограниченный диапазон значений входных чисел х (0<х≤р-1, где р - значение модуля, по которому производится вычисление).
Цель изобретения - расширение функциональных возможностей умножителя на два по модулю за счет расширения диапазона значений входных чисел.
Известно, что любое число х, представленное в двоичной форме, можно умножить на два путем сдвига всех разрядов числа на один в сторону старшего с записью значения "0" в младший разряд. При проведении вычислений по модулю р значение а=2х сравнивается со значением модуля. Если полученное значение а≥р, то из а вычитается значение модуля р, а полученное в результате значение а1=а-р вновь сравнивается со значением р. Если и в этом случае значение а1≥р, то из а1 вновь вычитается значение р, а полученное в результате значение а21-р сравнивается со значением р. Данные операции проводятся до тех пор, пока значение an, полученное на n-м шаге вычислений, не станет меньше значения модуля р. В этом случае значение an является результатом умножения числа х на два по модулю р. Если уже на первом шаге входное значение а<р, значение а остается без изменений и является результатом умножения числа х на два по модулю.
Предлагаемый умножитель на два по модулю осуществляет данный метод путем параллельного выполнения n операций (где n - размер умножителя, определяемый количеством входящих в его состав сумматоров), в ходе i-й операции значение а=2х сравнивается со значением i×p путем вычисления разности а-i×p, где i=1, ..., n. Как только при выполнении i-й операции значение полученной разности станет отрицательным, результатом умножения числа х на два по модулю будет являться значение разности, полученное в результате (i-1)-й операции. Диапазон значений входных чисел х для данного умножителя определяется размером умножителя и находится в пределах 0<x≤(n/2)p-1.
На чертеже представлена схема умножителя на два по модулю.
Умножитель на два по модулю содержит n сумматоров 1, n инверторов 2, (n-1) умножителей 3 и мультиплексор 4. Вход 5 служит для подачи двоичного кода числа х, вход 6 служит для подачи двоичного кода модуля р. Выходы переноса сумматоров 1 подключены к управляющим входам мультиплексора 4, информационные выходы сумматоров 1 подключены к информационным входам мультиплексора 4. Выход 7 является выходом устройства.
Умножитель на два по модулю работает следующим образом.
На вход 5 подается код числа из диапазона 0<х≤(n/2)р-1, где х - умножаемое число, р - модуль, n - размер умножителя, определяемый количеством сумматоров 1. Данный код поступает на первые входы сумматоров 1 и на первый информационный вход мультиплексора 4. Со входа 6 код модуля р подается на входы умножителей 3 и на вход первого инвертора 2, причем значение модуля в k-м умножителе умножается на значение i=(k+1), где k=1, ..., n-1. С выхода k-го умножителя 3 код значения i×p поступает на вход (k+1)-го инвертора 2. В j-м инверторе 2 поступающий на его вход код переводится в инверсный код, который подается на второй вход j-го сумматора 1, где j=1, ..., n. Таким образом, на второй вход каждого сумматора 1 поступает инверсный код значения i×p, где i - номер сумматора. На третий вход каждого сумматора 1 поступает код числа "1", служащий для перевода инверсного кода модуля в дополнительный код.
В общем виде сумматор 1 осуществляет операцию, описываемую выражением:
Figure 00000002
, где с - результат суммирования, х - число, умножаемое на два по модулю, i - номер сумматора, р - модуль. Старший разряд сформированного значения с поступает на выход переноса сумматора 1, остальные разряды представляют разность 2х-i×p и поступают на информационный выход сумматора 1.
До тех пор, пока значение 2х превышает значение i×p, на выходе переноса i-го сумматора 1 будет формироваться "1", которая будет поступать на i-й управляющий вход мультиплексора 4. При превышении значением i×p значения 2х на выходе переноса i-го сумматора 1 сформируется "0". При поступлении на i-й управляющий вход мультиплексора 4 символа "0" с выхода переноса i-го сумматора 1 мультиплексор 4 проключит на выход 7 информационный вход, на который подается значение с информационного выхода (i-1)-го сумматора 1. Данное значение будет представлять результат умножения числа х на два по модулю р.
Рассмотрим работу умножителя на примере.
Пусть x=710=001112, 2х=1410=011102, p=410=001002,
Figure 00000003
Как показано выше, i-й сумматор 1 формирует значение
Figure 00000002
, поэтому для второго сумматора i×p=2×p=810=010002,
Figure 00000004
для третьего сумматора i×p=3×p=1210=011002,
Figure 00000005
для четвертого сумматора i×p=4×p=1610=100002,
Figure 00000006
Тогда первый сумматор 1 сформирует значение c1=011102+110112+1=1010102, второй c2=011102+101112+1=1001102, третий - c3=011102+100112+1=1000102, четвертый - c4=011102+011112+1=0111102.
Как видно из примера, на выходах переноса первых трех сумматоров 1 сформировано значение "1", на выходе же четвертого сумматора 1 сформировано значение "0", поэтому на выход 7 мультиплексора поступит значение с информационного выхода третьего сумматора 1, равное 000102=210. Так как (7×2)(mod 4)=2, то правильность работы устройства очевидна.
Пусть теперь х=310=00112, 2x=610=01102, p=710=01112,
Figure 00000007
В этом случае первый сумматор 1 сформирует значение c1=01102+10002+1=011112. Так как уже первый сумматор на выходе переноса формирует символ "0", на выход 7 мультиплексора поступит значение со входа 5 умножителя, то есть 2х=01102=610=(3×2)(mod 7).

Claims (1)

  1. Умножитель на два по модулю, состоящий из сумматора и мультиплексора, отличающийся тем, что в него дополнительно введены (n-1) сумматоров, (n-1) умножителей и n инверторов, причем вход записи двоичного кода числа, сдвинутого на один разряд в сторону старшего, подключен к первому информационному входу мультиплексора и первым входам всех сумматоров, выход переноса i-го сумматора подключен к i-му управляющему входу мультиплексора, информационный выход i-го сумматора подключен к (i+1)-му информационному входу мультиплексора, где i=1, ..., n, вход записи двоичного кода модуля подключен к входу первого инвертора и к входу каждого умножителя, j-й умножитель производит умножение значения на своем входе на величину (j+1), где j=1, ..., n-1, выход j-го умножителя подключен к входу (j+1)-го инвертора, выход i-го инвертора подключен ко второму входу i-го сумматора, к третьему входу каждого сумматора подключен вход записи логической единицы, выход мультиплексора является выходом умножителя.
RU2005130894/09A 2005-10-05 2005-10-05 Умножитель на два по модулю RU2299460C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005130894/09A RU2299460C1 (ru) 2005-10-05 2005-10-05 Умножитель на два по модулю

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005130894/09A RU2299460C1 (ru) 2005-10-05 2005-10-05 Умножитель на два по модулю

Publications (2)

Publication Number Publication Date
RU2005130894A RU2005130894A (ru) 2007-04-10
RU2299460C1 true RU2299460C1 (ru) 2007-05-20

Family

ID=38000135

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005130894/09A RU2299460C1 (ru) 2005-10-05 2005-10-05 Умножитель на два по модулю

Country Status (1)

Country Link
RU (1) RU2299460C1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2445681C2 (ru) * 2009-12-15 2012-03-20 Государственное образовательное учреждение высшего профессионального образования "Ставропольский государственный университет" Умножитель на два по модулю
RU2626654C1 (ru) * 2016-02-09 2017-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2445681C2 (ru) * 2009-12-15 2012-03-20 Государственное образовательное учреждение высшего профессионального образования "Ставропольский государственный университет" Умножитель на два по модулю
RU2626654C1 (ru) * 2016-02-09 2017-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю

Also Published As

Publication number Publication date
RU2005130894A (ru) 2007-04-10

Similar Documents

Publication Publication Date Title
Tenca et al. High-radix design of a scalable modular multiplier
Jyothi et al. ASIC implementation of distributed arithmetic based FIR filter using RNS for high speed DSP systems
US5255216A (en) Reduced hardware look up table multiplier
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
Radhakrishnan et al. FPGA implementation of XOR-MUX full adder based DWT for signal processing applications
Murugesh et al. Modified high speed 32-bit Vedic multiplier design and implementation
RU2299461C1 (ru) Умножитель по модулю
RU2316042C1 (ru) Устройство для умножения чисел по произвольному модулю
RU2299460C1 (ru) Умножитель на два по модулю
Harshavardhan et al. Analysis of 8-bit Vedic Multiplier using high speed CLA Adder
Hosseinzadeh et al. A novel multiple valued logic OHRNS modulo rn adder circuit
Kumar et al. Implementation and comparison of VLSI architectures of 16 bit carry select adder using Brent Kung adder
RU2717915C1 (ru) Вычислительное устройство
RU2348965C1 (ru) Вычислительное устройство
Raajitha et al. Design of thermometer coding and one-hot coding
Madhavi et al. Implementation of programmable fir filter using dadda multiplier and parallel prefix adder
RU2324972C2 (ru) Устройство для формирования остатка по произвольному модулю от числа
Chren Jr Low delay-power product CMOS design using one-hot residue coding
US20040186871A1 (en) Multiplier circuit
RU2356086C2 (ru) Вычислительное устройство
RU2626654C1 (ru) Умножитель по модулю
Pitchika et al. Fast Base Extension using Single Redundant Modulus in a Residue Number System
Teja et al. Implementation of vedic multiplier using modified architecture by routing rearrangement for high-optimization
Nirmal et al. Novel Delay Efficient Approach for Vedic Multiplier with Generic Adder Module
US20070239811A1 (en) Multiplication by one from a set of constants using simple circuitry