KR100335252B1 - Fast digital filter - Google Patents
Fast digital filter Download PDFInfo
- Publication number
- KR100335252B1 KR100335252B1 KR1020000016364A KR20000016364A KR100335252B1 KR 100335252 B1 KR100335252 B1 KR 100335252B1 KR 1020000016364 A KR1020000016364 A KR 1020000016364A KR 20000016364 A KR20000016364 A KR 20000016364A KR 100335252 B1 KR100335252 B1 KR 100335252B1
- Authority
- KR
- South Korea
- Prior art keywords
- carry
- register
- sum
- imaginary
- real
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
- H03H17/0227—Measures concerning the coefficients
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
- H03H17/0233—Measures concerning the signal representation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
- H03H17/0238—Measures concerning the arithmetic used
- H03H17/0241—Distributed arithmetic
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 비트 분리 구조의 고속 디지털 필터에 관한 것으로서, 실수 입력 데이터를 저장하는 실수 데이터 레지스터(1)와; 허수 입력 데이터를 저장하는 허수 데이터 레지스터(3)와; 실수 데이터 레지스터(1) 및 허수 데이터 레지스터(3)의 실수 및 허수를 각각 선택하여 출력하는 제 1 및 제 2 멀티플렉서(5, 7)와; 실수 필터 계수를 저장하는 제 1 계수 레지스터와(13); 허수 필터 계수를 저장하는 제 2 계수 레지스터(15)와; 제 1 및 제 2 멀티플렉서(5, 7)의 실수 및 허수에 대응하는 제 1 계수 레지스터(13)의 필터 계수를 선택하여 출력하는 제 3 멀티플렉서(9)와; 제 1 및 제 2 멀티플렉서(5,7)의 실수 및 허수에 대응하는 제 2 계수 레지스터(15)의 필터 계수를 선택하여 출력하는 제 4 멀티플렉서(11)와; 제 3 및 제 4 멀티플렉서(9,11)의 출력을 각각 가산하는 제 1 및 제 2 덧셈기 트리(17,19)와; 제 1 및 제 2 덧셈기 트리(17,19)의 출력을 시프트시키므로써 덧셈기 트리(17,19) 출력의 자릿수를 각각 보정하는 제 1 및 제 2 자릿수 보정 레지스터(R1-R4)와; 상기 제 1 및 제 2 자릿수 보정 레지스터(R1-R4)의 출력을 연산 처리하므로써 실수 출력 데이터 및 허수 출력 데이터를 산출하는 고속 누산기(20)를 포함한다.The present invention relates to a high-speed digital filter having a bit division structure, and more particularly, to a high-speed digital filter having a bit-division structure, comprising: a real data register (1) An imaginary data register (3) for storing imaginary input data; First and second multiplexers (5, 7) for selecting and outputting the real and imaginary numbers of the real data register (1) and the imaginary data register (3), respectively; A first coefficient register (13) for storing a real number filter coefficient; A second coefficient register (15) for storing imaginary filter coefficients; A third multiplexer (9) for selecting and outputting filter coefficients of the first coefficient register (13) corresponding to the real and imaginary numbers of the first and second multiplexers (5, 7); A fourth multiplexer 11 for selecting and outputting filter coefficients of the second coefficient register 15 corresponding to the real and imaginary numbers of the first and second multiplexers 5 and 7; First and second adder trees (17, 19) for respectively adding outputs of the third and fourth multiplexers (9, 11); First and second digit correction registers (R1-R4) for respectively correcting the digits of the outputs of the adder trees (17, 19) by shifting the outputs of the first and second adder trees (17, 19); And a high-speed accumulator 20 for calculating real output data and imaginary output data by calculating the outputs of the first and second digit correction registers R1-R4.
즉, 본 발명에서는 종래의 필터 구조를 사용한 하드웨어보다 2의 보수 형태의 데이터의 특성을 사용하여 더 적은 자원을 사용하여 설계할 수 있다는 효과가 있다.That is, according to the present invention, it is possible to design the system using fewer resources by using the data characteristics of the two's complement type rather than the hardware using the conventional filter structure.
Description
본 발명은 디지털 필터에 관한 것으로서, 더욱 상세하게는 연산 회로의 지연 시간을 제거한 비트 분리 구조의 고속 디지털 필터에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital filter, and more particularly, to a high-speed digital filter having a bit separation structure in which a delay time of an operation circuit is eliminated.
영상 레이더 신호 처리를 비롯한 많은 분야에서 디지털 필터의 사용은 필수적이다. 따라서 실시간 데이터 처리를 구현하기 위해서는 디지털 필터의 고속화가 필요하다.The use of digital filters is essential in many areas, including imaging radar signal processing. Therefore, in order to realize real-time data processing, it is necessary to speed up the digital filter.
일반적인 디지털 필터는 필터 계수와 입력 데이터를 곱하는 부분과, 각 탭의 곱셈 결과들을 더하는 부분으로 구성되어 있다. 이 경우, 먼저 곱셈을 위한 부분을 하드웨어로 구현할 경우 많은 자원을 소모할 뿐 아니라, 연산 시간이 매우 길어 병목 현상을 유발시켜 전체 처리 속도를 느리게 만든다.A typical digital filter consists of a section that multiplies filter coefficients and input data, and a section that adds the multiplication results of each tap. In this case, hardware implementation of the multiplication part first consumes a lot of resources, and the computation time is very long, which causes a bottleneck and slows down the entire processing speed.
두 번째로 누산기 부분은 각 비트별 연산 결과를 누적하여 최종 결과를 처리하는 부분으로 계산해야 할 데이터의 크기가 입력 비트 수에 비하여 매우 크다. 따라서 일반적인 누산기 구조를 사용할 경우 누산하는 과정에서 데이터 처리 시간이 증가한다. 따라서 이 부분의 병목 현상은 시스템의 클럭 주기를 증가시켜 전체 데이터 처리 시간을 증가시킨다.Second, the accumulator part accumulates the operation results of each bit and processes the final result. The size of the data to be calculated is much larger than the number of input bits. Therefore, when the general accumulator structure is used, the data processing time increases in the accumulation process. Therefore, the bottleneck in this part increases the clock period of the system, thereby increasing the overall data processing time.
세 번째로 디지털 필터의 탭 수가 큰 경우, 하드웨어로 구현할 경우에 많은 자원을 소비하게 된다. 일반적인 디지털 필터의 경우 데이터와 필터 계수로 signed number를 사용한다. 따라서 디지털 필터는 연산을 수행할 때 각 데이터의 부호에따라 필터 계수와 더불어 계수의 보수를 필요로 한다. 그래서 보수를 저장하기 위한 레지스터를 두거나, 보수를 만드는 논리 회로를 구현하여야 한다. 이럴 경우 많은 자원을 소비하고, 한정된 자원의 양 때문에 필터의 탭 수를 줄여야 한다.Third, when the number of taps of a digital filter is large, it consumes a lot of resources when implemented in hardware. For typical digital filters, use signed numbers as data and filter coefficients. Therefore, the digital filter requires the coefficient of the filter to be complemented with the coefficient according to the sign of each data when performing the operation. So you have to put a register to save the repair, or implement a logic circuit to make the repair. In this case, you should consume a lot of resources and reduce the number of taps in the filter due to the limited amount of resources.
네 번째로 복소수의 데이터를 처리하는 경우, 필터는 크게 아래의 표 1.과 같이 4개의 연산 결과를 요구한다. 따라서 하드웨어로 구현할 경우 4개의 연산 부분이 필요하다는 문제가 있었다.Fourth, when processing data of a complex number, the filter largely requires four operation results as shown in Table 1 below. Therefore, there is a problem in that it requires four operation parts when implemented in hardware.
본 발명은 이러한 문제를 해결하기 위한 것으로서, 본 발명의 목적은 연산 회로의 지연 시간을 제거한 비트 분리 구조의 고속 디지털 필터를 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a high-speed digital filter of a bit division structure in which a delay time of an operation circuit is eliminated.
이러한 목적을 달성하기 위하여 본 발명은, 비트 분리 구조의 고속 디지털 필터로서,According to an aspect of the present invention, there is provided a high-speed digital filter having a bit-
실수 입력 데이터를 저장하는 실수 데이터 레지스터와;A real data register for storing real input data;
허수 입력 데이터를 저장하는 허수 데이터 레지스터와;An imaginary data register for storing imaginary input data;
상기 실수 데이터 레지스터 및 허수 데이터 레지스터의 실수 및 허수를 각각 선택하여 출력하는 제 1 및 제 2 멀티플렉서와;First and second multiplexers for selecting and outputting the real and imaginary numbers of the real data register and the imaginary data register, respectively;
실수 필터 계수를 저장하는 제 1 계수 레지스터와;A first coefficient register for storing a real number filter coefficient;
허수 필터 계수를 저장하는 제 2 계수 레지스터와;A second coefficient register for storing imaginary filter coefficients;
상기 제 1 및 제 2 멀티플렉서의 실수 및 허수에 대응하는 제 1 계수 레지스터의 필터 계수를 선택하여 출력하는 제 3 멀티플렉서와;A third multiplexer for selecting and outputting a filter coefficient of a first coefficient register corresponding to a real number and an imaginary number of the first and second multiplexers;
상기 제 1 및 제 2 멀티플렉서의 실수 및 허수에 대응하는 제 2 계수 레지스터의 필터 계수를 선택하여 출력하는 제 4 멀티플렉서와; 상기 제 3 및 제 4 멀티플렉서의 출력을 각각 가산하는 제 1 및 제 2 덧셈기 트리와; 상기 제 1 및 제 2 덧셈기 트리의 출력을 시프트시키므로써 덧셈기 트리 출력의 자릿수를 각각 보정하는 제 1 및 제 2 자릿수 보정 레지스터와; 상기 제 1 및 제 2 자릿수 보정 레지스터의 출력을 연산 처리하므로써 실수 출력 데이터 및 허수 출력 데이터를 산출하는 고속 누산기를 포함한다.A fourth multiplexer for selecting and outputting a filter coefficient of a second coefficient register corresponding to a real number and an imaginary number of the first and second multiplexers; First and second adder trees for respectively adding outputs of the third and fourth multiplexers; A first and a second digit correction register for respectively correcting the digits of the adder tree output by shifting outputs of the first and second adder trees; And a high-speed accumulator for calculating real output data and imaginary output data by calculating the outputs of the first and second digit correction registers.
후술하는 바와 같이 본 발명에서는 종래 기술의 첫 번째 문제점을 보완하기 위하여 데이터를 비트 단위로 나누어서 각 비트별로 연산을 수행하도록 하였다. 연산을 수행하는 부분은 CSA(Carry Save Adder)를 사용하여 구현하여 지연 시간을 줄였다. 이럴 경우 곱셈기를 사용할 필요가 없어 병목 현상을 해결할 수 있다.As described below, in order to solve the first problem of the prior art, the present invention divides data into bits and performs operations on each bit. The part performing the operation is implemented using Carry Save Adder (CSA) to reduce the delay time. This eliminates the need to use a multiplier to solve bottlenecks.
또한, 종래 기술의 두 번째 문제점을 해결하기 위하여 본 발명에서는 누산기 부분을 CSA(Carry Save Adder)와 CPA(Carry Propagation Adder)를 사용해 구현하였다. 이렇게 구현함으로서 누산기 부분의 데이터 처리 방법을 변형해 시스템의 클럭 주기를 짧게 할 수 있게 되어 데이터 처리 속도를 짧게 할 수 있었다.Also, in order to solve the second problem of the prior art, the accumulator part is implemented using Carry Save Adder (CSA) and Carry Propagation Adder (CPA) in the present invention. By implementing this method, the data processing method of the accumulator part can be modified to shorten the clock period of the system, and the data processing speed can be shortened.
종래 기술의 세 번째 결점을 보완하기 위해 본 발명에서는 2의 보수의 특성을 이용한 알고리즘을 사용하여 필터 계수의 보수를 사용할 필요 없도록 하여 자원의 필요량을 줄일 수 있도록 하였다.In order to compensate for the third drawback of the prior art, the present invention makes it unnecessary to use the filter coefficient repair using an algorithm using the property of 2's complement, thereby reducing the amount of resources required.
또한, 종래 기술의 네 번째 문제점을 해결하기 위하여 본 발명에서는 입력 데이터의 실수와 허수 부분을 멀티플렉스 하는 방법을 사용해 2개의 연산 부분만으로 4개의 연산 결과를 얻을 수 있어 자원의 소비량을 줄일 수 있도록 하였다.In order to solve the fourth problem of the prior art, in the present invention, by using a method of multiplexing real numbers and imaginary parts of input data, four operation results can be obtained by only two operation parts, thereby reducing resource consumption .
도 1은 본 발명에 따른 비트 분리 구조의 고속 디지털 필터의 블록도,1 is a block diagram of a high-speed digital filter of a bit-
도 2는 일반적인 CPA형 가산기의 구조를 도시한 블록도,2 is a block diagram showing the structure of a general CPA adder,
도 3은 일반적인 CSA형 가산기의 구조를 도시한 블록도,3 is a block diagram showing the structure of a general CSA adder;
도 4는 본 발명에 따른 비트 분리 구조의 고속 디지털 필터 내의 고속 연산기의 구조를 도시한 블록도,FIG. 4 is a block diagram illustrating a structure of a high-speed computer in a high-speed digital filter of a bit-
도 5는 본 발명에 따른 비트 분리 구조의 고속 디지털 필터 내 연산기의 구조를 도시한 블록도,FIG. 5 is a block diagram illustrating a structure of a computing unit in a high-speed digital filter of a bit division structure according to the present invention;
도 6은 본 발명에 따른 비트 분리 구조의 고속 디지털 필터 내 고속 연산기의 다른 실시예를 도시한 블록도,FIG. 6 is a block diagram illustrating another embodiment of a high-speed computer in a high-speed digital filter of a bit division structure according to the present invention.
도 7은 본 발명에 따른 비트 분리 구조의 고속 디지털 필터 내 연산기의 다른 실시예를 도시한 블록도.7 is a block diagram showing another embodiment of a computing unit in a high-speed digital filter of a bit-division structure according to the present invention;
<도면의 주요부분에 대한 부호의 설명>Description of the Related Art
1 : 실수 데이터 레지스터 3 : 허수 데이터 레지스터1: real number data register 3: imaginary data register
5, 7, 9 11 : 멀티플렉서 13, 15 : 계수 레지스터5, 7, 9 11: Multiplexer 13, 15: Coefficient register
17, 19 : 덧셈기 트리 R1-R4 : 자릿수 보정 레지스터17, 19: Adder tree R1-R4: Digit correction register
20 : 고속 누산기20: High-speed accumulator
먼저, 본 발명의 디지털 필터의 구성에 대한 이론적 배경을 설명하면 다음과 같다.First, the theoretical background of the configuration of the digital filter of the present invention will be described as follows.
일반적인 디지털 필터는 아래의 수학식 1을 수행하도록 되어 있다.A typical digital filter is designed to perform Equation (1) below.
수학식 1에서 Y(n)는 n번째 출력 데이터를, C(k)는 k번째 필터 계수를 나타내며 X(n-k)는 n-k번째 입력 데이터를 나타낸다. 수학식 1은 모두 복소수를 나타내고 있으므로 출력 데이터는 수학식 2 및 수학식 3과 같이 실수 출력 데이터와 허수 출력 데이터로 나누어 나타낼 수 있다In Equation (1), Y (n) denotes n-th output data, C (k) denotes a kth filter coefficient, and X (n-k) denotes n-kth input data. Since Equation 1 represents a complex number, the output data can be divided into real output data and imaginary output data as shown in Equations (2) and (3)
수학식 2, 3에서 위 첨자 R과 I는 각각 실수와 허수를 나타낸다.In equations (2) and (3), superscripts R and I represent real numbers and imaginary numbers, respectively.
위 식에서 실수 입력 데이터는 L비트의 signed number이다. signed number는 2의 보수 형태로 사용하였다. 아래의 수학식 4는 signed number의 크기를 나타낸다.In the above equation, real input data is a signed number of L bits. The signed number is used as the complement of 2. Equation (4) below represents the size of the signed number.
위 식에서은 n번째 실수 입력 데이터의 l번째 비트를 나타낸다. 따라서는 '1'또는 '0'의 값만을 가질 수 있다.In the above equation Represents the l-th bit of the n-th real input data. therefore May only have a value of '1' or '0'.
상기 수학식 4에서 2의 보수 형태의 데이터 크기는 최상위 비트의 경우 음의 부호를 가지고 있다. 따라서, 부분 합을 누산할 때에 최상위 비트에서 얻은 부분 합은 빼주고 나머지 비트의 부분 합은 가산해주어야 한다.In Equation (4), the data size of the complement of 2 has a negative sign in the most significant bit. Therefore, when the partial sum is accumulated, the partial sum obtained from the most significant bit should be subtracted and the partial sum of the remaining bits must be added.
위 수학식 3의과에 수학식 4를 적용하여 입력 데이터를 비트 분리하여 정리하면 아래의 수학식 5와 수학식 6과 같이 표현될 수 있다.In Equation (3) and The input data can be expressed by Equation (5) and Equation (6) as follows.
이제 위 식을 수학식 2에 대입하여 정리하면 아래의 수학식 7과 같이 표현된다.Now, by substituting the above equation into the equation (2), the following equation (7) is obtained.
정리된 수학식 7을 살펴보면, 입력 데이터를 비트 분리하여 필터링을 수행하는 것이 가능함을 알 수 있다.는 비트이므로의 계산은 곱셈을 수행하는 것이지만, 곱셈의 계산 결과는가 '1'이면이고, '0'이면이 된다. 즉의 계산은의 비트 값에 따라혹은을 선택하도록 하면 된다.Referring to Equation (7), it can be seen that it is possible to perform filtering by bit-splitting the input data. Is a bit Is to perform a multiplication, but the result of the multiplication is Is '1' , And if it is '0' . In other words The calculation of Depending on the bit value of or .
수학식 7의 마지막 수식은 모든 탭에 대하여 데이터 비트 값에 따라혹은을 선택하여 계산하면 비트별 연산 결과를 얻을 수 있다. 이렇게 얻은 결과를 비트의 자릿수에 따라을 곱하여 주면 데이터의 자릿수 보정된 비트별 연산 결과를 얻을 수 있다. 최하위부터 최상위 비트에 대하여 얻은 모든 자릿수 보정된 비트별 계산 결과를 더해 주면 필터링 된 결과를 얻을 수 있다.The last equation of Equation (7) is based on the data bit value for all the tabs or , The result of bitwise operation can be obtained. Depending on the number of digits of the bit, , It is possible to obtain the result of the bit-by-bit-corrected operation of the data. The filtered result can be obtained by adding the result of the bit-by-bit corrected bits obtained from the least significant bit to the most significant bit.
수학식 3을 같은 방법으로 정리하면 아래의 수학식 8과 같이 정리된다.Equation 3 is summarized in the same manner as Equation 8 below.
도 1은 상술한 수학식 8을 이용하는 본 발명에 따른 고속 디지털 필터의 구조를 블록도 형태로 나타낸 것으로, 'L'비트의 입력 데이터와 'B'비트의 필터 계수, 'P'탭의 필터를 가정한 그림이다.FIG. 1 is a block diagram showing the structure of a high-speed digital filter according to the present invention using Equation (8). The input data of 'L' bit and the filter coefficient of 'B' This is a hypothetical picture.
도시된 바와 같이 L 비트(0∼L-1)의 입력 데이터(0∼P-1)들은 실수 및 허수로 구분되어 각각 실수 데이터 레지스터(1) 및 허수 데이터 레지스터(3)에 각기 입력된다. 각 레지스터(1,3)에 저장된 데이터들은 도시된 바와 같이 최하위 비트(0)부터 차례대로 최상위 비트(L-1)로 순환할 수 있도록 구성되었다.As shown in the figure, input data 0 to P-1 of L bits (0 to L-1) are divided into a real number and an imaginary number and input to the real data register 1 and the imaginary data register 3, respectively. The data stored in each of the registers 1 and 3 is configured to be able to cycle from the least significant bit (0) to the most significant bit (L-1), as shown.
새로운 실수 입력 데이터()와 허수 입력 데이터()가 입력되면, 먼저 최하위 비트에 대하여 비트별 부분 합을 구하기 위한 작업이 수행된다. 즉, 입력 데이터(), ()들은 최하위 비트부터 순차적으로 멀티플렉서(3, 5)에 각각 제공된다.New real input data ( ) And imaginary input data ( ) Is input, an operation for obtaining a bit-wise partial sum with respect to the least significant bit is performed first. That is, ), ( Are sequentially provided to the multiplexers 3 and 5 starting from the least significant bit.
수학식 7에서 나타낸 실수 출력 데이터를 얻기 위해서는 실수 입력 데이터()의 비트()의 집합은 실수 계수와 곱해지고, 허수 입력 데이터()의 비트()는 허수 계수와 곱해져야 한다. 이를 위하여 멀티플렉서(3)는 실수 출력 데이터를 구하는 경우에는 실수 입력 데이터()의 비트()의 집합이 실수 계수 레지스터(13)내의 실수 계수()와 곱해지도록 멀티플렉서(9)에 제공하며, 허수 입력 데이터()의 비트()는 허수 계수 레지스터(15)내의 허수 계수()와 곱해지도록 멀티플렉서(11)에 전달한다.To obtain the real output data shown in Equation (7), the real input data ( ) Bits ) Is multiplied by the real coefficient, and the imaginary input data ( ) Bits ) Must be multiplied by the imaginary coefficient. For this purpose, when the real number output data is obtained, the multiplexer 3 outputs the real number input data ( ) Bits ) Is stored in the real coefficient register 13 ( To the multiplexer 9 so that the imaginary input data ( ) Bits ) Is an imaginary coefficient in the imaginary coefficient register 15 ( To the multiplexer 11 so as to be multiplied.
반대로 수학식8의 허수 출력 데이터를 얻기 위해서는 실수 입력 데이터()의 비트()의 집합은 허수 계수와 곱해져야 하며, 허수 입력 데이터()의 비트()는 실수 계수와 곱해져야 한다. 이를 위하여 멀티플렉서(7)는 실수 입력 데이터()의 비트()의 집합이 허수 계수 레지스터(15)내의 허수 계수()와 곱해지도록 멀티플렉서(11)에 전달하고, 허수 입력 데이터()의 비트()는 실수 계수 레지스터(13)내의 실수 계수()와 곱해지도록 멀티플렉서(9)에 제공한다.Conversely, to obtain the imaginary output data of Equation (8), the real input data ( ) Bits ) Must be multiplied by the imaginary coefficient, and the imaginary input data ( ) Bits ) Must be multiplied by the real coefficient. To this end, the multiplexer 7 receives the real input data ( ) Bits ) Is stored in the imaginary coefficient register 15 as an imaginary coefficient ( To the multiplexer 11 so that the imaginary input data ( ) Bits ) Is a real number coefficient in the real number count register 13 To the multiplexer 9 to be multiplied.
실수 계수 부분을 위한 멀티플렉서(9)는 실수 입력 데이터의 비트()의 값이 '1'이면 상응하는 필터 값인을 선택하고 '0'이면을 선택한다. 허수 계수 부분의 멀티플렉서(11)도 허수 입력 데이터의 비트()의 값을 받아서 같은 방법으로혹은을 선택하는 기능을 수행한다.The multiplexer 9 for the real part counts the bits of the real number input data ( ) Is '1', the corresponding filter value And if it is '0' . The imaginary number multiplexer 11 also outputs the bits of the imaginary input data ( ) In the same way or As shown in FIG.
이러한 과정은 하드웨어로 구현하였을 때 모든 탭에 대하여 병렬적으로 동시에 수행된다.This process is performed concurrently on all taps when implemented in hardware.
여기까지의 과정에서 얻은 결과는 모든 탭에 대하여 필터 계수(,)와 입력 데이터의 최하위 비트의 곱셈인과이다.The results obtained so far are the filter coefficients ( , ) And the least significant bit of the input data and to be.
멀티플렉서(9,11)로부터의 결과 값은 CSA(carry saver adder)로 구성된 덧셈기 트리(17,19)로 제공된다. 실수 계수 부분의 덧셈기 트리(17)에서는 모든 탭의 결과 값()을 더하는 작업을 수행한다. 따라서 실수 계수 부분의 덧셈기 트리(17)에서 얻은 결과는이 되어야 한다. 그러나, CSA는 캐리(carry) 부분과 합계(sum) 부분을 나누어서 출력한다. 즉 덧셈기 트리(17)의 결과의 캐리 부분과 합계 부분을 더하면를 얻을 수 있게 된다.The resultant values from the multiplexers 9 and 11 are provided to an adder tree 17 and 19 composed of CSA (carry saver adder). In the adder tree 17 of the real number counting part, the result values of all tabs ( ). ≪ / RTI > Therefore, the result obtained from the adder tree (17) . However, the CSA divides the carry part and the sum part and outputs them. That is, adding the carry portion and the sum portion of the result of the adder tree 17 .
허수 계수 부분의 덧셈기 트리(19)에서는를 결과로서 얻게 된다.In the imaginary-number portion adder tree 19, As a result.
덧셈기 트리(17,19)를 CSA로 구현한 이유는 다음과 같다.The reason why the adder trees 17 and 19 are implemented by the CSA is as follows.
일반적인 CPA(carry propagation adder)는 도 2에 도시된 바와 같이 2개의 입력(x(n)),(y(n))을 받아 출력(s(n))을 내는 덧셈기이다. 이 덧셈기는 내부 가산기(Adder)(A1-An)의 캐리()가 다음 가산기의 캐리 입력 단자()로 제공된다. 따라서 이러한 캐리의 체인(Chain)으로 인해 형성되는 지연으로 인해 연산 시간이 지연된다는 단점이 있다.A general carry propagation adder (CPA) is an adder that receives two inputs x (n), y (n) and outputs an output s (n), as shown in FIG. This adder adds the adder (Adder) (A1-An) ) To the carry input terminal of the next adder ( ). Therefore, the computation time is delayed due to the delay caused by the chain of the carry.
도 3의 일반적인 CSA는 3개의 입력(x(n)),(y(n)),(a(n))을 받아 2개의 출력(c(n))을 내는 덧셈기로 그림에서 보듯이 가산기(A11-A1n) 캐리들이 바로 출력을 형성하므로 CPA와 달리 캐리의 체인을 형성하지 않아 지연이 없어 빠른 덧셈 과정을 수행할 수 있다. CSA가 CPA에 비해 많은 자원을 소비하지만, 빠른 연산 시간을 가지기 때문에 CSA를 사용하여 덧셈기 트리를 구현하였다.The general CSA of FIG. 3 is an adder which receives three outputs (x (n)), (y (n)) and (a (n)) and outputs two outputs c (n) A11-A1n) carries the output directly, unlike the CPA, it does not form a carry chain, so there is no delay and it is possible to perform a fast addition process. Because CSA consumes more resources than CPA, but has fast computation time, we implemented adder tree using CSA.
이렇게 얻어진 결과는 자릿수 보정 레지스터(R1),(R2),(R3),(R4)에서 자릿수를 보정하게 된다. 첫 번째 입력 데이터 비트의 부분 합은 수학식 7에서 보듯이을 곱해주어야 한다. 즉 변화가 없다. 하지만, 만약 2번째 입력 데이터 비트의 부분 합을 자릿수 보정한다면을 곱해주어야 한다. 이것은 자릿수 보정 레지스터(R1-R4)에서 부분 합을 1비트만큼 왼쪽으로 쉬프트시켜주면 된다.The result thus obtained is used to correct the digits in the digit correction registers R1, R2, R3, and R4. The partial sum of the first input data bits is given by Equation 7 . That is, there is no change. However, if the partial sum of the second input data bits is digitally corrected . This shifts the fractional sum by one bit to the left in the digit correction register (R1-R4).
이 과정을 통해 수학식 7에서 나타나는와를 얻을 수 있다.Through this process, Wow Can be obtained.
번째 비트의 자릿수 보정된 부분 합을 얻는 과정도 위에서 설명한 0번째 비트의 부분 합을 얻는 과정과 같은 방법을 거쳐와을 얻을 수 있다. The process of obtaining the corrected partial sum of the i-th bit is the same as the process of obtaining the partial sum of the 0-th bit described above Wow Can be obtained.
0번째 입력 데이터 비트부터 L-1번째 입력 데이터 비트까지 이 과정이 차례대로 반복되며, 덧셈기 트리(17,19)에서 구해진 캐리 역시 상술한 과정을 수행하여야 한다.This process is repeated in order from the 0th input data bit to the (L-1) th input data bit, and the carries obtained from the adder trees 17 and 19 must also perform the above-described procedure.
이렇게 차례대로 계산된 자릿수 보정된 부분 합들은 고속 누산기(20)를 통해 모두 더해져서 최종 필터 출력을 얻을 수 있다.The sequence-corrected partial sums calculated in this order are all added through the high-speed accumulator 20 to obtain the final filter output.
고속 누산기(20)는와를 0번째부터 L-1번째까지 받아서 최종 결과인 수학식 7을 얻는 부분이다.The high-speed accumulator 20 Wow From the 0th to the (L-1) th and obtains the final result of Equation (7).
고속 누산기(20)는 두 가지 방법으로 제작할 수 있다.The high-speed accumulator 20 can be manufactured in two ways.
첫 번째 고속 누산기(20)의 구조는 도 4와 같다. 첫 번째 고속 누산기(20)는 크게 실수 계수 부분 자릿수 보정된 부분 합과 허수 계수 부분의 자릿수 보정된 부분 합을 각각 누적하는 누적 회로(23,25) 부분과 실수 계수 부분과 허수 계수 부분의 누적된 부분 합을 더하는 누적 회로(27)로 나눌 수 있다.The structure of the first high-speed accumulator 20 is shown in FIG. The first high-speed accumulator 20 mainly includes a cumulative circuit 23, 25 for accumulating the fractional-corrected fractional part of the real-number coefficient and the fractional-corrected fractional part of the imaginary-integer part, And an accumulation circuit 27 for adding a partial sum.
먼저 실수 계수 부분과 허수 계수 부분의 부분 합을 누적하는 누적 회로(23,25)들은 각각 두 개(231, 233), (251, 253)의 연산기를 사용하여 자릿수 보정된 부분 합을 누적하는 역할을 수행한다.The accumulation circuits 23 and 25 accumulating the partial sum of the real coefficient part and the imaginary coefficient part accumulate the digitally corrected partial sum using the arithmetic units of the two 231, 233, and 251 and 253, respectively .
도 3에 도시된 바와 같이 CSA는 전가산기(Full-adder)(A21-A2n)를 써서3개의 입력 데이터(x(n)),(y(n)),(an))를 받아서 덧셈을 수행하여 2개의 출력 즉, 캐리(c(n))와 합계(Sum(s(n))를 출력한다. 따라서 캐리(c(n))와 합계(Sum(s(n))를 더하면, 세 개의 입력 데이터의 합(x(n)),(y(n)),(an))이 구해지나, 본 발명의 연산기는 후술하는 바와 같이 덧셈과 뺄셈을 수행할 수 있어야 하므로 도 5와 같이 CSA를 변형하여 구성한다. CSA를 변형한 도 5의 연산기(231, 233, 251, 253)는 3개의 입력 데이터인 a(n), x(n), y(n)와 더불어 제어 신호(#Add/Sub)를 구비한다. 여기서, 연산기(231, 233, 251, 253)를 사용하기 위한 제한 조건은 입력값(y(n))을 2진수로 표현하였을 경우, 마지막 자리가 '0'이어야 한다는 것이다 즉, 입력값(y(n))은 입력값(a(n)) 및 (x(n))보다 자릿수가 1이 더 커야한다.As shown in FIG. 3, the CSA receives three input data x (n), y (n), and an (a) by using a full-adder A21- The carry (c (n)) and the sum Sum (s (n)) are added together to output three outputs The sum of the input data x (n), y (n), and an) is obtained. However, since the operator of the present invention must be able to perform addition and subtraction as described later, The adders 231, 233, 251 and 253 of FIG. 5, which are modified from the CSA, add control signals # Add / n (n) (N) is represented by a binary number, the last digit of the input value y (n) must be '0' That is, the input value y (n) must have one digit greater than the input values a (n) and (x (n)).
또한, 본 발명의 연산기(231, 233, 251, 253)는 입력값(a(n)) 및 반전된 입력값(a(n) : 즉, a(n)의 1의 보수값)이 인버터를 통하여 멀티플렉서(MUX1)에 제공되며, 멀티플렉서(MUX1)는 제어 신호(#Add/Sub)가 0일 때에는 입력값(a(n))을, 제어 신호(#Add/Sub)가 1일 때에는 입력값(a(n))의 1의 보수값을 출력한다.The arithmetic operators 231, 233, 251 and 253 of the present invention are arranged such that the input value a (n) and the inverted input value a (n), that is, the one's complement value of a And the multiplexer MUX1 supplies the input value a (n) when the control signal # Add / Sub is 0 and the input value a (n) when the control signal # Add / (a (n)).
멀티플렉서(MUX1)의 출력값 및 입력값(x(n))은 가산기(A11-A1n)의 입력 단자(a, b)에 제공되고, 입력값(y(n))은 가산기(A1-A1(n-1))의 캐리 입력 단자(Cin)에 제공된다. 여기서, 제어 신호(#Add/Sub)는 가산기(An)의 캐리 입력 단자(Cin)에 제공된다. 따라서, 제어 신호(#Add/Sub)가 0일 때에 가산기(A0-An)는 입력값(x(n)),(y(n)) 및 (a(n))은 상호 가산되나, 제어 신호(#Add/Sub)가 1일 때에는 입력값(x(n)),(y(n))의 합산 값에 입력값(a(n))이 감산된 값을 출력한다. 즉, 제어 신호(#Add/Sub)의 값이 '0'이면, 본 발명의 연산기(231, 233, 251, 253)는를 출력하나, 만약 제어 신호(#Add/Sub)의 값이 '1'이면, 3개의 입력 데이터 중 a(n)를 감산하는를 출력한다.The output value and input value x (n) of the multiplexer MUX1 are provided to the input terminals a and b of the adders A11 to A1n and the input value y -1) of the carry- in terminal C in . Here, the control signal (# Add / Sub) is provided to the carry input terminal (C in ) of the adder (An). Therefore, the adder A0-an adds the input values x (n), y (n) and a (n) when the control signal # Add / Sub is 0, (N (n)) is subtracted from the sum of the input values (x (n)) and (y (n)). That is, when the value of the control signal (# Add / Sub) is '0', the operators 231, 233, 251 and 253 of the present invention , And if the value of the control signal (# Add / Sub) is '1', a (n) of the three input data is subtracted .
한편, 본 발명의 누적 회로(23)의 제 1 연산기(231)에는 제 2 연산기(233)의 합계(s(n))가 합계용 레지스터(235)를 거쳐 입력값(x(n))으로 제공되고, 제 2 연산기(233)의 캐리(c(n))는 캐리용 레지스터(237)를 거쳐 입력값(y(n))으로 제공된다.또한, 제 1 연산기(231)에는 자릿수 보정 레지스터(R1)로부터 실수의 캐리가 입력값(a(n))으로 제공된다.On the other hand, the sum s (n) of the second operator 233 is input to the first operator 231 of the accumulation circuit 23 of the present invention as the input value x (n) via the sum register 235 And the carry (c (n)) of the second calculator 233 is provided as an input value y (n) via the carry register 237. The first operator 231 is also provided with a digit A carry of the real number is provided as an input value a (n) from R1.
제 2 연산기(233)에는 제 1 연산기(231)의 합계(s(n))가 입력값(x(n))으로 제공되며, 제 2 연산기(231)의 캐리(c(n))가 입력값(y(n))으로 제공되며, 자릿수 보정 레지스터(R2)의 합계(sum)가 입력값(a(n))으로 제공된다.The sum s (n) of the first operator 231 is provided as the input value x (n) and the carry c (n) of the second operator 231 is supplied to the second operator 233 as input Is provided as a value y (n), and the sum of the digit correction register R2 is provided as an input value a (n).
여기서, 상술한 제어 신호(#Add/Sub)로 최고차 비트(L-1) 판별 신호(최고차 비트가 제공될 때에만 1인 신호)가 사용되므로, 최고차 비트(L-1) 판별 신호가 0일 때에 누적 회로(23)는를 출력하나, 만약 최고차 비트(L-1)가 '1'이면, 3개의 입력 데이터 중 a(n)를 감산하는를 출력한다.Here, since the highest-order bit L-1 discrimination signal (a signal only when the highest-order bit is provided) is used as the above-described control signal # Add / Sub, Is 0, the accumulation circuit 23 , And if the highest-order bit (L-1) is '1', a (n) of the three input data is subtracted .
아래의 식은 수학식 7의 실수 계수 부분 자릿수 보정된 부분 합을 누적하는 부분이다.The following equation is a part for accumulating the partial sum corrected by the real part counting part of the equation (7).
상기 식으로부터 자릿수 보정된 부분 합을 누적하는 과정에서 최하위 비트(0)에서 L-2번째 비트까지의 자릿수 보정된 부분 합은 더하고 최상위 비트(L-1)의 자릿수 보정된 부분 합은 빼고 있음을 알 수 있다. 따라서 도 3의 연산기를 사용하여 L-2번째까지는 덧셈을 수행하고, L-1의 경우에는 뺄셈을 수행하여야 하나, 본 발명의 누적 회로(23)에서는 상술한 바와 같이 최고차 비트(L-1)가 제공될 때에만 1인 최고차 비트 판별 신호가 제공되므로, 누적 회로(23)는 수학식 7에서 실수 계수 부분 자릿수 보정된 부분 합을 누적할 수 있음을 알 수 있다.In the process of accumulating the digit-corrected partial sum from the above equation, the digits-corrected partial sum from the least significant bit (0) to the (L-2) th bit is added and the partial sum corrected with the most significant bit (L-1) is subtracted Able to know. Therefore, in the accumulation circuit 23 of the present invention, the highest-order bits L-1 (L-1) and L-2 ) Is provided, the accumulation circuit 23 can accumulate the partial sum corrected by the real number count part-number correction in Equation (7).
상술한 설명은 누적 회로(23)에 관한 설명이나, 누적 회로(25) 역시 동일하게 작동하며 다만 입력되는 신호가 실수 계수가 아닌 허수 계수라는 것만이 상이하므로 자세한 설명은 생략하였다.The description of the accumulation circuit 23 and the accumulation circuit 25 are identical except that the input signal is not an actual coefficient but an imaginary coefficient.
다음으로, 누적 회로(23,25) 결과 값을 누적하는 누적 회로(27)에 대하여 설명한다.Next, the accumulation circuit 27 for accumulating the results of the accumulation circuits 23 and 25 will be described.
수학식 7에서 실수 출력 데이터를 구할 경우에는, 실수 계수 부분의 누적된 부분 합에서 허수 계수 부분의 누적된 부분 합 빼야 하고, 수학식 8의 허수 출력 데이터를 구할 경우에는 실수 계수 부분의 누적된 부분 합과 허수 계수 부분의 누적된 부분 합을 더하여야 한다. 이를 위하여 본 발명에서는 누적 회로(27)내의 두 개의 연산기(271,273) 및 하나의 가산기(275)를 구성하고, 누적 회로(23)의 합계(s(n))를 저장하는 레지스터(R5)의 값이 연산기(271)의 입력값(x(n))으로, 누적 회로(23)의 캐리(c(n))를 저장하는 레지스터(R6)의 값이 연산기(271)의 입력값(y(n))으로 그리고, 누적 회로(25)의 합계 값(s(n))을 저장하는 레지스터(R7)의 값이 연산기(271)의 입력값(a(n))으로 제공하도록 구성되어 있다.When the real output data is obtained in Equation (7), the accumulated partial sum of the imaginary-number portion is to be subtracted from the accumulated partial sum of the real-number counting portion. When the imaginary output data of Equation (8) The sum of the sum and imaginary coefficients should be added to the cumulative partial sum. To this end, in the present invention, two arithmetic operators 271 and 273 in the accumulation circuit 27 and one adder 275 are constituted, and the value of the register R5 for storing the sum s (n) of the accumulation circuit 23 The value of the register R6 storing the carry c (n) of the accumulation circuit 23 is input to the input value y (n (n)) of the arithmetic unit 271, ) And the value of the register R7 for storing the total value s (n) of the accumulation circuit 25 is provided as the input value a (n) of the arithmetic unit 271. [
또한, 연산기(271)의 합계 값(s(n))은 연산기(273)의 입력값(x(n))으로, 연산기(271)의 캐리(c(n))는 연산기(273)의 입력 값(y(n))으로 제공되며, 레지스터(R8)에 저장된 누적 회로(25)의 캐리(c(n))는 연산기(273)의 입력값(a(n))로 제공된다.The carry value c (n) of the arithmetic operation unit 271 is inputted to the input (x (n)) of the arithmetic unit 273 by the input And the carry (c (n)) of the accumulation circuit 25 stored in the register R8 is provided as the input value a (n) of the arithmetic unit 273.
여기서, 연산기(271,273)는 가산/감산 제어 신호가 로직 0으로 제공되면, 3개의 입력값(x(n)),(y(n)),(a(n))을 모두 가산하나, 가산/감산 제어 신호가 로직 1로 제공되면 가산된 두 개의 입력값(x(n)),(y(n))에 입력값(a(n))을 감산하는 연산을 행한다. 누적 회로(27)는 가산/감산 제어 신호가 로직 0이면를 출력하나, 만약 가산/감산 제어 신호가 로직 1이면를 출력한다.Here, the arithmetic operators 271 and 273 add all the three input values x (n), y (n), and a (n) when the addition / subtraction control signal is provided as logic 0, When the subtraction control signal is provided to the logic 1, an operation of subtracting the input value a (n) from the two input values x (n) and y (n) is performed. If the addition / subtraction control signal is logic 0 If the addition / subtraction control signal is logic 1 .
따라서, 수학식 7에서 실수 출력 데이터를 구하고자 할 때에는 로직 1의 가산/감산 제어 신호를 제공하고, 수학식 8의 허수 출력 데이터를 구하고자 할 때에는 로직 0의 가산/감산 제어 신호를 제공하여야 함을 알 수 있다.Therefore, when the real output data in Equation 7 is to be obtained, the addition / subtraction control signal of logic 1 is provided, and when the imaginary output data of Equation 8 is to be obtained, the addition / subtraction control signal of logic 0 must be provided .
최종 연산 결과를 하나의 출력으로 형성하기 위하여, 가산기(275)는 일반적인 CPA를 사용함으로써 하나의 출력을 구성한다. 그러나, CPA는 계산 과정에서 캐리 체인에 의한 지연 시간에 의해 계산 소요 시간이 커, 병목 현상을 일으킬 수 있다. 따라서, CPA가 부분 합을 구하는 클럭과 함께 동기 된다면, 전체 연산 시간은 가산기(275)에 의해 증가된다.To form the final operation result into one output, the adder 275 constructs one output by using a general CPA. However, the CPA can take a long time to calculate by the delay time due to the carry chain in the calculation process, and can cause a bottleneck. Thus, if the CPA is synchronized with the clock to obtain the partial sum, then the total computation time is increased by the adder 275.
이러한 문제를 해결하기 위하여 본 발명에서는 누적 회로(23),(25)와 누적 회로(27)사이에 레지스터(R5),(R6),(R7),(R8)를 구성하고, 누적 회로(23, 25)내의 연산기(271,273)들은 클럭(C)에 동기 하여 부분 합을 순차적으로 연산하고, 연산된 최종 값을 레지스터(R5,),(R6),(R7),(R8)에 저장하도록 구성하였다. 즉, 레지스터(R5),(R6), (R7),(R8)는 L-1개의 부분 합이 모두 구해졌을 때에 누적 회로(23),(25)의 값을 저장한다. 다시 말하여, 레지스터(R5),(R6),(R7),(R8)는 (C×(L-1))개의 클럭과 동일한 주기를 갖는 클럭(CL)에 동기 하여 누적 회로(23),(25)의 연산 값을 저장하는 것이다.In order to solve such a problem, in the present invention, the registers R5, R6, R7, and R8 are formed between the accumulation circuits 23 and 25 and the accumulation circuit 27, The arithmetic units 271 and 273 in the registers 25 and 27 are configured to sequentially calculate the partial sums in synchronization with the clock C and to store the calculated final values in the registers R5 and R6, Respectively. That is, the registers R5, R6, R7, and R8 store the values of the accumulation circuits 23 and 25 when all the L-1 partial sums are obtained. In other words, the registers R5, R6, R7 and R8 are connected to the accumulation circuit 23 in synchronization with the clock C L having the same period as the (C 占 (L-1) , And (25), respectively.
레지스터(R5),(R6),(R7),(R8)가 클럭(CL)에 동기 하여 누적 회로(23,25)의 연산 값을 저장함과 같이 누적 회로(27) 역시 클럭(CL)에 동기 하여 레지스터(R5),(R6),(R7),(R8)로부터의 연산 값을 입력받아, 연산을 행한다. 따라서, 누적 회로(27)의 연산시 발생하는 지연 시간에 의해 누적 회로(23,25)의 결과 값이 병목 되는 것을 방지할 수 있는 것이다.A register (R5), (R6), (R7), (R8) a cumulative clock circuit 27. The clock also (C L), such as (C L) in synchronism with storing the calculated value of the accumulation circuit (23,25) to (R6), (R7), and (R8) in synchronism with the operation of the register R5. Therefore, it is possible to prevent the resultant value of the accumulation circuits 23 and 25 from becoming a bottleneck due to the delay time generated in the accumulation circuit 27. [
도 6에는 본 발명에 따른 고속 누산기(20)의 다른 실시예가 도시되어 있다.6 shows another embodiment of a high-speed accumulator 20 according to the present invention.
도 6의 고속 누산기(20)도 역시 크게 실수 계수 부분과 허수 계수 부분의 부분 합을 각각 누적하는 누적 회로(33),(35) 부분과 실수 계수 부분과 허수 계수 부분의 누적된 부분 합을 더하는 누적 회로(37) 부분으로 되어 있다.The high-speed accumulator 20 of FIG. 6 also includes an accumulation circuit 33, 35, which accumulates the partial sum of the real number portion and the imaginary number portion, respectively, and a cumulative partial sum of the real number portion and the imaginary number portion And is an accumulation circuit 37 part.
도 6의 고속 누산기(20)는 도 4의 고속 누산기(20)와는 상이하게 캐리와 합계를 각각 누적하는 방법을 채용하였다. 즉, 도 6에 도시된 바와 같이 누적 회로(33)내의 연산기(331)는 실수 계수의 부분 합의 캐리만을 입력하여 누산하며, 연산기(333)는 실수 계수의 부분 합의 합계만을 입력하여 누산하도록 구성되어 있다.The high-speed accumulator 20 of FIG. 6 adopts a method of accumulating the carry and the sum, respectively, differently from the high-speed accumulator 20 of FIG. 6, the operator 331 in the accumulation circuit 33 inputs and accumulates only the carry of the partial sum of the real coefficients, and the operator 333 is configured to accumulate only the sum of the partial sums of the real coefficients have.
연산기(331,333)에서 누산된 값(캐리 및 합산 값)들은 도시된 바와 같이 각각 레지스터(341),(343),(345),(347)들에 저장되나, 이 구조에서도 레지스터(341-347)에는 도 4의 레지스터(R5-R8)와 마찬가지로 L-1번째까지의 부분 합이 누적되었을 때에 데이터를 저장하도록 설계된다. 즉, 연산기(331,333)들은 클럭(C)에 의해서 동기 되어 부분 합들을 순차적으로 누적하며, 누적된 값은 클럭(C × (L-1))에동기 되어 레지스터(341),(343),(345),(347)에 저장되는 것이다.The accumulated values (carry and summation values) in the operators 331 and 333 are stored in the registers 341, 343, 345 and 347 as shown in the figure, Is designed to store data when the (L-1) th partial sum is accumulated, like the registers R5-R8 of FIG. That is, the operators 331 and 333 sequentially accumulate the partial sums by being synchronized by the clock C, and the accumulated values are synchronized with the clocks C x (L-1 ) and stored in the registers 341, 343, 345, and 347, respectively.
레지스터(341),(343),(345),(347)에 저장된 연산기(331, 333)의 누적 값들은 연산기(335, 337)를 통하여 가산된다. 즉, 연산기(335)는 연산기(331,333)의 레지스터(341),(343)를 통하여 제공되는 연산기(331,333)의 합계(s(n)) 및 캐리(c(n))를 연산기(333)의 합계(s(n))와 가산하고, 연산기(337)는 연산기(335)의 합계(s(n)) 및 캐리(c(n))를 연산기(333)의 캐리(C(n))와 가산하므로써 연산기(337)는 연산기(331, 333)의 누산 값들이 최종 가산된 값을 출력하는 것이다.The cumulative values of the operators 331 and 333 stored in the registers 341, 343, 345 and 347 are added through the operators 335 and 337, respectively. That is, the operator 335 outputs the sum s (n) and carry (c (n)) of the operators 331 and 333 provided through the registers 341 and 343 of the operators 331 and 333 to the operator 333 (N) and the carry (c (n)) of the arithmetic operation unit 333 and the sum s (n) The adder 337 adds the accumulated values of the arithmetic units 331 and 333 to the final sum.
여기서, 누적 회로(33)에는 도 3의 실시예에서와 마찬가지로 최고차 판별 신호(최고차 비트가 제공될 때에만 1인 신호)가 사용되며, 연산기(331, 333)는 로직 1의 최고차 비트 판별 신호가 제공될 때에 입력값을 누적 값으로부터 감산하고, 로직 0의 최고차 비트 판별 신호가 제공되면 입력값을 누적 값으로부터 가산하는 작동을 행한다. 따라서, 최고차 비트(L-1) 판별 신호가 0일 때에 누적 회로(33)는 자릿수 보정된 부분 합을 누적하는 과정에서 최하위 비트(0)에서 L-2번째 비트까지의 자릿수 보정된 부분 합은 더하고 최상위 비트(L-1)의 자릿수 보정된 부분 합은 빼게 된다. 즉, 본 발명의 누적 회로(33)는 누적 회로(23)처럼 수학식 7에서 나타낸 실수 계수 부분 자릿수 보정된 부분 합을 누적할 수 있음을 알 수 있다.As in the embodiment of Fig. 3, the highest difference discrimination signal (a signal only when the highest-order bit is provided) is used in the accumulation circuit 33, and the arithmetic operators 331 and 333 compute the highest- Subtracts the input value from the accumulated value when the discrimination signal is provided, and adds the input value from the accumulated value when the highest-order bit discrimination signal of logic 0 is provided. Therefore, when the highest-order bit (L-1) discrimination signal is 0, the accumulation circuit 33 accumulates the digit-corrected partial sum from the least significant bit (0) to the (L-2) And the subtracted partial sum of the most significant bit (L-1) is subtracted. That is, it can be seen that the accumulation circuit 33 of the present invention can accumulate the fractional part-corrected partial sum shown in Equation (7) like the accumulation circuit 23.
상술한 설명은 누적 회로(33)에 관한 설명이나, 누적 회로(35) 역시 동일하게 작동하며 다만 입력되는 신호가 실수 계수가 아닌 허수 계수라는 것만이 상이하므로 자세한 설명은 생략하였다.The description of the accumulation circuit 33 and the accumulation circuit 35 also operate in the same manner as described above, except that the input signal is not an actual coefficient but an imaginary coefficient.
도 7에는 상술한 기능을 행하는 연산기(331, 333, 351, 353)의 상세 블록도가 도시되어 있다.FIG. 7 shows a detailed block diagram of the operators 331, 333, 351, and 353 that perform the above-described functions.
도시된 바와 같이 도 7의 연산기는 입력값(a(n)) 및 반전된 입력값(a(n) : 즉, a(n)의 1의 보수값)이 인버터(I2)를 통하여 멀티플렉서(MUX2)에 제공되며, 멀티플렉서(MUX2)는 제어 신호(#Add/Sub)가 0일 때에는 입력값(a(n))을 제어 신호(#Add/Sub)가 1일 때에는 입력값(a(n))의 1의 보수값을 출력한다.As shown in the figure, the operator of Fig. 7 receives the input value a (n) and the inverted input value a (n), that is, the one's complement of a (n), via the inverter I2 to the multiplexer MUX2 And the multiplexer MUX2 outputs the input value a (n) when the control signal (# Add / Sub) is 0 and the input value a (n) ) ≪ / RTI >
멀티플렉서(MUX2)의 출력값 및 입력값(x(n))은 가산기(A11-A1n)의 입력 단자(a)에 제공되며, 가산기(A11-A1n)의 합계(s(n)) 및 캐리(c(n))는 레지스터(71,73)를 통하여 가산기(A11-A1n)의 입력 단자(b) 및 캐리 입력 단자(Cin)에 각각 제공된다. 즉, 도 7의 연산기(331,333,351,353)는 자릿수 보정된 부분 합인 캐리와 합계를 각각 누적(또는 감산) 하는 것이다.The output value and the input value x (n) of the multiplexer MUX2 are provided to the input terminal a of the adders A11-A1n and the sum s (n) of the adders A11- (n) are provided to the input terminal b and the carry input terminal C in of the adders A11-A1n via registers 71 and 73, respectively. That is, the operators 331, 333, 351, and 353 in FIG. 7 accumulate (or subtract) the summation and carry, which are partial summations of which the digits are corrected, respectively.
누적 회로(33,35) 결과 값은 누적 회로(37)에 제공되며, 누적 회로는 도 3의 누적 회로(27)와 동일하게 구성된다. 여기서, 도 6의 실시예에서는 도 4의 실시예와는 상이하게 레지스터(R5,R6,R7,R8)가 구성되지 않으나, 상기 누적 회로(33),(35)에서 연산기(331, 333, 351, 353)의 출력이 레지스터(341-367)에 의해 순차적으로 누적된 후에 연산기(335, 337, 355, 357)에서 최종 연산된 후에 누적 회로(37)에 제공되는 바, 누적 회로(37)는 클럭(C × (L-1))에 동기 되어 누적 회로(33,35)의 결과 값을 연산할 수 있음은 본 발명의 기술 분야에서 통상의 지식을 가진 자는 용이하게 알 수 있을 것이다.The results of the accumulation circuits 33 and 35 are provided to the accumulation circuit 37, and the accumulation circuit is configured the same as the accumulation circuit 27 of Fig. In the embodiment of FIG. 6, registers R5, R6, R7, and R8 are not configured differently from the embodiment of FIG. 4, but arithmetic operators 331, 333, and 351 And 353 are sequentially accumulated by the registers 341 to 367 and then finally computed by the operators 335 to 337 and provided to the accumulation circuit 37 so that the accumulation circuit 37 It is easily understood by those skilled in the art that the result of the accumulation circuits 33 and 35 can be calculated in synchronization with the clock (C 占 (L-1) ).
이하에서는 상술한 바와 같이 구성된 본 발명 장치의 작동을 설명한다.Hereinafter, the operation of the apparatus of the present invention constructed as described above will be described.
먼저, 필터 계수를 계수 레지스터(13, 15)에 각각 저장한다. 그리고 난 후 새로운 입력 데이터를 실수 데이터 레지스터(1) 및 허수 데이터 레지스터(3)에 각각 입력하고, 먼저 실수 출력 데이터를 구하는 작업을 수행한다. 따라서, 실수 데이터 레지스터(1) 및 허수 데이터 레지스터(3)에 저장된 입력 데이터의 최하위 비트의 집합이 멀티플렉서(5,11)에 제공되며, 멀티플렉서(5)는 실수 데이터 레지스터(1)의 실수 입력 데이터를 멀티플렉서(5)에 제공하고, 멀티플렉서(7)는 허수 데이터 레지스터(3)의 허수 입력 데이터를 멀티플렉서(11)에 각각 제공한다. 실수 출력 데이터를 산출하기 위하여 멀티플렉서(9)는 실수 입력 데이터에 대응하는 필터 계수 레지스터(13)의 필터 계수를 선택하여 덧셈기 트리(17)에 제공하며, 멀티플렉서(11)는 허수 입력 데이터에 대응하는 필터 계수 레지스터(15)의 필터 계수를 선택하여 덧셈기 트리(17)에 제공한다.First, the filter coefficients are stored in the coefficient registers 13 and 15, respectively. Then, new input data is input to the real data register 1 and the imaginary data register 3, respectively, and first, the real output data is obtained. The least significant bit of the input data stored in the real data register 1 and the imaginary data register 3 is provided to the multiplexers 5 and 11 and the multiplexer 5 outputs the real input data To the multiplexer 5, and the multiplexer 7 provides the imaginary input data of the imaginary data register 3 to the multiplexer 11, respectively. In order to calculate the real output data, the multiplexer 9 selects the filter coefficient of the filter coefficient register 13 corresponding to the real input data and provides it to the adder tree 17, and the multiplexer 11 converts the The filter coefficient of the filter coefficient register 15 is selected and provided to the adder tree 17. [
덧셈기 트리(17,19)는 선택된 필터 계수를 가산한 후에 자릿수 보정 레지스터(R1-R4)에 제공한다. 자릿수 보정 레지스터(R1-R4)는 덧셈기 트리(17,19)로부터의 결과 값을 순차적으로 시프트 하여 자릿수를 보정하며, 고속 누산기(20)는 자릿수 보정된 필터 계수 값들을 순차적으로 가산하되, 최상위 비트의 합은 감산을 행함으로써, 수학식 7의 실수 계수 부분 자릿수 보정된 부분 합을 누적하는 수식을 행한다. 이 후에 고속 누산기(20)는 누적된 부분 합을 이용하여 실수 출력 데이터를 산출한다.The adder trees 17 and 19 add the selected filter coefficients and provide them to the digit correction registers R1 to R4. The high-order accumulator 20 sequentially adds the digit-corrected filter coefficient values, and the most significant bit (MSB) is added to the most significant bit (MSB) Is subjected to subtraction to carry out a formula for accumulating the partial sum corrected by the real number count part of the equation (7). Thereafter, the high-speed accumulator 20 calculates the real output data using the accumulated partial sum.
고속 누산기(20)가 실수 출력 데이터를 산출하는 동안에멀티플렉서(5,7,9,11)는 허수 출력 데이터를 구하는 작업을 수행한다. 즉, 실수 데이터 레지스터(1) 및 허수 데이터 레지스터(3)에 저장된 입력 데이터의 최하위 비트의 집합이 멀티플렉서(5,11)에 제공되며, 멀티플렉서(5)는 허수부 데이터 레지스터(1)의 허수 입력 데이터를 멀티플렉서(9)에 제공하고, 멀티플렉서(7)는 실수 데이터 레지스터(3)의 실수 입력 데이터를 멀티플렉서(11)에 각각 제공한다. 허수 출력 데이터를 산출하기 위하여 멀티플렉서(9)는 허수 입력 데이터에 대응하는 필터 계수 레지스터(13)의 필터 계수를 선택하여 덧셈기 트리(17)에 제공하며, 멀티플렉서(11)는 실수 입력 데이터에 대응하는 필터 계수 레지스터(15)의 필터 계수를 선택하여 덧셈기 트리(17)에 제공한다.While the high-speed accumulator 20 calculates the real output data, the multiplexers 5, 7, 9, 11 perform the operation of obtaining the imaginary output data. That is, a set of the least significant bits of the input data stored in the real data register 1 and the imaginary data register 3 is provided to the multiplexers 5 and 11, and the multiplexer 5 outputs the imaginary data of the imaginary data register 1 And provides the data to the multiplexer 9, and the multiplexer 7 provides the real input data of the real data register 3 to the multiplexer 11, respectively. In order to calculate the imaginary output data, the multiplexer 9 selects and provides the filter coefficients of the filter coefficient register 13 corresponding to the imaginary input data to the adder tree 17, The filter coefficient of the filter coefficient register 15 is selected and provided to the adder tree 17. [
덧셈기 트리(17,19)는 선택된 필터 계수를 가산한 후에 자릿수 보정 레지스터(R1-R4)에 제공한다. 자릿수 보정 레지스터(R1-R4)는 덧셈기 트리(17,19)로부터의 결과 값을 순차적으로 시프트 하여 자릿수를 보정하며, 고속 누산기(20)는 자릿수 보정된 필터 계수 값들을 순차적으로 가산하되, 최상위 비트의 합은 감산을 행함으로써, 수학식 7의 실수 계수 부분 자릿수 보정된 부분 합을 누적하는 수식을 행한다. 이 후에 고속 누산기(20)는 누적된 부분 합을 이용하여 허수 출력 데이터를 산출한다.The adder trees 17 and 19 add the selected filter coefficients and provide them to the digit correction registers R1 to R4. The high-order accumulator 20 sequentially adds the digit-corrected filter coefficient values, and the most significant bit (MSB) is added to the most significant bit (MSB) Is subjected to subtraction to carry out a formula for accumulating the partial sum corrected by the real number count part of the equation (7). Thereafter, the high-speed accumulator 20 calculates the imaginary output data using the accumulated partial sum.
마찬가지로 고속 누산기(20)가 누적된 부분 합을 이용하여 허수 출력 데이터를 출력하는 동안에 입력 데이터 레지스터(1,3)에는 새로운 입력 데이터를 받아서 저장하고, 실수 출력 데이터를 구하기 위한 과정이 수행된다.Similarly, while the high-speed accumulator 20 outputs the imaginary output data using the accumulated partial sum, new input data is received and stored in the input data registers 1 and 3, and a process for obtaining the real output data is performed.
이러한 과정을 반복 수행함으로써 필터링 작업이 수행되는 것이다.The filtering operation is performed by repeating this process.
이와 같이 본 발명에서는 종래의 필터 구조를 사용한 하드웨어보다 2의 보수 형태의 데이터의 특성을 사용하여 더 적은 자원을 사용하여 설계할 수 있다는 효과가 있다.As described above, according to the present invention, it is possible to design the system using fewer resources by using the data characteristics of the two's complement type rather than the hardware using the conventional filter structure.
또한, 본 발명에서는 그리고 덧셈기 트리 부분을 CSA로 구현하여 연산 회로의 지연 시간을 줄였고, 최종 결과를 구하는 CPA를 레지스터를 적절히 사용하여 모든 부분 합 구하는 클럭(C × (L-1))에 의해 구동되도록 하여 병목 현상을 제거함으로서 매우 빠른 속도로 필터링을 수행할 수 있다는 효과가 있다.In the present invention, the delay time of the operation circuit is reduced by implementing the adder tree portion in the CSA, and the CPA for obtaining the final result is driven by the clock (Cx (L-1) ) So that the filtering can be performed at a very high speed by eliminating the bottleneck phenomenon.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000016364A KR100335252B1 (en) | 2000-03-30 | 2000-03-30 | Fast digital filter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000016364A KR100335252B1 (en) | 2000-03-30 | 2000-03-30 | Fast digital filter |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010095399A KR20010095399A (en) | 2001-11-07 |
KR100335252B1 true KR100335252B1 (en) | 2002-05-06 |
Family
ID=19660027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000016364A KR100335252B1 (en) | 2000-03-30 | 2000-03-30 | Fast digital filter |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100335252B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410700B1 (en) | 2018-09-28 | 2019-09-10 | The Mitre Corporation | Systems and method for a low-power correlator architecture using shifting coefficients |
US10879877B1 (en) | 2018-09-28 | 2020-12-29 | The Mitre Corporation | Systems and method for a low power correlator architecture using distributed arithmetic |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06181426A (en) * | 1992-12-14 | 1994-06-28 | Kawasaki Steel Corp | Digital filter |
JPH07193467A (en) * | 1993-12-27 | 1995-07-28 | Nec Corp | Adaptive filter correction coefficient arithmetic circuit |
KR970077986A (en) * | 1996-05-29 | 1997-12-12 | 문정환 | Digital filter |
KR19980082292A (en) * | 1997-05-02 | 1998-12-05 | 양승택 | Finite impulse response filter for high speed processing |
JPH11266140A (en) * | 1997-12-23 | 1999-09-28 | Koninkl Philips Electronics Nv | Programmable circuit for providing digital filter |
-
2000
- 2000-03-30 KR KR1020000016364A patent/KR100335252B1/en not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06181426A (en) * | 1992-12-14 | 1994-06-28 | Kawasaki Steel Corp | Digital filter |
JPH07193467A (en) * | 1993-12-27 | 1995-07-28 | Nec Corp | Adaptive filter correction coefficient arithmetic circuit |
KR970077986A (en) * | 1996-05-29 | 1997-12-12 | 문정환 | Digital filter |
KR19980082292A (en) * | 1997-05-02 | 1998-12-05 | 양승택 | Finite impulse response filter for high speed processing |
JPH11266140A (en) * | 1997-12-23 | 1999-09-28 | Koninkl Philips Electronics Nv | Programmable circuit for providing digital filter |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410700B1 (en) | 2018-09-28 | 2019-09-10 | The Mitre Corporation | Systems and method for a low-power correlator architecture using shifting coefficients |
US10879877B1 (en) | 2018-09-28 | 2020-12-29 | The Mitre Corporation | Systems and method for a low power correlator architecture using distributed arithmetic |
US11528013B2 (en) | 2018-09-28 | 2022-12-13 | The Mitre Corporation | Systems and method for a low power correlator architecture using distributed arithmetic |
Also Published As
Publication number | Publication date |
---|---|
KR20010095399A (en) | 2001-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7043520B2 (en) | High-speed/low power finite impulse response filter | |
US5255216A (en) | Reduced hardware look up table multiplier | |
EP0101318B1 (en) | Digital filters | |
KR100302093B1 (en) | How to multiply the binary input signal with the tap coefficient in the crossover digital finite impulse response filter and design the circuit arrangement and crossover digital filter | |
EP0416869B1 (en) | Digital adder/accumulator | |
KR20020032157A (en) | Multiplierless Finite Impulse Response filter | |
US6304133B1 (en) | Moving average filter | |
JPH04205026A (en) | Divider circuit | |
KR100335252B1 (en) | Fast digital filter | |
US7167514B2 (en) | Processing of quinary data | |
US20030169939A1 (en) | Apparatus and method for Fast Hadamard Transforms | |
US11494165B2 (en) | Arithmetic circuit for performing product-sum arithmetic | |
US6993545B2 (en) | Digital filter with protection against overflow oscillation | |
US5948051A (en) | Device improving the processing speed of a modular arithmetic coprocessor | |
US5031137A (en) | Two input bit-serial multiplier | |
US10305451B1 (en) | Multiplier-based programmable filters | |
JPH0981541A (en) | Accumulator | |
Kim et al. | Digit-serial modular multiplication using skew-tolerant domino CMOS | |
KR100235537B1 (en) | Variable tap of digital filter and multiplier circuit thereof | |
CN111610955B (en) | Data saturation and packaging processing component, chip and equipment | |
JP2864598B2 (en) | Digital arithmetic circuit | |
JP3123060B2 (en) | Digital arithmetic circuit | |
KR0162320B1 (en) | Fir filter for vlsi | |
JP3074958B2 (en) | Serial multiplier with addition function | |
JPH04109756A (en) | Matrix arithmetic circuit and image sensor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |