Mixed-mode quarter square multipliers for machine learning
10700695 ยท 2020-06-30
Inventors
Cpc classification
H03M1/122
ELECTRICITY
H03M1/765
ELECTRICITY
International classification
Abstract
Multipliers are fundamental building blocks in signal processing, including in emerging applications such as machine learning (ML) and artificial intelligence (AI) that predominantly utilize digital-mode multipliers. Generally, digital multipliers can operate at high speed with high precision, and synchronously. As the precision and speed of digital multipliers increase, generally the dynamic power consumption and chip size of digital implementations increases substantially that makes solutions unsuitable for some ML and AI segments, including in portable, mobile, or near edge and near sensor applications. The present invention discloses embodiments of multipliers that arrange data-converters to perform the multiplication function, operating in mixed-mode (both digital and analog), and capable of low power consumptions and asynchronous operations, which makes them suitable for low power ML and AI applications.
Claims
1. A quarter square method of multiplying signals utilizing data converters, the method comprising: adding an at least one P signal to an at least one Q signal to generate an at least one sum signal (P+Q); generating an at least one absolute value sum signal of the at least one P+Q signal (|P+Q|); subtracting the at least one Q signal from the at least one P signal to generate an at least one subtraction signal (PQ); generating an at least one absolute value subtraction signal of the at least one PQ signal (|PQ|); squaring the at least one |P+Q| signal to generate an at least one square sum signal (|P+Q|.sup.2; and squaring the at least one |PQ| signal to generate an at least one square subtraction signal (|PQ|.sup.2.
2. The quarter square method of multiplying signals utilizing data converters of claim 1, the method further comprising: inputting the at least one |P+Q|.sup.2 signal onto an at least one sum Digital-to-Analog-Converter (DAC) to generate an at least one square sum analog signal (|p+q|.sup.2); and inputting the at least one |PQ|.sup.2 signal onto an at least one subtracting DAC to generate an at least one square subtraction analog signal (|pq|.sup.2).
3. The quarter square method of multiplying signals utilizing data converters of claim 2, the method further comprising: subtracting the at least one |pq|.sup.2 analog signal from the at least one |p+q|.sup.2 analog signal to generate an at least one analog product signal (4pq).
4. The quarter square method of multiplying signals utilizing data converters of claim 2, the method further comprising: summing more than one of the at least one |p+q|.sup.2 analog signal to generate a sum of square sum analog signal (|p+q|.sup.2); summing more than one of the at least one |pq|.sup.2 analog signal to generate a sum of square subtraction analog signal (|pq|.sup.2); and subtracting the |pq|.sup.2 analog signal from the |p+q|.sup.2 analog signal to generate a scaled multiply-accumulate analog signal (4pq).
5. The quarter square method of multiplying signals utilizing data converters of claim 1, the method further comprising: subtracting the at least one |PQ|.sup.2 signal from the at least one |P+Q|.sup.2 signal to generate an at least one product signal (4PQ); and inputting the at least one 4PQ signal onto an at least one product Digital-to-Analog-Converter (DAC) to generate an at least one product analog signal (4pq).
6. The quarter square method of multiplying signals utilizing data converters of claim 5, the method further comprising: summing more than one of the at least one 4pq analog signals to generate a scaled multiply-accumulate analog signal (4|pq).
7. The quarter square method of multiplying signals utilizing data converters of claim 2, the method further comprising: utilizing current mode DACs.
8. The quarter square method of multiplying signals utilizing data converters of claim 5, the method further comprising: utilizing current mode DACs.
9. A segmentation method of multiplying signals utilizing data converters, the method comprising: segmenting an at least one P signal into an at least one P Most-Significant-Portion signal (P.sub.MSP) and an at least one P Least-Significant-Portion signal (P.sub.LSP); segmenting an at least one Q signal into an at least one Q Most-Significant-Portion signal (Q.sub.MSP) and an at least one Q Least-Significant-Portion (Q.sub.LSP) signal; multiplying the at least one P.sub.MSP signal by the at least one Q.sub.MSP to generate an at least one MSP segment-product signal (P.sub.MSPQ.sub.MSP); multiplying the at least one P.sub.MSP signal by the at least one Q.sub.LSP to generate an at least one MSP LSP cross-segment-product signal (P.sub.MSPQ.sub.LSP); multiplying the at least one P.sub.LSP signal by the at least one Q.sub.MSP to generate an at least one LSP MSP cross-segment-product signal (P.sub.LSPQ.sub.MSP); and multiplying the at least one P.sub.LSP signal by the at least one Q.sub.LSP to generate an at least one LSP segment-product signal (P.sub.LSPQ.sub.LSP).
10. The segmentation method of multiplying signals utilizing data converters of claim 9, the method further comprising: inputting the at least one P.sub.MSPQ.sub.MSP signal onto an at least one MSP segment-product Digital-to-Analog-Converter (DAC) to generate an at least one MSP segment-product analog signal (p.sub.MSPq.sub.MSP); inputting the at least one P.sub.MSPQ.sub.LSP signal onto an at least one MSP LSP cross-segment-product DAC to generate an at least one MSP LSP cross-segment-product analog signal (p.sub.MSPq.sub.LSP); inputting the at least one P.sub.LSPQ.sub.MSP signal onto an at least one LSP MSP cross-segment-product DAC to generate an at least one LSP MSP cross-segment-product analog signal (p.sub.LSPq.sub.MSP), and inputting the at least one P.sub.LSPQ.sub.LSP signal onto an at least one LSP segment-product DAC to generate an at least one LSP segment-product analog signal (p.sub.LSPq.sub.LSP).
11. The segmentation method of multiplying signals utilizing data converters of claim 10, the method further comprising: scaling the at least one p.sub.MSPq.sub.MSP analog signal to generate an at least one s.sub.mp.sub.MSPq.sub.MSP analog signal wherein an at least one s.sub.m is an at least one MSP scale factor; scaling the at least one p.sub.MSPq.sub.LSP analog signal to generate an at least one s.sub.c1p.sub.MSPq.sub.LSP analog signal wherein an at least one s.sub.c1 is an at least one MSP LSP scale factor; scaling the at least one p.sub.LSPq.sub.MSP analog signal to generate an at least one s.sub.c2p.sub.LSPq.sub.MSP analog signal wherein an at least one s.sub.c2 is an at least one LSP MSP scale factor; scaling the at least one p.sub.LSPq.sub.LSP analog signal to generate an at least one s.sub.lp.sub.LSPq.sub.LSP analog signal wherein an at least one s.sub.l is an at least one LSP scale factor; and combining the at least one s.sub.mp.sub.MSPq.sub.MSP analog signal, the at least one s.sub.c1p.sub.MSPq.sub.LSP analog signal, the at least one s.sub.c2p.sub.LSPq.sub.MSP analog signal, and the at least one s.sub.lp.sub.LSPq.sub.LSP analog signal to generate an at least one product analog signal (pq).
12. The segmentation method of multiplying signals utilizing data converters of claim 9, the method further comprising: scaling the at least one P.sub.MSPQ.sub.MSP signal to generate an at least one s.sub.mP.sub.MSPQ.sub.MSP signal wherein an at least one s.sub.m is an at least one MSP scale factor; scaling the at least one P.sub.MSPQ.sub.LSP signal to generate an at least one s.sub.c1P.sub.MSPQ.sub.LSP signal wherein an at least one s.sub.c1 is an at least one MSP LSP scale factor; scaling the at least one P.sub.LSPQ.sub.MSP signal to generate an at least one s.sub.c2P.sub.LSPQ.sub.MSP signal wherein an at least one s.sub.c2 is an at least one LSP MSP scale factor; scaling the at least one P.sub.LSPQ.sub.LSP signal to generate an at least one s.sub.lP.sub.LSPQ.sub.LSP signal wherein an at least one s.sub.1 is an at least one LSP scale factor; and combining the at least one s.sub.mP.sub.MSPQ.sub.MSP signal, the at least one s.sub.c1P.sub.MSPQ.sub.LSP signal, the at least one s.sub.c2P.sub.LSPQ.sub.MSP signal, and the at least one s.sub.lP.sub.LSPQ.sub.LSP signal to generate an at least one product signal (PQ).
13. The segmentation method of multiplying signals utilizing data converters of claim 10, the method further comprising: utilizing current mode DACs.
14. The segmentation method of multiplying signals utilizing data converters of claim 9, the method further comprising: inputting the at least one PQ signal onto an at least one Digital-to-Analog-Converter (DAC) to generate an at least one product analog signal (pq).
15. The segmentation method of multiplying signals utilizing data converters of claim 14, the method further comprising: utilizing current mode DACs.
16. The segmentation method of multiplying signals utilizing data converters of claim 9, the method further comprising: wherein the at least one Q signal is identical to the at least one P signal; wherein the at least one Q.sub.MSP signal is identical to the least one P.sub.MSP signal; and wherein the at least one Q.sub.LSP signal is identical to the least one P.sub.LSP signal.
17. A multiplier system utilizing data-converters in an integrated circuit, the multiplier system comprising: an at least one D.sub.X digital input port for receiving an at least one digital X word; an at least one D.sub.Y digital input port for receiving an at least one digital Y word; an at least one A.sub.Rd analog reference input port for receiving an at least one I.sub.Rd analog reference current signal; an at least one A.sub.Ra analog reference input port for receiving an at least one I.sub.Ra analog reference current signal; an at least one digital multiplier (MULT), the at least one MULT comprised of the at least one D.sub.X port, the at least one D.sub.Y port, and an at least one product D.sub.XY digital output port; an at least one current mode Digital-to-Analog-Converter (iDAC), the at least one comprised of an least one digital input port (D.sub.Id), an least one analog current output port (A.sub.Od), and the at least one A.sub.Rd analog reference input port; the at least one D.sub.XT port of the at least one MULT coupled to the at least one D.sub.I port of the at least one iDAC; a plurality of the at least one A.sub.Od analog current output ports, of a plurality of the at least one iDACs, coupled to an at least one multiply-accumulate analog current port (A.sub.iMAC); an at least one current mode Analog-to-Digital-Converter (iADC), the at least one iADC comprised of an least one digital output port (D.sub.Oa), an at least one analog current input port (A.sub.Ia), and the at least one A.sub.Ra analog reference input port; the at least one A.sub.iMAC analog current port coupled to the at least one A.sub.Ia analog current input port of the at least one iADC; wherein the at least one D.sub.XY port of the at least one MULT for outputting an at least one product digital word (X.Y), the at least one X.Y digital word for being responsive to the multiplication product of the at least one X digital word by the at least one Y digital word; wherein the at least one A.sub.Od analog current port, of the at least one iDAC, for outputting an at least one product (x.y) analog current signal, the at least one x.y analog current signal for being responsive to the at least one X.Y digital word and proportional to the at least one I.sub.Rd analog reference current signal; wherein the at least one multiply-accumulate analog current port (A.sub.iMAC) for generating an at least one multiply-accumulate analog current signal (I.sub.iMAC); and wherein the at least one D.sub.oa digital port of the at least one iADC for outputting an at least one multiply-accumulate (X.Y) digital output word, the at least one X.Y digital word being responsive to the at least one I.sub.iMAC analog current signal and proportional to the at least one I.sub.Ra analog reference current signal.
18. The multiplier system utilizing data-converters in an integrated circuit of claim 17, the multiplier system comprising: wherein the at least one digital multiplier MOLT utilizes a quarter square method of multiplying signals.
19. The multiplier system utilizing data-converters in an integrated circuit of claim 17, the multiplier system comprising: wherein the at least one digital multiplier MULT utilizes a segmentation method of multiplying signals.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
SUMMARY OF THE DISCLOSURE
(21) An aspect of the present disclosure is a method of operating a multiplier by utilizing mixed-mode data converters circuits, the method comprising: operating the data converters (clock free) asynchronously to provide asynchronous multiplication. Further aspect of the present disclosure is a method of operating a multiplier by utilizing mixed-mode data converters circuits, the method comprising: sharing the data converters reference network among plurality of data converters. Further aspect of the present disclosure is a method of operating a multiplier by utilizing mixed-mode data converters circuits, the method comprising: programming the data converter's reference network that utilizes at least one of resistors and current sources to arrange the data-converter's transfer function. Further aspect of the present disclosure is a method of operating a multiplier by utilizing mixed-mode data converters circuits, the method comprising: programming the data converters reference network to follow at least one of logarithmic and square function input-output transfer functions. Further aspect of the present disclosure is a method of operating a multiplier by utilizing a pair of mixed-mode data converters circuits, the method comprising: performing multiplication by summing the outputs of the pair of data converters whose input-output transfer functions are programmed logarithmically. Further aspect of the present disclosure is a method of operating a multiplier by utilizing a pair of mixed-mode data converters circuits, the method comprising: performing multiplication by subtracting an absolute value of square of sum of input signals from square of absolute value of subtraction of the input signals, wherein input-output transfer functions of the pair of data converters are programmed square function.
(22) Another aspect of the present disclosure is a method of modifying the transfer function of a data converter, the method comprising: providing a first data converter having a first reference network defining a first input-to-output transfer function, wherein the first reference network may be shared among a plurality of data converters; and programming the first reference network to modify the first input-to-output transfer function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: constructing the first reference network using one or more resistive elements; and programming the one or more resistive elements to modify first input-to-output transfer function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: constructing the first reference network using one or more current sources; and programming the one or more current sources to modify first input-to-output transfer function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: constructing the first reference network using one or more switched capacitor; and programming the one or more switched capacitors to modify first input-to-output transfer function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: programming the first reference network such that the first input-to-output transfer function approximating a square function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: applying a first input signal P to a first input port of the first data converter; and generating, at a first output port of the first data converter, a first product approximating the square of P. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: programming the first reference network such that the first input-to-output transfer function approximating a logarithmic function. Further aspects of the disclosed method of modifying the transfer function of a data converter herein include the method further comprising: applying a first input signal P to a first input port of the first data converter; and generating, at a first output port of the first data converter, a first product approximating the logarithm of P.
(23) Another aspect of the present disclosure is a method of multiplying signals utilizing data converters, the method comprising: applying a first input signal (P) to a first input port of a first analog-to-digital converter (ADC); applying plurality (z) of input signals (Q.sub.Z) to plurality of reference ports (R.sub.Z) of plurality of digital-to-analog converters (DAC.sub.Z); coupling a first output port of the first ADC to plurality of digital input ports of the plurality of DAC.sub.Zs; and generating plurality of products at plurality of analog output ports of the plurality of DAC.sub.Zs, wherein the plurality of products are multiplications of the P signal by the plurality of Q.sub.Z signals. Further aspects of the disclosed the method of multiplying signals, the method further comprising: operating the first ADC in current mode. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: operating the plurality of DAC.sub.Zs in current mode.
(24) Another aspect of the present disclosure is a method of multiplying signals utilizing data converters, the method comprising: adding a first signal P to a second signal Q to generate a first intermediate sum P+Q and generating absolute value of the P+Q; subtracting the second signal Q from the first signal P to generate a first intermediate difference PQ and generating absolute value of the PQ; programming a first data converter and a second data converter such that the respective input-to-output transfer functions of the first and the second data converters each approximates a square function; coupling absolute value of the P+Q to a first input port of the first data converter to generate a first approximate product(P+Q).sup.2; coupling the absolute value of the PQ to a first input port of the second data converter to generate a first approximate product (PQ).sup.2; subtracting (PQ).sup.2 from (P+Q).sup.2 to generate a difference signal 4PQ; and scaling the difference signal 4PQ to generate a resultant PQ. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing data converters comprising resistive elements; and sharing the resistive elements among a plurality of data converters. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing current mode data converters. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing algorithmic data converters.
(25) Another aspect of the present disclosure is a method of multiplying signals utilizing data converters, the method comprising: programming a first data converter and a second data converter such that the respective input-to-output transfer functions of the first and the second data converters each approximates a logarithmic function; coupling a first signal P to the first data converter to generate a first approximate product log P coupling a second signal Q to the second data converter to generate second approximate product log P; and adding log P to log Q to generate a first product log(PQ). Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: programming a third data converter such that its input-to-output transfer functions approximates an anti-logarithmic function; and coupling the first product log(PQ) to the input of the third data converter to generate a second product PQ. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing data converters comprising input-to-output transfer functions that utilize resistive elements; programming the resistor elements to program the data-converter's input-to-output transfer functions to approximate at least one of logarithmic or anti-logarithmic functions; and sharing the resistive elements among a plurality of data converters. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing current mode data converters. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: utilizing algorithmic data converters.
(26) Another aspect of the present disclosure is a method of multiplying signals utilizing data converters, the method comprising: segmenting a first signal P into a first most significant portion MP and a first least significant portion LP; segmenting a second signal Q into a second most significant portion MQ and a second least significant portion LQ; multiplying MP by MQ to produce a first product MPMQ; multiplying MP by LQ to produce a second product MPLQ; multiplying MQ by LP to produce a third product MQLP; wherein at least one of the multiplying MP by MQ, multiplying MP by LQ, and multiplying MQ by LP, is performed in a mixed mode multiplication; and scaling and combining the first, second, and third products to generate a first final product PQ of the first signal P and the second signal Q. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: multiplying LP by LQ to produce a fourth product LPLQ; and scaling and combining the fourth product with the first final product. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: performing the mixed mode multiplication utilizing at least one multiplying digital to analog converter. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: wherein the multiplying digital to analog converter operates in current mode. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: performing the mixed mode multiplication utilizing at least one multiplying analog to digital converter. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: the segmenting of the first signal P is performed in a first analog to digital converter, wherein the first most significant portion MP is digital and the first least significant portion LP is analog; and the segmenting of the second signal Q is performed in a second analog to digital converter, wherein the second most significant portion MQ is digital and the second least significant portion LQ is analog. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: wherein the first analog to digital converter operates as an algorithmic analog to digital converter. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: wherein the second analog to digital converter operates as an algorithmic analog to digital converter. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: the multiplying MP by LQ to produce the second product MPLQ is performed in a first multiplying digital to analog converter; and the multiplying MQ by LP to produce the third product MQ by LP is performed in a second multiplying digital to analog converter. Further aspects of the disclosed the method of multiplying signals utilizing data converters, the method further comprising: the multiplying MP by MQ to produce the first product MPMQ is performed in a first digital multiplier.
(27) Another aspect of the present disclosure is a quarter square method of multiplying signals utilizing data converters, the method comprising: adding an at least one P signal to an at least one Q signal to generate an at least one sum signal (P+Q); generating an at least one absolute value sum signal of the at least one P+Q signal (|P+Q|); subtracting the at least one Q signal from the at least one P signal to generate an at least one subtraction signal (PQ); generating an at least one absolute value subtraction signal of the at least one PQ signal (|PQ|); squaring the at least one |P+Q| signal to generate an at least one square sum signal (|P+Q|.sup.2; and squaring the at least one |PQ| signal to generate an at least one square subtraction signal (PQ|.sup.2. Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: inputting the at least one |P+Q|.sup.2 signal to an at least one sum Digital-to-Analog-Converter (DAC) to generate an at least one square sum analog signal (|p+q|.sup.2); and inputting the at least one |PQ|.sup.2 signal to an at least one subtracting DAC to generate an at least one square subtraction analog signal (|pq|.sup.2). Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: subtracting the at least one |pq|.sup.2 analog signal from the at least one |p+q|.sup.2 analog signal to generate an at least one analog product signal (4pq). Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: summing more than one of the at least one |p+q|.sup.2 analog signal to generate a sum of square sum analog signal (|p+q|.sup.2); summing more than one of the at least one |pq|.sup.2 analog signal to generate a sum of square subtraction analog signal (|pq|.sup.2); and subtracting the (|pq|.sup.2) analog signal from the (|p+q|.sup.2) analog signal to generate a scaled multiply-accumulate analog signal (4|pq). Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: subtracting the at least one |PQ|.sup.2 signal from the at least one |P+Q|.sup.2 signal to generate an at least one product signal (4PQ); and inputting the at least one 4PQ signal to an at least one product Digital-to-Analog-Converter (DAC) to generate an at least one product analog signal (4pq). Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: summing more than one of the at least one 4pq analog signals to generate a scaled multiply-accumulate analog signal (4pq). Further aspects of the disclosed quarter square method of multiplying signals utilizing data converters, the method further comprising: utilizing current mode DACs.
(28) Another aspect of the present disclosure is a segmentation method of multiplying signals utilizing data converters, the method comprising: segmenting an at least one P signal into an at least one P Most-Significant-Portion signal (P.sub.MSP) and an at least one P Least-Significant-Portion signal (P.sub.LSP); segmenting an at least one Q signal into an at least one Q Most-Significant-Portion signal (Q.sub.MSP) and an at least one Q Least-Significant-Portion (Q.sub.LSP) signal; multiplying the at least one P.sub.MSP signal by the at least one Q.sub.MSP to generate an at least one MSP segment-product signal (P.sub.MSPQ.sub.MsP); multiplying the at least one P.sub.MSP signal by the at least one Q.sub.LSP to generate an at least one MSP LSP cross-segment-product signal (P.sub.MSPQ.sub.LSP); multiplying the at least one P.sub.LSP signal by the at least one Q.sub.MSP to generate an at least one LSP MSP cross-segment-product signal (P.sub.LSPQ.sub.MsP); and multiplying the at least one P.sub.LSP signal by the at least one Q.sub.LSP to generate an at least one LSP segment-product signal (P.sub.LSPQ.sub.LSP). Further aspects of the disclosed segmentation method of multiplying signals utilizing data converters, the method further comprising: inputting the at least one P.sub.MSPQ.sub.MSP signal to an at least one MSP segment-product Digital-to-Analog-Converter (DAC) to generate an at least one MSP segment-product analog signal (p.sub.MSPq.sub.MSP); inputting the at least one P.sub.MSPQ.sub.LSP signal to an at least one MSP LSP cross-segment-product DAC to generate an at least one MSP LSP cross-segment-product analog signal (p.sub.MSPq.sub.LSP); inputting the at least one P.sub.LSPQ.sub.MSP signal to an at least one LSP MSP cross-segment-product DAC to generate an at least one LSP MSP cross-segment-product analog signal (p.sub.LSPq.sub.MSP); and inputting the at least one P.sub.LSPQ.sub.LSP signal to an at least one LSP segment-product DAC to generate an at least one LSP segment-product analog signal (p.sub.LSPq.sub.LSP) Further aspects of the disclosed the segmentation method of multiplying signals utilizing data converters, the method further comprising: scaling the at least one p.sub.MSPq.sub.MSP analog signal to generate an at least one s.sub.mp.sub.MSPq.sub.MSP analog signal wherein an at least one s.sub.m is an at least one MSP scale factor; scaling the at least one p.sub.MSPq.sub.LSP analog signal to generate an at least one s.sub.mp.sub.MSPq.sub.MSP analog signal wherein an at least one s.sub.m is an at least one MSP LSP scale factor; scaling the at least one p.sub.LSPq.sub.MSP analog signal to generate an at least one s.sub.mp.sub.MSPq.sub.MSP analog signal wherein an at least one s.sub.m is an at least one LSP MSP scale factor; scaling the at least one p.sub.MSPq.sub.LSP analog signal to generate an at least one s.sub.c1p.sub.MSPq.sub.LSP analog signal wherein an at least one s.sub.l is an at least one LSP scale factor; and combining the at least one s.sub.mp.sub.MSPq.sub.MSP analog signal, the at least one s.sub.c1p.sub.MSPq.sub.LSP analog signal, the at least one s.sub.c2p.sub.LSPq.sub.MSP analog signal, and the at least one s.sub.lp.sub.LSPq.sub.LSP analog signal to generate an at least one product analog signal (pq). Further aspects of the disclosed segmentation method of multiplying signals utilizing data converters, the method further comprising: scaling the at least one P.sub.MSPQ.sub.MSP signal to generate an at least one s.sub.mP.sub.MSPQ.sub.MSP signal wherein an at least one s.sub.m is an at least one MSP scale factor; scaling the at least one P.sub.MSPQ.sub.LSP signal to generate an at least one s.sub.c1P.sub.MSPQ.sub.LSP signal wherein an at least one s.sub.c1 is an at least one MSP LSP scale factor; scaling the at least one P.sub.LSPQ.sub.MSP signal to generate an at least one s.sub.c2P.sub.LSPQ.sub.MSP signal wherein an at least one s.sub.c2 is an at least one LSP MSP scale factor; scaling the at least one P.sub.LSPQ.sub.LSP signal to generate an at least one s.sub.lP.sub.LSPQ.sub.LSP signal wherein an at least one s.sub.l is an at least one LSP scale factor; and combining the at least one s.sub.mP.sub.MSPQ.sub.MSP signal, the at least one s.sub.c1P.sub.MSPQ.sub.LSP signal, the at least one s.sub.c2P.sub.LSPQ.sub.MSP signal, and the at least one s.sub.lP.sub.LSPQ.sub.LSP signal to generate an at least one product signal (PQ). Further aspects of the disclosed segmentation method of multiplying signals utilizing data converters, the method further comprising: inputting the at least one PQ signal to an at least one Digital-to-Analog-Converter (DAC) to generate an at least one product analog signal (pq). Further aspects of the disclosed segmentation method of multiplying signals utilizing data converters, the method further comprising: utilizing current mode DACs.
DETAILED DESCRIPTION
(29) Numerous embodiments are described in the present application and are presented for illustrative purposes only and is not intended to be exhaustive. The embodiments were chosen and described to explain principles of operation and their practical applications. The present disclosure is not a literal description of all embodiments of the disclosure(s). The described embodiments also are not, and are not intended to be, limiting in any sense. One of ordinary skill in the art will recognize that the disclosed embodiment(s) may be practiced with various modifications and alterations, such as structural, logical, and electrical modifications. For example, the present disclosure is not a listing of features which must necessarily be present in all embodiments. On the contrary, a variety of components are described to illustrate the wide variety of possible embodiments of the present disclosure(s). Although particular features of the disclosed embodiments may be described with reference to one or more particular embodiments and/or drawings, it should be understood that such features are not limited to usage in the one or more particular embodiments or drawings with reference to which they are described, unless expressly specified otherwise. The scope of the disclosure is to be defined by the claims.
(30) Although process (or method) steps may be described or claimed in a particular sequential order, such processes may be configured to work in different orders. In other words, any sequence or order of steps that may be explicitly described or claimed does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order possible. Further, some steps may be performed simultaneously despite being described or implied as occurring non-simultaneously (e.g., because one step is described after the other step). Moreover, the illustration of a process by its depiction in a drawing does not imply that the illustrated process is exclusive of other variations and modifications thereto, does not imply that the illustrated process or any of its steps are necessary to the embodiment(s). In addition, although a process may be described as including a plurality of steps, that does not imply that all or any of the steps are essential or required. Various other embodiments within the scope of the described disclosure(s) include other processes that omit some or all of the described steps. In addition, although a circuit may be described as including a plurality of components, aspects, steps, qualities, characteristics and/or features, that does not indicate that any or all of the plurality are essential or required. Various other embodiments may include other circuit elements or limitations that omit some or all of the described plurality.
(31) Note that all the figures comprised of circuits, blocks, or systems illustrated in this disclosure are powered up by positive and negative power supplies, VDD and VSS (and VSS can be connected to the ground potential or zero volts for single supply applications), respectively (unless otherwise specified), and they are not shown for illustrative clarity of the disclosed figures. Terms FET is field-effect-transistor; MOS is metal-oxide-semiconductor; MOSFET is MOS FET; PMOS is p-channel MOS; NMOS is n-channel MOS; BiCMOS is bipolar CMOS; residual LSP of a signal is residual least significant portion of the signal and MSP of the signal is most significant portion of the signal where the sum of the MSP of the signal plus the residual LSP of the signal are equal to the whole signal and the MSP or residual LSP can be represented in analog or digital form or combination thereof.
(32) All the data-converters including, analog-to-digital converters (ADC) as well as digital-to-analog converters (DAC) may not show (for illustrative clarity) a positive reference and a negative reference input, where the negative reference input can be connected to the ground potential or zero volts.
(33) Throughout this disclosure, data-converter that are otherwise illustrated with a 2-bits of resolution for demonstrative and descriptive clarity, can have higher resolution, unless otherwise specified (e.g., utilized data-converters can have higher resolutions where 16-bits of resolution is practical). Also, for descriptive clarity some illustrations are simplified, where their improvements would be obvious to one skilled in the arts. For example, some circuit schematics are show current sources or mirrors utilizing one FET. In such instances, FETs can instead be cascaded to improve the performance of current sources such as increasing their output impedance. In some instances, analog switches are shown as single FETs with one input, one output, and a control input. In such instances, the one FET acting as a switch can be replaced with two FETs with a common input but opposite control polarity to manage the switch input's on and off voltage span and improve on-off glitch transients. Also note that other manufacturing technologies, such as Bipolar, BiCMOS, and others can utilize the disclosure in whole or part.
(34) Also, for illustrative clarity, some of the data-converters in this disclosure are shown as sharing their transfer function network with only one other data-converter. The same transfer function network can be shared with more than two data-converters and the data-converters sharing the same transfer function network can be plurality of DACs, or plurality of ADCs, or combination of either's plurality of DACs or plurality of ADCs. Data-converters utilizing a resistor string network or switched-capacitor network to arrange their transfer function network, can share their transfer function amongst plurality of data-converters, unless otherwise specified.
(35) In this disclosure, unless otherwise specified, the illustrated data-converters are generally asynchronous (i.e., they are clock free) which eliminates the need for a free running clock and improves dynamic power consumption with lower clock noise.
(36) Note that the methods, systems, or circuits disclosed generally are applicable to data-converters that are synchronous (i.e., requiring clocks). For example, the comparators in the ADC, can be designed with lower offset and lower noise utilizing switched capacitors topologies. Also, instead of utilizing a resistor string to arrange the data-converters transfer function network, switched capacitor network can be utilized and they be shared amongst plurality of other data-converters.
(37) For illustrative clarity, for n-bit data-converters that utilize resistor strings as their transfer function reference network, 2.sup.n1 switches and the respective 2.sup.n1 decoding or encoding logic control lines are shown to tap directly into each resistor along a resistor string. For higher resolution data-converters, to reduce the output routes of decoders or encoder and to reduce the chips area associated with the digital word bit width of 2.sup.n1 that selects 2.sup.n1 switches, there are other alternatives embodiments. For example, in case of a resistor string voltage DAC, a mux-tree with cascaded layers of switches (that technically perform the function of analog decoding instead of digital decoding) where each layer of the mux-tree is supplied with the data-converters n-bit digital binary input word instead of the decoded or encoded 2.sup.n1 bits.
(38) Throughout this disclosure, data-converters and multipliers that operate in current mode generally have the following benefits: First, data-converters and multipliers operating in current mode are inherently fast. Second, current signal processing that occurs within the nodes of data-converters and multipliers, generally, have small voltage swings which enables operating the current mode data-converters and multipliers with lower power supply voltages. Third, operating at low supply voltage reduces power consumption of current mode data-converters and multipliers. Fourth, summation and subtraction functions in analog current mode is generally simple and takes small chip area. For example, summation of two analog currents could be accomplished by coupling the current signals. Depending on accuracy and speed requirements, subtraction of analog current signals could be accomplished by utilizing a current mirror where the two analog current signals are applied to the opposite side of the current mirror, for example.
Section 1Description of FIG. 1
(39)
(40) In a general, the output voltage of a linear DAC can mathematically be expressed as V.sub.o=V.sub.R.sub.i=1.sup.nD.sub.i2.sup.i1 where V.sub.o is the analog output voltage of the DAC, V.sub.R is the VR.sub.+ reference voltage, n is the resolution of the DAC and D.sub.i is 0 or 1 representing the value of the i.sup.th digital input bits of the DAC.
(41) As noted earlier, for the DAC embodiment illustrated in
(42) In other embodiment of the
(43) To save on chip area and achieve higher resolutions, a sub-ranging DAC can be arranged. A sub-ranging DAC (e.g., with 8-bits of resolution) comprising of an MSB DAC is supplied with the MSB bank of the digital word (e.g., first 4 MSBs), and an LSB DAC is supplied with the LSB bank digital word (e.g., the last 4 LSBs). The MSB bank would utilize a first resistor string that is programmed to be non-linear to generate a non-linear transfer function such as, for example, logarithmic or square transfer function profiles. The LSB DAC, with for example 4-bit of resolution, can be a linear binarily weighted DAC utilizing for example a second resistor string (with equal sized resistors in the resistor string) or a conventional linear R2R DAC. As such, the linear LSB DAC (while properly buffered to avoid loading errors into the MSB DAC) could linearly extrapolate between the non-linear MSB DAC sub-ranges. Accordingly, a proximate non-linear DAC is arranged having for example, a proximate logarithmic or square transfer function profiles.
(44) Some of the benefits of embodiment in
Section 2Description of FIG. 2
(45)
(46) In a typical linear ADC configuration, a general mathematical expression for an ADC's transfer function can be approximately represented as Do.sub.1.fwdarw.n=(2.sup.nV.sub.IN)/V.sub.REF where Do.sub.1.fwdarw.n is the ADC's digital output word that is n-bit wide (including Do.sub.1 as the LSB to Do.sub.n as the MSB), V.sub.IN is the ADC's analog input voltage, and V.sub.REF is the ADC's reference voltage (where VR.sub.2B=VR.sub.+ and VR.sub.2A=VR.sub.=0). Note that an input voltage increments applied to the analog input terminal of the ADC, corresponds to an LSB weight of V.sub.REF/2.sup.n.
(47) In the embodiment illustrated in
(48) In other embodiment of the
(49) To save on area and achieve higher resolutions, a sub-ranging or 2-step ADC can be arranged. A sub-ranging ADC (e.g., with 8-bit of resolution) comprising of an MSB ADC that generates the MSB bank of the digital output word (e.g., first 4 MSBs), and an LSB ADC that generates the LSB bank digital output word (e.g., the last 4 LSBs). The MSB non-linear ADC would utilize a first resistor string that is programmed to be non-linear to generate a non-linear MSB transfer function such as, for example, logarithmic or square transfer functions. The LSB ADC can be a linear binarily weighted ADC. As such, the linear LSB ADC would linearly extrapolate between the non-linear MSB sub-ranges, where the subranges are programmed by the non-linear MSB ADC. Accordingly, a proximate non-linear ADC is arranged having for example, a proximate logarithmic or square transfer function profiles.
(50) Some of the benefits of embodiment in
Section 3Description of FIG. 3
(51)
(52) Let's consider applying two digital words, P.sub.D and Q.sub.D, respectively to the two inputs of the two DAC embodiments illustrated in
(53) The benefits of embodiment of
(54) Let's now consider the summation and subtraction of P.sub.D and Q.sub.D (which are the two input digital words P.sub.D+Q.sub.D and P.sub.DQ.sub.D, respectively) being applied to the two input ports of the two DAC embodiments illustrated in
(55) Additionally, the benefits of the embodiment illustrated in
Section 4Description of FIG. 4
(56)
(57) Let's consider applying two analog inputs, P.sub.A and Q.sub.A, respectively to the two ADC embodiments illustrated in
(58) Let's now consider the summation and subtraction of P.sub.A and Q.sub.A (which are the two input analog signals P.sub.A+Q.sub.A and P.sub.AQ.sub.A, respectively) being applied to the two inputs of the two ADCs embodiments illustrated in
Section 5Description of FIG. 5
(59)
(60) The main DAC's transfer function is field and real-time programmable through an array of current mode DACs (iDAC). The main DAC's resistor string, is field programmable or real-time programmable by data bits T.sub.D5i (i-bit wide) and address bits T.sub.D5j(j-bit wide). The T.sub.D5i data bits are inputted to an array of iDACs, namely F.sub.5A, F.sub.5B, and F.sub.5C, where each of the respective iDAC is selected by the address bits T.sub.D5j.
(61) The left-had side of the resistor string in
(62) The field or real-time programmable iDACs can be programmed to follow a non-linear transfer function such as logarithmic, square, or other arbitrary transfer functions. As noted earlier, for higher resolution non-linear data-converters that are cost effective, a sub-ranging data converter arrangement may be utilized. In such a sub-ranging data-converter, the non-linear MSB data-converter can be arranged similar to the circuit illustrated in
Section 6Description of FIG. 6
(63)
(64) For more cost effective and higher resolution non-linear ADCs, a 2-step or sub-ranging ADC can be arranged, similar in principle to that described regarding the sub-ranging DACs in section 5. As noted earlier, in a sub-ranging data-converter, a first non-linear ADC digitizes the MSBs portion of the analog input (i.e., non-linear MSB ADC) and a second ADC linearly digitizes the LSB portions of the analog input. The transfer function of the non-linear MSB ADC can be field programmed or real-time programmed to follow a non-linear transfer function such as logarithmic, square, or arbitrary function. The linear LSB ADC can be a linear binary ADC, which in effect interpolates between the non-linear ranges of the MSB ADC. As such, a field programmable or real-time programmable ADC can be arranged that follows an approximate non-linear (e.g., logarithmic, square) transfer function.
Section 7Description of FIG. 7
(65)
(66) The P-channel iDAC's digital-inputs are P.sub.D, and its reference input current is IR.sub.7. The iDAC's output current flows out of node VR.sub.7B onto a resistor string that is shared amongst Z.sub.7 plurality of vDACs. In the P-channel iDAC section for
(67) The Z.sub.7 plurality of vDAC's section of
(68) The vDAC with Q.sub.D as its digital inputs (that are m-bit wide) is referred to as Q vDAC. The VR.sub.7B is the VR.sub.+ reference input voltage. The Q.sub.D is the Q vDAC's digital input and it is 0 or 1 representing the value of the D.sup.th digital input bits of the Q vDAC. As noted earlier, a binary weighted vDAC equation can mathematically be expressed as Vo.sub.qV.sub.R.sub.D=1.sup.mQ.sub.D2.sup.D1, where V.sub.R=VR.sub.7B and let's .sub.D=1.sup.mQ.sub.D2.sup.D1=Q.sub.A where Q.sub.A is equivalent analog-output signal representation of Q.sub.D, (which is the digital-input signal of the Q vDAC.)
(69) Note that voltage VR.sub.7B(Io.sub.pR.sub.7), where the sum of the resistance of the resistor string is R.sub.7=R.sub.7A+R.sub.7B+R.sub.7C+R.sub.7D+ . . . .
(70) Therefore, the output for the Q vDAC, Vo.sub.pq(Io.sub.pR.sub.7).sub.D=1.sup.mQ.sub.D2.sup.D1. Accordingly, Vo.sub.pqIR.sub.7R.sub.7.sub.D=1.sup.nP.sub.D2.sup.D1.sub.D=1.sup.mQ.sub.D2.sup.D1. Thus, (Vo.sub.pq/R.sub.7IR.sub.7)=P.sub.AQ.sub.A.
(71) Similar to the Q vDAC, the vDAC with R.sub.D as its digital inputs (that are l-bit wide) is referred to as R vDAC. The VR.sub.7B is also the VR.sub.+ reference input voltage. The R.sub.D is the R vDAC's digital input and it is 0 or 1 representing the value of the D.sup.th digital input bits of the R vDAC. Also, the binary weighted R vDAC equation can mathematically be expressed as Vo.sub.RV.sub.R.sub.D=1.sup.lR.sub.D2.sup.D1, where V.sub.R=VR.sub.7B and let's .sub.D=1.sup.lR.sub.D2.sup.D1=R.sub.A where R.sub.A is equivalent analog-output signal representation of R.sub.D, (which is the digital-input signal of the R vDAC).
(72) Similarly, the output for the R vDAC, Vo.sub.pr(Io.sub.pR.sub.7).sub.D=1.sup.mQ.sub.D2.sup.D1. Accordingly, Vo.sub.prIR.sub.7R.sub.7.sub.D=1.sup.nP.sub.D2.sup.D1.sub.D=1.sup.lR.sub.D2.sup.D1. Thus, (Vo.sub.pr/R.sub.7)(IR.sub.7)=P.sub.AR.sub.A.
(73) In summary, P.sub.D's analog equivalent which is P.sub.A is multiplied by Q.sub.D's analog equivalent which is Q.sub.A as well as R.sub.D's analog equivalent which is R.sub.A. As such, the resulting P.sub.AQ.sub.A and P.sub.AR.sub.A are generated using the same resistor string amongst 2-vDAC channels, namely the R and the Q DACs. As noted earlier, the same resistor string can be shared amongst Z.sub.7 plurality of vDACs (more than 2 channels) which saves area, power, with improved matching between channels that share the same input-output transfer function (established by the shared resistor string).
(74) In summary and in addition to the general benefits of this disclosure listed in the Background section, the benefits of the embodiment illustrated in the simplified
(75) Note that it would be obvious to one skilled in the art to improve the precision of iDAC by, for example, utilizing current source segmentation, cascading reference current mirrors, and or boot-strapping the current reference to track the voltage VR.sub.7B Also, as noted before, it would be obvious to one skilled in the art, to increase the resolution of the DACs utilizing sub-ranging methods, or to save chip area in the vDAC's resistor string's switch decoding section, by for example, cascading in layers of switches instead of parallel taping the full 2.sup.m1 logic decoded switches onto the resistor string network (e.g., S.sub.7A, S.sub.7B, S.sub.7C, etc.).
Section 8Description of FIG. 8
(76)
(77) Similar to the iDAC description provided in section 7, the first iDAC in
(78) In the first iDAC, the IR.sub.8 is mirrored through iDAC's current sources (e.g., M.sub.8E onto M.sub.8F and M.sub.8G) which are binary weighted (e.g., f=1, g=2). The iDAC's P.sub.D, that is n-bit wide, selects the first iDAC switches (e.g., S.sub.8C and S.sub.8D) that sum the respectively selected iDAC output node selected iDAC's binary weighted currents (e.g., M.sub.8F and M.sub.8G) onto the iDAC output node at P.sub.8. The second iDAC's reference input current is supplied by the first iDAC current output at node P.sub.8, which concurrently supplies the second iDAC's binary weighted current sources (e.g., M.sub.8C and M.sub.8D where c=1 and d=2). The respectively selected second iDAC binary weighted current sources are summed at the second iDAC's output (P.sub.AQ.sub.A) after being selected by the second iDAC switches (e.g., S.sub.8A and S.sub.8B). The ratio of IR.sub.8A and IR.sub.8B currents as well as the ratio W/Ls of M.sub.8A and M.sub.8B (e.g., the a, b ratios) establish the VGS.sub.M8A that provides sufficient drain-to-source voltage (VDS) head-room for the first iDAC current sources (e.g., M.sub.8F and M.sub.8G) as well as enough gate-to-source voltage (VGS) for the second iDAC current sources (M.sub.8C and M.sub.8D). Moreover, setting aside normal manufacturing related device mismatches, the disclosed arrangement in
(79) In addition to the general benefits of this disclosure listed in the Background section, the benefits of the embodiment illustrated in the simplified
(80) As noted earlier, the disclosure in
Section 9Description of FIG. 9
(81)
(82) In
(83) The iDACs in
(84) Note also that it would be obvious to one skilled in the art to improve accuracy of the data-converters by current source segmentation and or cascading the current mirror that arrange the reference network of the data-converters. Also note that it would be obvious to one in the art to utilize sub-ranging current-mode data-converters to increase the resolution of data-converters cost effectively.
(85) In addition to the general benefits of this disclosure listed in the Background section, the benefits of the embodiment illustrated in the simplified
Section 10Description of FIG. 10
(86)
(87) In
(88) Note that the square of either a positive or a negative signal (e.g., P.sub.D10+Q.sub.D10 and P.sub.D10Q.sub.D10) is a positive signal, which enables the disclosed multiplier in
(89) As noted earlier, a shared resistor string (that is programmed to approximate a square input-output transfer function) between DAC.sub.10B and DAC.sub.10A saves area, reduces power consumption, and improves matching.
(90) In
(91) Additionally, note that besides resistor string or reference current network, other data-converter with square transfer functions can be utilized here such as a switch-capacitive data-converters whose capacitive transfer function network is programmed to approximates a square input-to-output transfer function. Furthermore, note that principles of
Section 11Description of FIG. 11
(92)
(93) In
(94) Note that the square of both positive or negative signals (e.g., P.sub.A10+Q.sub.A10 and P.sub.A10Q.sub.A10) is a positive signal, which enables the disclosed multiplier to be capable of operating with four quadrants. As noted in section 4, a shared resistor string (that is programmed to approximate a square input-output transfer function) between ADC.sub.11B and ADC.sub.11A saves area, reduces power consumption, and improves matching.
(95) Also, in
(96) Furthermore, note that besides the alternatives of utilizing data-converters whose transfer function is based on resistor string or reference current network, a switched capacitor arrangement can also be utilized. For example, switch-capacitive data-converters whose capacitive transfer function is programmed to follow a square transfer function profile. Also note that a multiple-input to single-output sample-hold can sequentially supply the X.sub.2A.sub.iD.sub.o with pairs of analog signals to be multiplied and digitized sequentially, which is useful for neural artificial intelligence and machine learning application requiring matrix multiplication plus accumulation functions. The sequential outputs of a X.sub.2A.sub.iD.sub.o in such an arrangement can be subsequently added, divided by 4, and stored in memory for post signal processing, which is a simple implementation in logic. The sample and hold array-based arrangement that was just described has the following benefits: (1) saves on area and cost, (2) has lower power consumption, (3) all conversions matched better since the same X.sub.2A.sub.iD.sub.o performs the multiplication function and converts the multiplied array of pairs of signals. Additionally, such arrangement would enable one system-wide correction to improve accuracy, such as gain error, offsets, or systematic droop rates associated with the front-end analog sample-and-hold. Naturally, the trade-off here is in utilizing the same two data-converters between an array of channels to be multiplied sequentially, would extend the conversion cycles which slows down the data processing time.
(97) As noted earlier, in the case of an array of independent X.sub.2A.sub.iD.sub.o that utilize independent ADCs with a single shared a square input-to-output transfer function reference network, there are savings on power, area, and enhanced matching between ADC channels and better matching between multiplication results. Naturally, another benefit is that all multiplication results would be available asynchronously without need to a clock or without cycle delay. Also, such an arrangement can allow for one system-wide correction or trim of the single shared reference network to improve accuracy, such as gain error or offset.
Section 12Description of FIG. 10
(98)
(99) In
(100) As noted earlier, a shared resistor string (that is programmed to approximate a logarithmic input-output transfer function) in
(101) In
(102) In addition, note that besides resistor string or reference current network, other data-converter with logarithmic transfer functions can be utilized here such as a switch-capacitive data-converters whose capacitive transfer function network is programmed to approximates a logarithmic input-to-output transfer function. Moreover, note that principles of
Section 13Description of FIG. 13
(103)
(104) In
(105) As noted in section 4, a shared resistor string (that is programmed to approximate a logarithmic input-output transfer function) in
(106) Additionally, note that besides the alternatives of utilizing data-converters whose transfer function is based on resistor string or reference current network, a switched capacitor arrangement can also be utilized. For example, switch-capacitive data-converters whose capacitive transfer function is programmed to follow a logarithmic transfer function profile. Also note that a multiple-input to single-output sample-hold can sequentially supply the X.sub.logA.sub.iD.sub.o with pairs of analog signals to be multiplied and digitized sequentially, which is useful for neural artificial intelligence and matching learning application requiring matrix multiplication plus accumulation functions. The sequential outputs of a X.sub.logA.sub.iD.sub.o in such an arrangement can be subsequently added, and stored in logic for conversion to linear binary, which is a simple implementation in the digital domain. The sample and hold array-based arrangement that was just described has the following benefits: (1) saves on area and cost, (2) has lower power consumption, (3) all conversions matched better since the same X.sub.logA.sub.iD.sub.o performs the multiplication function and converts the multiplied array of pairs of signals. Also, such arrangement would enable one system-wide correction to improve accuracy, such as gain error, offsets, or systematic droop rates associated with the front-end analog sample-and-hold. Naturally, the trade-off here is in utilizing the same two data-converters between an array of channels to be multiplied sequentially, would extend the conversion cycles which slows down the data processing time.
(107) As noted earlier, in the case of an array of independent X.sub.logA.sub.iD.sub.o that utilize independent ADCs with a single shared a logarithmic input-to-output transfer function reference network, there are saving on power, area, and enhanced matching between ADC channels and better matching between multiplication results. Naturally, another benefit is that all multiplication results would be available asynchronously without need to a clock or without cycle delay. Also, such an arrangement can allow for one system-wide correction or trim of the single shared reference network to improve accuracy, such as gain error or offset.
Section 14Description of FIG. 14
(108)
(109) The input signals P and Q are partitioned to most significant portions (MSP) and Least-Significant-Portions (LSP). In describing the method SM.sup.3, P is equal to the sum of MSP of P plus LSP of P, and similarly, Q is equal to the sum of MSP of Q plus LSP of Q. Also, in describing the SM.sup.3 method, the MSP and LSP signals can be analog or digital or combination representations of their respective P and Q signals.
(110) First the most significant portion of the input signals' multiplication is generated. Here, a P's MSP (P.sub.MSP) is multiplied by a Q's MSP (Q.sub.MSP) utilizing at least one data-converter to generate a scaled (S) segment of multiplication SP.sub.MSPQ.sub.MPS.
(111) Then, the cross-multiplication or the intermediate segment of the multiplication is generated utilizing at least one data-converter. Here, a P's LSP (P.sub.LSP) is multiplied with the Q.sub.MSP, to generate another scaled (S) segment of multiplication SP.sub.LSPQ.sub.MSP. Similarly, a Q's LSP (Q.sub.LSP) is multiplied with the P.sub.MSP, to generate another scaled (S) segment of multiplication SQ.sub.LSPP.sub.MSP.
(112) Lastly, the least significant portion of the multiplication is generated utilizing at least one data-converter. Here, another scaled (S) segment of multiplication SP.sub.LSPQ.sub.LSP is generated.
(113) Finally, the multiplication results of PQ is generated by summing each above segment that each carries their proportional scale factors:
PQ=SP.sub.MSPQ.sub.MSP+S(P.sub.LSPQ.sub.MSP+Q.sub.LSPP.sub.MSP)+SP.sub.LSPQ.sub.LSP
(114) The benefits of utilizing SM.sup.3 method to multiply signals are as flows:
(115) First, the accuracy of the multiplication is dominated by the P.sub.MSPQ.sub.MSP which allows utilizing less accurate and lower cost data-converters to perform the intermediate segments cross multiplication or (P.sub.MSPQ.sub.LSP+Q.sub.MSPP.sub.LSP) and even less accurate and smaller data-converters to perform the LSP multiplication of P.sub.LSPQ.sub.LSP. This benefit enables making the data converters utilized in the intermediate and least significant portions of multiplication smaller which saves on die area and chip cost.
(116) Second, utilizing the disclosed method where data-converters perform multiplication, then low-resolution data-converter whose transfer function has higher-accuracy can be utilized, which would generate multiplication results with higher-accuracy, and this is how. For example, considering normal manufacturing related imperfections, if the transfer function of a 4-bit resolution data-converter can be linear to 8-bits or 0.4% accuracy, then utilizing a data-converters with 4-bits of resolution (to perform the multiplication in accordance with the disclosed method), then the generated multiplication results would be accurate to 8 bits of 0.4%. As such, high-accuracy multiplication can be achieved with less resolution and thus smaller size data-converters, which lowers the die cost of the multiplier.
(117) Third, the dynamic response of the multiplier is improved since the speed would be mainly a function of the dynamic response of the most significant portion of the input signals' multiplication or speed of P.sub.MPSQ.sub.MSP, and as such the multiplication speed in the intermediate and least signification is less critical.
(118) Fourth, segmenting the multiplication process allows the data-converter's transfer function reference network be arranged in smaller segments which in turn improves the glitch transients associated with data-converter's code transition.
(119) Fifth, there is an area trade-off between performing multiplication using conventional multiplying DACs versus the disclosed segmented multiplication. For multiplication using high-resolution data-converters, the large size of the transfer function reference network associated with a high-resolution data converter is replaced with plurality of smaller transfer function reference network segments associated with lower resolution data-converters.
(120) Here,
(121) At this point, the MSP segments multiplication is described. In
(122) Now, the MSP and LSP segments cross multiplication is described. Also, in
(123) Here, the LSP segments multiplication is described. In
(124) Note that the reference signal values of REF.sub.14A is scaled at S, REF.sub.14B is scaled at S, and REF.sub.14C is scaled at S. For example, having 6-bit DACs where i=j=6, and where i1=j1=3, and i2=j2=3, then for S=1, S=S/2.sup.i1=S/2.sup.3=S/8 and S=S/2.sup.j1=S/2.sup.3=S/8=S/(88). In this example, the full-scale value at the analog output of DAC.sub.14B would be 8 times bigger than full-scale value at the analog output of DAC.sub.14D and DAC.sub.14F. Also, the full-scale value at the analog output of DAC.sub.14B would be 88=64 times bigger than full-scale value at the analog output of DAC.sub.14H. Moreover, in this example, the signal value of REF.sub.14A could be 8 times bigger than the signal value of REF.sub.14B. Also, the signal value of REF.sub.14A could be 88=64 times bigger than the signal value of REF.sub.14C.
(125) As noted earlier, the summation function in current mode is simple, and eliminates the need for an analog circuit A.sub.14. After proportional scaling of each segment multiplication as explained above, current mode summation is realized by coupling each of the multiplying segment iDAC outputs together (i.e., summing the current output of iDACs including DAC.sub.14B, DAC.sub.14D, DAC.sub.14F, and DAC.sub.14H). Thus, P.sub.A14Q.sub.A14 analog current multiplications is generated by scaling the sum of the segments multiplication of the multiplier's input signal's most-significant and least-significant portions that is P.sub.A14MQ.sub.A14M+P.sub.A14MQ.sub.A141L+P.sub.A14LQ.sub.A14M+P.sub.A14LQ.sub.A14L.
(126) An alternative embodiment of XD.sub.iA.sub.o, as a variation to the disclosure illustrated in
(127) To save die area and chip cost, another alternative embodiment of XD.sub.iA.sub.0 which would be a variation to the disclosure illustrated in
(128) A current mode embodiment of XD.sub.iA.sub.0 disclosed in
(129) It would be obvious to one skilled in the art to convert the analog multiplication results P.sub.A14Q.sub.A14 and convert to digital utilizing a voltage mode or current mode ADC to generate the digital representation of the multiplication results P.sub.D14Q.sub.D14.
Section 15Description of FIG. 15
(130)
(131) In
(132) At this point, the MSP segments multiplication is described. In
(133) Now, the MSP and LSP segments cross multiplication is described. Also, in
(134) Here, the LSP segments multiplication is described. In
(135) Now, the reference signal scaling ratios for the respective MSP and LSP segment multiplication is described by way of an example. For instance, for n=m=2 bits, then for S=1.fwdarw.S=S/2.sup.n=S/2.sup.2=S/4 and S=S/2.sup.m=S/2.sup.2=S/4=S/(44). In this example, if REF=16 units, then zero to full-scale value of REF.sub.15A would be 16 units; zero to full-scale value of REF.sub.15B would be 16 units; zero to full-scale value of P.sub.A15L and Q.sub.A15L that are applied as reference signals to DAC.sub.15A and DAC.sub.15B, respectively, would be 16/4=4 units; and zero to full-scale value of REF.sub.15C would be 16/44=1 unit.
(136) Accordingly, upon proper scaling of the segmented analog signals and their summation before or after the analog circuit A.sub.15, a final multiplication analog result is generated where P.sub.A15Q.sub.A15=P.sub.A15MQ.sub.A15M+P.sub.A14MQ.sub.A15L+P.sub.A15LQ.sub.A15M+P.sub.A15LQ.sub.A15L.
(137) It would be obvious to one skilled in the art to convert the analog multiplication signal P.sub.A15Q.sub.A15 to its digital equivalent P.sub.D15Q.sub.D15 utilizing an ADC.
Section 16Description of FIG. 16
(138)
(139) The SC circuit of
(140) At the analog input PQA.sub.16, an analog-input signal i.sub.i is first compared with the first current mirror (M.sub.16A) reference segment that has a value of i.sub.r/4. The resultant difference flows either through M.sub.16E or M.sub.16F depending on the polarity of (i.sub.ii.sub.r/4) and accordingly a digital signal is outputted by A.sub.16A. If i.sub.i<i.sub.r/4, then the difference or (i.sub.ii.sub.r/4) flows through M.sub.16F and onto M.sub.16G. On the other hand, if i.sub.i>i.sub.r/4, then the difference or (i.sub.ii.sub.r/4) flows through M.sub.16E where (i.sub.ii.sub.r/4) gets compared with i.sub.r/4 which is M.sub.16D's current.
(141) Similarly, the difference (i.sub.ii.sub.r/4)i.sub.r/4 flows either through M.sub.16J or M.sub.16K depending on the polarity of (i.sub.ii.sub.r/4i.sub.r/4) and accordingly a digital signal is outputted by A.sub.16B. If i.sub.ii.sub.r/4<i.sub.r/4, then the difference or (i.sub.ii.sub.r/4)i.sub.r/4 flows through M.sub.16K and onto M.sub.16L. On the other hand, if i.sub.ii.sub.r/4>i.sub.r/4, then the difference (i.sub.ii.sub.r/4)i.sub.r/4 flows through M.sub.16J where (i.sub.ii.sub.r/4) gets compared with i.sub.r/4 which is M.sub.16I's current.
(142) As i.sub.i ripples through (the effectively) the SC circuit's thermometer current reference (four segment) network, the digital signals outputted by A.sub.16A, A.sub.16B, and A.sub.16C (with proper sign) control the current flow through the analog switches M.sub.16L, M.sub.16R, and M.sub.16T whose sum of current flows M.sub.16M. Note that the gate to source voltage of M.sub.16M and the current through M.sub.16M represent the residual analog LSP of the SC circuit's input current.
(143)
(144) To avoid the transitional glitches that appears at the final multiplication results due in part to the MSP transitions, the SC circuit can be modified to output an equilateral triangular waveform instead of a saw-tooth triangular waveform. As such, the triangular waveform does not pulse from full-scale to zero-scale. Accordingly, the final multiplication results can be generated by proper analog and digital signal re-assembly of the MSP and residual LSP segments.
(145) In
(146) Also, note that the digital signals outputted by A.sub.16A, A.sub.16B, and A.sub.16c with proper sign control, are inputted to a 3-bit (e.g., 2.sup.n1=2.sup.m1=2.sup.21=3) to 2-bit encoder (comprising XNOR.sub.16, NAND.sub.16A, and NAND.sub.16B) that generate (PQD.sub.16M0 and PQD.sub.16M1 which is) the digital MSP of the SC circuit's input current.
(147) Accordingly, utilizing the SC circuit of
(148) Note that other circuits such as current mode algorithmic analog to digital converters can be utilized to generate the digital MSP and the residual analog LSP of its respective analog input current signal.
Section 17Description of FIG. 17
(149)
(150) The current analog multiplier illustrated in
(151) Accordingly, the PQ.sub.A17L analog signal in
(152) As discussed earlier, the errors attributed to multiplier's linearity or settling time are attenuated (referred back to the input signals of X.sub.SI.sub.iI.sub.o of
(153) Note that current analog-input to analog-output multipliers (relying on the square function relationship between voltage and current in CMOS) that operate in higher current levels in the MOSFET saturation region (not limited to subthreshold operation) can also be utilized depending on the application requirement.
Section 18Description of FIG. 18
(154)
(155) In
(156) As discussed earlier, the errors attributed to
Section 19Description of FIG. 19
(157)
(158) The multiplying DAC of
(159) Note that the digital word signal (P.sub.D19M0, P.sub.D19M1) of
(160) The multiplying iDAC of
Section 20Description of FIG. 20
(161)
(162) Note that the final output of the
(163) The upper graph in
(164) The upper graph in
(165) The lower graph in