KR19980073359A - Variable tap structure of digital filter and its multiplication circuit - Google Patents

Variable tap structure of digital filter and its multiplication circuit Download PDF

Info

Publication number
KR19980073359A
KR19980073359A KR1019970008597A KR19970008597A KR19980073359A KR 19980073359 A KR19980073359 A KR 19980073359A KR 1019970008597 A KR1019970008597 A KR 1019970008597A KR 19970008597 A KR19970008597 A KR 19970008597A KR 19980073359 A KR19980073359 A KR 19980073359A
Authority
KR
South Korea
Prior art keywords
register
output
selector
registers
bits
Prior art date
Application number
KR1019970008597A
Other languages
Korean (ko)
Other versions
KR100235537B1 (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 KR1019970008597A priority Critical patent/KR100235537B1/en
Publication of KR19980073359A publication Critical patent/KR19980073359A/en
Application granted granted Critical
Publication of KR100235537B1 publication Critical patent/KR100235537B1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0225Measures concerning the multipliers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

가. 청구범위에 기재된 발명이 속한 기술분야: 본 발명은 FIR필터의 전체적인 하드웨어의 크기를 감소시키는 기술에 관한 것이다.end. TECHNICAL FIELD OF THE INVENTION The present invention relates to techniques for reducing the overall hardware size of an FIR filter.

나. 발명이 해결하려고 하는 기술적 과제: 하드웨어 크기를 감소시킬 수 있는 디지털 필터의 가변탭 구조와 그 필터에 이용될 수 있는 곱셈회로를 구현한다.I. SUMMARY OF THE INVENTION The present invention provides a variable tap structure of a digital filter capable of reducing hardware size and a multiplier circuit that can be used in the filter.

다. 발명의 해결방법의 요지: 본 발명은 탭을 가변시키는 구조의 필터를 선택기들로 구현하므로써 사용된 게이트수를 줄이고 전체적인 하드웨어의 크기를 줄이는 것을 특징으로 한다. 또한 본 발명은 M비트로 구현된 입력단을 가지는 곱셈회로를 제공하므로써 곱셈회로의 하드웨어의 크기를 약 절반으로 줄이는 것을 특징으로 한다. 그리고 또한 본 발명은 비트-시리얼 곱셈 알고리즘을 개선하여 필터에 적용하여 동시에 2개의 부분곱을 생성하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다.All. SUMMARY OF THE INVENTION The present invention is characterized in that the number of gates used and the size of the overall hardware are reduced by implementing a filter having a variable tap structure with selectors. Also, the present invention provides a multiplication circuit having an input stage implemented with M bits, thereby reducing the size of the hardware of the multiplication circuit to about half. Further, the present invention is characterized in that the bit-serial multiplication algorithm is improved and applied to a filter to generate two partial products at the same time, thereby doubling the operation speed according to the multiplication processing.

라. 발명의 중요한 용도: 디지털 필터의 하드웨어 크기를 감소시키는 효과가 있다.la. An important use of the invention is to reduce the hardware size of the digital filter.

Description

디지털 필터의 가변탭 구조 및 그의 곱셈회로Variable tap structure of digital filter and its multiplication circuit

본 발명은 디지털 필터에 관한 것으로, 특히 하드웨어의 크기를 감소시키기 위한 디지털 필터의 가변탭 구조 및 그의 곱셈회로에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital filter, and more particularly to a variable tap structure of a digital filter and a multiplication circuit thereof for reducing the size of hardware.

디지털 필터의 발달 추이는 필터가 고정된 탭을 갖도록 하는 것에서 시작하여 현재는 가변탭을 갖도록 하는 것으로 발전해 왔다. 고정된 탭(탭수 8 또는 16)을 갖는 반도체 칩(예를 들어, Harris Semiconductor Inc.사에 의해 제조 및 판매되고 있는 형명 HSP43168의 DSP칩)을 사용할 경우에는 사용하지 않는 탭에 영(zero)을 인가하여야 하기 때문에 필터링시 영의 탭수만큼 불필요한 연산을 수행하여야 하며, 이러한 불필요한 연산은 연산회로의 효율을 현저하게 저하시킨다는 단점이 있다.The evolution of the digital filter has evolved from having the filter have a fixed tap to now have a variable tap. When using a semiconductor chip (for example, a DSP chip of a type HSP43168 manufactured and sold by Harris Semiconductor Inc.) having a fixed tap (tap number of 8 or 16), zero is applied to the unused tab It is necessary to perform an unnecessary operation as much as the number of taps in the filtering at the time of filtering, and this unnecessary operation has a disadvantage in that the efficiency of the operation circuit is remarkably lowered.

이러한 문제점을 해결하기 위해 현재 가변탭 구조를 가지는 필터가 제안되어 여러 응용분야에서 널리 사용되고 있다. 예컨대, Motorola Inc.에 의해 제조 및 판매되고 있는 형명 DSP56200, Harris Semiconductor Inc.에 의해 제조 및 판매되고 있는 형명 HSP4312, HSP43481/883, HSP43891들에는 탭을 가변시키는 기술이 채택되어 있다. 이러한 가변탭 구조를 가지는 필터들은 공통적으로 내부 또는 외부에 메모리(RAM,ROM)을 구비하고 있으며, 이 메모리에 주소를 부여하기 위한 주소생성유니트(Address Generation Unit)와, 메모리에/로부터 반복적으로 데이터를 읽기/쓰기를 할 수 있도록 하는 모듈로유니트(Modulo Unit)를 더 구비하는 구조로 되어 있다.In order to solve these problems, a filter having a variable tap structure has been proposed and widely used in various applications. For example, the TSP56200, which is manufactured and sold by Motorola Inc., and the HSP4312, HSP43481 / 883, and HSP43891, which are manufactured and sold by Harris Semiconductor Inc., have adopted a technique of varying the tap. Filters having such a variable tap structure commonly include an internal or external memory (RAM, ROM), an address generation unit for giving an address to the memory, and an address generation unit for repeatedly And a modulo unit for reading / writing data from / to the memory card.

상기와 같은 가변탭 구조를 가지는 필터내에 구비된 주소생성유니트 및 모듈로유니트의 동작은 다음과 같다. 주소생성유니트는 메모리에 정해진 탭수만큼의 주소를 부여하여 순차적으로(sequential) 데이터를 읽거나 쓸 수 있도록 하여 탭수를 가변시킨다. 이때 주소값을 증가시키기 위하여 가산기의 출력 주소값에 1 또는 오프셋(offset)값을 더하게 된다. 이를 위해 메모리 전체 워드에 읽기/쓰기할 수 있는 R비트 가산기(예를 들어, 메모리가 1024워드()이면 R은 10이다.), R비트 오프셋레지스터, 주소값을 저장하기 위한 R비트 출력레지스터가 요구된다. 데이터 및 필터계수를 메모리로부터 반복적으로 읽기/쓰기 위해 사용되는 모듈로유니트는 메모리에 탭수만큼의 시작(start)주소와 끝(end)주소를 부여한 후 증가되는 주소값이 끝주소와 같은 경우에 시작주소로부터 데이터를 다시 읽어 반복적으로 사용하게 된다. 이를 위해 시작주소와 끝주소를 저장하기 위한 R비트 레지스터와, 끝주소와 증가되는 주소값을 비교하기 위한 R비트 비교기와, 시작주소를 받아들이는 하드웨어가 요구된다.The operation of the address generating unit and the module unit included in the filter having the variable tap structure is as follows. The address generation unit changes the number of taps by giving a predetermined number of taps to the memory so that sequential data can be read or written. In order to increase the address value, the output address value of the adder is incremented by 1 or an offset value. To do this, an R bit adder that can read / write to the entire memory word (for example, if the memory has 1024 words ), R is 10), an R bit offset register, and an R bit output register for storing the address value are required. A module that is used to repeatedly read and write data and filter coefficients from memory. The unit assigns start and end addresses to the number of taps in memory and then starts when the incremented address value equals the end address. The data is read back from the address and used repeatedly. To this end, an R bit register for storing the start address and end address, an R bit comparator for comparing the end address and the incremented address value, and a hardware for receiving the start address are required.

이와 같이 디지털 필터의 가변탭 구조를 구현하기 위해서는 메모리, R비트의 가산기, 비교기들, 다수의 레지스터들과 같은 구성요소들이 요구됨에 따라 전체적으로 필터의 하드웨어 손실이 커지는 단점이 있다.In order to implement the variable tap structure of the digital filter, components such as a memory, an R-bit adder, a comparator, and a plurality of registers are required.

한편, 디지털 필터의 주요한 구성요소를 이루는 곱셈기는 VLSI 칩 구현시 die면적을 많이 차지하므로 칩의 가격을 증가시킨다. 그러므로 필터의 경우 실시간 처리가 만족되는 조건 아래 곱셈기를 제거하는 점이 유리하다. 또한 다수의 곱셈기를 필요로 하는 신호 및 영상처리용 칩에는 다수의 곱셈기를 집적시키기가 어려우므로 곱셈기를 대체하여 적은 사이클에 곱셈을 수행하는 회로가 요구된다. 종전에 곱셈기를 사용하지 않고 비트단위로 곱셈을 처리하는 방식으로는 통상 비트-시리얼(bit-serial) 방식 또는 쿼지-시리얼(quasi-serial) 방식이 있다. 비트-시리얼 방식은 가산시프트(add shift) 연산을 수행하는 방식으로 덧셈(가산)을 수행한 후 자리수 정렬을 위하여 시프트를 수행하게 된다. 이와 같은 방법을 M번 반복하게 되면 곱셈결과가 누산기에 저장되게 된다. 즉, 비트-시리얼 알고리즘을 이용한 곱셈처리는 승수의 LSB(Least Significant Bit)부터 상위비트로 시트프시키면서 피승수를 곱한 결과에 그 이전에 계산된 부분곱(partial product)을 누적시키는 방법으로 동시에 가산시프트 연산을 수행하는 구조에서는 M비트×M비트 곱셈연산을 위해 총 M사이클이 요구된다. 또한 연산을 위한 하드웨어로는 M비트 레지스터 한 개와 2M비트 레지스터 두 개, 그리고 2M비트 가산기가 필요하므로 하드웨어의 부담이 크다고 말할 수 있다.On the other hand, the multiplier, which is a main component of the digital filter, increases the price of the chip because it occupies a lot of die area when the VLSI chip is implemented. Therefore, it is advantageous to remove the multiplier under the condition that the real-time processing is satisfied in the case of the filter. Also, since it is difficult to integrate a multiplicity of multipliers in a signal and image processing chip requiring a large number of multipliers, a circuit for performing a multiplication in a small number of cycles is required instead of a multiplier. Conventionally, a bit-serial method or a quasi-serial method is used as a method of performing multiplication in units of bits without using a multiplier. The bit-serial scheme performs an add (add) operation in the manner of performing an add shift operation, and performs a shift for ordering of digits. If this method is repeated M times, the multiplication result is stored in the accumulator. That is, a multiplication process using a bit-serial algorithm is a method of accumulating previously calculated partial products on a product obtained by multiplying a least significant bit (LSB) , A total M cycles are required for an M bit by M bit multiplication operation. In addition, hardware for operation requires one M-bit register, two 2M-bit registers, and a 2M-bit adder.

쿼지-시리얼 방식의 곱셈기 또한 가산시프트(add shift) 연산방식을 이용하여 곱셈을 수행하게 된다. 그러나 가산시프트 방식에 따른 M비트×M비트의 곱셈연산은 M비트의 데이터와 자리수를 시프트한 M비트의 데이터를 더해주는 방식인데 비해, 이 쿼지-시리얼 방식에 따른 곱셈연산은 부분곱(partial product)들의 각 자리수에 포함되는 디지트들을 한꺼번에 더해주어 각 자리수별로 계산하는 방식이다. 상기 쿼지-시리얼 방식에 따르면, 먼저 2M-1비트의 시프트레지스터의 MSB부분의 M비트에 피승수를 저장하고 나머지 LSB부분에 000…0을 저장한다. 먼저 피승수의 LSB와 승수의 LSB, 피승수의 LSB 이하의 000…0과 승수의 두 번째 LSB부터 MSB까지 논리합 연산한 후 그 결과에서 1의 개수를 카운트한다. 다음 사이클에서는 피승수를 시프트라이트(오른쪽으로 1번 시프트)시킨 후 다시 같은 형태로 논리곱시켜 카운트한다. 이는 피승수가이고, 승수가일 때과 같이 함께 더해져야 할 같은 자리수의 부분곱들을 한꺼번에 각 자리수 별로 계산한다는 것을 의미한다. 이러한 쿼지-시리얼 방식에 따른 M비트끼리의 곱셈의 경우, M번의 시프트사이클과 M번의 카운트 사이클이 사용된다. 따라서 총 2M번의 사이클이 소모되므로 곱셈 연산의 속도가 느리다는 단점이 있으며 워드길이(word length)가 15비트 이하인 경우 비트-시리얼 곱셈 방식보다 하드웨어 소모가 더 많아서 비효율적이 된다.The multiplier of the quasi-serial type also performs the multiplication by using the add shift operation method. However, in the multiplication operation of M bits × M bits according to the additive shift method, the M bits of data and the M bits of data shifted by the number of digits are added, whereas the multiplication operation according to the quasi-serial method is a partial product, And the digits included in each digit of the digits are added at once to calculate by each digit. According to the quasi-serial method, first, a multiplicand is stored in the M bits of the MSB portion of the 2M-1 bit shift register, and 000 is stored in the remaining LSB portion. 0 is stored. First, LSB of multiplicand LSB of multiplier, LSB of multiplicand ... 0 " and MSB from the second LSB of the multiplier, and then counts the number of 1's in the result. In the next cycle, the multiplicand is shifted to the right (shifted to the right by one shift), and the result is logically multiplied again to be counted. That is, And the multiplier is when Which means that the partial products of the same number of digits to be added together are calculated by each digit at a time. In the case of multiplying M bits according to the quasi-serial method, M shift cycles and M count cycles are used. Therefore, the multiplication operation speed is slow because 2M cycles are consumed in total. When the word length is 15 bits or less, the hardware consumption is more inefficient than the bit-serial multiplication method.

따라서 본 발명의 목적은 가변 탭 구조를 가지는 디지털 필터의 전체적인 하드웨어의 크기를 감소시키기 위한 데이터 입력장치를 제공하는데 있다.SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a data input device for reducing the overall size of hardware of a digital filter having a variable tap structure.

본 발명의 다른 목적은 가변 탭 구조를 가지는 디지털 필터의 전체적인 하드웨어의 크기를 감소시키기 위한 필터계수 입력장치를 제공하는데 있다.It is another object of the present invention to provide a filter coefficient input device for reducing the overall hardware size of a digital filter having a variable tap structure.

본 발명의 또다른 목적은 디지털 필터의 주요한 구성요소를 이루는 곱셈기의 하드웨어적인 크기를 감소시키는데 있다.Another object of the present invention is to reduce the hardware size of a multiplier constituting a main component of a digital filter.

본 발명의 또다른 목적은 곱셈회로의 곱셈연산에 따른 속도를 향상시키는데 있다.It is another object of the present invention to improve the speed of a multiplication operation of a multiplication circuit.

본 발명의 또다른 목적은 워드길이가 변경되는 경우에 곱셈연산을 위한 하드웨어의 크기를 증가됨을 방지하는데 있다.Another object of the present invention is to prevent an increase in the size of hardware for a multiplication operation when the word length is changed.

이러한 목적들을 달성하기 위한 본 발명은 탭을 가변시키는 구조의 필터를 선택기들로 구현하므로써 사용된 게이트수를 줄이고 전체적인 하드웨어의 크기를 줄이는 것을 특징으로 한다. 또한 본 발명은 M비트로 구현된 입력단을 가지는 곱셈회로를 제공하므로써 곱셈회로의 하드웨어의 크기를 약 절반으로 줄이는 것을 특징으로 한다. 그리고 또한 본 발명은 비트-시리얼 곱셈 알고리즘을 개선하여 필터에 적용하여 동시에 2개의 부분곱을 생성하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다.In order to achieve the above objects, the present invention is characterized in that the number of gates used is reduced and the size of the entire hardware is reduced by implementing a filter having a tap varying structure with selectors. Also, the present invention provides a multiplication circuit having an input stage implemented with M bits, thereby reducing the size of the hardware of the multiplication circuit to about half. Further, the present invention is characterized in that the bit-serial multiplication algorithm is improved and applied to a filter to generate two partial products at the same time, thereby doubling the operation speed according to the multiplication processing.

