KR20230145845A - Apparatus for current-mode multiply-accumulation using multiphase clock - Google Patents

Apparatus for current-mode multiply-accumulation using multiphase clock Download PDF

Info

Publication number
KR20230145845A
KR20230145845A KR1020220044771A KR20220044771A KR20230145845A KR 20230145845 A KR20230145845 A KR 20230145845A KR 1020220044771 A KR1020220044771 A KR 1020220044771A KR 20220044771 A KR20220044771 A KR 20220044771A KR 20230145845 A KR20230145845 A KR 20230145845A
Authority
KR
South Korea
Prior art keywords
output
bit
pulse width
current
sign
Prior art date
Application number
KR1020220044771A
Other languages
Korean (ko)
Other versions
KR102655161B1 (en
Inventor
손현우
Original Assignee
경상국립대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경상국립대학교산학협력단 filed Critical 경상국립대학교산학협력단
Priority to KR1020220044771A priority Critical patent/KR102655161B1/en
Publication of KR20230145845A publication Critical patent/KR20230145845A/en
Application granted granted Critical
Publication of KR102655161B1 publication Critical patent/KR102655161B1/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
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치에 관한 것으로, 메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성하는 다중 위상 생성부; 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하는 PWM 신호 생성부; 무부호 다중 비트를 각각 입력받고, 복수 개의 PWM 신호를 이용하여 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력하는 복수 개의 펄스폭 변조 회로; 부호 다중 비트를 각각 입력받고, 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력하는 복수 개의 멀티플렉서 - 부호 다중 비트는 부호 비트를 가지고 2의 보수로 표현됨 - ; 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 복수 개의 멀티플렉서에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력하는 디지털 아날로그 변환부; 및 디지털 아날로그 변환부에서 출력되는 전류에 대응하여 순차적으로 구해지는 디지털 값을 복수 개의 멀티플렉서에서 출력되는 비트의 부호 비트 여부에 따라 가감산하여 누적한 결과값을 출력하는 아날로그 디지털 변환부;를 포함한다.The present invention relates to a current-type multiplication and accumulation operation device using a multi-phase clock, comprising: a multi-phase generator that generates a plurality of multi-phase clock signals using a main clock signal; a PWM signal generator that generates a plurality of PWM signals having different waveforms using a plurality of multi-phase clock signals; A plurality of pulse width modulation circuits that each receive unsigned multiple bits as input, generate pulse width signals each having a pulse width corresponding to the value of the input unsigned multiple bits using a plurality of PWM signals, and output them in parallel; A plurality of multiplexers that each receive a sign multi-bit input, select one bit from the input sign multi-bits, and output it in parallel - A sign multi-bit is expressed in 2's complement with a sign bit - ; A digital-to-analog converter that outputs a current corresponding to a parallel multiplication and accumulation operation result for a plurality of pulse width signals output in parallel from a plurality of pulse width modulation circuits and bits output in parallel from a plurality of multiplexers; and an analog-to-digital converter that adds and subtracts digital values sequentially obtained in response to the current output from the digital-to-analog converter according to the sign bit status of the bits output from the plurality of multiplexers and outputs an accumulated result value. .

Description

다중 위상 클럭을 사용한 전류형 곱셈 누적 연산기{APPARATUS FOR CURRENT-MODE MULTIPLY-ACCUMULATION USING MULTIPHASE CLOCK}Current type multiplication accumulation operator using multi-phase clock {APPARATUS FOR CURRENT-MODE MULTIPLY-ACCUMULATION USING MULTIPHASE CLOCK}

본 발명은 곱셈 누적 연산기에 관한 것으로, 보다 자세하게는 복수 개 입력의 다중비트 곱셈 누적 연산을 디지털 영역 대신 아날로그 영역에서 저전력이며 병렬적으로 처리하기 위한 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산기에 관한 것이다.The present invention relates to a multiplication and accumulation operator, and more specifically, to a current type multiplication and accumulation operator using a multi-phase clock to process multi-bit multiplication and accumulation operations of a plurality of inputs in parallel in the analog domain instead of the digital domain at low power. .

곱셈누적 연산은 아래 수학식 1과 같이 두 숫자(X,Y)의 곱셈 값을 누산기의 또 다른 값(Z)과 더하는 동작으로 다양한 디지털 신호 처리 분야에서 매우 널리 사용된다.The multiplication-accumulation operation is an operation that adds the multiplication value of two numbers (X, Y) with another value (Z) of an accumulator, as shown in Equation 1 below, and is very widely used in various digital signal processing fields.

[수학식 1][Equation 1]

Z ← (X*Y) + ZZ ← (X*Y) + Z

최근 물체 인식과 같은 분야에서 유망한 컨볼루셔널 뉴럴 네트웍 또한 동작을 위해 수학식 2와 같이 N개 입력의 다중비트 곱셈 누적 연산을 필요로 한다.Convolutional neural networks, which have recently shown promise in fields such as object recognition, also require multi-bit multiplication and accumulation operations of N inputs as shown in Equation 2 for operation.

[수학식 2][Equation 2]

따라서 물체 인식과 같은 태스크를 모바일 기기와 같은 저전력 플랫폼에서 컨볼루셔널 뉴럴 네트웍을 이용하여 실시간으로 하드웨어로 처리하기 위해서는 저전력이며 병렬적으로 여러 번의 곱셈누적 연산을 할 수 있는 회로가 필요하다.Therefore, in order to process tasks such as object recognition with hardware in real time using a convolutional neural network on low-power platforms such as mobile devices, a low-power circuit is needed that can perform multiple multiplication and accumulation operations in parallel.

그러나, 종래 기술에 의한 곱셈누적 연산기는 저전력이며 병렬적으로 여러 번의 곱셈누적 연산을 하도록 하는데 몇 가지의 장애 요소가 있다. 예를 들어, 종래의 일반적인 곱셈누적 연산기는 보통 다중 비트의 곱셈기와 곱셈기의 결과를 누적하는 다중 비트 누산기로 이루어져있다.However, the multiplication-accumulation operator according to the prior art is low-power and has several obstacles in performing multiple multiplication-accumulation operations in parallel. For example, a typical conventional multiplication and accumulation operator usually consists of a multibit multiplier and a multibit accumulator that accumulates the result of the multiplier.

비트 직렬 방식의 다중 비트 곱셈기는 하드웨어 면적과 전력 소모가 작지만, 한 번에 한 비트의 곱셈만 처리가 가능하기 때문에, 다중 비트의 곱셈연산에 오랜 시간이 걸린다. 한편, 병렬 다중 비트 곱셈기는 곱셈연산을 병렬적으로 처리하는 반면, 이를 위해 상대적으로 복잡한 도선연결과 커다란 하드웨어 면적과 상당한 전력을 소모하므로 저전력 회로에 부적합하다. 또한 곱셈연산은 병렬로 이루어지지만 필요로 하는 곱셈누적 연산의 수가 많을수록 누적 연산도 여러 번 행해지므로 연산을 하는데 걸리는 시간이 증가하게 된다.The bit serial multi-bit multiplier has a small hardware area and small power consumption, but since it can only process the multiplication of one bit at a time, multi-bit multiplication operations take a long time. Meanwhile, while parallel multi-bit multipliers process multiplication operations in parallel, they require relatively complicated wire connections, large hardware areas, and consume significant power, making them unsuitable for low-power circuits. In addition, the multiplication operation is performed in parallel, but as the number of multiplication and accumulation operations required increases, the accumulation operation is performed multiple times, which increases the time it takes to perform the operation.

이와 같이 종래의 다중 비트 병렬 곱셈누적 연산기는 여러 번의 곱셈누적 연산을 저전력이며 병렬적으로 하는데 어려움이 있다.As such, the conventional multi-bit parallel multiply-accumulate operator has difficulty performing multiple multiplication-accumulate operations in parallel with low power.

따라서 본 발명이 해결하고자 하는 기술적 과제는 여러 번의 곱셈누적 연산을 저전력이며 병렬적으로 할 수 있는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산기를 제공하는 것이다.Therefore, the technical problem to be solved by the present invention is to provide a current-type multiplication-accumulation operator using a multi-phase clock that can perform multiple multiplication-accumulation operations in parallel with low power.

이러한 기술적 과제를 해결하기 위한 본 발명에 따른 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치는 메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성하는 다중 위상 생성부; 상기 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하는 PWM 신호 생성부; 무부호 다중 비트를 각각 입력받고, 상기 복수 개의 PWM 신호를 이용하여 상기 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력하는 복수 개의 펄스폭 변조 회로; 부호 다중 비트를 각각 입력받고, 상기 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력하는 복수 개의 멀티플렉서 - 상기 부호 다중 비트는 부호 비트를 가지고 2의 보수로 표현됨 - ; 상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력하는 디지털 아날로그 변환부; 및 상기 디지털 아날로그 변환부에서 출력되는 전류에 대응하여 순차적으로 구해지는 디지털 값을 상기 복수 개의 멀티플렉서에서 출력되는 비트의 부호 비트 여부에 따라 가감산하여 누적한 결과값을 출력하는 아날로그 디지털 변환부; 를 포함한다.A current-type multiplication and accumulation operation device using a multi-phase clock according to the present invention to solve this technical problem includes a multi-phase generator that generates a plurality of multi-phase clock signals using a main clock signal; a PWM signal generator that generates a plurality of PWM signals having different waveforms using the plurality of multi-phase clock signals; A plurality of pulse width modulation circuits that each receive unsigned multiple bits as input, use the plurality of PWM signals to generate pulse width signals each having a pulse width corresponding to the value of the input unsigned multiple bits, and output them in parallel. ; A plurality of multiplexers that each receive a sign multi-bit input, select one bit from the input sign multi-bits, and output it in parallel - the sign multi-bit has a sign bit and is expressed in 2's complement -; a digital-to-analog converter that outputs a current corresponding to a parallel multiplication and accumulation operation result for the plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and the bits output in parallel from the plurality of multiplexers; and an analog-to-digital converter that adds and subtracts digital values sequentially obtained in response to the current output from the digital-to-analog converter according to whether the bits output from the plurality of multiplexers are sign bits and outputs an accumulated result value. Includes.

상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 PWM 신호 생성부는 상기 복수 개의 PWM 신호의 펄스폭을 1/2씩 감소시킬 수 있다.Each time the plurality of multiplexers output sequentially from the most significant bit to the least significant bit of the sign multiple bits, the PWM signal generator may reduce the pulse width of the plurality of PWM signals by 1/2.

상기 복수 개의 PWM 신호는 상승 에지가 미리 정해진 지연 시간만큼 순차적으로 지연되고 펄스폭이 미리 정해진 크기만큼 순차적으로 감소하는 서로 다른 파형을 가질 수 있다.The plurality of PWM signals may have different waveforms in which the rising edge is sequentially delayed by a predetermined delay time and the pulse width is sequentially decreased by a predetermined amount.

상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 PWM 신호 생성부는 상기 복수 개의 PWM 신호의 펄스폭과 상기 미리 정해진 지연 시간이 1/2씩 감소시킬 수 있다.Each time the plurality of multiplexers output sequentially from the most significant bit to the least significant bit of the sign multiple bits, the PWM signal generator reduces the pulse width of the plurality of PWM signals and the predetermined delay time by 1/2. You can do it.

상기 복수 개의 PWM 신호의 개수(N)는 2L/2로 정해지고, L은 상기 무부호 다중 비트의 비트폭이며, 상기 복수 개의 PWM 신호 중 i번째 PWM 신호인 PWM[N-i]의 펄스폭은 (N-i)*(N+1)*TREF 이고, PWM[N-i]는 상기 복수 개의 PWM 신호 중 i-1번째 PWM 신호인 PWM[N-(i-1)] 보다 N*TREF 만큼 상승 에지가 지연되는 파형을 가질 수 있다. 여기서 i(i = 1, 2, …, N)는 상기 복수 개의 PWM 신호의 인덱스이다.The number (N) of the plurality of PWM signals is set to 2 L/2 , L is the bit width of the unsigned multiple bits, and the pulse width of PWM[Ni], the ith PWM signal among the plurality of PWM signals, is (Ni)*(N+1)*T REF , and PWM[Ni] is a rising edge by N*T REF higher than PWM[N-(i-1)], which is the i-1th PWM signal among the plurality of PWM signals. may have a delayed waveform. Here, i (i = 1, 2, ..., N) is the index of the plurality of PWM signals.

TREF는 상기 메인 클럭 신호의 클럭 주기로 초기값이 설정된 후 상기 복수 개의 멀티플렉서에서 출력되는 상기 부호 다중 비트의 자리수가 하나씩 낮아짐에 따라 1/2씩 감소할 수 있다.After an initial value is set to the clock period of the main clock signal, T REF may decrease by 1/2 as the number of digits of the sign multiple bits output from the plurality of multiplexers decreases one by one.

상기 복수의 다중 위상 클럭 신호는 주파수는 같고 위상이 서로 다른 다중 위상 클럭을 사용할 수 있다.The plurality of multi-phase clock signals may use multi-phase clocks with the same frequency and different phases.

상기 디지털 아날로그 변환부는, 상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트를 한 쌍씩 입력받아 논리곱 연산하여 출력하는 복수 개의 논리 게이트, 상기 복수 개의 논리 게이트에 각각 대응하는 복수 개의 단위 전류원, 및 상기 복수 개의 논리 게이트 중 대응하는 논리 게이트의 출력값에 따라 상기 복수 개의 단위 전류원 중 대응하는 단위 전류원에서 출력되는 전류를 출력시키는 복수 개의 스위칭 소자를 포함할 수 있다.The digital-to-analog converter includes a plurality of logic gates that receive pairwise inputs of a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and bits output in parallel from the plurality of multiplexers and output an logical product operation, A plurality of unit current sources, each corresponding to the plurality of logic gates, and a plurality of switching elements for outputting a current output from the corresponding unit current source among the plurality of unit current sources according to the output value of the corresponding logic gate among the plurality of logic gates. may include.

상기 아날로그 디지털 변환부는, 상기 디지털 아날로그 변환부에서 출력되는 전류에 의해 충전 커패시터에 충전된 충전 전압에 따른 펄스를 생성하는 펄스 생성부, 및 상기 펄스 생성부에서 출력되는 펄스 개수를 카운트한 결과에 대응하는 상기 디지털 값을 구하여 상기 부호 다중 비트의 최상위 자리수 비트에 대응하여 출력되는 디지털 값은 감산 처리하고, 상기 부호 다중 비트의 나머지 자리수 비트에 대응하여 출력되는 디지털 값은 가산 처리하는 업다운 카운터를 포함할 수 있다.The analog-to-digital converter includes a pulse generator that generates a pulse according to the charging voltage charged in the charging capacitor by the current output from the digital-analog converter, and a result of counting the number of pulses output from the pulse generator. It may include an up-down counter that obtains the digital value, subtracts the digital value output corresponding to the most significant bit of the sign multi-bit, and adds the digital value output corresponding to the remaining bit of the sign multi-bit. You can.

상기 펄스 생성부는, 상기 충전 커패시터에 충전된 전압을 기준전압과 비교하여 그에 따른 펄스를 생성하여 출력하는 비교기 및 상기 비교기에서 '하이'가 출력될 때마다 상기 충전 커패시터에 충전된 전압을 리셋시키는 트랜지스터를 포함할 수 있다.The pulse generator includes a comparator that compares the voltage charged in the charging capacitor with a reference voltage to generate and output a pulse accordingly, and a transistor that resets the voltage charged in the charging capacitor whenever 'high' is output from the comparator. may include.

이러한 기술적 과제를 해결하기 위한 본 발명에 따른 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법은, (a) 다중 위상 생성부가 메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성하는 단계; (b) PWM 신호 생성부가 상기 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하는 단계; (c) 복수 개의 펄스폭 변조 회로가 무부호 다중 비트를 각각 입력받고, 상기 복수 개의 PWM 신호를 이용하여 상기 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력하는 단계; (d) 복수 개의 멀티플렉서가 부호 다중 비트를 각각 입력받고, 상기 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력하는 단계 - 상기 부호 다중 비트는 부호 비트를 가지고 2의 보수로 표현됨 - ; (e) 디지털 아날로그 변환부가 상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력하는 단계; (f) 아날로그 디지털 변환부가 상기 디지털 아날로그 변환부에서 출력되는 전류에 대응하는 디지털 값을 구하는 단계; 및 (g) 상기 아날로그 디지털 변환부가 상기 구해진 디지털 값을 상기 복수 개의 멀티플렉서에서 출력되는 비트의 부호 비트 여부에 따라 가감산하는 단계; 를 포함하고, 상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 복수 개의 PWM 신호의 펄스폭을 1/2씩 감소시키면서 상기 (a) 내지 (g) 단계를 반복할 수 있다.The current-type multiplication and accumulation operation method using a multi-phase clock according to the present invention to solve this technical problem includes the steps of: (a) a multi-phase generator generating a plurality of multi-phase clock signals using a main clock signal; (b) a PWM signal generator generating a plurality of PWM signals having different waveforms using the plurality of multi-phase clock signals; (c) A plurality of pulse width modulation circuits each receive unsigned multiple bits as input, and each generate a pulse width signal having a pulse width corresponding to the value of the input unsigned multiple bits using the plurality of PWM signals. Outputting in parallel; (d) a plurality of multiplexers each receiving a sign multi-bit, selecting one bit from the input sign multi-bit and outputting it in parallel - the sign multi-bit is expressed as a 2's complement with a sign bit -; (e) a digital-to-analog converter outputting a current corresponding to a parallel multiplication and accumulation operation result for a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and bits output in parallel from the plurality of multiplexers. ; (f) an analog-to-digital converter calculating a digital value corresponding to the current output from the digital-to-analog converter; and (g) the analog-to-digital converter adding or subtracting the obtained digital value depending on whether a bit output from the plurality of multiplexers is a sign bit or not. It includes, and each time the plurality of multiplexers sequentially output from the most significant bit to the least significant bit of the sign multiple bits, the pulse width of the plurality of PWM signals is reduced by 1/2, and the pulse width of the plurality of PWM signals is reduced by 1/2. Step g) can be repeated.

컴퓨터에 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.It may include a computer-readable recording medium on which a program for executing the method is recorded on a computer.

본 발명에 의하면 여러 번의 곱셈누적 연산을 저전력이며 병렬적으로 할 수 있는 장점이 있다.According to the present invention, there is an advantage that multiple multiplication and accumulation operations can be performed in parallel with low power.

도 1은 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 장치의 구성도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 자릿수 가중치 보상에 대한 설명을 위해 제공되는 도면이다.
도 4는 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 장치에서 사용되는 신호 파형을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 펄스폭 변조 회로에서 펄스폭 신호를 생성하는 동작과 관련된 구성 요소를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 방법의 흐름도이다.
1 is a configuration diagram of a current-type multiplication and accumulation operation device according to an embodiment of the present invention.
Figures 2 and 3 are diagrams provided to explain digit weight compensation according to an embodiment of the present invention.
Figure 4 is a diagram illustrating a signal waveform used in a current-type multiplication and accumulation operation device according to an embodiment of the present invention.
Figure 5 shows components related to the operation of generating a pulse width signal in a pulse width modulation circuit according to an embodiment of the present invention.
Figure 6 is a flowchart of a current-type multiplication accumulation operation method according to an embodiment of the present invention.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 그러나 이들 실시 예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다.Hereinafter, with reference to the attached drawings, preferred embodiments through which the present invention can be easily implemented by those skilled in the art will be described in detail. However, these examples are for illustrating the present invention in more detail, and it will be apparent to those skilled in the art that the scope of the present invention is not limited thereto.

본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시 예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.The configuration of the invention to clarify the solution to the problem to be solved by the present invention will be described in detail with reference to the accompanying drawings based on preferred embodiments of the present invention, and the reference numbers to the components in the drawings will be the same. Components are given the same reference numbers even if they are in different drawings, and it is stated in advance that components of other drawings can be cited when necessary when explaining the relevant drawings. In addition, when explaining in detail the operating principle of a preferred embodiment of the present invention, if it is judged that a detailed description of a known function or configuration related to the present invention and other matters may unnecessarily obscure the gist of the present invention, The detailed description is omitted.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작, 또는 소자 외에 하나 이상의 다른 구성요소, 단계, 동작, 또는 소자의 존재 또는 추가를 배제하지 않는다.Additionally, throughout the specification, when a part is said to be 'connected' to another part, this does not only mean 'directly connected', but also 'indirectly connected' with another element in between. Includes. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” or “comprising” excludes the presence or addition of one or more other components, steps, operations, or elements other than the mentioned components, steps, operations, or elements. I never do that.

본 발명은 위 수학식 2에서와 같은 N개 입력의 다중비트 곱셈 누적 연산을 디지털 영역 대신 아날로그 영역에서 저전력이며 병렬적으로 처리하기 위한 기술에 관한 것으로, 두 다중비트 입력 X, W값 중 부호를 갖지 않는 X의 디지털 값은 펄스 폭 변조를 통해 시간 영역으로 변환하고, 부호를 갖는 다중비트 W는 멀티플렉서를 활용하여 여러 비트 중 한 비트를 선택하여 시간 영역으로 변환된 X와 함께 N개의 디지털 AND 게이트를 활용하여 N개의 다중비트와 N개의 한 비트의 곱셈 연산을 병렬로 수행한다. 이 결과값들은 전류기반의 디지털-아날로그 변환기의 입력으로 사용되어 전류 형태로서 자연스레 누적 연산 수행이 가능하다. 이때 다중비트인 X와 W의 한 비트의 곱셈 누적 연산이 병렬로 수행되므로 최종 연산 결과값(DOUT)을 얻기 위해서는 W의 비트 수만큼 반복연산 하면서 선택하는 한 비트의 자릿수 가중치를 곱한 후 합산이 필요하다.The present invention relates to a technology for processing the multi-bit multiplication and accumulation operation of N inputs as in Equation 2 above in parallel with low power in the analog domain instead of the digital domain. The sign of the two multi-bit input X and W values is The digital value of Using , multiplication operations of N multiple bits and N single bits are performed in parallel. These result values are used as inputs to a current-based digital-to-analog converter, making it possible to naturally perform cumulative calculations in the form of current. At this time, since the one-bit multiplication and accumulation operation of the multi-bit need.

[수학식 3][Equation 3]

수학식 3은 W가 2의 보수 형태로 M비트, 즉 W[M-1:0]이고, 디지털-아날로그 변환기의 단위 전류 IU 일 때 디지털 영역에서 자릿수 가중치를 보상한 최종 연산 결과값이다. 디지털 영역에서의 자릿수 가중치 보상은 시프트 레지스터와 음수 변환 등으로 쉽게 구현할 수 있지만, 연산을 M번 반복 후에 최종 결과를 얻을 수 있으므로, 메인 클럭의 주파수가 일정할 때 W의 비트가 커질수록 이에 비례하여 연산속도가 저하되는 단점이 있다. 따라서 W의 비트 수가 증가할 때 연산속도를 유지하기 위해서는 메인 클럭의 주파수 증가가 필요한데 이는 동적 전력 소모를 증가시킨다. 한편 연산에서 필요한 자릿수 보상을 디지털 영역 대신 아날로그 영역에서 보상할 수도 있다. 한 예로 수학식 4와 같이 단위 전류 IU을 자릿수 가중치에 따라 증가시킬 수 있지만, 여전히 W의 한 비트마다 연산을 위해 같은 시간이 필요하면서 추가적인 전류원들이 있어야 하므로 면적을 상당히 증가시켜 효과적이지 않다.Equation 3 is the final calculation result of compensating the digit weight in the digital domain when W is M bits in 2's complement form, that is, W[M-1:0], and is the unit current I U of the digital-to-analog converter. Digit weight compensation in the digital domain can be easily implemented using shift registers and negative number conversion, but the final result can be obtained after repeating the operation M times. Therefore, when the frequency of the main clock is constant, the larger the bit of W, the larger the number is. It has the disadvantage of slowing down the computation speed. Therefore, in order to maintain the operation speed when the number of bits of W increases, the frequency of the main clock must be increased, which increases dynamic power consumption. Meanwhile, compensation for the number of digits required in calculations can be made in the analog domain instead of the digital domain. As an example, the unit current I U can be increased according to the digit weight as shown in Equation 4, but it still requires the same time for calculation for each bit of W and additional current sources must be present, which significantly increases the area and is not effective.

[수학식 4][Equation 4]

아날로그 영역에서 자릿수 보상의 다른 예로 수학식 5와 같이 자릿수 가중치를 시간 영역에서 최대 펄스 폭 변조 시간을 변경하여 보상할 수도 있다.As another example of digit compensation in the analog domain, the digit weight can be compensated by changing the maximum pulse width modulation time in the time domain, as shown in Equation 5.

[수학식 5][Equation 5]

이때, W[M-1]의 연산시간을 수학식 3에서와 동일하게 하기 위해 아래 수학식 6과 같이 최대 펄스 폭 변조 시간을 절반씩 줄이는 방식으로도 보상할 수 있다. At this time, in order to make the calculation time of W[M-1] the same as in Equation 3, compensation can be made by reducing the maximum pulse width modulation time by half as shown in Equation 6 below.

[수학식 6][Equation 6]

따라서, 본 발명은 메인 클럭의 주파수 증가나 가중치를 갖는 추가적인 전류원의 사용 대신 다중 위상 클럭 신호를 활용하여 시간 영역에서 자릿수 가중치를 보상한다. 또한, 본 발명은 병렬 동작을 위해 디지털 값 X를 시간 영역으로 변환하는데 필요한 N개의 펄스 폭 변조 회로의 전력 소모를 줄이기 위해 전역 신호 생성 회로를 사용하여 펄스 폭 변조 블록의 구현을 단순화한다. 구현 예로 펄스 폭 변조 회로는 멀티플렉서로 구현가능하다.Therefore, the present invention compensates for digit weighting in the time domain by utilizing a multi-phase clock signal instead of increasing the frequency of the main clock or using an additional current source with weighting. Additionally, the present invention simplifies the implementation of the pulse width modulation block by using a global signal generation circuit to reduce the power consumption of the N pulse width modulation circuits required to convert digital values X to the time domain for parallel operation. As an example of implementation, a pulse width modulation circuit can be implemented with a multiplexer.

도 1은 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 장치의 구성도이다.1 is a configuration diagram of a current-type multiplication and accumulation operation device according to an embodiment of the present invention.

도 1을 참고하면, 본 발명에 따른 전류형 곱셈 누적 연산 장치(100)는 부호를 가지지 않는 복수 개의 무부호 다중 비트(X1, X2, …, XN)와 부호를 가지는 복수 개의 부호 다중 비트(W1, W2, …, WN)를 입력받아 아래 수학식 7에서와 같은 곱셈 누적 연산을 수행한 결과값을 출력한다. 여기서 부호 다중 비트(W1, W2, …, WN)는 부호를 가지고 2의 보수로 표현될 수 있다.Referring to FIG. 1, the current-type multiplication and accumulation operation device 100 according to the present invention includes a plurality of unsigned multiple bits ( X 1 , Bits (W 1 , W 2 , …, W N ) are input and the result of performing a multiplication and accumulation operation as shown in Equation 7 below is output. Here, the sign multiple bits (W 1 , W 2 , …, W N ) can be expressed as 2's complement with a sign.

[수학식 7][Equation 7]

이를 위해 본 발명에 따른 전류형 곱셈 누적 연산 장치(100)는 다중 위상 생성부(110), PWM 신호 생성부(120), 복수 개의 펄스폭 변조 회로(130), 복수 개의 멀티플렉서(140), 디지털 아날로그 변환부(150) 및 아날로그 디지털 변환부(160)를 포함할 수 있다.For this purpose, the current-type multiplication and accumulation operation device 100 according to the present invention includes a multi-phase generator 110, a PWM signal generator 120, a plurality of pulse width modulation circuits 130, a plurality of multiplexers 140, and a digital It may include an analog converter 150 and an analog-to-digital converter 160.

다중 위상 생성부(110)는 메인 클럭부(도시하지 않음)로부터 메인 클럭 신호를 입력받아 다중 위상 클럭 신호들을 생성하여 출력할 수 있다.The multi-phase generator 110 may receive a main clock signal from a main clock unit (not shown) and generate and output multi-phase clock signals.

다중 위상 생성부(110)는 메인 클럭 신호를 입력받아 동일한 주파수를 가지고 서로 다른 위상을 가지는 복수 개의 다중 위상 클럭 신호들을 생성할 수 있으며, PLL(Phase Locked Loop)로 구현할 수 있다. 복수 개의 다중 위상 클럭 신호는 순차적으로 일정 크기만큼 위상차가 증가할 수 있다.The multi-phase generator 110 can receive a main clock signal and generate a plurality of multi-phase clock signals with the same frequency and different phases, and can be implemented with a phase locked loop (PLL). The phase difference of a plurality of multi-phase clock signals may sequentially increase by a certain amount.

복수 개의 무부호 다중 비트(X1, X2, …, XN)에 대해서 복수 개의 부호 다중 비트(W1, W2, …, WN)의 MSB부터 LSB까지 한 비트씩 순차적으로 곱셈 누적 연산을 수행할 때, 시간 영역에서 부호 다중 비트(W1, W2, …, WN)의 자릿수 가중치 보상이 필요하다. For a plurality of unsigned multi - bits (X 1 , When performing , digit weight compensation of the sign multiple bits (W 1 , W 2 , …, W N ) in the time domain is required.

무부호 다중 비트(X1, X2, …, XN)의 비트폭을 8 bit, 부호 다중 비트(W1, W2, …, WN)의 비트폭을 6 bit로 구현할 때, 최종적으로 다중 비트 곱셈 누적 연산을 위해 무부호 다중 비트(X1, X2, …, XN)에 대해서 부호 다중 비트(W1, W2, …, WN)의 한 비트와의 곱셈 누적 연산이 6번 수행되어야 한다. 이때, 무부호 다중 비트(X1, X2, …, XN)에 대응하는 펄스폭 변조 회로(130)에서 출력되는 펄스폭 신호의 출력 폭을 절반씩 줄이는 형태로 자릿수 가중치를 보상하게 된다. When implementing the bit width of unsigned multiple bits ( X 1 , For the multi-bit multiplication and accumulation operation , the multiplication and accumulation operation with one bit of the signed multi-bit (W 1, W 2, ..., W N ) for the unsigned multi-bit ( X 1, It must be performed once. At this time, the digit weight is compensated by reducing the output width of the pulse width signal output from the pulse width modulation circuit 130 corresponding to the unsigned multiple bits (X 1 , X 2 , ..., X N ) by half.

도 2 및 도 3은 본 발명의 일 실시예에 따른 자릿수 가중치 보상에 대한 설명을 위해 제공되는 도면이다.Figures 2 and 3 are diagrams provided to explain digit weight compensation according to an embodiment of the present invention.

도 2에서는 무부호 다중 비트(X[7:0])가 14510의 값을 가질 때 부호 다중 비트(W)의 비트마다 자리수 가중치를 보상한 펄스폭을 보여준다. W[5]부터 W[0]까지 1자리수 낮아질 때마다 무부호 다중 비트(X[7:0])에 대응하는 펄스폭이 1/2씩 감소하는 것을 나타낸 것이다. 도 3을 참고하면, 메인 클럭으로 생성 가능한 주기가 integer의 LSB에 해당할 때, W[4]에서부터 fractional bit이 생기게 된다. 이를 메인 클럭의 주파수 증가없이 구현하기 위해 다중 위상 생성부(110)를 사용할 수 있다.Figure 2 shows the pulse width compensated for the digit weight for each bit of the signed multiple bit (W) when the unsigned multiple bit (X[7:0]) has a value of 145 10 . This shows that the pulse width corresponding to the unsigned multiple bits (X[7:0]) decreases by 1/2 every time the number decreases by one digit from W[5] to W[0]. Referring to Figure 3, when the cycle that can be generated by the main clock corresponds to the LSB of an integer, a fractional bit is generated from W[4]. To implement this without increasing the frequency of the main clock, the multi-phase generator 110 can be used.

부호 다중 비트(W1, W2, …, WN)의 비트폭이 M이라고 가정하면, 다중 위상 생성부(110)는 2M-1 개의 서로 다른 위성을 가지는 다중 위상 클럭 신호를 생성하여 출력할 수 있다. 다만 다중 위상 생성부(110)의 부하를 줄이고, 회로 구성을 간단하게 하기 위해서 연산의 정확도를 희생하여 부호 다중 비트(W1, W2, …, WN)의 마지막 W[0]에서 필요한 위상은 양자화될 수 있다. 2M-2 개의 서로 다른 위성을 가지는 다중 위상 클럭 신호를 생성하여 출력하도록 구현하는 것도 가능하다. 즉 부호 다중 비트(W1, W2, …, WN)의 비트폭이 6 bit라고 가정하면, 32개의 다중 위상 클럭 신호를 생성하여 출력하거나, 상대적으로 중요도가 떨어지는 마지막 W[0]에서 필요한 위상은 양자화함으로써 16개의 위상으로 구현할 수도 있다.Assuming that the bit width of the sign multi-bit (W 1 , W 2 , ..., W N ) is M, the multi-phase generator 110 generates and outputs a multi-phase clock signal having 2 M-1 different satellites. can do. However, in order to reduce the load on the multi-phase generator 110 and simplify the circuit configuration, the required phase at the last W[0] of the sign multi-bit (W 1 , W 2 , ..., W N ) is sacrificed at the expense of the accuracy of the operation. can be quantized. It is also possible to generate and output a multi-phase clock signal with 2 M-2 different satellites. That is, assuming that the bit width of the sign multi-bit (W 1 , W 2 , …, W N ) is 6 bits, 32 multi-phase clock signals can be generated and output, or the necessary signal can be generated in the last W[0], which is relatively less important. The phases can also be implemented as 16 phases by quantizing them.

다시 도 1을 참고하면, PWM 신호 생성부(120)는 다중 위상 생성부(110)에서 생성되어 출력되는 다중 위상 클럭 신호들을 이용하여, 상승 에지가 미리 정해진 지연 시간만큼 순차적으로 지연되고 펄스폭이 미리 정해진 크기만큼 순차적으로 감소하는 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하여 출력할 수 있다.Referring again to FIG. 1, the PWM signal generator 120 uses multi-phase clock signals generated and output from the multi-phase generator 110, and the rising edge is sequentially delayed by a predetermined delay time and the pulse width is Multiple PWM signals with different waveforms that sequentially decrease by a predetermined size can be generated and output.

PWM 신호 생성부(120)에서 출력되는 PWM 신호의 개수는 처리하려는 무부호 다중 비트(X)의 비트폭에 따라 정해질 수 있다. 무부호 다중 비트(X)의 비트폭이 L일 때, 2L/2개의 PWM 신호가 필요하다. 2L/2 이 N이라고 가정하면, N개의 PWM 신호(PWM[N-1], PWM[N-2], …, PWM[N-i], …, PWM[0])가 필요하다. PWM[N-i]의 펄스폭이 (N-i)*(N+1)*TREF 이고, PWM[N-i]는 PWM[N-(i-1)]보다 N*TREF 만큼 상승 에지가 지연되는 파형을 가질 수 있다. 여기서 i(i = 1, 2, …, N)는 복수 개의 PWM 신호의 인덱스이다. 예를 들어, 무부호 다중 비트(X)의 비트폭 8bit일 16개의 PWM 신호, 도 4에 예시한 것과 같은 PWM[15:0]의 파형이 필요하다.The number of PWM signals output from the PWM signal generator 120 may be determined according to the bit width of the unsigned multiple bits (X) to be processed. When the bit width of unsigned multiple bits (X) is L, 2 L/2 PWM signals are required. 2 Assuming L/2 is N, N PWM signals (PWM[N-1], PWM[N-2], …, PWM[Ni], …, PWM[0]) are required. The pulse width of PWM[Ni] is (Ni)*(N+1)*T REF , and PWM[Ni] has a waveform whose rising edge is delayed by N*T REF compared to PWM[N-(i-1)]. You can have it. Here, i (i = 1, 2, ..., N) is the index of a plurality of PWM signals. For example, 16 PWM signals with a bit width of 8 bits of unsigned multiple bits (X), and a waveform of PWM[15:0] as shown in FIG. 4 are required.

도 4는 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 장치에서 사용되는 신호 파형을 예시한 도면이다.Figure 4 is a diagram illustrating a signal waveform used in a current-type multiplication and accumulation operation device according to an embodiment of the present invention.

특히 도 4에서는 무부호 다중 비트가 X[7:0]으로 비트폭이 8인 경우에 사용되는 신호 파형을 나타낸 것이다.In particular, Figure 4 shows the signal waveform used when the unsigned multiple bits are X[7:0] and the bit width is 8.

도 4를 참조하면, 1번째 PWM[15]는 15*(16+1)*TREF의 펄스폭을 가진다. 그리고 2번째 PWM[14]는 PWM[15]보다 미리 정해진 지연 시간(16*TREF)만큼 상승 에지가 지연되고, 펄스폭은 미리 정해진 크기(TREF)만큼 감소한다. 순차적으로 PWM[13] 역시 PWM[14]보다 미리 정해진 지연 시간(16*TREF)만큼 상승 에지가 지연되고, 펄스폭은 미리 정해진 크기(TREF)만큼 감소한다.Referring to FIG. 4, the first PWM[15] has a pulse width of 15*(16+1)*T REF . And the rising edge of the second PWM[14] is delayed by a predetermined delay time (16*T REF ) compared to PWM[15], and the pulse width is reduced by a predetermined amount (T REF ). Sequentially, the rising edge of PWM[13] is also delayed by a predetermined delay time (16*T REF ) compared to PWM[14], and the pulse width is reduced by a predetermined amount (T REF ).

TREF는 메인 클럭 신호의 클럭 주기로 초기값이 설정된 후 N개의 멀티플렉서(140)에서 출력되는 부호 다중 비트의 자리수가 하나씩 낮아짐에 따라 1/2씩 감소한다.T REF is initially set to the clock cycle of the main clock signal, and then decreases by 1/2 as the number of digits of the sign multiple bits output from the N multiplexers 140 decreases one by one.

보다 자세하게는 뒤에서 설명하지만, 무부호 다중 비트(X1, X2, …, XN)와 부호 다중 비트(W1, W2, …, WN)의 한 비트의 병렬 곱셈 연산이 W[M-1]부터 W[0]까지 M번 수행되는데, TREF는 자릿수 가중치를 시간 영역에서 보상하기 위해서 순차적으로 TREF 값이 절반씩 줄어들게 구현할 수 있다. 이를 메인 클럭 신호의 주파수의 증가 없이 저전력으로 구현하기 위해 앞서 설명한 것과 같이 다중 위상 생성부(110)를 통해 구현할 수 있다.As will be explained in more detail later , the one-bit parallel multiplication operation of unsigned multi-bits ( X 1 , It is performed M times from -1 ] to W[0], and T REF values are changed sequentially to compensate for the digit weight in the time domain. It can be implemented by reducing it by half. In order to implement this at low power without increasing the frequency of the main clock signal, it can be implemented through the multi-phase generator 110 as described above.

다시 도 1을 참고하면, 복수 개의 펄스폭 변조 회로(130)는 무부호 다중 비트(X1, X2, …, XN)를 하나씩 나누어 입력받고, PWM 신호 생성부(120)에서 출력되는 복수 개의 PWM 신호(PWM[N-1], PWM[N-2], …, PWM[N-i], …, PWM[0])(PWM[N-1:0])를 이용하여, 자신에 입력된 무부호 다중 비트(X1, X2, …, XN)의 값에 비례하는 펄스폭을 가지는 펄스폭 신호를 생성하여 각각 출력할 수 있다.Referring again to FIG. 1, the plurality of pulse width modulation circuits 130 receive unsigned multiple bits (X 1 , Using the PWM signals (PWM[N-1], PWM[N-2], …, PWM[Ni], …, PWM[0]) (PWM[N-1:0]), Pulse width signals with pulse widths proportional to the values of unsigned multiple bits (X 1 , X 2 , …, X N ) can be generated and output respectively.

도 5는 본 발명의 일 실시예에 따른 펄스폭 변조 회로에서 펄스폭 신호를 생성하는 동작과 관련된 구성 요소를 나타낸 것이다.Figure 5 shows components related to the operation of generating a pulse width signal in a pulse width modulation circuit according to an embodiment of the present invention.

도 5를 참고하면, 각 펄스폭 변조 회로(130)는 도 5에 예시한 것과 같이 제1 멀티플렉서(131)와 제2 멀티플렉서(132)를 각각 포함할 수 있다.Referring to FIG. 5, each pulse width modulation circuit 130 may include a first multiplexer 131 and a second multiplexer 132, respectively, as illustrated in FIG. 5.

PWM 신호 생성부(120)는 복수 개의 PWM 신호(PWM[N-1:0])에 추가하여 MSB_EN 신호를 생성하여 출력할 수 있다.The PWM signal generator 120 may generate and output an MSB_EN signal in addition to the plurality of PWM signals (PWM[N-1:0]).

제1 멀티플렉서(131)는 복수 개의 PWM 신호(도 5에서는 PWM[15:0])를 입력받고, 제2 멀티플렉서(132)로부터 출력되는 선택 신호(Sel.)에 따라 해당하는 PWM 신호를 출력하도록 구현될 수 있다.The first multiplexer 131 receives a plurality of PWM signals (PWM[15:0] in FIG. 5) and outputs the corresponding PWM signal according to the selection signal (Sel.) output from the second multiplexer 132. It can be implemented.

제2 멀티플렉서(132)는 복수 개의 무부호 다중 비트(X1, X2, …, XN) 중 자신에 해당하는 무부호 다중 비트를 입력받고, MSB_EN 신호에 따라 무부호 다중 비트의 상위 비트 또는 하위 비트를 선택 신호(Sel.)로써 출력하도록 구현할 수 있다. The second multiplexer 132 receives an unsigned multiple bit corresponding to itself among a plurality of unsigned multiple bits (X 1 , It can be implemented to output the lower bit as a selection signal (Sel.).

도 5에서는 제1 멀티플렉서(131)를 16:1 멀티플렉서로 구현하고, 제2 멀티플렉서(132)를 2:1 멀티플렉서로 구현한 예를 나타내고 있다.Figure 5 shows an example in which the first multiplexer 131 is implemented as a 16:1 multiplexer, and the second multiplexer 132 is implemented as a 2:1 multiplexer.

제2 멀티플렉서(132)가 무부호 다중 비트(X)로 '110100012'을 입력받은 경우, MSB_EN이 1일 때 입력의 상위 4bit(1101)을 출력하고 MSB_EN이 0일 때 하위 4bit(0001)을 출력하게 된다. 그러면 제1 멀티플렉서(131)는 선택 신호(Sel.)로써 상위 4bit(1101)가 입력되면 PWM[13]을 선택하여 출력한다. 그리고 제1 멀티플렉서(131)는 선택 신호(Sel.)로써 하위 4bit(0001)가 입력되면 PWM[1]을 선택하여 출력한다. 이 경우 펄스폭 변조 회로(130)는 무부호 다중 비트(X)의 값 '110100012'에 비례하는 X[7:0]*TREF의 펄스폭을 가지는 펄스폭 신호를 출력하게 된다.When the second multiplexer 132 receives '11010001 2 ' as an unsigned multiple bit (X), it outputs the upper 4 bits ( 1101 ) of the input when MSB_EN is 1 and outputs the lower 4 bits ( 0001 ) when MSB_EN is 0. It will be printed. Then, when the upper 4 bits ( 1101 ) are input as the selection signal (Sel.), the first multiplexer 131 selects and outputs PWM[13]. And when the lower 4 bits ( 0001 ) are input as the selection signal (Sel.), the first multiplexer 131 selects and outputs PWM[1]. In this case, the pulse width modulation circuit 130 outputs a pulse width signal having a pulse width of

다시 도 1을 참고하면, 복수의 멀티플렉서(140)는 부호 다중 비트(W1, W2, …, WN)를 병렬로 하나씩 입력받고, 자신에 입력된 부호 다중 비트(W1, W2, …, WN)의 최상위 자리수 비트부터 최하위 자리수 비트까지 한 비트씩 순차적으로 병렬로 출력할 수 있다.Referring again to FIG. 1, the plurality of multiplexers 140 receive the sign multiple bits (W 1 , W 2 , …, W N ) in parallel one by one, and receive the sign multiple bits (W 1 , W 2 , W N ) input to them. …, W N ) can be output in parallel, one bit at a time, from the most significant bit to the least significant bit.

디지털 아날로그 변환부(150)는 복수 개의 펄스폭 변조 회로(130)에서 병렬로 출력되는 복수 개의 펄스폭 신호와 복수 개의 멀티플렉서(140)에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력할 수 있다.The digital-to-analog converter 150 corresponds to the results of the parallel multiplication and accumulation operation for the plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits 130 and the bits output in parallel from the plurality of multiplexers 140. Current can be output.

디지털 아날로그 변환부(150)는 복수 개의 논리 게이트(151), 복수 개의 단위 전류원(IU) 및 복수 개의 스위칭 소자(152)를 구비할 수 있다.The digital-to-analog converter 150 may include a plurality of logic gates 151, a plurality of unit current sources (I U ), and a plurality of switching elements 152.

복수 개의 논리 게이트(151)는 복수 개의 펄스폭 변조 회로(130)에서 병렬로 출력되는 복수의 펄스폭 신호와 복수 개의 멀티플렉서(140)에서 병렬로 출력되는 비트를 한 쌍씩 입력받아 논리곱 연산하여 출력할 수 있다. 복수 개의 논리 게이트(151)는 NAND 게이트로 구현할 수 있으며, 실시예에 따라서 AND 게이트로 구현할 수도 있다.The plurality of logic gates 151 receive pairwise input of a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits 130 and bits output in parallel from the plurality of multiplexers 140, and perform an logical multiplication operation to output the output. can do. The plurality of logic gates 151 may be implemented as NAND gates or, depending on the embodiment, as AND gates.

복수 개의 논리 게이트(151)의 출력 신호는 각각 대응하는 복수 개의 스위칭 소자(152)의 게이트 단자에 입력될 수 있다.The output signals of the plurality of logic gates 151 may be input to the gate terminals of the corresponding switching elements 152 .

복수 개의 단위 전류원(IU)은 복수 개의 논리 게이트(151)에 각각 대응하여 구비될 수 있다.A plurality of unit current sources (I U ) may be provided to respectively correspond to the plurality of logic gates 151 .

복수 개의 스위칭 소자(152)는 스위치용 트랜지스터로 구현될 수 있으며, 복수 개의 논리 게이트(151) 중 대응하는 논리 게이트의 출력값이 게이트 단자에 입력되면 'ON'되어, 복수 개의 단위 전류원(Iu) 중 대응하는 단위 전류원에서 출력되는 전류를 충전 커패시터(Cp)로 출력시켜 전하를 누적 충전시킬 수 있다.The plurality of switching elements 152 may be implemented as switch transistors, and are turned 'ON' when the output value of the corresponding logic gate among the plurality of logic gates 151 is input to the gate terminal, and is converted to one of the plurality of unit current sources Iu. The current output from the corresponding unit current source can be output to the charging capacitor (Cp) to accumulate charge.

아날로그 디지털 변환부(160)는 디지털 아날로그 변환부(150)에서 출력되는 전류에 대응하는 디지털 값을 순차적으로 구하고, 복수 개의 멀티플렉서 멀티플렉서(140)에서 출력되는 비트의 부호 비트 여부에 따라 가감산하여 누적한 결과값을 출력할 수 있다.The analog-to-digital converter 160 sequentially obtains digital values corresponding to the current output from the digital-to-analog converter 150, adds and subtracts them depending on whether the bits output from the plurality of multiplexers 140 are sign bits, and accumulates them. One result can be output.

보다 자세하게는 아날로그 디지털 변환부(160)는 디지털 아날로그 변환부(150)에서 출력되는 전류에 의해 충전 커패시터(Cp)에 누적 충전된 충전 전압에 따라 생성되는 펄스의 개수를 카운트하여 디지털 아날로그 변환부(150)에서 출력되는 전류에 대응하는 디지털 값을 구할 수 있다.More specifically, the analog-to-digital converter 160 counts the number of pulses generated according to the charging voltage accumulated in the charging capacitor (Cp) by the current output from the digital-to-analog converter 150 and generates a digital-to-analog converter ( 150), the digital value corresponding to the output current can be obtained.

아날로그 디지털 변환부(160)는 충전 커패시터(Cp)의 충전 전압에 따라 펄스를 생성하는 펄스 생성부(161)와 펄스 생성부(161)에서 출력되는 펄스 개수를 카운트한 결과에 대응하는 디지털 값을 구하여 부호 다중 비트의 최상위 자리수 비트에 대응하여 출력되는 디지털 값은 감산 처리하고, 부호 다중 비트의 나머지 자리수 비트에 대응하여 출력되는 디지털 값은 가산 처리하는 업다운 카운터(162)로 이루어질 수 있다.The analog-to-digital converter 160 generates a pulse according to the charging voltage of the charging capacitor Cp and a digital value corresponding to the result of counting the number of pulses output from the pulse generator 161. The digital value output corresponding to the most significant bit of the sign multi-bit is subtracted, and the digital value output corresponding to the remaining bit of the sign multi-bit is added.

펄스 생성부(161)는 충전 커패시터(Cp)에 충전된 전압을 기준전압과 비교하여 그에 따른 펄스를 생성하여 출력하는 비교기(161A) 및 비교기(161A)에서 '하이'가 출력될 때마다 충전 커패시터(Cp)에 충전된 전압을 리셋시키는 트랜지스터(162B)를 포함할 수 있다.The pulse generator 161 compares the voltage charged in the charging capacitor Cp with the reference voltage and generates and outputs a pulse according to the comparator 161A. Whenever 'high' is output from the comparator 161A, the charging capacitor It may include a transistor 162B that resets the voltage charged at (Cp).

펄스 생성부(161)의 비교기(161A)는 외부의 기준전압을 사용하지 않고 직렬 연결된 복수 개(짝수 개)의 인버터로 구성된 버퍼단으로 구현할 수 있다. 여기서, 첫 번째 인버터의 로직 문턱전압(logic threshold voltage)이 기준전압으로 사용된다. 따라서, 초기 상태에서는 충전 커패시터(Cp)의 충전 전압이 접지 전압(GND)의 레벨이므로 상기 버퍼단의 출력은 '로우'가 되고, 이에 의해 트랜지스터(162B)는 오프 상태로 유지된다. 이후, 디지털 아날로그 변환부(150)에서 병렬 곱셈 누적 연산 결과에 대응하여 출력되는 전류에 의해 충전 커패시터(Cp)의 충전 전압이 기준전압보다 높을 때 상기 버퍼단의 출력은 '하이'가 되고, 이에 의해 트랜지스터(162B)가 턴온되어 충전 커패시터(Cp)의 충전전압이 리셋된다. 이와 같은 과정을 통해 비교기(161A)로부터 하나의 펄스가 발생된다. 비교기(161A)의 비교 동작 및 트랜지스터(162B)에 의한 충전 커패시터(Cp)의 충전전압 리셋 동작은 디지털 아날로그 변환부(150)에서 병렬 곱셈 누적 연산 결과에 대응하여 출력되는 전류에 의한 충전 커패시터(Cp)의 충전 전압이 소모될 때까지 반복적으로 수행된다. 따라서, 펄스 생성부(161)를 통해 생성되는 총 펄스의 수는 무부호 다중 비트(X)와 부호 다중 비트(W)의 한 비트의 병렬 곱셈 누적 연산의 결과에 비례한다.The comparator 161A of the pulse generator 161 can be implemented as a buffer stage composed of a plurality (even number) of inverters connected in series without using an external reference voltage. Here, the logic threshold voltage of the first inverter is used as the reference voltage. Therefore, in the initial state, since the charging voltage of the charging capacitor Cp is at the level of the ground voltage GND, the output of the buffer stage becomes 'low', and thus the transistor 162B is maintained in the off state. Thereafter, when the charging voltage of the charging capacitor (Cp) is higher than the reference voltage due to the current output in response to the parallel multiplication and accumulation operation result in the digital-to-analog converter 150, the output of the buffer stage becomes 'high', thereby The transistor 162B is turned on and the charging voltage of the charging capacitor Cp is reset. Through this process, one pulse is generated from the comparator 161A. The comparison operation of the comparator 161A and the charging voltage reset operation of the charging capacitor Cp by the transistor 162B are performed by the charging capacitor Cp by the current output from the digital-to-analog converter 150 in response to the parallel multiplication and accumulation operation result. ) is performed repeatedly until the charging voltage is consumed. Therefore, the total number of pulses generated through the pulse generator 161 is proportional to the result of the parallel multiplication and accumulation operation of one bit of the unsigned multi-bit (X) and the signed multi-bit (W).

한편 앞서 설명한 것과 같이 부호 다중 비트(W)의 자리수 가중치가 반영되어 각 펄스폭 변조 회로(130)에서 출력되는 신호의 펄스폭이 조정되므로, 아날로그 디지털 변환부(160)에서 순차적으로 구해지는 디지털 값을 합산하면 무부호 다중 비트(X)와 부호 다중 비트(W)의 전체 비트에 대한 병렬 곱셈 누적 연산 결과가 구해질 수 있다. 다만 무부호 다중 비트(X)의 MSB는 부호 비트이므로 부호를 고려하여 감산해주어야 한다.Meanwhile, as described above, the pulse width of the signal output from each pulse width modulation circuit 130 is adjusted by reflecting the digit weight of the sign multiple bits (W), so that the digital value sequentially obtained from the analog-to-digital converter 160 By summing, the parallel multiplication and accumulation operation result for all bits of the unsigned multi-bit (X) and the signed multi-bit (W) can be obtained. However, the MSB of the unsigned multiple bit (X) is a sign bit, so it must be subtracted taking the sign into consideration.

업다운 카운터(162)는 순차적으로 구해지는 디지털 값을 복수 개의 멀티플렉서(140)에서 출력되는 비트의 부호 비트 여부를 고려하여 가산 또는 감산하여 누적한 결과를 출력할 수 있다.The up-down counter 162 may add or subtract sequentially obtained digital values by considering whether the bits output from the plurality of multiplexers 140 are sign bits and output an accumulated result.

업다운 카운터(162)는 부호 다중 비트(W1, W2, …, WN)의 최상위 자리수 비트에 대응하여 출력되는 펄스 개수에 해당하는 디지털 값은 감산하고, 부호 다중 비트(W1, W2, …, WN)의 나머지 자리수 비트에 대응하여 출력되는 펄스 개수에 해당하는 디지털 값은 가산하여 최종 결과값을 출력할 수 있다. 이와 같이 동작하는 이유는 2의 보수로 표현되는 부호 다중 비트(W1, W2, …, WN)의 최상위 자리수 비트는 마이너스 값에 해당하고, 나머지 자리수 비트에 대응하는 비트는 플러스 값에 해당하므로 부호를 고려하기 위한 것이다. The up-down counter 162 subtracts the digital value corresponding to the number of pulses output in response to the most significant bit of the sign multiple bits (W 1 , W 2 , ..., W N ) , and , …, W N ), the digital value corresponding to the number of pulses output in response to the remaining bits can be added to output the final result. The reason it operates like this is that the most significant bits of the sign multiple bits (W 1 , W 2 , …, W N ) expressed in 2's complement correspond to negative values, and the bits corresponding to the remaining digits correspond to positive values. Therefore, this is to take the sign into account.

도 6은 본 발명의 일 실시예에 따른 전류형 곱셈 누적 연산 방법의 흐름도이다.Figure 6 is a flowchart of a current-type multiplication accumulation operation method according to an embodiment of the present invention.

도 1 및 도 6을 참고하면, 먼저 다중 위상 생성부(110)가 메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성할 수 있다(S610).Referring to Figures 1 and 6, first, the multi-phase generator 110 may generate a plurality of multi-phase clock signals using the main clock signal (S610).

다음으로 PWM 신호 생성부(120)가 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성할 수 있다(S620).Next, the PWM signal generator 120 may generate a plurality of PWM signals having different waveforms using a plurality of multi-phase clock signals (S620).

이후 복수 개의 펄스폭 변조 회로(130)가 무부호 다중 비트를 각각 입력받고, 복수 개의 PWM 신호를 이용하여 자신에 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력할 수 있다(S630).Thereafter, the plurality of pulse width modulation circuits 130 each receive unsigned multiple bits, and each generate a pulse width signal having a pulse width corresponding to the value of the unsigned multiple bits input to the plurality of PWM signals. It can be output in parallel (S630).

한편 복수 개의 멀티플렉서(140)가 부호 다중 비트를 각각 입력받고, 자신에 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력할 수 있다(S640).Meanwhile, the plurality of multiplexers 140 can each receive a sign multi-bit and select one bit from the sign multi-bit input to the multiplexers 140 to output the signal in parallel (S640).

단계(S630)와 단계(S640)는 동시에 실행될 수 있다.Steps S630 and S640 may be executed simultaneously.

이후 디지털 아날로그 변환부(150)가 복수 개의 펄스폭 변조 회로(130)에서 병렬로 출력되는 복수 개의 펄스폭 신호와 복수 개의 멀티플렉서(140)에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력할 수 있다(S650).Thereafter, the digital-to-analog converter 150 corresponds to the results of the parallel multiplication and accumulation operation for the plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits 130 and the bits output in parallel from the plurality of multiplexers 140. The current can be output (S650).

다음으로 아날로그 디지털 변환부(160)가 디지털 아날로그 변환부(150)에서 출력되는 전류에 대응하는 디지털 값을 출력할 수 있다(S660).Next, the analog-to-digital converter 160 may output a digital value corresponding to the current output from the digital-to-analog converter 150 (S660).

이후 아날로그 디지털 변환부(160)는 단계(S660)에서 구해지는 디지털 값을 복수 개의 멀티플렉서(140)에서 출력되는 비트의 부호 비트 여부를 고려하여 가산 또는 감산할 수 있다(S670).Thereafter, the analog-to-digital converter 160 may add or subtract the digital value obtained in step S660 by considering whether the bit output from the plurality of multiplexers 140 is a sign bit (S670).

복수 개의 멀티플렉서(140)에서 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다 복수 개의 PWM 신호의 펄스폭과 미리 정해진 지연 시간을 1/2씩 감소시키면서 단계(S610) 내지 단계(S670)를 반복함으로써 최종적으로 무부호 다중 비트와 부호 다중 비트의 최종 병렬 곱셈 누적 연산 결과를 구할 수 있다.Each time the plurality of multiplexers 140 sequentially output the signal multiple bits from the most significant bit to the least significant bit, the pulse width and predetermined delay time of the plurality of PWM signals are reduced by 1/2, from step S610 to step S610. By repeating (S670), the final parallel multiplication and accumulation operation result of the unsigned multi-bit and the signed multi-bit can be obtained.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, and a field programmable gate (FPGA). It may be implemented using one or more general-purpose or special-purpose computers, such as an array, programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that run on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. It can be embodied permanently or temporarily. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with limited drawings as described above, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

Claims (15)

메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성하는 다중 위상 생성부;
상기 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하는 PWM 신호 생성부;
무부호 다중 비트를 각각 입력받고, 상기 복수 개의 PWM 신호를 이용하여 상기 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력하는 복수 개의 펄스폭 변조 회로;
부호 다중 비트를 각각 입력받고, 상기 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력하는 복수 개의 멀티플렉서 - 상기 부호 다중 비트는 부호 비트를 가지고 2의 보수로 표현됨 - ;
상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력하는 디지털 아날로그 변환부; 및
상기 디지털 아날로그 변환부에서 출력되는 전류에 대응하여 순차적으로 구해지는 디지털 값을 상기 복수 개의 멀티플렉서에서 출력되는 비트의 부호 비트 여부에 따라 가감산하여 누적한 결과값을 출력하는 아날로그 디지털 변환부; 를 포함하고,
상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 PWM 신호 생성부는 상기 복수 개의 PWM 신호의 펄스폭을 1/2씩 감소시키는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
a multi-phase generator that generates a plurality of multi-phase clock signals using the main clock signal;
a PWM signal generator that generates a plurality of PWM signals having different waveforms using the plurality of multi-phase clock signals;
A plurality of pulse width modulation circuits that each receive unsigned multiple bits as input, use the plurality of PWM signals to generate pulse width signals each having a pulse width corresponding to the value of the input unsigned multiple bits, and output them in parallel. ;
A plurality of multiplexers that each receive a sign multi-bit input, select one bit from the input sign multi-bits, and output it in parallel - the sign multi-bit has a sign bit and is expressed in 2's complement -;
a digital-to-analog converter that outputs a current corresponding to a parallel multiplication and accumulation operation result for the plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and the bits output in parallel from the plurality of multiplexers; and
an analog-to-digital converter that adds or subtracts digital values sequentially obtained in response to the current output from the digital-to-analog converter according to whether the bits output from the plurality of multiplexers are sign bits and outputs an accumulated result value; Including,
Each time the plurality of multiplexers output sequentially from the most significant bit to the least significant bit of the sign multiple bits, the PWM signal generator uses a multi-phase clock that reduces the pulse width of the plurality of PWM signals by 1/2. Current-type multiplication and accumulation operation device.
제 1 항에서,
상기 복수 개의 PWM 신호는 상승 에지가 미리 정해진 지연 시간만큼 순차적으로 지연되고 펄스폭이 미리 정해진 크기만큼 순차적으로 감소하는 서로 다른 파형을 가지고,
상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 PWM 신호 생성부는 상기 복수 개의 PWM 신호의 펄스폭과 상기 미리 정해진 지연 시간이 1/2씩 감소시키는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 1,
The plurality of PWM signals have different waveforms in which the rising edge is sequentially delayed by a predetermined delay time and the pulse width is sequentially decreased by a predetermined amount,
Each time the plurality of multiplexers output sequentially from the most significant bit to the least significant bit of the sign multiple bits, the PWM signal generator reduces the pulse width of the plurality of PWM signals and the predetermined delay time by 1/2. Shiki is a current-type multiplication and accumulation arithmetic device using a multi-phase clock.
제 2 항에서,
상기 복수 개의 PWM 신호의 개수(N)는 2L/2로 정해지고,
L은 상기 무부호 다중 비트의 비트폭이며,
상기 복수 개의 PWM 신호 중 i번째 PWM 신호인 PWM[N-i]의 펄스폭은 (N-i)*(N+1)*TREF 이고,
PWM[N-i]는 상기 복수 개의 PWM 신호 중 i-1번째 PWM 신호인 PWM[N-(i-1)] 보다 N*TREF 만큼 상승 에지가 지연되는 파형을 가지며,
여기서 i(i = 1, 2, …, N)는 상기 복수 개의 PWM 신호의 인덱스이며,
TREF는 상기 메인 클럭 신호의 클럭 주기로 초기값이 설정된 후 상기 복수 개의 멀티플렉서에서 출력되는 상기 부호 다중 비트의 자리수가 하나씩 낮아짐에 따라 1/2씩 감소하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 2,
The number (N) of the plurality of PWM signals is set to 2 L/2 ,
L is the bit width of the unsigned multiple bits,
The pulse width of PWM[Ni], the ith PWM signal among the plurality of PWM signals, is (Ni)*(N+1)*T REF ,
PWM[Ni] has a waveform whose rising edge is delayed by N*T REF compared to PWM[N-(i-1)], which is the i-1th PWM signal among the plurality of PWM signals,
Here, i (i = 1, 2, ..., N) is the index of the plurality of PWM signals,
T REF is a current-type multiplication and accumulation operation device using a multi-phase clock that decreases by 1/2 as the number of digits of the sign multi-bit output from the plurality of multiplexers is lowered by one after the initial value is set to the clock cycle of the main clock signal. .
제 3 항에서,
상기 복수의 다중 위상 클럭 신호는 주파수는 같고 위상이 서로 다른 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 3,
A current-type multiplication and accumulation operation device using multi-phase clocks where the plurality of multi-phase clock signals have the same frequency and different phases.
제 3 항에서,
상기 디지털 아날로그 변환부는,
상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트를 한 쌍씩 입력받아 논리곱 연산하여 출력하는 복수 개의 논리 게이트,
상기 복수 개의 논리 게이트에 각각 대응하는 복수 개의 단위 전류원, 및
상기 복수 개의 논리 게이트 중 대응하는 논리 게이트의 출력값에 따라 상기 복수 개의 단위 전류원 중 대응하는 단위 전류원에서 출력되는 전류를 출력시키는 복수 개의 스위칭 소자
를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 3,
The digital-to-analog converter,
A plurality of logic gates that receive pairwise inputs of a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and bits output in parallel from the plurality of multiplexers and output an logical product operation,
a plurality of unit current sources respectively corresponding to the plurality of logic gates, and
A plurality of switching elements for outputting a current output from a corresponding unit current source among the plurality of unit current sources according to the output value of the corresponding logic gate among the plurality of logic gates.
A current-type multiplication and accumulation operation device using a multi-phase clock including.
제 5 항에서,
상기 아날로그 디지털 변환부는,
상기 디지털 아날로그 변환부에서 출력되는 전류에 의해 충전 커패시터에 충전된 충전 전압에 따른 펄스를 생성하는 펄스 생성부, 및
상기 펄스 생성부에서 출력되는 펄스 개수를 카운트한 결과에 대응하는 상기 디지털 값을 구하여 상기 부호 다중 비트의 최상위 자리수 비트에 대응하여 출력되는 디지털 값은 감산 처리하고, 상기 부호 다중 비트의 나머지 자리수 비트에 대응하여 출력되는 디지털 값은 가산 처리하는 업다운 카운터
를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 5,
The analog-to-digital converter,
A pulse generator that generates a pulse according to the charging voltage charged in the charging capacitor by the current output from the digital-to-analog converter, and
The digital value corresponding to the result of counting the number of pulses output from the pulse generator is obtained, the digital value output corresponding to the most significant digit bit of the sign multi-bit is subtracted, and the remaining digit bits of the sign multi-bit are calculated. The corresponding output digital value is an up-down counter that adds up.
A current-type multiplication and accumulation operation device using a multi-phase clock including.
제 6 항에서,
상기 펄스 생성부는,
상기 충전 커패시터에 충전된 전압을 기준전압과 비교하여 그에 따른 펄스를 생성하여 출력하는 비교기 및 상기 비교기에서 '하이'가 출력될 때마다 상기 충전 커패시터에 충전된 전압을 리셋시키는 트랜지스터를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 장치.
In paragraph 6:
The pulse generator,
A multi-phase including a comparator that compares the voltage charged in the charging capacitor with a reference voltage to generate and output a pulse accordingly, and a transistor that resets the voltage charged in the charging capacitor whenever 'high' is output from the comparator. A current-type multiplication and accumulation operation device using a clock.
(a) 다중 위상 생성부가 메인 클럭 신호를 이용하여 복수 개의 다중 위상 클럭 신호를 생성하는 단계;
(b) PWM 신호 생성부가 상기 복수 개의 다중 위상 클럭 신호를 이용하여 서로 다른 파형을 가지는 복수 개의 PWM 신호를 생성하는 단계;
(c) 복수 개의 펄스폭 변조 회로가 무부호 다중 비트를 각각 입력받고, 상기 복수 개의 PWM 신호를 이용하여 상기 입력된 무부호 다중 비트의 값에 대응하는 펄스폭을 가지는 펄스폭 신호를 각각 생성하여 병렬로 출력하는 단계;
(d) 복수 개의 멀티플렉서가 부호 다중 비트를 각각 입력받고, 상기 입력된 부호 다중 비트에서 한 비트를 선택하여 병렬로 출력하는 단계 - 상기 부호 다중 비트는 부호 비트를 가지고 2의 보수로 표현됨 - ;
(e) 디지털 아날로그 변환부가 상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트에 대한 병렬 곱셈 누적 연산 결과에 대응하는 전류를 출력하는 단계;
(f) 아날로그 디지털 변환부가 상기 디지털 아날로그 변환부에서 출력되는 전류에 대응하는 디지털 값을 구하는 단계; 및
(g) 상기 아날로그 디지털 변환부가 상기 구해진 디지털 값을 상기 복수 개의 멀티플렉서에서 출력되는 비트의 부호 비트 여부에 따라 가감산하는 단계; 를 포함하고,
상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 복수 개의 PWM 신호의 펄스폭을 1/2씩 감소시키면서 상기 (a) 내지 (g) 단계를 반복하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
(a) a multi-phase generator generating a plurality of multi-phase clock signals using a main clock signal;
(b) a PWM signal generator generating a plurality of PWM signals having different waveforms using the plurality of multi-phase clock signals;
(c) A plurality of pulse width modulation circuits each receive unsigned multiple bits as input, and each generate a pulse width signal having a pulse width corresponding to the value of the input unsigned multiple bits using the plurality of PWM signals. Outputting in parallel;
(d) a plurality of multiplexers each receiving a sign multi-bit, selecting one bit from the input sign multi-bit and outputting it in parallel - the sign multi-bit is expressed as a 2's complement with a sign bit -;
(e) a digital-to-analog converter outputting a current corresponding to a parallel multiplication and accumulation operation result for a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and bits output in parallel from the plurality of multiplexers. ;
(f) an analog-to-digital converter calculating a digital value corresponding to the current output from the digital-to-analog converter; and
(g) the analog-to-digital converter adding or subtracting the obtained digital value depending on whether the bit output from the plurality of multiplexers is a sign bit; Including,
Each time the plurality of multiplexers sequentially output from the most significant bit to the least significant bit of the sign multiple bits, steps (a) to (g) are performed while reducing the pulse width of the plurality of PWM signals by 1/2. A current-type multiplication-accumulation operation method using a repeating multi-phase clock.
제 8 항에서,
상기 복수 개의 PWM 신호는 상승 에지가 미리 정해진 지연 시간만큼 순차적으로 지연되고 펄스폭이 미리 정해진 크기만큼 순차적으로 감소하는 서로 다른 파형을 가지고,
상기 복수 개의 멀티플렉서에서 상기 부호 다중 비트의 최상위 자리수 비트부터 최하위 자리수 비트까지 순차적으로 출력될 때마다, 상기 복수 개의 PWM 신호의 펄스폭과 상기 미리 정해진 지연 시간이 1/2씩 감소시키면서 상기 (a) 내지 (g) 단계를 반복하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 8:
The plurality of PWM signals have different waveforms in which the rising edge is sequentially delayed by a predetermined delay time and the pulse width is sequentially decreased by a predetermined amount,
Each time the plurality of multiplexers sequentially output from the most significant bit to the least significant bit of the sign multiple bits, the pulse width of the plurality of PWM signals and the predetermined delay time are reduced by 1/2, and the (a) Current-type multiplication accumulation operation method using a multi-phase clock that repeats steps through (g).
제 9 항에서,
상기 복수 개의 PWM 신호 중 i번째 PWM 신호의 펄스폭이 (N-i)*(N+1)*TREF 이고, i번째 PWM 신호는 i-1번째 PWM 신호보다 N*TREF 만큼 상승 에지가 지연되는 파형을 가지고,
여기서 i(i = 1, 2, …, N)는 상기 복수 개의 PWM 신호의 인덱스이며,
N은 2L/2이고, L은 상기 부호 다중 비트의 비트폭이며,
TREF는 상기 메인 클럭 신호의 클럭 주기로 초기값이 설정된 후 상기 복수 개의 멀티플렉서에서 출력되는 상기 부호 다중 비트의 자리수가 하나씩 낮아짐에 따라 1/2씩 감소하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 9:
Among the plurality of PWM signals, the pulse width of the ith PWM signal is (Ni)*(N+1)*T REF , and the rising edge of the ith PWM signal is delayed by N*T REF compared to the i-1th PWM signal. With a waveform,
Here, i (i = 1, 2, ..., N) is the index of the plurality of PWM signals,
N is 2 L/2 , L is the bit width of the sign multi-bit,
T REF is a current-type multiplication accumulation calculation method using a multi-phase clock in which the initial value is set to the clock cycle of the main clock signal and then the number of digits of the sign multi-bit output from the plurality of multiplexers decreases by 1/2 as the number decreases by one. .
제 10 항에서,
상기 복수의 다중 위상 클럭 신호는 주파수는 같고 위상이 서로 다른 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 10,
A current-type multiplication and accumulation calculation method using the plurality of multi-phase clock signals having the same frequency and different phases.
제 10 항에서,
상기 디지털 아날로그 변환부는,
상기 복수 개의 펄스폭 변조 회로에서 병렬로 출력되는 복수 개의 펄스폭 신호와 상기 복수 개의 멀티플렉서에서 병렬로 출력되는 비트를 한 쌍씩 입력받아 논리곱 연산하여 출력하는 복수 개의 논리 게이트,
상기 복수 개의 논리 게이트에 각각 대응하는 복수 개의 단위 전류원, 및
상기 복수 개의 논리 게이트 중 대응하는 논리 게이트의 출력값에 따라 상기 복수 개의 단위 전류원 중 대응하는 단위 전류원에서 출력되는 전류를 출력시키는 복수 개의 스위칭 소자
를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 10,
The digital-to-analog converter,
A plurality of logic gates that receive pairwise inputs of a plurality of pulse width signals output in parallel from the plurality of pulse width modulation circuits and bits output in parallel from the plurality of multiplexers and output an logical product operation,
a plurality of unit current sources respectively corresponding to the plurality of logic gates, and
A plurality of switching elements for outputting a current output from a corresponding unit current source among the plurality of unit current sources according to the output value of the corresponding logic gate among the plurality of logic gates.
Current type multiplication accumulation operation method using multi-phase clock including.
제 12 항에서,
상기 아날로그 디지털 변환부는,
상기 디지털 아날로그 변환부에서 출력되는 전류에 의해 충전 커패시터에 충전된 충전 전압에 따른 펄스를 생성하는 펄스 생성부, 및
상기 펄스 생성부에서 출력되는 펄스 개수를 카운트한 결과에 대응하는 상기 디지털 값을 구하여 상기 부호 다중 비트의 최상위 자리수 비트에 대응하여 출력되는 디지털 값은 감산 처리하고, 상기 부호 다중 비트의 나머지 자리수 비트에 대응하여 출력되는 디지털 값은 가산 처리하는 업다운 카운터
를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 12:
The analog-to-digital converter,
A pulse generator that generates a pulse according to the charging voltage charged in the charging capacitor by the current output from the digital-to-analog converter, and
The digital value corresponding to the result of counting the number of pulses output from the pulse generator is obtained, the digital value output corresponding to the most significant digit bit of the sign multi-bit is subtracted, and the remaining digit bits of the sign multi-bit are calculated. The corresponding output digital value is an up-down counter that adds up.
Current type multiplication accumulation operation method using multi-phase clock including.
제 13 항에서,
상기 펄스 생성부는,
상기 충전 커패시터에 충전된 전압을 기준전압과 비교하여 그에 따른 펄스를 생성하여 출력하는 비교기 및 상기 비교기에서 '하이'가 출력될 때마다 상기 충전 커패시터에 충전된 전압을 리셋시키는 트랜지스터를 포함하는 다중 위상 클럭을 사용한 전류형 곱셈 누적 연산 방법.
In paragraph 13:
The pulse generator,
A multi-phase including a comparator that compares the voltage charged in the charging capacitor with a reference voltage to generate and output a pulse accordingly, and a transistor that resets the voltage charged in the charging capacitor whenever 'high' is output from the comparator. Current multiplication and accumulation operation method using clock.
제 8 항 내지 제 14 항 중 어느 한 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium recording a program for executing the method according to any one of claims 8 to 14.
KR1020220044771A 2022-04-11 2022-04-11 Apparatus for current-mode multiply-accumulation using multiphase clock KR102655161B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220044771A KR102655161B1 (en) 2022-04-11 2022-04-11 Apparatus for current-mode multiply-accumulation using multiphase clock

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220044771A KR102655161B1 (en) 2022-04-11 2022-04-11 Apparatus for current-mode multiply-accumulation using multiphase clock

Publications (2)

Publication Number Publication Date
KR20230145845A true KR20230145845A (en) 2023-10-18
KR102655161B1 KR102655161B1 (en) 2024-04-04

Family

ID=88508232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220044771A KR102655161B1 (en) 2022-04-11 2022-04-11 Apparatus for current-mode multiply-accumulation using multiphase clock

Country Status (1)

Country Link
KR (1) KR102655161B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070013881A (en) * 2005-07-27 2007-01-31 삼성전자주식회사 Apparatus and method for detecting tracking error signal using multi phase clock
KR20140079804A (en) * 2011-09-29 2014-06-27 마이크로칩 테크놀로지 인코포레이티드 Variable frequency ratiometric multiphase pulse width modulation generation
KR101827779B1 (en) * 2016-12-05 2018-02-09 포항공과대학교 산학협력단 An apparatus for bit-serial multiply-accumulation with dac and adc

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070013881A (en) * 2005-07-27 2007-01-31 삼성전자주식회사 Apparatus and method for detecting tracking error signal using multi phase clock
KR20140079804A (en) * 2011-09-29 2014-06-27 마이크로칩 테크놀로지 인코포레이티드 Variable frequency ratiometric multiphase pulse width modulation generation
KR101827779B1 (en) * 2016-12-05 2018-02-09 포항공과대학교 산학협력단 An apparatus for bit-serial multiply-accumulation with dac and adc

Also Published As

Publication number Publication date
KR102655161B1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
KR102653822B1 (en) Mixed signal computing system and method
US10977339B2 (en) Systems and methods for mapping matrix calculations to a matrix multiply accelerator
KR101757649B1 (en) Improved pulse width modulation
US11194886B2 (en) Bit-ordered binary-weighted multiplier-accumulator
WO1997048185A1 (en) Delta-sigma pwm dac for reduced switching
KR20180093245A (en) Neuromorphic arithmetic device
US20040222866A1 (en) Digital pulse width modulation
US20230359571A1 (en) System and methods for mixed-signal computing
JP2021530761A (en) Low-precision deep neural network enabled by compensation instructions
KR102655161B1 (en) Apparatus for current-mode multiply-accumulation using multiphase clock
US8866662B1 (en) Sequential analog/digital conversion and multiplication
KR100227203B1 (en) Arithmetic unit
US11764801B2 (en) Computing-in-memory circuit
WO2022269403A1 (en) Successive-approximation analog-to-digital converters
US7486122B1 (en) Digitized method for generating pulse width modulation signals
JP3177636B2 (en) Pulse modulation operation circuit
US8316249B2 (en) Variable scaling for computing elements
JP2001077692A (en) D/a converting circuit
US8489664B2 (en) Single clock cycle first order limited accumulator for supplying weighted corrections
US6707874B2 (en) Multiple-output counters for analog-to-digital and digital-to-analog conversion
US11681776B2 (en) Adaptive settling time control for binary-weighted charge redistribution circuits
RU2527187C1 (en) Analogue-to-digital converter
KR20220143562A (en) Memory device and operation method thereof
SU894692A1 (en) Digital function generator
CN115935874A (en) Random source circuit for random calculation and configuration optimization method thereof

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant