[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

RU205198U1 - A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE - Google Patents

A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE Download PDF

Info

Publication number
RU205198U1
RU205198U1 RU2020143214U RU2020143214U RU205198U1 RU 205198 U1 RU205198 U1 RU 205198U1 RU 2020143214 U RU2020143214 U RU 2020143214U RU 2020143214 U RU2020143214 U RU 2020143214U RU 205198 U1 RU205198 U1 RU 205198U1
Authority
RU
Russia
Prior art keywords
inputs
bit
multiplier
adders
output
Prior art date
Application number
RU2020143214U
Other languages
Russian (ru)
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 RU2020143214U priority Critical patent/RU205198U1/en
Application granted granted Critical
Publication of RU205198U1 publication Critical patent/RU205198U1/en

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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; 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

Landscapes

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

Abstract

Полезная модель относится к области цифровой обработки сигналов, к структурам вычислительных блоков микропроцессоров. Техническим результатом полезной модели является создание параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде, который обладает: повышенной универсальностью за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде; улучшенной параметризуемостью за счет возможности имплементации для множителей с любым количеством разрядов; меньшими размерами по площади и увеличенным быстродействием за счет отсутствия дополнительных сумматоров для преобразования произведения и более простой топологии; повышенной универсальностью вследствие возможности вывода результата в двухрядном коде, что позволяет использовать частичные произведения дальше без задержки переноса. Для этого предложена соответствующая схема параметризуемого однотактного умножителя. 1 з.п. ф-лы, 8 ил.The utility model relates to the field of digital signal processing, to the structures of computing units of microprocessors. The technical result of the utility model is the creation of a parameterizable single-cycle multiplier of binary numbers with a fixed point in the direct and complementary code, which possesses: increased universality due to the fact that any of the factors can be represented both in the direct and in the complementary code; improved parameterisability due to the possibility of implementation for multipliers with any number of digits; smaller size in area and increased speed due to the absence of additional adders for converting the product and a simpler topology; increased versatility due to the possibility of outputting the result in a two-row code, which allows you to use partial products further without transfer delay. For this, a corresponding scheme of a parameterizable single-cycle multiplier is proposed. 1 wp f-ly, 8 dwg

Description

Полезная модель относится к области цифровой обработки сигналов, к структурам вычислительных блоков микропроцессоров, а конкретно к параметризуемым однотактным умножителям двоичных чисел с фиксированной точкой в прямом и дополнительном коде, и может быть использована для вычисления произведения чисел с фиксированной точкой в прямом и дополнительном коде.The utility model relates to the field of digital signal processing, to the structures of computing units of microprocessors, and specifically to parameterizable single-cycle multipliers of binary numbers with a fixed point in the direct and two's complement code, and can be used to calculate the product of fixed-point numbers in the direct and complement codes.

Для решения задач цифровой обработки сигналов одной из ключевых операций является операция умножения. Наряду со сложением, это основная операция, необходимая для вычисления преобразований Фурье, фильтров и произведений матриц, что, в свою очередь, является основой решения задач коммуникации, обработки изображений и видео, а также сверточных нейронных сетей. Таким образом, производительность операций умножения является основой быстрого решения важнейших задач цифровой обработки сигналов. Это относится к умножению как чисел с плавающей точкой, так и с фиксированной. При этом быстрое и эффективное умножение чисел с фиксированной точкой наиболее важно, поскольку в основе умножения чисел с плавающей точкой лежит умножение их мантисс, которые являются числами с фиксированной точкой в прямом коде.To solve problems of digital signal processing, one of the key operations is the multiplication operation. Along with addition, this is the main operation required to calculate Fourier transforms, filters and matrix products, which, in turn, is the basis for solving communication problems, image and video processing, as well as convolutional neural networks. Thus, the performance of multiplication operations is the basis for quickly solving critical digital signal processing problems. This applies to both floating point and fixed point multiplication. In this case, fast and efficient multiplication of fixed-point numbers is most important, since multiplication of floating-point numbers is based on the multiplication of their mantissas, which are fixed-point numbers in direct code.

Традиционный подход к разработке однотактных умножителей чисел с фиксированной точкой подразумевает использование массива одноразрядных умножителей, вычисляющих частичные произведения множителей, а также массива одноразрядных полных сумматоров и полусумматоров, расположенных каскадами и вычисляющих суммы частичных произведений. При этом традиционная схема рассчитана на умножение чисел в прямом коде. В случае, если один или оба множителя представлены в дополнительном коде, требуется коррекции множителей и/или результата, замедляющие выполнение операции умножения.The traditional approach to the development of single-cycle fixed-point multipliers involves the use of an array of one-bit multipliers that calculate the partial products of the factors, as well as an array of one-bit full adders and half-adders arranged in cascades and calculating the sums of the partial products. In this case, the traditional scheme is designed to multiply numbers in direct code. In the event that one or both of the factors are represented in a two's complement code, corrections of the factors and / or the result are required, which slow down the execution of the multiplication operation.

Известен умножитель, описанный в патенте RU2422881 (C1), который основан на массиве одноразрядных полных сумматоров и полусумматоров. Данная структура обладает низкой задержкой переноса, кроме того в ней существует возможность параметризации для множителей различной разрядности.Known multiplier described in patent RU2422881 (C1), which is based on an array of one-bit full adders and half adders. This structure has a low transfer delay, in addition, it has the possibility of parameterization for multipliers of different bit widths.

Недостатком данного умножителя является не достаточная универсальность, вследствие наличия возможности умножения только чисел в прямом коде.The disadvantage of this multiplier is not sufficient versatility, due to the possibility of multiplying only numbers in the direct code.

В патентах US5313414 (A) и US5351206 (A) приведены структуры умножителей, основанные на массиве одноразрядных полных сумматоров и полусумматоров. Данные структуры обладают низкой задержкой переноса. В них существует возможность параметризации для множителей различной разрядности.US Pat. Nos. 5313414 (A) and US5351206 (A) disclose multiplier structures based on an array of 1-bit full adders and half adders. These structures have low transfer latency. There is a possibility of parameterization for multipliers of different bit sizes.

Недостатком данных умножителей является не достаточная универсальность, вследствие наличия возможности умножения только чисел в дополнительном коде и то, что один из множителей является константой.The disadvantage of these multipliers is not sufficient versatility, due to the possibility of multiplying only numbers in the two's complement code and the fact that one of the factors is a constant.

Наиболее близким к заявленной полезной модели является умножитель, описанный в патенте US5153850 (A), который позволяет умножать как числа в прямом коде, так и в дополнительном. Данный умножитель выбран в качестве прототипа заявленной полезной модели.The closest to the claimed utility model is the multiplier described in US Pat. No. 5,153,850 (A), which allows multiplying both direct and complementary numbers. This multiplier is chosen as a prototype of the claimed utility model.

Недостатками умножителя прототипа являются большие размеры по площади и низкое быстродействие, вследствие отсутствия параметризации и наличия дополнительных сумматоров для преобразования произведения.The disadvantages of the multiplier of the prototype are large dimensions in area and low speed, due to the lack of parameterization and the presence of additional adders for converting the product.

Техническим результатом полезной модели является создание параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде, который обладает: повышенной универсальностью за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде; улучшенной параметризуемостью, за счет возможности имплементации для множителей с любым количеством разрядов; меньшими размерами по площади и увеличенным быстродействием, за счет отсутствия дополнительных сумматоров для преобразования произведения и более простой топологии; повышенной универсальностью, вследствие возможности вывода результата в двухрядном коде, что позволяет использовать частичные произведения для дальнейших вычислений без задержки переноса на сумматоре приведения.The technical result of the utility model is the creation of a parameterizable single-cycle multiplier of binary numbers with a fixed point in the direct and complementary code, which possesses: increased universality due to the fact that any of the factors can be represented both in the direct and in the complementary code; improved parameterisability, due to the possibility of implementation for multipliers with any number of digits; smaller size in area and increased speed, due to the absence of additional adders for converting the product and a simpler topology; increased versatility, due to the possibility of outputting the result in a two-row code, which allows the use of partial products for further computations without transfer delay on the adder.

Поставленный технический результат достигнут путем создания параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде, содержащего соединенные между собой:The stated technical result was achieved by creating a parameterizable single-cycle multiplier of binary numbers with a fixed point in the direct and complementary code, containing the interconnected:

- массив одноразрядных умножителей [1], выполненных с возможностью формирования частичных одноразрядных произведений входных множителей;- an array of one-bit multipliers [1], made with the possibility of forming partial one-bit products of the input factors;

- логические блоки XOR [2], выполненные с возможностью модифицирования множителей с учетом их типа, а также с возможностью приема входных сигналов (tcA) и (tcB)- logical blocks XOR [2], made with the possibility of modifying the multipliers taking into account their type, as well as with the ability to receive input signals (tcA) and (tcB)

- массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединенных с возможностью сформирования конечного произведения, представленного двухрядным кодом в виде двух частичных произведений.- an array of one-bit full adders [3] and half-adders [4], arranged in cascades with a shift and connected with the possibility of forming a final product, represented by a two-row code in the form of two partial products.

В предпочтительном варианте осуществления умножителя входными данными умножителя являются:In a preferred embodiment of the multiplier, the inputs to the multiplier are:

- первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;- the first factor (a), represented by the bit vector a n – 1 , a n – 2 , ..., a 1 , a 0 , where n is the size of the vector (n ≥ 1), and n – 1 is the most significant (signed) bit;

- второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит;- the second factor (b), represented by the bit vector b m – 1 , b m – 2 , ..., b 1 , b 0 , where m is the size of the vector (m ≥ 1), b m – 1 is the most significant (signed) bit;

- сигнал (tcA), выполненный с возможностью определения типа первого множителя (a): 0 – прямой код, 1 – дополнительный код;- signal (tc A ), made with the possibility of determining the type of the first factor (a): 0 - direct code, 1 - additional code;

- сигнал (tcB), выполненный с возможностью определения типа второго множителя (b): 0 – прямой код, 1 – дополнительный код;- signal (tc B ), made with the possibility of determining the type of the second factor (b): 0 - direct code, 1 - additional code;

выходными данными умножителя являются:the output of the multiplier is:

- первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;- the first partial product (s) (the sum of partial products of factors), represented by the bit vector s n + m – 1 , s n + m – 2 , ..., s 1 , s 0 , where (n + m) is the size of the vector , s n + m – 1 - most significant (sign) bit;

- второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит.- the second partial product (p) (carry vector) represented by the bit vector p n + m – 1 , p n + m – 2 , ..., p 1 , p 0 , where (n + m) is the size of the vector, p n + m – 1 is the most significant (sign) bit.

В предпочтительном варианте осуществления умножителя при n ≥ 4, m ≥ 4In a preferred embodiment of the multiplier for n ≥ 4, m ≥ 4

- для любого из блоков одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4] порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами;- for any of the blocks one-bit multiplier [1], logical block XOR [2], one-bit full adder [3] and half-adder [4], the order of inputs does not affect the output result, that is, the inputs of these blocks can be swapped;

- сигнал (nA) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA); - signal (n A ) at the output of the logical block XOR [2], the inputs of which are connected to the inputs of the multiplier (a n – 1 ) and (tc A );

- сигнал (nB) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB); - signal (n B ) at the output of the logical block XOR [2], the inputs of which are connected to the inputs of the multiplier (b m – 1 ) and (tc B );

- массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3; - the array of one-bit full adders [3] and half adders [4] contains (m – 2) stages, which are numbered using the index (i), where (i = 0,1, ..., m – 3;

- каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1); - a cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) contains (n) one-bit full adders [3] and half-adders [4], which are numbered using the index (j), where (j = 0 , 1, ..., n – 1);

- каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1, ..., m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1); - each stage of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 3) contains (n – 1) one-bit full adders [3] and half adders [4], which are numbered when using the index (j), where (j = 1, ..., n – 1);

- элементы каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0); - elements of the cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1) and one one-digit half-adder [4] with index (j = 0);

- элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1); - elements of a cascade of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 4), provided (m> 4), are (n – 2) one-bit full adders [3] with indices (j = 2, ..., n – 1) and one single-digit half-adder [4] with an index (j = 1);

- элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1);- elements of a cascade of one-bit full adders [3] and half-adders [4] with index (i = m – 3) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1) ;

- выход умножителя (p0) соединен с логическим нулем; - the output of the multiplier (p 0 ) is connected to a logical zero;

- выход умножителя (s0) соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0); - the output of the multiplier (s 0 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a 0 ) and (b 0 );

- выход умножителя (p1) соединен с логическим нулем; - the output of the multiplier (p 1 ) is connected to a logical zero;

- выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1); - the outputs of the multiplier (s 1 ) and (p 2 ) are connected to the outputs (s) and (co), respectively, of a one-digit half-adder [4] with indices (i = 0, j = 0), inputs (a) and (b) of which are connected with the outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 1 ) and (b 0 ), and the inputs of the second to the inputs of the multiplier (a 0 ) and (b 1 );

- выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2); - the outputs of the multiplier (s 2 ) and (p 3 ) are connected to the outputs (s) and (co), respectively, of a one-bit full adder [3] with indices (i = 0; j = 1), inputs (a), (b) and (co) of which are connected to the outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 2 ) and (b 0 ), the inputs of the second to the inputs of the multiplier (a 1 ) and (b 1 ), and the inputs of the third to multiplier inputs (a 0 ) and (b 2 );

- выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно; - the outputs of the multiplier (s k ) and (p k + 1 ), where (k = 3, ..., m – 2), provided (m> 4), are connected to the outputs (s) and (co), respectively, of one-bit half adders [4] with indices (i = k – 2; j = 1), respectively;

- выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3), соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно; - the outputs of the multiplier (s k ) and (p k + 1 ), where (k = m – 1, ..., m + n – 3), are connected to the outputs (s) and (co), respectively, of one-bit full adders [3 ] with indices (i = m – 3; j = k – m + 2), respectively;

- выход умножителя (sm+n–2) соединен с выходом логического блока XOR [2], вход (a) которого соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1), и вход (b) которого соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (s m + n – 2 ) is connected to the output of the logical block XOR [2], the input (a) of which is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a n – 1 ) and (b m – 1 ), and the input (b) of which is connected to the output of the logical block XOR [2], the inputs of which are connected to the signals (n A ) and (n B );

- выход умножителя (pm+n–1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (p m + n – 1 ) is connected to the output of the logical block XOR [2], the inputs of which are connected to the signals (n A ) and (n B );

- выход умножителя (sm+n–1) соединен с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (s m + n – 1 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the signals (n A ) and (n B );

- входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно, и входы (b) которых соединены с сигналами (nA);- inputs (a) of one-bit full adders [3] with indices (i = 0, ..., m – 3; j = n – 1), connected to the outputs of logical blocks XOR [2], inputs (a) of which are connected to outputs of one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j ) and (b i + 1 ), respectively, and the inputs (b) of which are connected to the signals (n A );

- входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно; - inputs (a) of one-bit full adders [3] with indices (i = 1, ..., m – 3; j = 2, ..., n – 2) are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1), respectively;

- вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединен с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1); - input (a) of a one-bit full adder [3] with indices (i = m – 3; j = 1) is connected to the output (s) of a one-bit full adder [3] with indices (i – 1; j + 1);

- входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1). - inputs (a) of one-bit half-adders [4] with indices (i = 1, ..., m – 4; j = 1), provided (m> 4), are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1).

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами. Для лучшего понимания заявленной полезной модели далее приводится ее подробное описание с соответствующими графическими материалами. For a better understanding of the claimed invention, the following is a detailed description with the corresponding graphic materials. For a better understanding of the claimed utility model, its detailed description with corresponding graphic materials is given below.

Фиг. 1. Схема работы умножения двоичных чисел в прямом коде, известного из уровня техники.FIG. 1. Scheme of multiplication of binary numbers in direct code, known from the prior art.

Фиг. 2. Схема матричного умножителя для множителей размером 4 разряда, известного из уровня техники.FIG. 2. A matrix multiplier circuit for 4-bit multipliers known in the art.

Фиг. 3. Обозначение и таблица истинности одноразрядного умножителя, известного из уровня техники.FIG. 3. Designation and truth table of a one-bit multiplier known from the prior art.

Фиг. 4. Обозначение и таблица истинности логического блока XOR, известного из уровня техники.FIG. 4. Designation and truth table of the XOR logic block known from the prior art.

Фиг. 5. Обозначение и таблица истинности одноразрядного полного сумматора, известного из уровня техники.FIG. 5. Designation and truth table of a one-bit full adder known from the prior art.

Фиг. 6. Обозначение и таблица истинности одноразрядного полусумматора, известного из уровня техники.FIG. 6. Designation and truth table of a one-digit half-adder known from the prior art.

Фиг. 7. Схема параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде для множителей размером 6 разрядов, выполненного согласно полезной модели.FIG. 7. Scheme of a parameterizable single-cycle multiplier of binary numbers with a fixed point in direct and complementary code for multipliers of 6 bits, made according to the utility model.

Фиг. 8. Упрощенная схема параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде для множителей размером 6 разрядов, выполненного согласно полезной модели, в которой графические обозначения одноразрядных умножителей и блоков XOR заменены логическими выражениями.FIG. 8. A simplified diagram of a parameterizable single-cycle multiplier of binary numbers with a fixed point in direct and complement code for multipliers of 6 bits, made according to the utility model, in which the graphic designations of single-bit multipliers and XOR blocks are replaced by logical expressions.

Рассмотрим более подробно функционирование заявленного параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде (Фиг. 7 - 8).Let us consider in more detail the operation of the claimed parameterizable single-cycle multiplier of binary numbers with a fixed point in the direct and complementary code (Fig. 7 - 8).

Умножение многоразрядных двоичных чисел осуществляют аналогично умножению десятичных чисел: частичные произведения, полученные при поразрядном умножении цифр, составляющих каждое число, складывают с учетом веса и формируют итоговое произведение. На Фиг. 1 приведен пример умножения четырехразрядных двоичных чисел в прямом коде.Multiplication of multi-digit binary numbers is carried out similarly to multiplication of decimal numbers: the partial products obtained by bitwise multiplication of the digits that make up each number are added taking into account the weight and form the final product. FIG. 1 shows an example of multiplication of four-bit binary numbers in direct code.

В основе заявленной полезной модели лежит традиционная структура двоичного матричного умножителя. Пример такой структуры для двух четырехразрядных множителей в прямом коде приведен на Фиг. 2. Данная структура состоит из массива одноразрядных умножителей, формирующих частичные произведения, и массива одноразрядных полных сумматоров и полусумматоров, соединенных таким образом, чтобы выполнять последовательное сложение частичных произведений для формирования итогового произведения. Достоинствами данной структуры являются масштабируемость, то есть такую структуру легко составить для множителей любого размера и легко параметризовать, и простота разводки при разработке топологии ИС, что положительно сказывается на площади и быстродействии устройства. Недостатком данной структуры является то, что она не позволяет выполнить умножение чисел в дополнительном коде. Заявленная полезная модели решает эту проблему с помощью введения коррекции частичных произведений, в которых участвуют старшие (знаковые) разряды множителей. Коррекцию осуществляют на основании флагов, указывающих на тип множителей (прямой или дополнительный код). При этом дополнительная задержка выполнения умножения отсутствует.The claimed utility model is based on the traditional structure of a binary matrix multiplier. An example of such a structure for two four-bit direct-code multipliers is shown in FIG. 2. This structure consists of an array of one-bit multipliers that form partial products, and an array of one-bit full adders and half-adders connected in such a way as to perform sequential addition of partial products to form the final product. The advantages of this structure are scalability, that is, such a structure is easy to compose for multipliers of any size and is easy to parameterize, and simplicity of wiring when developing an IC topology, which has a positive effect on the area and speed of the device. The disadvantage of this structure is that it does not allow the multiplication of numbers in two's complement code. The declared utility model solves this problem by introducing a correction for partial products, in which the most significant (sign) digits of the factors are involved. The correction is carried out based on flags indicating the type of multipliers (direct or complementary code). In this case, there is no additional delay in the execution of the multiplication.

Аппаратной реализацией заявленной полезной модели является IP-блок параметризуемого однотактного умножителя двоичных чисел с фиксированной точкой в прямом и дополнительном коде. Схема заявленного умножителя (вариант для множителей размером 6 разрядов) приведена на Фиг. 7.The hardware implementation of the claimed utility model is an IP-block of a parameterizable single-cycle multiplier of binary numbers with a fixed point in the direct and two's complement code. The circuit of the claimed multiplier (a variant for multipliers with a size of 6 bits) is shown in Fig. 7.

В состав заявленного умножителя входят:The declared multiplier includes:

- одноразрядные умножители [1], формирующие частичные одноразрядные произведения входных множителей; - one-bit multipliers [1], which form partial one-bit products of the input factors;

- логические блоки XOR [2], модифицирующие множители с учетом их типа, который определяется входными сигналами (tcA) и (tcB); - logical blocks XOR [2], modifying the multipliers taking into account their type, which is determined by the input signals (tc A ) and (tc B );

- массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединенных таким образом, чтобы сформировать конечное произведение, представленное двухрядным кодом (двумя частичными произведениями). - an array of one-bit full adders [3] and half-adders [4], arranged in cascades with a shift and connected in such a way as to form a final product represented by a two-row code (two partial products).

Входными данными умножителя являются:The input data for the multiplier are:

- первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;- the first factor (a), represented by the bit vector a n – 1 , a n – 2 , ..., a 1 , a 0 , where n is the size of the vector (n ≥ 1), and n – 1 is the most significant (signed) bit;

- второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит; - the second factor (b), represented by the bit vector b m – 1 , b m – 2 , ..., b 1 , b 0 , where m is the size of the vector (m ≥ 1), b m – 1 is the most significant (signed) bit;

- сигнал (tcA), определяющий тип первого множителя (a) (0 – прямой код, 1 – дополнительный код). - signal (tc A ), which determines the type of the first factor (a) (0 - direct code, 1 - additional code).

- сигнал (tcB), определяющий тип второго множителя (b) (0 – прямой код, 1 – дополнительный код). - signal (tc B ), which determines the type of the second factor (b) (0 - direct code, 1 - additional code).

Выходными данными умножителя являются:The output of the multiplier is:

- первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;- the first partial product (s) (the sum of partial products of factors), represented by the bit vector s n + m – 1 , s n + m – 2 , ..., s 1 , s 0 , where (n + m) is the size of the vector , s n + m – 1 - most significant (sign) bit;

- второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит. - the second partial product (p) (carry vector) represented by the bit vector p n + m – 1 , p n + m – 2 , ..., p 1 , p 0 , where (n + m) is the size of the vector, p n + m – 1 is the most significant (sign) bit.

Рассмотрим вариант выполнения заявленного умножителя, в котором (n ≥ 4, m ≥ 4).Consider an embodiment of the claimed multiplier, in which (n ≥ 4, m ≥ 4).

Варианты выполнения заявленного умножителя для случаев (n < 4) или (m < 4) не рассматриваются, однако могут быть осуществлены на основе формулы для случая (n ≥ 4, m ≥ 4).Variants of the claimed multiplier for the cases (n <4) or (m <4) are not considered, however, they can be implemented on the basis of the formula for the case (n ≥ 4, m ≥ 4).

Как следует из таблиц истинности одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4], для любого из этих блоков порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами.As follows from the truth tables of one-bit multiplier [1], logical block XOR [2], one-bit full adder [3] and half-adder [4], for any of these blocks the order of inputs does not affect the output result, that is, the inputs of these blocks can be changed places.

Обозначим как сигнал (nA) выход логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA).Let's designate as a signal (n A ) the output of the logical block XOR [2], the inputs of which are connected to the inputs of the multiplier (a n – 1 ) and (tc A ).

Обозначим как сигнал (nB) выход логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB).Let's designate as a signal (n B ) the output of the logical block XOR [2], the inputs of which are connected to the inputs of the multiplier (b m – 1 ) and (tc B ).

Массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3).The array of one-bit full adders [3] and half-adders [4] contains (m – 2) stages, which are numbered using the index (i), where (i = 0,1, ..., m – 3).

Каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1).A cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) contains (n) one-bit full adders [3] and half-adders [4], which are numbered using the index (j), where (j = 0, 1, ..., n – 1).

Каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1).Each stage of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 3) contains (n – 1) one-bit full adders [3] and half adders [4], which are numbered using index (j), where (j = 1, ..., n – 1).

Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0).Elements of a cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1) and one single-bit half adder [4] with index (j = 0).

Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1).Elements of a cascade of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 4), provided (m> 4), are (n – 2) one-bit full adders [3] with indices (j = 2, ..., n – 1) and one one-digit half-adder [4] with an index (j = 1).

Элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1).Elements of a cascade of one-bit full adders [3] and half-adders [4] with index (i = m – 3) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1).

Выход умножителя (p0) соединен с логическим нулем.The output of the multiplier (p 0 ) is connected to a logical zero.

Выход умножителя (s0) соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0).The output of the multiplier (s 0 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a 0 ) and (b 0 ).

Выход умножителя (p1) соединен с логическим нулем.The output of the multiplier (p 1 ) is connected to a logic zero.

Выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1).The outputs of the multiplier (s 1 ) and (p 2 ) are connected to the outputs (s) and (co), respectively, of a one-bit half-adder [4] with indices (i = 0, j = 0), inputs (a) and (b) of which are connected to outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 1 ) and (b 0 ), and the inputs of the second to the inputs of the multiplier (a 0 ) and (b 1 ).

Выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2).The outputs of the multiplier (s 2 ) and (p 3 ) are connected to the outputs (s) and (co), respectively, of a one-bit full adder [3] with indices (i = 0; j = 1), inputs (a), (b) and ( co) which are connected to the outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 2 ) and (b 0 ), the inputs of the second to the inputs of the multiplier (a 1 ) and (b 1 ), and the inputs of the third to the inputs multiplier (a 0 ) and (b 2 ).

Выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно.The outputs of the multiplier (s k ) and (p k + 1 ), where (k = 3, ..., m – 2), under the condition (m> 4), are connected to the outputs (s) and (co), respectively, of one-digit half-adders [4] with indices (i = k – 2; j = 1), respectively.

Выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3), соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно.The outputs of the multiplier (s k ) and (p k + 1 ), where (k = m – 1, ..., m + n – 3), are connected to the outputs (s) and (co), respectively, of one-bit full adders [3] with indices (i = m – 3; j = k – m + 2), respectively.

Выход умножителя (sm+n–2) соединен с выходом логического блока XOR [2], вход (a) которого соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1), и вход (b) которого соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).The output of the multiplier (s m + n – 2 ) is connected to the output of the logical block XOR [2], the input (a) of which is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a n – 1 ) and (b m –1 ), and the input (b) of which is connected to the output of the logic block XOR [2], the inputs of which are connected to the signals (n A ) and (n B ).

Выход умножителя (pm+n–1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).The output of the multiplier (p m + n – 1 ) is connected to the output of the logic block XOR [2], the inputs of which are connected to the signals (n A ) and (n B ).

Выход умножителя (sm+n–1) соединен с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB).The output of the multiplier (s m + n – 1 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the signals (n A ) and (n B ).

Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно, и входы (b) которых соединены с сигналами (nA).Inputs (a) of one-bit full adders [3] with indices (i = 0, ..., m – 3; j = n – 1), connected to the outputs of logical blocks XOR [2], inputs (a) of which are connected to the outputs one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j ) and (b i + 1 ), respectively, and the inputs (b) of which are connected to the signals (n A ).

Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно.Inputs (a) of one-bit full adders [3] with indices (i = 1, ..., m – 3; j = 2, ..., n – 2) are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1), respectively.

Вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединен с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1).Input (a) of a one-bit full adder [3] with indices (i = m – 3; j = 1) is connected to the output (s) of a one-bit full adder [3] with indices (i – 1; j + 1).

Входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно.Inputs (a) of one-bit half-adders [4] with indices (i = 1, ..., m – 4; j = 1), provided (m> 4), are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1), respectively.

Входы (ci) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–1) соединены с выходами (co) одноразрядных полных сумматоров [3] с индексами (i–1; j) соответственно.Inputs (ci) of one-bit full adders [3] with indices (i = 1, ..., m – 3; j = 2, ..., n – 1) are connected to outputs (co) of one-bit full adders [3] with indices (i – 1; j), respectively.

Вход (ci) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).Input (ci) of one-bit full adder [3] with indices (i = m – 3; j = 1) is connected to the output of logic block XOR [2], the inputs of which are connected to signals (n A ) and (n B ).

Входы (b) одноразрядных полных сумматоров [3] с индексами (i = m–3; j = 1,...,n–1), соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно, и входы (b) которых соединены с сигналами (nB).Inputs (b) of one-bit full adders [3] with indices (i = m – 3; j = 1, ..., n – 1), connected to the outputs of logical blocks XOR [2], inputs (a) of which are connected to the outputs one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j – 1 ) and (b i + 2 ), respectively, and the inputs (b) of which are connected to the signals (n B ).

Входы (b) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–4; j = 2,...,n–1), при условии (m > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.Inputs (b) of one-bit full adders [3] with indices (i = 1, ..., m – 4; j = 2, ..., n – 1), provided (m> 4), are connected to the outputs of one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j – 1 ) and (b i + 2 ), respectively.

Входы (b) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.Inputs (b) of one-bit half-adders [4] with indices (i = 1, ..., m – 4; j = 1), provided (m> 4), are connected to the outputs of one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j – 1 ) and (b i + 2 ), respectively.

Вход (ci) одноразрядного полного сумматора [3] с индексами (i = 0; j = n–1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB).Input (ci) of a one-bit full adder [3] with indices (i = 0; j = n – 1) is connected to the output of the logical block XOR [2], the inputs of which are connected to signals (n A ) and (n B ).

Вход (a) одноразрядного полного сумматора [3] с индексами (i = 0; j = n–2), соединен с выходами логического блока XOR [2], вход (a) которого соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (aj+1) и (bi), и вход (b) которого соединен с сигналом (nA).Input (a) of a one-bit full adder [3] with indices (i = 0; j = n – 2), connected to the outputs of the logical block XOR [2], input (a) of which is connected to the output of a one-bit multiplier [1], whose inputs connected to the inputs of the multiplier (a j + 1 ) and (b i ), and the input (b) of which is connected to the signal (n A ).

Входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–3), при условии (n > 4), соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj+1) и (bi) соответственно.Inputs (a) of one-bit full adders [3] with indices (i = 0; j = 2, ..., n – 3), provided (n> 4), are connected to the outputs of one-bit multipliers [1], the inputs of which are connected with the inputs of the multiplier (a j + 1 ) and (b i ), respectively.

Входы (b) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–1) соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj–1) и (bi+2) соответственно.Inputs (b) of one-bit full adders [3] with indices (i = 0; j = 2, ..., n – 1) are connected to the outputs of one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j – 1 ) and (b i + 2 ), respectively.

Входы (ci) одноразрядных полных сумматоров [3] с индексами (i = 0; j = 2,...,n–2) соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно.Inputs (ci) of one-bit full adders [3] with indices (i = 0; j = 2, ..., n – 2) are connected to the outputs of one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j ) and ( b i + 1 ), respectively.

Выходные данные умножителя, представленные первым частичным произведением (s) (сумма частичных произведений множителей) и вторым частичным произведением (p) (вектор переносов) могут быть преобразованы в итоговое произведение (x), представленное битовым вектором xn+m–1,xn+m–2,...,x1,x0, где (n+m) – размер вектора, xn+m–1 – старший (знаковый) бит.The output of the multiplier, represented by the first partial product (s) (the sum of the partial products of factors) and the second partial product (p) (the carry vector) can be converted to the final product (x) represented by the bit vector x n + m – 1 , x n + m – 2 , ..., x 1 , x 0 , where (n + m) is the size of the vector, x n + m – 1 is the most significant (sign) bit.

Для получения итогового произведения (x), необходимо подать выходные данные умножителя, представленные первым и вторым частичными произведениями, на входы (n+m)-разрядного полусумматора, называемого сумматором приведения.To obtain the final product (x), it is necessary to feed the output of the multiplier, represented by the first and second partial products, to the inputs of an (n + m) -bit half-adder, called a cast adder.

Итоговое произведения (x) является выходом сумматора приведения.The final product (x) is the output of the cast adder.

Заявленный параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде имеет следующие преимущества.The declared parameterizable single-cycle multiplier of binary numbers with a fixed point in direct and two's complement code has the following advantages.

Обладает свойством универсальности за счет того, что любой из множителей может быть представлен как в прямом, так и в дополнительном коде.Possesses the property of universality due to the fact that any of the factors can be represented both in direct and in complementary code.

Является параметризуемым за счет того, что может быть имплементирован для множителей с любым количеством разрядов.It is parameterizable due to the fact that it can be implemented for multipliers with any number of digits.

Имеет меньшие размеры по площади по сравнению с не универсальными умножителями.Has a smaller area in comparison with non-universal multipliers.

Обладает простотой разводки при реализации в качестве топологии интегральной микросхемы, что уменьшает его размеры по площади и увеличивает быстродействие.It has ease of wiring when implemented as a topology of an integrated microcircuit, which reduces its size in area and increases its performance.

Выдает результат в двухрядном коде, что позволяет использовать частичные произведения дальше без задержки переноса при формировании полного произведения.Gives the result in two-row code, which allows you to use partial works further without delay of transfer when forming a complete work.

Выдает полное произведение множителей, при наличии в нем дополнительного (n+m)-разрядного полусумматора, осуществляющего суммирование частичных произведений двухрядного кода.Gives out the full multiplier product, if it contains an additional (n + m) -digit half-adder, which sums the partial products of a two-row code.

Хотя описанный выше вариант выполнения заявленной полезной модели был изложен с целью иллюстрации заявленной полезной модели, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленной полезной модели, раскрытой в прилагаемой формуле полезной модели.Although the above-described embodiment of the claimed utility model has been set forth for the purpose of illustrating the claimed utility model, it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the claimed utility model disclosed in the attached utility model claims.

Claims (33)

1. Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде, содержащий соединенные между собой:1. Parameterizable single-cycle multiplier of binary numbers with a fixed point in direct and complement code, containing the interconnected: - массив одноразрядных умножителей [1], выполненных с возможностью формирования частичных одноразрядных произведений входных множителей;- an array of one-bit multipliers [1], made with the possibility of forming partial one-bit products of the input factors; - логические блоки XOR [2], выполненные с возможностью модифицирования множителей с учетом их типа, а также с возможностью приема входных сигналов (tcA) и (tcB);- logical blocks XOR [2], made with the possibility of modifying the multipliers taking into account their type, as well as with the ability to receive input signals (tc A ) and (tc B ); - массив одноразрядных полных сумматоров [3] и полусумматоров [4], расположенных каскадами со сдвигом и соединенных с возможностью сформирования конечного произведения, представленного двухрядным кодом в виде двух частичных произведений, причем при n ≥ 4, m ≥ 4:- an array of one-bit full adders [3] and half-adders [4], arranged in cascades with a shift and connected with the possibility of forming a final product represented by a two-row code in the form of two partial products, and for n ≥ 4, m ≥ 4: - для любого из блоков одноразрядного умножителя [1], логического блока XOR [2], одноразрядного полного сумматора [3] и полусумматора [4] порядок входов не влияет на выходной результат, то есть входы этих блоков можно менять местами; сигнал (nA) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (an–1) и (tcA); сигнал (nB) на выходе логического блока XOR [2], входы которого соединены со входами умножителя (bm–1) и (tcB);- for any of the blocks one-bit multiplier [1], logical block XOR [2], one-bit full adder [3] and half-adder [4], the order of inputs does not affect the output result, that is, the inputs of these blocks can be swapped; signal (nA) at the output of the logical block XOR [2], the inputs of which are connected to the inputs of the multiplier (an – 1) and (tcA); signal (nB) at the output of the logic block XOR [2], the inputs of which are connected to the inputs of the multiplier (bm – 1) and (tcB); - массив одноразрядных полных сумматоров [3] и полусумматоров [4] содержит (m–2) каскадов, которые пронумерованы при помощи индекса (i), где (i = 0,1,...,m–3); - the array of one-bit full adders [3] and half adders [4] contains (m – 2) stages, which are numbered using the index (i), where (i = 0,1, ..., m – 3); - каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) содержит (n) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 0,1,...,n–1); - a cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) contains (n) one-bit full adders [3] and half-adders [4], which are numbered using the index (j), where (j = 0 , 1, ..., n – 1); - каждый каскад одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1, ..., m–3) содержит (n–1) одноразрядных полных сумматоров [3] и полусумматоров [4], которые пронумерованы при помощи индекса (j), где (j = 1,...,n–1); - each stage of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 3) contains (n – 1) one-bit full adders [3] and half adders [4], which are numbered when using the index (j), where (j = 1, ..., n – 1); - элементы каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 0) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 0); - elements of the cascade of one-bit full adders [3] and half-adders [4] with index (i = 0) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1) and one one-digit half-adder [4] with index (j = 0); - элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = 1,...,m–4), при условии (m > 4), являются (n–2) одноразрядных полных сумматоров [3] с индексами (j = 2,...,n–1) и один одноразрядный полусумматор [4] с индексом (j = 1); - elements of a cascade of one-bit full adders [3] and half-adders [4] with an index (i = 1, ..., m – 4), provided (m> 4), are (n – 2) one-bit full adders [3] with indices (j = 2, ..., n – 1) and one single-digit half-adder [4] with an index (j = 1); - элементами каскада одноразрядных полных сумматоров [3] и полусумматоров [4] с индексом (i = m–3) являются (n–1) одноразрядных полных сумматоров [3] с индексами (j = 1,...,n–1);- elements of a cascade of one-bit full adders [3] and half-adders [4] with index (i = m – 3) are (n – 1) one-bit full adders [3] with indices (j = 1, ..., n – 1) ; - выход умножителя (p0) соединен с логическим нулем; - the output of the multiplier (p 0 ) is connected to a logical zero; - выход умножителя (s0) соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (a0) и (b0); - the output of the multiplier (s 0 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a 0 ) and (b 0 ); - выход умножителя (p1) соединен с логическим нулем; - the output of the multiplier (p 1 ) is connected to a logical zero; - выходы умножителя (s1) и (p2) соединены с выходами (s) и (co) соответственно одноразрядного полусумматора [4] с индексами (i = 0, j = 0), входы (a) и (b) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a1) и (b0), а входы второго со входами умножителя (a0) и (b1); - the outputs of the multiplier (s 1 ) and (p 2 ) are connected to the outputs (s) and (co), respectively, of a one-digit half-adder [4] with indices (i = 0, j = 0), inputs (a) and (b) of which are connected with the outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 1 ) and (b 0 ), and the inputs of the second to the inputs of the multiplier (a 0 ) and (b 1 ); - выходы умножителя (s2) и (p3) соединены с выходами (s) и (co) соответственно одноразрядного полного сумматора [3] с индексами (i = 0; j = 1), входы (a), (b) и (co) которого соединены с выходами одноразрядных умножителей [1], входы первого из которых соединены со входами умножителя (a2) и (b0), входы второго со входами умножителя (a1) и (b1), а входы третьего со входами умножителя (a0) и (b2); - the outputs of the multiplier (s 2 ) and (p 3 ) are connected to the outputs (s) and (co), respectively, of a one-bit full adder [3] with indices (i = 0; j = 1), inputs (a), (b) and (co) of which are connected to the outputs of one-bit multipliers [1], the inputs of the first of which are connected to the inputs of the multiplier (a 2 ) and (b 0 ), the inputs of the second to the inputs of the multiplier (a 1 ) and (b 1 ), and the inputs of the third to multiplier inputs (a 0 ) and (b 2 ); - выходы умножителя (sk) и (pk+1), где (k = 3,...,m–2), при условии (m > 4), соединены с выходами (s) и (co) соответственно одноразрядных полусумматоров [4] с индексами (i = k–2; j = 1) соответственно; - the outputs of the multiplier (s k ) and (p k + 1 ), where (k = 3, ..., m – 2), provided (m> 4), are connected to the outputs (s) and (co), respectively, of one-bit half adders [4] with indices (i = k – 2; j = 1), respectively; - выходы умножителя (sk) и (pk+1), где (k = m–1,...,m+n–3) соединены с выходами (s) и (co) соответственно одноразрядных полных сумматоров [3] с индексами (i = m–3; j = k–m+2) соответственно; - the outputs of the multiplier (s k ) and (p k + 1 ), where (k = m – 1, ..., m + n – 3) are connected to the outputs (s) and (co), respectively, of one-bit full adders [3] with indices (i = m – 3; j = k – m + 2), respectively; - выход умножителя (sm+n–2) соединен с выходом логического блока XOR [2], вход (a) которого соединен с выходом одноразрядного умножителя [1], входы которого соединены со входами умножителя (an–1) и (bm–1) и вход (b) которого соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (s m + n – 2 ) is connected to the output of the logical block XOR [2], the input (a) of which is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the inputs of the multiplier (a n – 1 ) and (b m – 1 ) and the input (b) of which is connected to the output of the logical block XOR [2], the inputs of which are connected to the signals (n A ) and (n B ); - выход умножителя (pm+n–1) соединен с выходом логического блока XOR [2], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (p m + n – 1 ) is connected to the output of the logical block XOR [2], the inputs of which are connected to the signals (n A ) and (n B ); - выход умножителя (sm+n–1) соединен с выходом одноразрядного умножителя [1], входы которого соединены с сигналами (nA) и (nB); - the output of the multiplier (s m + n – 1 ) is connected to the output of the one-bit multiplier [1], the inputs of which are connected to the signals (n A ) and (n B ); - входы (a) одноразрядных полных сумматоров [3] с индексами (i = 0,...,m–3; j = n–1) соединены с выходами логических блоков XOR [2], входы (a) которых соединены с выходами одноразрядных умножителей [1], входы которых соединены со входами умножителя (aj) и (bi+1) соответственно и входы (b) которых соединены с сигналами (nA);- inputs (a) of one-bit full adders [3] with indices (i = 0, ..., m – 3; j = n – 1) are connected to outputs of logical blocks XOR [2], inputs (a) of which are connected to outputs one-bit multipliers [1], the inputs of which are connected to the inputs of the multiplier (a j ) and (b i + 1 ), respectively, and the inputs (b) of which are connected to the signals (n A ); - входы (a) одноразрядных полных сумматоров [3] с индексами (i = 1,...,m–3; j = 2,...,n–2) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1) соответственно; - inputs (a) of one-bit full adders [3] with indices (i = 1, ..., m – 3; j = 2, ..., n – 2) are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1), respectively; - вход (a) одноразрядного полного сумматора [3] с индексами (i = m–3; j = 1) соединен с выходом (s) одноразрядного полного сумматора [3] с индексами (i–1; j+1); - input (a) of a one-bit full adder [3] with indices (i = m – 3; j = 1) is connected to the output (s) of a one-bit full adder [3] with indices (i – 1; j + 1); - входы (a) одноразрядных полусумматоров [4] с индексами (i = 1,...,m–4; j = 1), при условии (m > 4) соединены с выходами (s) одноразрядных полных сумматоров [3] с индексами (i–1; j+1). - inputs (a) of one-bit half-adders [4] with indices (i = 1, ..., m – 4; j = 1), provided (m> 4) are connected to outputs (s) of one-bit full adders [3] with indices (i – 1; j + 1). 2. Умножитель по п. 1, отличающийся тем, что входными данными умножителя являются:2. The multiplier according to claim 1, characterized in that the input data of the multiplier are: - первый множитель (a), представленный битовым вектором an–1,an–2,...,a1,a0, где n – размер вектора (n ≥ 1), an–1 – старший (знаковый) бит;- the first factor (a), represented by the bit vector a n – 1 , a n – 2 , ..., a 1 , a 0 , where n is the size of the vector (n ≥ 1), and n – 1 is the most significant (signed) bit; - второй множитель (b), представленный битовым вектором bm–1,bm–2,...,b1,b0, где m – размер вектора (m ≥ 1), bm–1 – старший (знаковый) бит;- the second factor (b), represented by the bit vector b m – 1 , b m – 2 , ..., b 1 , b 0 , where m is the size of the vector (m ≥ 1), b m – 1 is the most significant (signed) bit; - сигнал (tcA), выполненный с возможностью определения типа первого множителя (a): 0 – прямой код, 1 – дополнительный код;- signal (tc A ), made with the possibility of determining the type of the first factor (a): 0 - direct code, 1 - additional code; - сигнал (tcB), выполненный с возможностью определения типа второго множителя (b): 0 – прямой код, 1 – дополнительный код;- signal (tc B ), made with the possibility of determining the type of the second factor (b): 0 - direct code, 1 - additional code; выходными данными умножителя являются:the output of the multiplier is: - первое частичное произведение (s) (сумма частичных произведений множителей), представленное битовым вектором sn+m–1,sn+m–2,...,s1,s0, где (n+m) – размер вектора, sn+m–1 – старший (знаковый) бит;- the first partial product (s) (the sum of partial products of factors), represented by the bit vector s n + m – 1 , s n + m – 2 , ..., s 1 , s 0 , where (n + m) is the size of the vector , s n + m – 1 - most significant (sign) bit; - второе частичное произведение (p) (вектор переносов), представленное битовым вектором pn+m–1,pn+m–2,...,p1,p0, где (n+m) – размер вектора, pn+m–1 – старший (знаковый) бит.- the second partial product (p) (carry vector) represented by the bit vector p n + m – 1 , p n + m – 2 , ..., p 1 , p 0 , where (n + m) is the size of the vector, p n + m – 1 is the most significant (sign) bit.
RU2020143214U 2020-12-26 2020-12-26 A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE RU205198U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020143214U RU205198U1 (en) 2020-12-26 2020-12-26 A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020143214U RU205198U1 (en) 2020-12-26 2020-12-26 A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE

Publications (1)

Publication Number Publication Date
RU205198U1 true RU205198U1 (en) 2021-07-01

Family

ID=76756224

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020143214U RU205198U1 (en) 2020-12-26 2020-12-26 A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE

Country Status (1)

Country Link
RU (1) RU205198U1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1501043A1 (en) * 1987-07-30 1989-08-15 Харьковский политехнический институт им.В.И.Ленина Multiplication device
US5153850A (en) * 1990-08-24 1992-10-06 Mass Microsystems Method and apparatus for modifying two's complement multiplier to perform unsigned magnitude multiplication
RU2475812C1 (en) * 2011-12-28 2013-02-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Apparatus for multiplying numbers in "1 out of 4" code
RU2689819C1 (en) * 2018-08-21 2019-05-29 Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") Vector multiformat multiplier

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1501043A1 (en) * 1987-07-30 1989-08-15 Харьковский политехнический институт им.В.И.Ленина Multiplication device
US5153850A (en) * 1990-08-24 1992-10-06 Mass Microsystems Method and apparatus for modifying two's complement multiplier to perform unsigned magnitude multiplication
RU2475812C1 (en) * 2011-12-28 2013-02-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Apparatus for multiplying numbers in "1 out of 4" code
RU2689819C1 (en) * 2018-08-21 2019-05-29 Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") Vector multiformat multiplier

Similar Documents

Publication Publication Date Title
Swartzlander et al. Computer arithmetic
Mohan et al. Residue Number Systems
JP2662196B2 (en) Calculation result normalization method and apparatus
US5247471A (en) Radix aligner for floating point addition and subtraction
Zimmermann Computer arithmetic: Principles, architectures, and VLSI design
US20200183650A1 (en) Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction
CN110858137A (en) Floating point division by integer constant
US4866655A (en) Arithmetic processor and divider using redundant signed digit
RU205198U1 (en) A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE
RU2753184C1 (en) Parametrizable single-stroke binary multiplier with fixed dot in direct and auxiliary code
Ushasree et al. VLSI implementation of a high speed single precision floating point unit using verilog
KR100329914B1 (en) Dissipation device
JPH0346024A (en) Floating point computing element
US4866657A (en) Adder circuitry utilizing redundant signed digit operands
US7236999B2 (en) Methods and systems for computing the quotient of floating-point intervals
Sasidharan et al. VHDL Implementation of IEEE 754 floating point unit
Koç A Tutorial on p-adic Arithmetic
US5153847A (en) Arithmetic processor using signed digit representation of internal operands
US5181186A (en) TPC computers
Belyaev et al. A high-perfomance multi-format simd multiplier for digital signal processors
Tosini et al. Analysis and efficient implementation of IEEE-754 decimal floating point adders/subtractors in FPGAs for DPD and BID encoding
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
JPH061437B2 (en) Processor
Krishnamoorthy et al. Area and delay carry select adder using Brent Kung architecture