도 1은 본 발명에 따른 가변탭 구조의 데이터 블록을 보여주는 도면.BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing data blocks of a variable tap structure according to the present invention. Fig.

도 2는 도 1에 도시된 데이터 블록의 구체적인 실시예를 보여주는 도면.Figure 2 shows a specific embodiment of the data block shown in Figure 1;

도 3은 본 발명에 따른 가변탭 구조의 필터계수 블록을 보여주는 도면.3 is a view showing a filter coefficient block of a variable tap structure according to the present invention.

도 4는 도 3에 도시된 필터계수 블록의 구체적인 실시예를 보여주는 도면.Fig. 4 shows a specific embodiment of the filter coefficient block shown in Fig. 3; Fig.

도 5는 본 발명에 따른 곱셈연산을 행하는 회로를 포함하는 FIR필터의 구성을 보여주는 도면.5 is a diagram showing a configuration of an FIR filter including a circuit for performing a multiplication operation according to the present invention;

이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의내려진 용어들로서 이는 사용자 또는 칩설계자의 의도 또는 관례 등에 따라 달라질 수 있으므로, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be described with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components throughout the drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

하기에서 본 발명에 따른 디지털 필터는 크게 두 가지 측면에서 설명될 것이다. 첫 번째 측면에 따르면, 본 발명의 디지털 필터는 데이터의 경우에는 궤환루프 구조에 따라 인가하며, 계수의 경우에는 반복적으로 저장하여 사용하므로써 하드웨어의 크기를 줄이는 것을 특징으로 한다. 이러한 측면에 따른 디지털 필터의 효과는 후술될 도 1 내지 도 3의 설명으로부터 명확해질 것이다. 두 번째 측면에 따르면, 본 발명의 곱셈회로는 전용의 곱셈기를 사용하는 대신에 M비트로 구현된 입력단을 가지며, 개선된 비트-시리얼 곱셈 알고리즘을 수행하므로써 하드웨어의 크기를 줄이고, 또한 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다. 이러한 측면에 따른 곱셈회로의 효과는 후술될 도 5의 설명으로부터 명확해질 것이다.The digital filter according to the present invention will be described in two main respects. According to a first aspect, the digital filter of the present invention is applied according to a feedback loop structure in the case of data, and is repeatedly stored and used in the case of data, thereby reducing the size of the hardware. The effect of the digital filter according to this aspect will become clear from the description of FIGS. 1 to 3 to be described later. According to the second aspect, the multiplication circuit of the present invention has an input stage implemented with M bits instead of using a dedicated multiplier, performs an improved bit-serial multiplication algorithm to reduce the size of the hardware, And the speed is doubled. The effect of the multiplication circuit according to this aspect will become clear from the description of FIG. 5 to be described later.

Ⅰ. 가변 탭 구조를 가지는 필터Ⅰ. A filter having a variable tab structure

가변 탭 구조를 가지는 본 발명에 따른 필터는 크게 데이터 블록의 궤환루프 구조와 계수 블록의 계수 반복기법으로 나뉘어진다. 하기에서는 본 발명의 일예로써 필터의 최대 탭수가 64이고, 계수가 8비트인 경우를 예로 하여 설명된다. 또한 탭을 가변시키기 위한 선택기를 MUX(multiplexer)로 사용하였으며, 디지털 필터는 구현의 용이성 때문에 유한장임펄스응답(Finite Impulse Response: 이하 FIR이라 칭함)필터로 정하였다. 그러나 본 발명은 이러한 경우에만 적용되는 것이 아나라 탭수 및 계수가 확장 및 축소되는 경우, MUX 이외의 선택기들(tri-state buffer, decoder 등)을 사용하는 경우, IIR(Infinite Impulse Response)필터로 구현하는 경우에도 용이하게 적용될 수 있다는 사실에 유의하여야 한다.The filter according to the present invention having a variable tap structure is largely divided into a feedback loop structure of a data block and a coefficient repetition technique of a coefficient block. In the following, an example of the present invention will be described by taking as an example the case where the maximum number of taps of the filter is 64 and the coefficient is 8 bits. In addition, a selector for varying the tap is used as a multiplexer (MUX). The digital filter is defined as a finite impulse response (FIR) filter because of its ease of implementation. However, the present invention is applicable only to such cases. In the case where the number of taps and coefficients of the NARAN is expanded and reduced, when using selectors other than MUX (tri-state buffers, decoders, etc.), they are implemented as Infinite Impulse Response It should be noted that the present invention can be easily applied even when the present invention is applied.

도 1은 본 발명에 따른 필터의 데이터 블록의 궤환루프구조를 보여주는 도면으로, 이 블록은 64개의 8비트 레지스터열 구조 R1∼R64와, 1개의 8×1 MUX와, 8개의 MUX셀 MC1∼MC8로 구성됨을 알 수 있다. 레지스터열의 각 레지스터들은 입력데이터를 다음에 연결된 레지스터로 전송하며 이렇게 전송된 입력데이터는 결과적으로 최종단인 64번 레지스터 R64로 출력된다. 이때 입력데이터는 탭수 N에 따라 도 1의 상위에 있는 MUX셀 MC1∼MC8과 연결된 데이터 레지스터 1,8,16,24,32,40,48,56 (R1,R8,R16,R24,R32,R40,R48,R56)중 선택된 하나의 레지스터로 입력된다. 1개의 8비트 2×1 MUX로 구성된 MUX셀 MC1은 궤환된 과거의 입력 데이터열 또는 새로운 입력 데이터를 받아들이며, 2개의 MUX로 구성된 MUX셀 MC2∼MC8은 궤환된 과거의 입력 데이터열 또는 새로운 입력데이터를 받아들이며 레지스터열을 연결해주는 기능을 담당한다.FIG. 1 shows a feedback loop structure of a data block of a filter according to the present invention, which includes 64 8-bit register column structures R1 to R64, one 8 × 1 MUX, and eight MUX cells MC1 to MC8 As shown in FIG. Each register in the register column transfers the input data to the next connected register, and the input data thus transferred is output to register 64, which is the final stage, At this time, the input data is divided into the data registers 1, 8, 16, 24, 32, 40, 48, 56 (R1, R8, R16, R24, R32, R40 , R48, and R56. The MUX cell MC1 composed of one 8-bit 2x1 MUX accepts a past input data stream or new input data fed back, and the MUX cells MC2 to MC8 composed of two MUXs receive the past input data stream or the new input data And is responsible for connecting the register columns.

도 3은 본 발명에 따른 필터의 계수 블록을 보여주는 도면으로, 이 블록은 64개의 8비트 레지스터열로 구성됨을 알 수 있다. 입력 계수는 탭수에 따라 하나의 계수 레지스터 1,9,17,25(R1,R9,R17,R25)로 입력된다. 이때 데이터 블록과의 주요한 차이는 N을 주기로 궤환되는 계수열이 좌측의 8×1 MUX를 통해 직접 출력되는 점과 계수반복기법을 이용하여 MUX 셀 수를 줄인다는 점이다.FIG. 3 is a diagram showing a coefficient block of a filter according to the present invention, which is made up of 64 8-bit register columns. Input coefficients are input into one coefficient register 1, 9, 17, 25 (R1, R9, R17, R25) according to the number of taps. The main difference with the data block is that the number of MUX cells is reduced by using the coefficient repetition technique and the fact that the coefficient sequence fed back to the N is output directly through the 8 × 1 MUX on the left.

Ⅰ-1. 궤환루프 구조I-1. Feedback loop structure

궤환루프 구조는 도 1의 좌측에 있는 하나의 8비트 8×1 MUX와 상단에 있는 다수의 MUX셀 MC1∼MC8을 제어하여 탭수를 가변시킨다. 64개의 레지스터중 64번 레지스터 R64는 연산기로의 입력과 한 탭(one tap)의 역할을 담당하며 나머지 63개의 레지스터들 R1∼R63은 궤환루프를 통해 원하는 탭수만큼의 레지스터들로 원환(circular) 형태의 레지스터 열 DRA1∼DRA8을 구성한다. 8×1 MUX는 56번 레지스터 R56부터 63번 레지스터 R63의 출력중의 하나를 선택하며, MUX셀 MC1∼MC8은 궤환되는 데이터, 입력데이터 또는 순차적인 레지스터 열을 구성하기 위한 입력중 하나를 선택한다. 탭수가 N이라고 하면 원환 형태로 연결된 레지스터열의 레지스터 수는 N-1개이며 나머지 한 탭은 64번 레지스터 R64가 담당하며, 이때 R64는 연산기의 입력으로도 사용된다.The feedback loop structure controls the number of taps by controlling one 8-bit 8x1 MUX on the left side of FIG. 1 and a plurality of MUX cells MC1 through MC8 on the upper side. 64 of the 64 registers R64 serves as input to the arithmetic logic unit and one tap, and the remaining 63 registers R1 to R63 are connected to the registers by the desired number of taps through a feedback loop, And constitute the register columns DRA1 to DRA8 of FIG. The 8x1 MUX selects one of the outputs of the registers R56 through R56 and the register R63 of the 63th register, and the MUX cells MC1 through MC8 select one of the inputs for configuring feedback data, input data, or sequential register strings . If the number of taps is N, the number of registers in the register column connected in the torus form is N-1, and the other tap is assigned to the register R64 in the 64th register, and R64 is also used as the input of the arithmetic unit.

도 2는 도 1에 도시된 바와 같은 데이터 블록을 가지는 필터가 15탭 필터링 동작을 수행하는 경우의 예를 보여주고 있다. 먼저 탭수가 15이고 입력데이터가 입력될 수 있는 레지스터는 구조상 1,8,16,24,32,40,48,56번 레지스터(R1,R8,R16, R24,R32,R40,R48,R56)이고 8×1 MUX를 통해 궤환루프를 형성할 수 있는 레지스터는 56∼63번 레지스터 R56∼R63의 출력이다. 따라서 입력데이터는 48번 레지스터 R48로 입력되며 궤환루프를 통해 48번 레지스터 R48로 궤환되는 데이터는 61번 레지스터 R61의 출력값이 된다. 이때 형성된 원환형태의 레지스터열은 48∼61번까지 14개의 레지스터인 DRA7,DRA8로 형성된다. 입력데이터가,,…,…라 하고 계수를,,…,라 하고 FIR필터링 출력을 y[n]이라고 가정하면, 필터링 출력 y[0],y[1]은 하기의 수학식 1과 같이 표현된다.FIG. 2 shows an example of a case where a filter having a data block as shown in FIG. 1 performs a 15-tap filtering operation. First, the number of taps is 15, and the register to which the input data can be input is the register (R1, R8, R16, R24, R32, R40, R48, R56) in the structure of 1,8,16,24,32,40,48,56 The registers that can form a feedback loop through the 8x1 MUX are the outputs of registers R56-R63 in registers 56-63. Therefore, the input data is input to the register R48 in the 48th, and the data fed back to the register R48 in the feedback loop through the feedback loop becomes the output value of the register R61 in the 61st. At this time, the torus-shaped register rows formed by the resistors DRA7 and DRA8 are fourteen registers 48 to 61. If the input data is , , ... , ... And the coefficient , , ... , , And the FIR filtering output is y [n], the filtering outputs y [0] and y [1] are expressed by Equation 1 below.

데이터 D0∼D13이 61번 레지스터 R61로부터 48번 레지스터 R48에 저장되어 있을 때 동작은 다음과 같다. y[0]을 연산하기 위해 다음 사이클 때 D0는 64번 레지스터 R64로 전송되어 연산기로 입력되며 D1은 61번 레지스터 R61에 저장된다. 이때 MUX셀 MC7은 궤환된 데이터 DO대신 D14를 선택하여 48번 레지스터 R48로 전송한다. 다음 사이클에 D1은 64번 레지스터 R64로 전송되어 연산기에 입력됨과 동시에 y[1] 연산 때 연산기에서 재사용하기 위하여 궤환루프를 통해 48번 레지스터 R48로 입력된다. 그리고 48번 레지스터 R48에 저장되었던 D14는 49번 레지스터 R49로 전송된다. 매 사이클마다 61번 레지스터 R61로 전송되는 D2∼D14는 64번 레지스터 R64를 통해 연산기로 입력됨과 동시에 궤환루프를 통해 48번 레지스터 R48로 전송된다. D14가 64번 레지스터 R64로 전송되며 궤환루프를 통해 48번 레지스터 R48로 전송될 때 60번 레지스터 R60에 있던 D1은 61번 레지스터 R61로 입력된다. D1이 64번 레지스터 R64로 전송됨과 동시에 궤환루프를 통해 48번 레지스터 R48로 전송되나 MUX셀 MC7은 D1대신 D15를 선택하여 48번 레지스터 R48로 전송한다. 이때 D1이 궤환되지 않는 이유는 y[2] 연산시 필요하지 않기 때문이다. 상기 예에서, 15탭 필터링의 경우 새로운 데이터는 매 15사이클마다 한 번씩 입력된다. 이러한 방식으로 입력데이터를 한 번만 입력시키면 원환형태의 레지스터 열에서 N-1번 궤환시켜 다음 필터링 연산시 필요한 데이터를 차례대로 저장하고 있기 때문에 필터의 반복 연산을 효율적으로 처리한다. 상기 도 2에 도시된 바와 같이 15탭의 필터링 동작을 수행하는 필터의 데이터 흐름은 하기의 표 1에 도시된 바와 같다.When the data D 0 to D 13 are stored in the register R48 from the register 61 of 61, the operation is as follows. y for computing a [0] is sent to the D 0 is 64 times the register R64 when the next cycle is input to the computing unit and D 1 is stored in the register R61 61 times. The MUX cells MC7 is D 14 by selecting the place of the feedback data D O 48 and transmits it to the time register R48. In the next cycle, D 1 is transferred to register R64 at 64 and input to register 48 through feedback loop to be reused by the arithmetic operator at the time of y [1] operation. And D 14, which was stored in register R48 in register 48, is transferred to register R49 in register 49. D 2 to D 14, which are transferred to the register R 61 in every cycle, are inputted to the arithmetic unit through the register R 64 in the 64th order and transferred to the register R 48 in the feedback loop through the feedback loop. D 14 is transmitted to register 64 of register 64, and D 1, which is in register 60 of register 60, is input to register 61 of register 61 when it is transmitted to register 48 of register 48 through a feedback loop. D 1 is transferred to register R64 at 64 and simultaneously transferred to register R48 at 48 through a feedback loop. However, MUX cell MC7 selects D 15 instead of D 1 and transfers it to register R48 at 48. The reason why D 1 is not fed back at this time is that it is not necessary in y [2] operation. In the example above, for 15-tap filtering, new data is entered once every 15 cycles. If the input data is inputted only once in this manner, the data is fed back N-1 times in the toroidal register column and data necessary for the next filtering operation are sequentially stored, thereby efficiently performing the iterative operation of the filter. The data flow of the filter for performing the filtering operation of 15 taps as shown in FIG. 2 is as shown in Table 1 below.

레지스터register 4848 4949 5050 5151 5252 ... 5858 5959 6060 6161 64(출력)64 (output) 계수Coefficient 출력Print D13 D 13 D12 D 12 D11 D 11 D10 D 10 D9 D 9 ... D3 D 3 D2 D 2 D1 D 1 D0 D 0 00 C14 C 14 y[0]y [0] D14 D 14 D13 D 13 D12 D 12 D11 D 11 D10 D 10 ... D4 D 4 D3 D 3 D2 D 2 D1 D 1 D0 D 0 C0 C 0 D1 D 1 D14 D 14 D13 D 13 D12 D 12 D11 D 11 D5 D 5 D4 D 4 D3 D 3 D2 D 2 D1 D 1 C1 C 1 D2 D 2 D1 D 1 D14 D 14 D13 D 13 D12 D 12 D6 D 6 D5 D 5 D4 D 4 D3 D 3 D2 D 2 C2 C 2 D3 D 3 D2 D 2 D1 D 1 D14 D 14 D13 D 13 D7 D 7 D6 D 6 D5 D 5 D4 D 4 D3 D 3 C3 C 3 ... ... ... D14 D 14 D13 D 13 D12 D 12 D11 D 11 D10 D 10 ... D4 D 4 D3 D 3 D2 D 2 D1 D 1 D14 D 14 C14 C 14 y[1]y [1] D15 D 15 D14 D 14 D13 D 13 D12 D 12 D11 D 11 ... D5 D 5 D4 D 4 D3 D 3 D2 D 2 D1 D 1 C0 C 0 D2 D 2 D15 D 15 D14 D 14 D13 D 13 D12 D 12 D6 D 6 D5 D 5 D4 D 4 D3 D 3 D2 D 2 C1 C 1 D3 D 3 D2 D 2 D15 D 15 D14 D 14 D13 D 13 D7 D 7 D6 D 6 D5 D 5 D4 D 4 D3 D 3 C2 C 2 D4 D 4 D3 D 3 D2 D 2 D15 D 15 D14 D 14 D8 D 8 D7 D 7 D6 D 6 D5 D 5 D4 D 4 C3 C 3 ... ... ... D15 D 15 D14 D 14 D13 D 13 D12 D 12 D11 D 11 ... D5 D 5 D4 D 4 D3 D 3 D2 D 2 D15 D 15 C14 C 14 y[2]y [2] D16 D 16 D15 D 15 D14 D 14 D13 D 13 D12 D 12 ... D6 D 6 D5 D 5 D4 D 4 D3 D 3 D2 D 2 C0 C 0 D2 D 2 D16 D 16 D15 D 15 D14 D 14 D13 D 13 D7 D 7 D6 D 6 D5 D 5 D4 D 4 D3 D 3 C1 C 1 D3 D 3 D2 D 2 D16 D 16 D15 D 15 D14 D 14 D8 D 8 D6 D 6 D5 D 5 D4 D 4 D3 D 3 C2 C 2 D4 D 4 D3 D 3 D2 D 2 D16 D 16 D15 D 15 D9 D 9 D8 D 8 D6 D 6 D5 D 5 D4 D 4 C3 C 3 ... ... ... D16 D 16 D15 D 15 D14 D 14 D13 D 13 D12 D 12 ... D6 D 6 D5 D 5 D4 D 4 D3 D 3 D16 D 16 C14 C 14

종래 기술에 따른 디지털 필터는 탭을 가변시키기 위하여 메모리와, 메모리의 탭수에 해당하는 주소를 부여하기 위한 주소생성유니트와, 순차적인 데이터를 효과적으로 저장하기 위하여 정해진 한계 번지를 읽기/쓰기하기 위한 모듈로유니트를 내장하고 있다. 반면에 본 발명에 따른 디지털 필터의 데이터 블록은 상대적으로 하드웨어 크기가 적은 선택기들(8×1 MUX와 MUX셀들)만을 이용하여 구현한다. 또한 본 구조는 적은 수의 선택기(8개의 MUX셀)만을 추가하므로써 64탭에서 128탭으로의 확장이 가능하다. 이렇듯 탭수가 2의 자승배로 증가하는 것에 비해 하드웨어 크기는 선형적인 증가를 보이므로 본 발명은 탭수를 확장할 시 매우 유리할 것이다.The digital filter according to the related art includes a memory for varying a tap, an address generating unit for giving an address corresponding to the number of taps of the memory, and a module for reading / writing a predetermined limit address for effectively storing sequential data. The unit is built in. On the other hand, the data block of the digital filter according to the present invention is implemented using only relatively small selectors (8x1 MUX and MUX cells). In addition, this architecture can expand from 64 taps to 128 taps by adding only a small number of selectors (8 MUX cells). Since the hardware size increases linearly as compared with the case where the number of tapes increases by a factor of two, the present invention is very advantageous in expanding the number of taps.

Ⅰ-2. 계수 반복 기법I-2. Coefficient repetition technique

본 발명의 필터에 적용하기 위한 계수 반복 기법은 도 3에 도시된 바와 같이 구현되는 계수 블록에 의해 수행되며, 이러한 블록은 구현되는 필터탭이 32 이하인 경우 계수탭 N을 하기의 수학식 2가 만족되는 범위에서 임의로 r번 반복 입력하여 33탭 이상으로 변환시켜 사용하는 방법이다. 따라서 33탭에서 64탭의 계수 설정을 위한 하드웨어만으로 모든 탭을 사용할 수 있어 사용된 MUX셀의 개수를 반으로 줄일 수 있다.The coefficient iterative technique for applying to the filter of the present invention is performed by a coefficient block implemented as shown in FIG. 3, where the coefficient tap N when Equation 2 below is satisfied when the implemented filter tap is 32 or less And then converted into more than 33 taps and used. Therefore, the number of MUX cells used can be reduced by half because all the tabs can be used with only the hardware for setting the coefficients of the 64 taps in the 33 tap.

예를 들어, 15탭 필터링 계수를 C0, C1, ‥‥, C13, C14라 할 때 하기의 수학식 2에 의해 15탭 계수열을 3번 또는 4번 반복 입력하면 45탭 또는 60탭의 계수열로 저장된다. 만약 45탭으로 선정하였다면 처음의 입력 계수 C0, C1, ‥‥ , C13, C14는 61번∼47번 레지스터 R61∼R47에 저장되며, 두 번째 반복 입력된 C0, C1, ‥‥ , C13, C14는 46번∼32번 레지스터 R46∼R32로 저장되며, 세 번째 반복 입력된 C0, C1, ‥‥ , C13, C14는 31번∼17번 레지스터 R31∼R17로 저장된다. 이때 8×1 MUX는 61번 레지스터 R61의 출력을 선택한다. 따라서 궤환루프를 통해 17번∼61번 레지스터 R17∼R61은 원환 형태의 레지스터 열을 형성한다. 다음 클럭 사이클 때 61번 레지스터 R61에 저장된 C0계수는 궤환루프를 통해 17번 레지스터 R17로 입력됨과 동시에 연산기로 입력된다. 또한 각 레지스터의 계수는 클럭에 동기되어 시프트된다. 만약 계수를 4번 반복 입력한 60탭의 계수열로 가정하면, 계수는 1번 레지스터 R1로 입력되며 8×1 MUX에 의해 선택된 60번 레지스터 R60의 출력을 통해 매 클럭 사이클마다 연산기로 출력되며 동시에 1번 레지스터 R1으로 궤환된다. 따라서 계수는 17번 레지스터 R17 또는 1번 레지스터 R1으로 입력할 수 있다. 그러나 9번 레지스터 R9로 입력할 경우 45탭 계수 출력은 53번 레지스터 R53에서 나오므로 계수를 궤환시킬 수 없어서 사용할 수 없으며, 60탭 계수 출력은 구현된 레지스터 길이를 초과하므로 사용할 수 없다. 마찬가지로 25번 레지스터 R25로 입력하여 사용하는 경우 구현된 레지스터 길이를 초과하므로 사용할 수 없다.For example, when the 15-tap filtering coefficient is C 0 , C 1 , ..., C 13 , and C 14 , when 15 tap coefficient columns are repeatedly inputted three times or four times by the following Equation 2, Tap coefficient column. If the 45 tap is selected, the first input coefficients C 0 , C 1 , ..., C 13 , and C 14 are stored in registers 61 to 47 of R 61 to R 47, and the second repeated inputs C 0 , C 1 , C 13 and C 14 are stored in registers 46 to 32 of registers 46 to 32. The third repeated inputs C 0 , C 1 , ..., C 13 and C 14 are stored in registers 31 to 17 . At this time, the 8x1 MUX selects the output of the register R61 in the 61st. Therefore, the registers R17 to R61 in registers 17 to 61 form a torus-type register row through the feedback loop. At the next clock cycle, the C 0 coefficient stored in register R61 at 61 is input to register 17 at register 17 through a feedback loop and simultaneously input to the operator. The coefficients of each register are shifted in synchronization with the clock. Assuming that the coefficient column is a 60-tap coefficient column in which the coefficient is repeatedly input four times, the coefficient is input to the first register R1 and outputted to the operator every clock cycle through the output of the sixth register R60 selected by the 8x1 MUX 1 is fed back to the register R1. Therefore, the coefficient can be input to register R17 in 17 or register R1 in register 1. However, when inputting with register R9 of 9, 45 tap coefficient output comes from register R53 of 53, it can not be used because it can not feed back the coefficient, and 60 tap coefficient output can not be used because it exceeds the implemented register length. Likewise, when the register 25 is used as the register R25, it can not be used because it exceeds the implemented register length.

도 4는 도 3에 도시된 바와 같은 계수 블록을 가지는 필터가 15탭 필터링 동작을 수행하는 경우의 예를 보여주고 있다.FIG. 4 shows an example of a case where a filter having a coefficient block as shown in FIG. 3 performs a 15-tap filtering operation.

전술한 도 3에 도시된 바와 같이 본 발명에 따라 계수를 반복적으로 저장하여 사용하는 방법은 계수 블록의 하드웨어를 적은 수의 선택기(8×1 MUX 및 4개의 MUX셀 MC1∼MC4)만으로 구현할 수 있으므로 하드웨어 크기를 대폭 줄인다. 이러한 본 발명에 따른 구조는 내부의 탭을 128개로 확장할 경우 추가될 레지스터 파일에 단지 선택기(4개의 MUX셀)만을 추가하면 가능하다.As shown in FIG. 3, the method of repeatedly storing and using coefficients according to the present invention can implement the hardware of the coefficient block only with a small number of selectors (8 × 1 MUX and 4 MUX cells MC1 to MC4) Significantly reduce hardware size. The structure according to the present invention is possible by adding only selectors (four MUX cells) to the register file to be added when the internal tap is extended to 128 registers.

한편 전술한 데이터 블록 및 계수 블록에서의 최대 임계경로(critical path)는 선택기들의 경로(8×1 MUX와 2×1 MUX)로 탭의 확장에 관계없이 일정하며 고속의 동작이 가능하다.On the other hand, the critical path in the above-described data block and coefficient block is a constant (8 × 1 MUX and 2 × 1 MUX) path of the selectors regardless of the expansion of the tap and enables high-speed operation.

Ⅱ. 곱셈회로Ⅱ. Multiplication circuit

도 5는 본 발명에 따른 곱셈회로를 포함하는 FIR필터의 구성을 보여주는 도면으로, 상기 곱셈회로는 전용의 곱셈기를 사용하는 대신에 파이프라인을 이루는 셀들로 구성된 것을 특징으로 한다. 이때의 각 셀은 크게 2개의 병렬입력직렬출력(PISO: Parallel Input Serial Output)의 시프트레지스터 30, 부분곱 생성단 40, 부분곱 합성단 50, 변환회로 60 및 파이프라인 레지스터 70으로 구성된다. 이러한 구성의 곱셈회로를 포함하는 FIR필터는 하기의 수학식 3으로부터 비트-시리얼 곱셈 알고리즘을 적용하여 유도하면 수학식 7에 나타낸 바와 같은 고속의 비트-시리얼 곱셈 알고리즘에 따른 필터링 동작을 수행하는 것을 특징으로 한다.FIG. 5 is a diagram illustrating a configuration of an FIR filter including a multiplication circuit according to the present invention, wherein the multiplication circuit is composed of cells constituting a pipeline instead of using a dedicated multiplier. Each cell at this time is largely composed of a shift register 30, a partial product generation stage 40, a partial product synthesis stage 50, a conversion circuit 60 and a pipeline register 70 of two parallel input serial outputs (PISO). The FIR filter including the multiplication circuit having such a configuration is characterized in that a filtering operation according to a high-speed bit-serial multiplication algorithm as shown in Equation (7) is performed by applying the bit-serial multiplication algorithm from Equation .

본 발명에 따른 곱셈회로를 포함하는 FIR필터는 다음의 수학식 3에 나타낸 바와 같은 필터링 동작을 수행한다.The FIR filter including the multiplication circuit according to the present invention performs a filtering operation as shown in the following Equation (3).

상기 수학식 3에서 x[n], y[n]은 입력데이터 및 출력데이터(필터링된 데이터)를 나타내며, h[n]은 필터의 FIR특성을 나타내며, N은 필터의 차수를 나타낸다.In Equation (3), x [n] and y [n] denote input data and output data (filtered data), h [n] denotes the FIR characteristic of the filter, and N denotes the degree of the filter.

비트-시리얼 알고리즘을 이용한 곱셈처리는 다음의 수학식 4와 같이 M비트 승수의 LSB부터 상위비트로 시프트시키면서 피승수를 곱한 결과에 그 전에 계산된 부분곱을 M번 누적시키는 방법이다.The multiplication process using the bit-serial algorithm is a method of shifting the LSB of the M-bit multiplier from the LSB of the M-bit multiplier to the upper bit and multiplying the multiplicand by a multiplication factor M, as shown in Equation (4) below.

상기 수학식 4에서 P는 곱셈결과를 나타내며, A는 피승수, X는 승수를 나타낸다. Xj는 승수의 j번째 비트를 나타내며, M은 승수의 비트수를 표현한다. 이때 수학식 4를 수학식 3에 대입시키면 다음의 수학식 5와 같은 비트-시리얼 알고리즘을 이용한 무곱셈기 FIR 필터식이 유도된다. 여기서 N은 필터 탭수를, M은 계수의 비트수를 나타낸다.In Equation (4), P denotes a multiplication result, A denotes a multiplicand, and X denotes a multiplier. Xj denotes the j-th bit of the multiplier, and M denotes the number of bits of the multiplier. If Equation (4) is substituted into Equation (3), a multiplier FIR filter equation using a bit-serial algorithm as shown in Equation (5) is derived. Where N is the number of filter taps and M is the number of bits of the coefficient.

곱셈에 사용되는 클럭 사이클 수를 줄이기 위해 상기 수학식 5에서 부분곱 생성을 위해 사용되는 승수의 각 비트를 짝수와 홀수로 나누어 시프트레지스터에 저장하고 각각의 LSB로부터 MSB로 시프트시키면서 동시에 처리를 하면 하기의 수학식 6과 같이 표현된다. 이는 한 클럭 사이클에 2개의 부분곱을 생성하므로써 곱셈에 사용된 처리시간을 M에서 M/2클럭 사이클로 줄이므로써 2배의 처리시간 이득을 얻을 수 있도록 하는 것이다.In order to reduce the number of clock cycles used in the multiplication, each bit of the multiplier used for partial product generation in Equation (5) is divided into an even number and an odd number and stored in a shift register and shifted from each LSB to MSB, (6) " (6) " This means that by generating two partial products in one clock cycle, the processing time used for multiplication is reduced from M to M / 2 clock cycles to obtain twice the processing time gain.

상기 수학식 6을 이용하여 하나의 필터링 결과를 얻기 위해서는 각각 2개의 (N·M)/2번 누산된 결과를 더해야 하므로 2개의 누산기와 1개의 가산기가 필요하다. 그러나 상기 수학식 6에 결합법칙을 적용하여 하기의 수학식 7로 변환하면 1개의 누산기와 1개의 가산기만으로 구현할 수 있으므로 전체적인 하드웨어의 크기를 줄일 수 있다.In order to obtain one filtering result using Equation (6), two (N.multidot.M) / 2 cumulative results are required, so two accumulators and one adder are required. However, if the combining rule is applied to Equation (6) and converted into Equation (7), only one accumulator and one adder can be implemented, thereby reducing the overall hardware size.

상기한 수학식 7이 나타낸 바와 같은 개선된 비트-시리얼 알고리즘에 따른 필터링 동작을 수행하는 본 발명의 FIR필터는 도 5에 도시된 바와 같이 파이프라인을 이루는 셀들로 구성되며, 이때 각 셀은 시스템클럭에 동기된다. 필터링을 위한 전체 데이터의 흐름은 다음과 같다. 계수는 한 클럭 사이클에 2번의 부분곱 생성을 위해 짝수(C[O],C[2],C[4],C[6])와 홀수(C[1],C[3],C[5],C[7])비트로 분리되어 각각 3개의 1비트 2×1 MUX 20 및 디플립플롭으로 구성된 M/2(4)비트 병렬입력직렬출력(PISO)의 시프트라이트 레지스터 30으로 입력된다. 이때 입력되는 데이터는 계수 데이터와의 연산 동기를 맞추기 위하여 M(8)비트 래치 10에 저장되게 된다. 부분곱 생성단 40의 각 논리곱(AND)게이트 42,44는 매 클럭 사이클마다 입력 데이터에 계수의 출력 비트열을 논리곱하여 2개의 부분곱을 생성한다. 상기 부분곱 생성단 40에 의해 생성된 2개의 부분곱 데이터는 부분곱 합성단 50으로 인가되어 2개의 부분곱을 더해주게 된다. 부분곱 합성단 50에서 가산된 결과는 1비트 2×1 MUX들로 구성된 변환회로 60에서 2M(16)비트 형태로 변환되어 레지스터 70에 저장된다. 필터링은 레지스터 70에 저장된 부분곱 가산결과와 누산레지스터 90의 누적된 부분곱과 더하는 과정을 통해서 이루어지게 된다.The FIR filter of the present invention for performing the filtering operation according to the improved bit-serial algorithm as shown in Equation (7) consists of cells constituting a pipeline as shown in FIG. 5, Lt; / RTI > The overall data flow for filtering is as follows. C [2], C [4], C [6]) and odd numbers (C [1], C [3], C [ (4) bit parallel input serial output (PISO) shift register 30 composed of three 1-bit 2 × 1 MUXs 20 and a D flip flop, respectively. At this time, the input data is stored in the M (8) bit latch 10 in order to synchronize the operation with the coefficient data. Each AND gate 42, 44 of the partial product generation stage 40 logically multiplies the input data with the output bit stream of the coefficient every clock cycle to generate two partial products. The two partial product data generated by the partial product generation stage 40 is applied to the partial product synthesis stage 50 to add two partial products. The result of the addition at the partial product synthesis stage 50 is converted into a 2M (16) bit form in the conversion circuit 60 composed of 1 bit 2x1 MUXs and stored in the register 70. The filtering is performed by adding the result of the partial product addition stored in the register 70 and the cumulative partial product of the accumulation register 90.

종전의 비트-시리얼 곱셈 구조는 부분곱 생성 및 합성을 위한 입력단을 2M(16)비트로 확장하여 구현하므로써 레지스터와 가산기를 필요 이상으로 증가시켰으나, 본 발명은 곱셈회로의 입력단을 M(8)비트로 구현하므로써 곱셈을 위한 회로의 하드웨어 크기를 줄인다. 그리고 본 발명에서 홀수 계수 비트로 논리곱된 부분곱이 짝수 계수 비트로 논리곱된 부분곱에 비해 항상 자리수가 한자리 높기 때문에 가산기 50에 1비트 시프트 레프트시켜 연결하는 방법을 사용한다. 또한 짝수 계수로 논리곱된 부분곱의 LSB는 항시 영과 가산되므로 가산기 50으로 입력되지 않고 통과되도록 한다. 이 방법은 1비트 차이가 나는 부분곱 데이터를 가산하기 위해 M+1(9)비트 가산기 대신 M(8)비트 가산기만을 사용할 수 있게 한다. 상기 가산기 50은 M(8)비트의 가산기이지만 이에 의한 연산결과는 통과시킨 짝수 계수로 논리곱된 부분곱의 LSB까지 합하여 M+2(10)비트[Carry(1) +Result(8)+Pass_bit(1)]가 된다.The conventional bit-serial multiplication structure increases the number of registers and the adder by unnecessarily increasing the number of inputs for the partial product generation and synthesis by extending the input terminal to 2M (16) bits. However, the present invention implements the input terminal of the multiplying circuit with M Thereby reducing the hardware size of the circuit for multiplication. In the present invention, since the partial product multiplied by the odd numbered coefficient bit is always one digit higher than the partial product multiplied by the even numbered coefficient bit, the 1-bit shift left connected to the adder 50 is used. Also, the LSB of the partial product logically multiplied by the even coefficient is added to the zero at all times, so that it is passed through the adder 50 without being input. This method makes it possible to use only the M (8) -bit adder instead of the M + 1 (9) -bit adder to add the partial product data with a 1-bit difference. (10) bits [Carry (1) + Result (8) + Pass_bit (10)) are added to the LSBs of the partial products multiplied by the even- (1)].

필터링을 위해 2M(16)비트 누산기 80은 전 상태의 합산된 부분곱과 현재의 부분곱을 더해준다. 이때 M+2(10)비트의 부분곱 합성단 50의 출력은 매 클럭 사이클마다 2자리수를 이동하여 누산될 2M(16)비트 형태로 바꾸어 주어야 한다. 따라서 1비트 2×1 MUX들로 구성된 변환회로 60을 사용하여 매 클럭 사이클마다 2비트씩 시프트레프트시켜 누산될 2M(16)비트 형태로 만들어준다. 2M(16)비트 누산기 80은 전 상태의 합성된 부분곱을 저장하고 있는 누산레지스터 90의 출력과 현재의 합성된 부분곱 데이터를 저장한 레지스터 70의 출력을 더해준다. 이 과정은 계수를 저장한 PISO의 시프트라이트 레지스터가 새로운 계수를 받아들이는 M/2(4)클럭 사이클을 주기로 반복되며 전체 필터링을 위해서는 N·M/2(4N)만큼 반복된다. 따라서 N·M/2(4N)번째 클럭 사이클 때 출력레지스터 110은 누산 레지스터 90의 값을 저장하고 누산기 80에는 전 상태의 부분곱을 넘겨주지 않도록 리셋된다. 이때 리셋회로는 2M(16)비트 2×1 MUX 100을 통해 000…000을 인가한다.For filtering, the 2M (16) -bit accumulator 80 adds the summed partial product of the previous state and the current partial product. At this time, the output of the M + 2 (10) bit partial product synthesis stage 50 should be shifted by 2 digits every clock cycle and converted into a 2M (16) bit form to be accumulated. Therefore, the conversion circuit 60 composed of 1-bit 2x1 MUXs is used to shift the 2-bit (16-bit) form to be accumulated every two clock bits every clock cycle. The 2M (16) bit accumulator 80 adds the output of the accumulator register 90 storing the combined partial product of the previous state and the output of the register 70 storing the current combined partial product data. This process is repeated for a period of M / 2 (4) clock cycles in which the shift register of the PISO storing the coefficient receives a new coefficient and is repeated N · M / 2 (4N) for the entire filtering. Hence, the output register 110 stores the value of the accumulation register 90 and resets the accumulator 80 so as not to pass the partial product of the previous state at the N.multidot.m / 2 (4N) th clock cycle. At this time, the reset circuit is 2M (16) bit 2 × 1 through MUX 100, 000 ... 000.

기존의 방식은 곱셈을 위한 입력단의 크기를 2M비트로 확장하여 사용하므로써 레지스터와 가산기의 크기를 필요 이상으로 증가시키는 방식이었으나, 이에 반하여 본 발명은 입력단을 M비트 레지스터와 M비트 가산기로 구현하여 하드웨어 크기를 줄이는 것을 특징으로 한다. 또한 동시에 2개의 부분곱 데이터를 생성 및 합성하는 방법을 사용하므로써 기존의 곱셈을 위한 M클럭 사이클 및 필터링을 위한 N·M의 처리시간 클럭 사이클을 각각 M/2클럭 사이클과 M·N/2클럭 사이클로 줄임으로써 2배의 성능 향상을 기할 수 있다.In the conventional method, the size of the register and the adder is increased more than necessary by enlarging the size of the input terminal for multiplication to 2M bits. On the contrary, the present invention implements the input stage as an M-bit register and an M-bit adder, Is reduced. In addition, by using the method of generating and synthesizing two partial product data at the same time, the M clock cycles for the conventional multiplication and the N.multidot.M processing time clock cycle for the filtering are converted into the M / 2 clock cycle and the M / N / 2 clock By reducing the number of cycles, the performance can be doubled.

상술한 바와 같이 본 발명의 디지털 필터는 데이터의 경우에는 궤환루프 구조에 따라 인가하며, 계수의 경우에는 반복적으로 저장하여 사용하므로써 하드웨어의 크기를 줄이는 이점이 있다. 또한 본 발명의 곱셈회로는 전용의 곱셈기를 사용하는 대신에 M비트로 구현된 입력단을 가지므로써 하드웨어 크기를 줄이고, 개선된 비트-시리얼 곱셈 알고리즘을 수행하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 이점이 있다.As described above, the digital filter of the present invention is applied according to a feedback loop structure in the case of data, and it is advantageous in that the size of hardware is reduced by repeatedly storing and using coefficients. In addition, the multiplication circuit of the present invention has an input stage implemented with M bits instead of using a dedicated multiplier, thereby reducing the size of hardware and performing an improved bit-serial multiplication algorithm, thereby improving the operation speed by a factor of two .

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 않되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present invention should not be limited by the illustrated embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

Claims (4)

미리 설정된 탭수와 비트수의 데이터를 디지털 필터로 제공하기 위한 장치에 있어서,An apparatus for providing data of a preset number of taps and a number of bits to a digital filter, 상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 다수의 레지스터들과,A plurality of registers corresponding to the number of taps are connected in series, the registers including a plurality of registers divided into register columns corresponding to the number of bits, 상기 각 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 선택기셀과,A selector cell including selectors provided respectively at input ends of the register strings; 상기 다수 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.At least one output selector connected to the output of each register in the last register of the plurality of registers to select an output of one of the registers for a predetermined operation and at the same time feed back the selected output to each selector of the selector cell Lt; / RTI > 미리 설정된 탭수와 비트수의 계수를 디지털 필터로 제공하기 위한 장치에 있어서,An apparatus for providing a digital filter with a preset number of taps and a number of bits, 상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 다수의 레지스터들과,A plurality of registers corresponding to the number of taps are connected in series, the registers including a plurality of registers divided into register columns corresponding to the number of bits, 상기 각 레지스터열중 초기 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 선택기셀과,A selector cell having selectors each provided at an input terminal of an initial register column among the register columns; 상기 다수 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.At least one output selector connected to the output of each register in the last register of the plurality of registers to select an output of one of the registers for a predetermined operation and at the same time feed back the selected output to each selector of the selector cell Lt; / RTI > 미리 설정된 탭수와 비트수의 데이터 및 계수를 디지털 필터로 제공하기 위한 장치에 있어서,An apparatus for providing data and coefficients of a preset number of taps and bits to a digital filter, 상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 제1군의 레지스터와,Wherein the register is divided into a first group of registers divided into a series of register columns corresponding to the number of bits, 상기 제1군 레지스터의 각 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 제1선택기셀과,A first selector cell comprising selectors respectively provided at input ends of the register strings of the first group register, 상기 제1군 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 제1출력선택기와,A first output coupled to the output of each register in the last register column of the first group register for selecting an output of a register for a predetermined operation and simultaneously feeding the selected output to each selector of the selector cell; A selector, 상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 제2군 레지스터와,A second group register which is divided into a series of register columns corresponding to the number of bits, 상기 제2군 레지스터의 각 레지스터열중 초기 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 제2선택기셀과,A second selector cell made up of selectors each provided at an input terminal of an initial register column among the register columns of the second group register, 상기 제2군 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 제2출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.A second output coupled to the output of each register in the last register of the second group register for selecting an output of a register for a predetermined operation and simultaneously feeding the selected output to each selector of the selector cell; And at least a selector. 디지털 필터링 동작의 수행을 위한 곱셈회로에 있어서A multiplication circuit for performing a digital filtering operation 소정 인가되는 필터계수들을 홀수계수 비트와 짝수계수 비트로 구분하여 입력하는 입력수단과,Input means for inputting predetermined filter coefficients into odd-numbered coefficient bits and even-numbered coefficient bits, 소정 입력데이터에 상기 홀수계수 비트와 상기 짝수계수 비트를 각각 곱하여 제1부분곱 및 제2부분곱을 생성하는 부분곱 생성단과,A partial product generation step for multiplying predetermined input data by the odd numbered coefficient bits and the even numbered coefficient bits respectively to generate a first partial product and a second partial product, 상기 제1부분곱을 1비트 시프트레프트시킨 후 이 결과값에 상기 제2부분곱을 그대로 통과시킨 값을 가산하여 이 가산결과값을 소정 비트의 데이터로서 변환하여 곱셈결과로서 출력하는 가산수단으로 이루어짐을 특징으로 하는 곱셈회로.And adding means for shifting the first partial product by one bit, adding a value obtained by directly passing the second partial product to the resultant value, and converting the resultant value as data of a predetermined bit and outputting the result as a multiplication result / RTI >
KR1019970008597A 1997-03-14 1997-03-14 Variable tap of digital filter and multiplier circuit thereof KR100235537B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970008597A KR100235537B1 (en) 1997-03-14 1997-03-14 Variable tap of digital filter and multiplier circuit thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970008597A KR100235537B1 (en) 1997-03-14 1997-03-14 Variable tap of digital filter and multiplier circuit thereof

Publications (2)

Publication Number Publication Date
KR19980073359A true KR19980073359A (en) 1998-11-05
KR100235537B1 KR100235537B1 (en) 1999-12-15

Family

ID=19499683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970008597A KR100235537B1 (en) 1997-03-14 1997-03-14 Variable tap of digital filter and multiplier circuit thereof

Country Status (1)

Country Link
KR (1) KR100235537B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050003026A (en) * 2003-06-30 2005-01-10 주식회사 대우일렉트로닉스 Digital filter by using accumulator and method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100545609B1 (en) * 1998-12-30 2006-04-21 유티스타콤코리아 유한회사 Finite impulse response filter in modulator of communication system
KR100654188B1 (en) 2004-06-30 2006-12-05 한국전자통신연구원 FIR filter realized on DSP and method for realizing the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050003026A (en) * 2003-06-30 2005-01-10 주식회사 대우일렉트로닉스 Digital filter by using accumulator and method thereof

Also Published As

Publication number Publication date
KR100235537B1 (en) 1999-12-15

Similar Documents

Publication Publication Date Title
US5297069A (en) Finite impulse response filter
JPS62286307A (en) Apparatus and method for multiplication and addition of multiple stage digital signal
US3706076A (en) Programmable digital filter apparatus
JPH02224057A (en) Digital data processor
US6202074B1 (en) Multiplierless digital filtering
US4322810A (en) Digital filters with reduced multiplier circuitry
US5867414A (en) Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations
US3816732A (en) Apparatus and method for serial-parallel binary multiplication
US4958311A (en) Composite finite impulse response digital filter
US4229802A (en) Digital adding device
KR19980073359A (en) Variable tap structure of digital filter and its multiplication circuit
US5781462A (en) Multiplier circuitry with improved storage and transfer of booth control coefficients
JPH09259115A (en) Very-large-scale integrated circuit for bit-serial matrix transposition
JPH0767063B2 (en) Digital signal processing circuit
US5291457A (en) Sequentially accessible non-volatile circuit for storing data
US5031137A (en) Two input bit-serial multiplier
JPS5853217A (en) Digital filter circuit
US5053984A (en) Memory for programmable digital filter
JP2001160736A (en) Digital filter circuit
JP3097599B2 (en) Digital filter
JP3270659B2 (en) Arithmetic circuit and arithmetic method
EP0373410B1 (en) Memory for programmable digital filter
JP2001177378A (en) Fir digital filter
JP5072558B2 (en) Data processing device
JPS61156434A (en) Digital multiplier for series operation

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20031209

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee