KR100235537B1 - 디지털 필터의 가변탭 구조 및 그의 곱셈회로 - Google Patents

디지털 필터의 가변탭 구조 및 그의 곱셈회로 Download PDF

Info

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

Links

Images

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필터의 전체적인 하드웨어의 크기를 감소시키는 기술에 관한 것이다.
나. 발명이 해결하려고 하는 기술적 과제: 하드웨어 크기를 감소시킬 수 있는 디지털 필터의 가변탭 구조와 그 필터에 이용될 수 있는 곱셈회로를 구현한다.
다. 발명의 해결방법의 요지: 본 발명은 탭을 가변시키는 구조의 필터를 선택기들로 구현하므로써 사용된 게이트수를 줄이고 전체적인 하드웨어의 크기를 줄이는 것을 특징으로 한다. 또한 본 발명은 M비트로 구현된 입력단을 가지는 곱셈회로를 제공하므로써 곱셈회로의 하드웨어의 크기를 약 절반으로 줄이는 것을 특징으로 한다. 그리고 또한 본 발명은 비트-시리얼 곱셈 알고리즘을 개선하여 필터에 적용하여 동시에 2개의 부분곱을 생성하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다.
라. 발명의 중요한 용도: 디지털 필터의 하드웨어 크기를 감소시키는 효과가 있다.

Description

디지털 필터의 가변탭 구조 및 그의 곱셈회로
본 발명은 디지털 필터에 관한 것으로, 특히 하드웨어의 크기를 감소시키기 위한 디지털 필터의 가변탭 구조 및 그의 곱셈회로에 관한 것이다.
디지털 필터의 발달 추이는 필터가 고정된 탭을 갖도록 하는 것에서 시작하여 현재는 가변탭을 갖도록 하는 것으로 발전해 왔다. 고정된 탭(탭수 8 또는 16)을 갖는 반도체 칩(예를 들어, Harris Semiconductor Inc.사에 의해 제조 및 판매되고 있는 형명 HSP43168의 DSP칩)을 사용할 경우에는 사용하지 않는 탭에 영(zero)을 인가하여야 하기 때문에 필터링시 영의 탭수만큼 불필요한 연산을 수행하여야 하며, 이러한 불필요한 연산은 연산회로의 효율을 현저하게 저하시킨다는 단점이 있다.
이러한 문제점을 해결하기 위해 현재 가변탭 구조를 가지는 필터가 제안되어 여러 응용분야에서 널리 사용되고 있다. 예컨대, Motorola Inc.에 의해 제조 및 판매되고 있는 형명 DSP56200, Harris Semiconductor Inc.에 의해 제조 및 판매되고 있는 형명 HSP4312, HSP43481/883, HSP43891들에는 탭을 가변시키는 기술이 채택되어 있다. 이러한 가변탭 구조를 가지는 필터들은 공통적으로 내부 또는 외부에 메모리(RAM,ROM)을 구비하고 있으며, 이 메모리에 주소를 부여하기 위한 주소생성유니트(Address Generation Unit)와, 메모리에/로부터 반복적으로 데이터를 읽기/쓰기를 할 수 있도록 하는 모듈로유니트(Modulo Unit)를 더 구비하는 구조로 되어 있다.
상기와 같은 가변탭 구조를 가지는 필터내에 구비된 주소생성유니트 및 모듈로유니트의 동작은 다음과 같다. 주소생성유니트는 메모리에 정해진 탭수만큼의 주소를 부여하여 순차적으로(sequential) 데이터를 읽거나 쓸 수 있도록 하여 탭수를 가변시킨다. 이때 주소값을 증가시키기 위하여 가산기의 출력 주소값에 "1" 또는 오프셋(offset)값을 더하게 된다. 이를 위해 메모리 전체 워드에 읽기/쓰기할 수 있는 R비트 가산기(예를 들어, 메모리가 1024워드(
Figure kpo00001
)이면 R은 10이다.), R비트 오프셋레지스터, 주소값을 저장하기 위한 R비트 출력레지스터가 요구된다. 데이터 및 필터계수를 메모리로부터 반복적으로 읽기/쓰기 위해 사용되는 모듈로유니트는 메모리에 탭수만큼의 시작(start)주소와 끝(end)주소를 부여한 후 증가되는 주소값이 끝주소와 같은 경우에 시작주소로부터 데이터를 다시 읽어 반복적으로 사용하게 된다. 이를 위해 시작주소와 끝주소를 저장하기 위한 R비트 레지스터와, 끝주소와 증가되는 주소값을 비교하기 위한 R비트 비교기와, 시작주소를 받아들이는 하드웨어가 요구된다.
이와 같이 디지털 필터의 가변탭 구조를 구현하기 위해서는 메모리, R비트의 가산기, 비교기들, 다수의 레지스터들과 같은 구성요소들이 요구됨에 따라 전체적으로 필터의 하드웨어 손실이 커지는 단점이 있다.
한편, 디지털 필터의 주요한 구성요소를 이루는 곱셈기는 VLSI 칩 구현시 die면적을 많이 차지하므로 칩의 가격을 증가시킨다. 그러므로 필터의 경우 실시간 처리가 만족되는 조건 아래 곱셈기를 제거하는 점이 유리하다. 또한 다수의 곱셈기를 필요로 하는 신호 및 영상처리용 칩에는 다수의 곱셈기를 집적시키기가 어려우므로 곱셈기를 대체하여 적은 사이클에 곱셈을 수행하는 회로가 요구된다. 종전에 곱셈기를 사용하지 않고 비트단위로 곱셈을 처리하는 방식으로는 통상 비트-시리얼(bit-serial) 방식 또는 쿼지-시리얼(quasi-serial) 방식이 있다. 비트-시리얼 방식은 가산&시프트(add & shift) 연산을 수행하는 방식으로 덧셈(가산)을 수행한 후 자리수 정렬을 위하여 시프트를 수행하게 된다. 이와 같은 방법을 M번 반복하게 되면 곱셈결과가 누산기에 저장되게 된다. 즉, 비트-시리얼 알고리즘을 이용한 곱셈처리는 승수의 LSB(Least Significant Bit)부터 상위비트로 시트프시키면서 피승수를 곱한 결과에 그 이전에 계산된 부분곱(partial product)을 누적시키는 방법으로 동시에 가산&시프트 연산을 수행하는 구조에서는 M비트×M비트 곱셈연산을 위해 총 M사이클이 요구된다. 또한 연산을 위한 하드웨어로는 M비트 레지스터 한 개와 2M비트 레지스터 두 개, 그리고 2M비트 가산기가 필요하므로 하드웨어의 부담이 크다고 말할 수 있다.
쿼지-시리얼 방식의 곱셈기 또한 가산&시프트(add & shift) 연산방식을 이용하여 곱셈을 수행하게 된다. 그러나 가산&시프트 방식에 따른 M비트×M비트의 곱셈연산은 M비트의 데이터와 자리수를 시프트한 M비트의 데이터를 더해주는 방식인데 비해, 이 쿼지-시리얼 방식에 따른 곱셈연산은 부분곱(partial product)들의 각 자리수에 포함되는 디지트들을 한꺼번에 더해주어 각 자리수별로 계산하는 방식이다. 상기 쿼지-시리얼 방식에 따르면, 먼저 2M-1비트의 시프트레지스터의 MSB부분의 M비트에 피승수를 저장하고 나머지 LSB부분에 "000…0"을 저장한다. 먼저 피승수의 LSB와 승수의 LSB, 피승수의 LSB 이하의 "000…0"과 승수의 두 번째 LSB부터 MSB까지 논리합 연산한 후 그 결과에서 "1"의 개수를 카운트한다. 다음 사이클에서는 피승수를 시프트라이트(오른쪽으로 1번 시프트)시킨 후 다시 같은 형태로 논리곱시켜 카운트한다. 이는 피승수가
Figure kpo00002
이고, 승수가
Figure kpo00003
일 때
Figure kpo00004
과 같이 함께 더해져야 할 같은 자리수의 부분곱들을 한꺼번에 각 자리수 별로 계산한다는 것을 의미한다. 이러한 쿼지-시리얼 방식에 따른 M비트끼리의 곱셈의 경우, M번의 시프트사이클과 M번의 카운트 사이클이 사용된다. 따라서 총 2M번의 사이클이 소모되므로 곱셈 연산의 속도가 느리다는 단점이 있으며 워드길이(word length)가 15비트 이하인 경우 비트-시리얼 곱셈 방식보다 하드웨어 소모가 더 많아서 비효율적이 된다.
따라서 본 발명의 목적은 가변 탭 구조를 가지는 디지털 필터의 전체적인 하드웨어의 크기를 감소시키기 위한 데이터 입력장치를 제공하는데 있다.
본 발명의 다른 목적은 가변 탭 구조를 가지는 디지털 필터의 전체적인 하드웨어의 크기를 감소시키기 위한 필터계수 입력장치를 제공하는데 있다.
본 발명의 또다른 목적은 디지털 필터의 주요한 구성요소를 이루는 곱셈기의 하드웨어적인 크기를 감소시키는데 있다.
본 발명의 또다른 목적은 곱셈회로의 곱셈연산에 따른 속도를 향상시키는데 있다.
본 발명의 또다른 목적은 워드길이가 변경되는 경우에 곱셈연산을 위한 하드웨어의 크기를 증가됨을 방지하는데 있다.
이러한 목적들을 달성하기 위한 본 발명은 탭을 가변시키는 구조의 필터를 선택기들로 구현하므로써 사용된 게이트수를 줄이고 전체적인 하드웨어의 크기를 줄이는 것을 특징으로 한다. 또한 본 발명은 M비트로 구현된 입력단을 가지는 곱셈회로를 제공하므로써 곱셈회로의 하드웨어의 크기를 약 절반으로 줄이는 것을 특징으로 한다. 그리고 또한 본 발명은 비트-시리얼 곱셈 알고리즘을 개선하여 필터에 적용하여 동시에 2개의 부분곱을 생성하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다.
도 1은 본 발명에 따른 가변탭 구조의 데이터 블록을 보여주는 도면.
도 2는 도 1에 도시된 데이터 블록의 구체적인 실시예를 보여주는 도면.
도 3은 본 발명에 따른 가변탭 구조의 필터계수 블록을 보여주는 도면.
도 4는 도 3에 도시된 필터계수 블록의 구체적인 실시예를 보여주는 도면.
도 5는 본 발명에 따른 곱셈연산을 행하는 회로를 포함하는 FIR필터의 구성을 보여주는 도면.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의내려진 용어들로서 이는 사용자 또는 칩설계자의 의도 또는 관례 등에 따라 달라질 수 있으므로, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
하기에서 본 발명에 따른 디지털 필터는 크게 두 가지 측면에서 설명될 것이다. 첫 번째 측면에 따르면, 본 발명의 디지털 필터는 데이터의 경우에는 궤환루프 구조에 따라 인가하며, 계수의 경우에는 반복적으로 저장하여 사용하므로써 하드웨어의 크기를 줄이는 것을 특징으로 한다. 이러한 측면에 따른 디지털 필터의 효과는 후술될 도 1 내지 도 3의 설명으로부터 명확해질 것이다. 두 번째 측면에 따르면, 본 발명의 곱셈회로는 전용의 곱셈기를 사용하는 대신에 M비트로 구현된 입력단을 가지며, 개선된 비트-시리얼 곱셈 알고리즘을 수행하므로써 하드웨어의 크기를 줄이고, 또한 곱셈 처리에 따른 연산속도를 2배 향상시키는 것을 특징으로 한다. 이러한 측면에 따른 곱셈회로의 효과는 후술될 도 5의 설명으로부터 명확해질 것이다.
Ⅰ. 가변 탭 구조를 가지는 필터
가변 탭 구조를 가지는 본 발명에 따른 필터는 크게 데이터 블록의 궤환루프 구조와 계수 블록의 계수 반복기법으로 나뉘어진다. 하기에서는 본 발명의 일예로써 필터의 최대 탭수가 64이고, 계수가 8비트인 경우를 예로 하여 설명된다. 또한 탭을 가변시키기 위한 선택기를 MUX(multiplexer)로 사용하였으며, 디지털 필터는 구현의 용이성 때문에 유한장임펄스응답(Finite Impulse Response: 이하 "FIR"이라 칭함)필터로 정하였다. 그러나 본 발명은 이러한 경우에만 적용되는 것이 아나라 탭수 및 계수가 확장 및 축소되는 경우, MUX 이외의 선택기들(tri-state buffer, decoder 등)을 사용하는 경우, IIR(Infinite Impulse Response)필터로 구현하는 경우에도 용이하게 적용될 수 있다는 사실에 유의하여야 한다.
도 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은 궤환된 과거의 입력 데이터열 또는 새로운 입력데이터를 받아들이며 레지스터열을 연결해주는 기능을 담당한다.
도 3은 본 발명에 따른 필터의 계수 블록을 보여주는 도면으로, 이 블록은 64개의 8비트 레지스터열로 구성됨을 알 수 있다. 입력 계수는 탭수에 따라 하나의 계수 레지스터 1,9,17,25(R1,R9,R17,R25)로 입력된다. 이때 데이터 블록과의 주요한 차이는 N을 주기로 궤환되는 계수열이 좌측의 8×1 MUX를 통해 직접 출력되는 점과 계수반복기법을 이용하여 MUX 셀 수를 줄인다는 점이다.
Ⅰ-1. 궤환루프 구조
궤환루프 구조는 도 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는 연산기의 입력으로도 사용된다.
도 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로 형성된다. 입력데이터가
Figure kpo00005
,
Figure kpo00006
,…,
Figure kpo00007
…라 하고 계수를
Figure kpo00008
,
Figure kpo00009
,…,
Figure kpo00010
라 하고 FIR필터링 출력을 y[n]이라고 가정하면, 필터링 출력 y[0],y[1]은 하기의 <수학식 1>과 같이 표현된다.
Figure kpo00011
Figure kpo00012
데이터 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>에 도시된 바와 같다.
레지스터 48 49 50 51 52 58 59 60 61 64(출력) 계수
출력 D13 D12 D11 D10 D9 D3 D2 D1 D0 0 C14
y[0] D14 D13 D12 D11 D10 D4 D3 D2 D1 D0 C0
D1 D14 D13 D12 D11 D5 D4 D3 D2 D1 C1
D2 D1 D14 D13 D12 D6 D5 D4 D3 D2 C2
D3 D2 D1 D14 D13 D7 D6 D5 D4 D3 C3
D14 D13 D12 D11 D10 D4 D3 D2 D1 D14 C14
y[1] D15 D14 D13 D12 D11 D5 D4 D3 D2 D1 C0
D2 D15 D14 D13 D12 D6 D5 D4 D3 D2 C1
D3 D2 D15 D14 D13 D7 D6 D5 D4 D3 C2
D4 D3 D2 D15 D14 D8 D7 D6 D5 D4 C3
D15 D14 D13 D12 D11 D5 D4 D3 D2 D15 C14
y[2] D16 D15 D14 D13 D12 D6 D5 D4 D3 D2 C0
D2 D16 D15 D14 D13 D7 D6 D5 D4 D3 C1
D3 D2 D16 D15 D14 D8 D6 D5 D4 D3 C2
D4 D3 D2 D16 D15 D9 D8 D6 D5 D4 C3
D16 D15 D14 D13 D12 D6 D5 D4 D3 D16 C14
종래 기술에 따른 디지털 필터는 탭을 가변시키기 위하여 메모리와, 메모리의 탭수에 해당하는 주소를 부여하기 위한 주소생성유니트와, 순차적인 데이터를 효과적으로 저장하기 위하여 정해진 한계 번지를 읽기/쓰기하기 위한 모듈로유니트를 내장하고 있다. 반면에 본 발명에 따른 디지털 필터의 데이터 블록은 상대적으로 하드웨어 크기가 적은 선택기들(8×1 MUX와 MUX셀들)만을 이용하여 구현한다. 또한 본 구조는 적은 수의 선택기(8개의 MUX셀)만을 추가하므로써 64탭에서 128탭으로의 확장이 가능하다. 이렇듯 탭수가 2의 자승배로 증가하는 것에 비해 하드웨어 크기는 선형적인 증가를 보이므로 본 발명은 탭수를 확장할 시 매우 유리할 것이다.
Ⅰ-2. 계수 반복 기법
본 발명의 필터에 적용하기 위한 계수 반복 기법은 도 3에 도시된 바와 같이 구현되는 계수 블록에 의해 수행되며, 이러한 블록은 구현되는 필터탭이 32 이하인 경우 계수탭 N을 하기의 <수학식 2>가 만족되는 범위에서 임의로 r번 반복 입력하여 33탭 이상으로 변환시켜 사용하는 방법이다. 따라서 33탭에서 64탭의 계수 설정을 위한 하드웨어만으로 모든 탭을 사용할 수 있어 사용된 MUX셀의 개수를 반으로 줄일 수 있다.
Figure kpo00013
예를 들어, 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로 입력하여 사용하는 경우 구현된 레지스터 길이를 초과하므로 사용할 수 없다.
도 4는 도 3에 도시된 바와 같은 계수 블록을 가지는 필터가 15탭 필터링 동작을 수행하는 경우의 예를 보여주고 있다.
전술한 도 3에 도시된 바와 같이 본 발명에 따라 계수를 반복적으로 저장하여 사용하는 방법은 계수 블록의 하드웨어를 적은 수의 선택기(8×1 MUX 및 4개의 MUX셀 MC1∼MC4)만으로 구현할 수 있으므로 하드웨어 크기를 대폭 줄인다. 이러한 본 발명에 따른 구조는 내부의 탭을 128개로 확장할 경우 추가될 레지스터 파일에 단지 선택기(4개의 MUX셀)만을 추가하면 가능하다.
한편 전술한 데이터 블록 및 계수 블록에서의 최대 임계경로(critical path)는 선택기들의 경로(8×1 MUX와 2×1 MUX)로 탭의 확장에 관계없이 일정하며 고속의 동작이 가능하다.
Ⅱ. 곱셈회로
도 5는 본 발명에 따른 곱셈회로를 포함하는 FIR필터의 구성을 보여주는 도면으로, 상기 곱셈회로는 전용의 곱셈기를 사용하는 대신에 파이프라인을 이루는 셀들로 구성된 것을 특징으로 한다. 이때의 각 셀은 크게 2개의 병렬입력&직렬출력(PISO: Parallel Input Serial Output)의 시프트레지스터 30, 부분곱 생성단 40, 부분곱 합성단 50, 변환회로 60 및 파이프라인 레지스터 70으로 구성된다. 이러한 구성의 곱셈회로를 포함하는 FIR필터는 하기의 <수학식 3>으로부터 비트-시리얼 곱셈 알고리즘을 적용하여 유도하면 <수학식 7>에 나타낸 바와 같은 고속의 비트-시리얼 곱셈 알고리즘에 따른 필터링 동작을 수행하는 것을 특징으로 한다.
본 발명에 따른 곱셈회로를 포함하는 FIR필터는 다음의 <수학식 3>에 나타낸 바와 같은 필터링 동작을 수행한다.
Figure kpo00014
상기 <수학식 3>에서 x[n], y[n]은 입력데이터 및 출력데이터(필터링된 데이터)를 나타내며, h[n]은 필터의 FIR특성을 나타내며, N은 필터의 차수를 나타낸다.
비트-시리얼 알고리즘을 이용한 곱셈처리는 다음의 <수학식 4>와 같이 M비트 승수의 LSB부터 상위비트로 시프트시키면서 피승수를 곱한 결과에 그 전에 계산된 부분곱을 M번 누적시키는 방법이다.
Figure kpo00015
상기 <수학식 4>에서 P는 곱셈결과를 나타내며, A는 피승수, X는 승수를 나타낸다. Xj는 승수의 j번째 비트를 나타내며, M은 승수의 비트수를 표현한다. 이때 <수학식 4>를 <수학식 3>에 대입시키면 다음의 <수학식 5>와 같은 비트-시리얼 알고리즘을 이용한 무곱셈기 FIR 필터식이 유도된다. 여기서 N은 필터 탭수를, M은 계수의 비트수를 나타낸다.
Figure kpo00016
곱셈에 사용되는 클럭 사이클 수를 줄이기 위해 상기 <수학식 5>에서 부분곱 생성을 위해 사용되는 승수의 각 비트를 짝수와 홀수로 나누어 시프트레지스터에 저장하고 각각의 LSB로부터 MSB로 시프트시키면서 동시에 처리를 하면 하기의 <수학식 6>과 같이 표현된다. 이는 한 클럭 사이클에 2개의 부분곱을 생성하므로써 곱셈에 사용된 처리시간을 M에서 M/2클럭 사이클로 줄이므로써 2배의 처리시간 이득을 얻을 수 있도록 하는 것이다.
Figure kpo00017
상기 <수학식 6>을 이용하여 하나의 필터링 결과를 얻기 위해서는 각각 2개의 (N·M)/2번 누산된 결과를 더해야 하므로 2개의 누산기와 1개의 가산기가 필요하다. 그러나 상기 <수학식 6>에 결합법칙을 적용하여 하기의 <수학식 7>로 변환하면 1개의 누산기와 1개의 가산기만으로 구현할 수 있으므로 전체적인 하드웨어의 크기를 줄일 수 있다.
Figure kpo00018
상기한 <수학식 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의 누적된 부분곱과 더하는 과정을 통해서 이루어지게 된다.
종전의 비트-시리얼 곱셈 구조는 부분곱 생성 및 합성을 위한 입력단을 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)]가 된다.
필터링을 위해 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"을 인가한다.
기존의 방식은 곱셈을 위한 입력단의 크기를 2M비트로 확장하여 사용하므로써 레지스터와 가산기의 크기를 필요 이상으로 증가시키는 방식이었으나, 이에 반하여 본 발명은 입력단을 M비트 레지스터와 M비트 가산기로 구현하여 하드웨어 크기를 줄이는 것을 특징으로 한다. 또한 동시에 2개의 부분곱 데이터를 생성 및 합성하는 방법을 사용하므로써 기존의 곱셈을 위한 M클럭 사이클 및 필터링을 위한 N·M의 처리시간 클럭 사이클을 각각 M/2클럭 사이클과 M·N/2클럭 사이클로 줄임으로써 2배의 성능 향상을 기할 수 있다.
상술한 바와 같이 본 발명의 디지털 필터는 데이터의 경우에는 궤환루프 구조에 따라 인가하며, 계수의 경우에는 반복적으로 저장하여 사용하므로써 하드웨어의 크기를 줄이는 이점이 있다. 또한 본 발명의 곱셈회로는 전용의 곱셈기를 사용하는 대신에 M비트로 구현된 입력단을 가지므로써 하드웨어 크기를 줄이고, 개선된 비트-시리얼 곱셈 알고리즘을 수행하므로써 곱셈 처리에 따른 연산속도를 2배 향상시키는 이점이 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 않되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (4)

  1. 미리 설정된 탭수와 비트수의 데이터를 디지털 필터로 제공하기 위한 장치에 있어서,
    상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 다수의 레지스터들과,
    상기 각 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 선택기셀과,
    상기 다수 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.
  2. 미리 설정된 탭수와 비트수의 계수를 디지털 필터로 제공하기 위한 장치에 있어서,
    상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 다수의 레지스터들과,
    상기 각 레지스터열중 초기 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 선택기셀과,
    상기 다수 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.
  3. 미리 설정된 탭수와 비트수의 데이터 및 계수를 디지털 필터로 제공하기 위한 장치에 있어서,
    상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 제1군의 레지스터와,
    상기 제1군 레지스터의 각 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 제1선택기셀과,
    상기 제1군 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 제1출력선택기와,
    상기 탭수에 상응하는 레지스터들이 일련 접속되어 이루어지며, 이들 레지스터들은 상기 비트수에 대응하여 일련 접속된 레지스터열들로 나누어지는 제2군 레지스터와,
    상기 제2군 레지스터의 각 레지스터열중 초기 레지스터열의 입력단에 각각 구비된 선택기들로 이루어지는 제2선택기셀과,
    상기 제2군 레지스터의 최종 레지스터열의 각 레지스터들의 출력단에 연결되어 어느 한 레지스터의 출력을 선택하여 소정 연산을 위해 제공하며, 이와 동시에 이 선택된 출력을 상기 선택기셀의 각 선택기들에 궤환시키는 제2출력선택기를 적어도 포함하여 이루어짐을 특징으로 하는 장치.
  4. 디지털 필터링 동작의 수행을 위한 곱셈회로에 있어서
    소정 인가되는 필터계수들을 홀수계수 비트와 짝수계수 비트로 구분하여 입력하는 입력수단과,
    소정 입력데이터에 상기 홀수계수 비트와 상기 짝수계수 비트를 각각 곱하여 제1부분곱 및 제2부분곱을 생성하는 부분곱 생성단과,
    상기 제1부분곱을 1비트 시프트레프트시킨 후 이 결과값에 상기 제2부분곱을 그대로 통과시킨 값을 가산하여 이 가산결과값을 소정 비트의 데이터로서 변환하여 곱셈결과로서 출력하는 가산수단으로 이루어짐을 특징으로 하는 곱셈회로.
KR1019970008597A 1997-03-14 1997-03-14 디지털 필터의 가변탭 구조 및 그의 곱셈회로 KR100235537B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970008597A KR100235537B1 (ko) 1997-03-14 1997-03-14 디지털 필터의 가변탭 구조 및 그의 곱셈회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970008597A KR100235537B1 (ko) 1997-03-14 1997-03-14 디지털 필터의 가변탭 구조 및 그의 곱셈회로

Publications (2)

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

Family

ID=19499683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970008597A KR100235537B1 (ko) 1997-03-14 1997-03-14 디지털 필터의 가변탭 구조 및 그의 곱셈회로

Country Status (1)

Country Link
KR (1) KR100235537B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100545609B1 (ko) * 1998-12-30 2006-04-21 유티스타콤코리아 유한회사 통신 시스템의 변조기내 유한 임펄스 응답 필터
KR100654188B1 (ko) 2004-06-30 2006-12-05 한국전자통신연구원 Dsp 상에서의 fir 필터 구현 방법 및 그에 따른fir 필터

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050003026A (ko) * 2003-06-30 2005-01-10 주식회사 대우일렉트로닉스 적산기를 이용한 디지털 필터 및 그 필터링 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100545609B1 (ko) * 1998-12-30 2006-04-21 유티스타콤코리아 유한회사 통신 시스템의 변조기내 유한 임펄스 응답 필터
KR100654188B1 (ko) 2004-06-30 2006-12-05 한국전자통신연구원 Dsp 상에서의 fir 필터 구현 방법 및 그에 따른fir 필터

Also Published As

Publication number Publication date
KR19980073359A (ko) 1998-11-05

Similar Documents

Publication Publication Date Title
US4722068A (en) Double precision multiplier
US5255216A (en) Reduced hardware look up table multiplier
JPH07507411A (ja) 2の累乗である係数を用いるディジタルフィルタ
US5297069A (en) Finite impulse response filter
JP4445132B2 (ja) 乗算器を用いないデジタルフィルタリング
JP2722412B2 (ja) モンゴメリ法によるモジュラ操作の実行に伴うエラー訂正パラメータの算出方法
US4322810A (en) Digital filters with reduced multiplier circuitry
US5867414A (en) Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations
KR100235537B1 (ko) 디지털 필터의 가변탭 구조 및 그의 곱셈회로
US4336600A (en) Binary word processing method using a high-speed sequential adder
EP0474246A2 (en) Image signal processor
JPH0767063B2 (ja) デジタル信号処理回路
US5781462A (en) Multiplier circuitry with improved storage and transfer of booth control coefficients
KR100233284B1 (ko) 어드레스 발생장치
EP1504335A2 (en) Fast multiplication circuits
US5031137A (en) Two input bit-serial multiplier
JPS5853217A (ja) デジタルフイルタ回路
JP4295234B2 (ja) Fir型デジタルフィルタ
CA2020264C (en) Digital filter
JP2001160736A (ja) デジタルフィルタ回路
JPH07273600A (ja) ディジタルフィルタ
JP3270659B2 (ja) 演算回路および演算方法
JP5072558B2 (ja) データ処理装置
JPS59194242A (ja) ディジタル乗算累積加算装置
JP2001177378A (ja) Firデジタルフィルタ

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