KR20090127462A - Fft/ifft 연산코어 - Google Patents

Fft/ifft 연산코어 Download PDF

Info

Publication number
KR20090127462A
KR20090127462A KR1020080053456A KR20080053456A KR20090127462A KR 20090127462 A KR20090127462 A KR 20090127462A KR 1020080053456 A KR1020080053456 A KR 1020080053456A KR 20080053456 A KR20080053456 A KR 20080053456A KR 20090127462 A KR20090127462 A KR 20090127462A
Authority
KR
South Korea
Prior art keywords
fft
signal
dit
ifft
dif
Prior art date
Application number
KR1020080053456A
Other languages
English (en)
Other versions
KR100989797B1 (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 KR1020080053456A priority Critical patent/KR100989797B1/ko
Priority to US12/996,779 priority patent/US8917588B2/en
Priority to PCT/CN2009/072182 priority patent/WO2009149654A1/zh
Priority to CN2009801001719A priority patent/CN101836202B/zh
Publication of KR20090127462A publication Critical patent/KR20090127462A/ko
Application granted granted Critical
Publication of KR100989797B1 publication Critical patent/KR100989797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2626Arrangements specific to the transmitter only
    • H04L27/2627Modulators
    • H04L27/2628Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators
    • H04L27/263Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators modification of IFFT/IDFT modulator for performance improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • H04L27/2651Modification of fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators for performance improvement

Abstract

본 발명은 FFT 및 IFFT 연산처리 과정에서 요구되는 메모리의 용량을 최소화시킬 수 있는 FFT/IFFT 연산코어를 개시한다. 상기 FFT/IFFT 연산코어는, 입력버퍼, 제1먹스, 연산블록 및 컨트롤블록을 구비한다. 상기 입력 버퍼는 첫 번째 FFT의 입력시퀀스를 저장하고 출력한다. 상기 제1먹스는 첫 번째 및 세 번째 FFT의 입력시퀀스중 하나를 스위칭 한다. 상기 컨트롤블록은 입력되는 시퀀스를 DIT 방식으로 처리할 것인지 혹은 DIF 방식으로 처리할 것인지를 지시하는 신호처리방식 지시신호 및 입력되는 시퀀스를 처리하지 않고 그대로 통과시킬 것을 지시하는 바이패스 지시신호를 생성한다. 여기서 신호처리방식 지시신호 및 바이패스 지시신호는 FFT의 사이즈에 따라 결정된다. 상기 연산블록은 상기 신호처리방식 지시신호 및 상기 바이패스 지시신호에 응답하여 첫 번째 FFT의 입력시퀀스 및 세 번째 FFT의 입력시퀀스를 변환하여 첫 번째 FFT의 출력시퀀스 및 세 번째 FFT의 출력시퀀스를 각각 생성하며, 두 번째 IFFT의 입력시퀀스를 변환하여 두 번째 IFFT의 출력시퀀스를 생성하며, 직렬로 연결된 복수 개의 연산스테이지를 구비한다.
FFT, IFFT, 연산, 시퀀스

Description

FFT/IFFT 연산코어{Fast fourier transform/inverse fast fourier transform operating core}
본 발명은 연산코어에 관한 것으로, 특히 OFDM 수신기에서 사용되는 OFDM 수신기용 FFT/IFFT 연산코어에 관한 것이다.
OFDM(Orthogonal Frequency Division Multiplexing) 시스템에서는 N(N은 정수) 포인트(N-point) 이산푸리에 변환(Discrete Fourier Transform, 이하 DFT)이 필요한데 DFT의 산술 연산 량은 N2에 비례한다. 따라서 N이 클 경우에는 효율적으로 DFT를 계산하는 알고리즘이 필요하다. 고속푸리에 변환(Fast Fourier Transform, 이하 FFT)은 N 길이의 시퀀스(sequence)를 보다 작은 길이의 시퀀스로 연속해서 분해함으로써, DFT 연산 량을 획기적으로 줄이는 알고리즘(Algorithm)이다. N 길이의 시퀀스를 보다 작은 크기의 시퀀스로 줄이는 방식으로는, 이를 시간 축에서 분해하는 DIT(Decimation In Time) 방식과 주파수 축에서 분해하는 DIF(Decimation In Frequency) 방식이 있다. OFDM 변복조 시스템은 N-포인트 FFT 알고리즘을 설계할 수 있기에 구현이 가능해 졌다.
FFT는 시간영역(time domain)의 신호를 주파수영역(Frequency domain)의 신호로 변환시키며, 역 고속푸리에 변환(Inverse Fast Fourier Transform, 이하 IFFT)은 주파수영역의 신호를 시간영역의 신호로 변환시킨다. 무선통신의 경우 주파수영역에 대한 분석이 필요하므로 FFT로 생성시킨 주파수영역의 신호를 이용하여 채널추정(channel estimation)을 하게 되면 효율적이다. 종래의 FFT 장치로는 공유 메모리(Shared memory)를 사용하는 SPE(Single Processing Element) 구조와 각 연산스테이지(operating stage)의 연산기(operator) 사이에 지연 피드백 레지스터(delay feedback register)들을 사용하는 파이프라인(pipeline) 구조가 있다.
이 중 SPE 구조에 구현되는 N-포인트 FFT 장치는 메모리에 저장된 N개의 샘플(sample)에 대한 메모리 읽기/쓰기 액세스(memory read/write access)가 연산스테이지 개수만큼 필요하므로 출력 레이턴시(output latency)가 크다는 단점이 있다. 파이프라인 구조는 출력 레이턴시가 N-싸이클(N-cycles)인 장점이 있고 저장 용량 면에서는 SPE 구조와 동일하지만, 메모리가 연산스테이지 개수만큼 필요하고 입력과 출력의 데이터 순서가 다르다는 단점이 있다. 일반적으로는 FFT 이후의 처리를 용이하게 하기 위하여 데이터 열 변환용 메모리를 추가하고 레이턴시를 최대 N-싸이클 증가시킴으로써 입력과 출력데이터의 순서를 동일하게 한다.
OFDM 변복조 등에서 이용하는 FFT 장치는, 연속하는 복수의 FFT 입력을 처리할 필요가 있기 때문에 현재의 FFT 입력에 대한 처리와 병행하여 다음 FFT 입력을 저장하기 위한 기억장치가 필요하다. 또한 파이프라인 구조에서는 FFT 각 스테이지의 지연 피드백 레지스터들을 구성하기 위한 기억장치가 필요하다. 기억장치는 FFT 장치의 대부분을 차지하는데, 기억장치가 늘어나면 늘어날수록 시스템의 면적이 증가하게 된다는 단점이 있다.
본 발명이 해결하고자 하는 기술적 과제는, FFT 및 IFFT 연산처리 과정에서 요구되는 메모리의 용량을 최소화시킬 수 있는 FFT/IFFT 연산코어를 제공하는데 있다.
상기 기술적 과제를 이루기 위한 본 발명에 따른 FFT/IFFT 연산코어는, 입력버퍼, 제1먹스, 연산블록 및 컨트롤블록을 구비한다. 상기 입력 버퍼는 첫 번째 FFT의 입력시퀀스를 저장하고 출력한다. 상기 제1먹스는 첫 번째 및 세 번째 FFT의 입력시퀀스중 하나를 스위칭 한다. 상기 컨트롤블록은 입력되는 시퀀스를 DIT 방식으로 처리할 것인지 혹은 DIF 방식으로 처리할 것인지를 지시하는 신호처리방식 지시신호 및 입력되는 시퀀스를 처리하지 않고 그대로 통과시킬 것을 지시하는 바이패스 지시신호를 생성한다. 여기서 신호처리방식 지시신호 및 바이패스 지시신호는 FFT의 사이즈에 따라 결정된다. 상기 연산블록은 상기 신호처리방식 지시신호 및 상기 바이패스 지시신호에 응답하여 첫 번째 FFT의 입력시퀀스 및 세 번째 FFT의 입력시퀀스를 변환하여 첫 번째 FFT의 출력시퀀스 및 세 번째 FFT의 출력시퀀스를 각각 생성하며, 두 번째 IFFT의 입력시퀀스를 변환하여 두 번째 IFFT의 출력시퀀스를 생성하며, 직렬로 연결된 복수 개의 연산스테이지를 구비한다.
본 발명은 1개의 FFT/IFFT 연산코어를 공유하여 사용함으로서 소요되는 메모리 용량을 최소한으로 할 수 있는 장점이 있다.
본 발명은, 정해진 FFT 과정이 심볼 당 3번 이루어지는 OFDM 수신기에서 사용되는 OFDM 수신기용 FFT/IFFT 연산코어에 관한 것으로, DIT 방법의 파이프라인 FFT와 DIF 방법의 파이프라인 IFFT 과정을 번갈아 행함으로써 데이터 열 변환을 수행하지 않도록 하며, FFT 입출력 샘플클럭의 주파수에 비해 M(M은 정수)배의 코어클럭(core clock)을 사용함으로서 복수의 FFT 과정이 가능하게 한다. 예를 들어, FFT 과정이 3번 필요한 OFDM 수신기에서는 M이 4가 된다.
또한 가변 N-포인트(variable N point) FFT를 복수로 수행하기 위하여 DIT 방법 또는 DIF 방법과 FFT 순번에 따라서 스테이지들의 동작 구성을 달리하고, 특정 기억장치들을 공유하는 구조를 가지도록 한다.
이하에서는 본 발명의 구체적인 실시 예를 도면을 참조하여 상세히 설명하도록 한다.
본 발명에 대해 설명하기 전, 정해진 FFT 과정이 심볼 당 3번 이루어지는 OFDM 수신기에서의 연산과정을 설명하며, 표 1은 심볼 당 3번의 FFT 과정이 필요한 경우의 연산과정에 대한 것이다.
FFT 순서 FFT/IFFT DIT/DIF Input sequence Output sequence Latency
1st FFT DIT permutated Naturally ordered N
2nd IFFT DIF Naturally ordered permutated N
3rd FFT DIT permutated Naturally ordered 2 x N
표 1을 참조하면, FFT를 수행하건 IFFT를 수행하건 변환후의 데이터 시퀀스의 순서는 변환전의 데이터 시퀀스의 순서와 바뀐다는 것을 알 수 있다.
첫 번째(1st)의 FFT는 DIT 방법을 사용하여 시간 도메인 상의 OFDM 심볼 캐리어(symbol carrier) 즉 입력시퀀스(input sequence)를 주파수 도메인으로 변환시키며, 출력시퀀스(output sequence)의 데이터는 입력시퀀스와 배열순서가 바뀌어 진다. DIF 방법을 사용하는 두 번째(2nd)의 IFFT 및 DIT 방법을 사용하는 세 번째(3rd)의 FFT는 채널추정을 위해서 사용된다.
무선채널 환경에서는 시간과 주파수 영역 상에서 채널상태가 시간적으로 불규칙하게 변하게 되는 페이딩(fading) 특성을 가지게 되는데, 여기서 페이딩 이란 경로를 달리하는 2개 이상의 전파가 간섭한 결과, 진폭 및 위상이 불규칙하게 변하는 현상을 의미한다. 채널에 대해 진폭과 위상을 추정하는 것을 채널추정(channel estimation)이라고 하는데, 채널추정은 무선채널의 주파수 응답을 추정하는 것이라 할 수 있다.
일반적으로 FFT의 사이즈(size)는 포인트(point)라고 하는데, 이하에서는 설명의 편의를 위해, 8192 포인트 FFT/IFFT 연산코어 즉 FFT의 최대 사이즈가 8192인 경우에 대한 것으로 한정하였다. 따라서 설명은 8192 포인트 및 그 이하의 포인트에 대하여 설명하겠지만, 설명에 기초하여 더 큰 사이즈의 FFT에 동작시키기에 적합하도록 본 발명을 수정(modify)하는 것은 본원발명의 기술적 사상의 범위에 들어간다.
도 1은 본 발명에 따른 FFT/IFFT 연산코어의 블록다이어그램이다.
도 1을 참조하면, FFT/IFFT 연산코어(100)는 입력버퍼(110), 제1먹스(M1), 연산블록(120) 및 컨트롤블록(130)을 구비한다.
입력 버퍼(110)는 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs)를 저장하고 출력한다.
제1먹스(MUX1)는 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs) 및 세 번째(3rd) FFT의 입력시퀀스(3rd FFT inputs) 중 하나를 스위칭(multiplex) 한다.
컨트롤블록(130)은 입력되는 시퀀스를 DIT 방식으로 처리할 것인지 혹은 DIF 방식으로 처리할 것인지를 지시하는 신호처리방식 지시신호(DIT/DIF) 및 입력되는 시퀀스를 처리하지 않고 그대로 통과시킬 것을 지시하는 바이패스 지시신호(BP)를 생성한다. 여기서 신호처리방식 지시신호(DIT/DIF) 및 바이패스 지시신호(BP)는 FFT의 사이즈에 따라 결정된다.
연산블록(120)은 신호처리방식 지시신호(DIT/DIF) 및 바이패스 지시신호(BP)에 응답하여 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs) 및 세 번째(3rd) FFT의 입력시퀀스(3rd FFT inputs)를 변환하여 첫 번째 FFT의 출력시퀀스(1st FFT outputs) 및 세 번째 FFT의 출력시퀀스(3rd FFT outputs)를 각각 생성하며, 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)를 변환하여 두 번째 IFFT의 출력시퀀스(2nd IFFT outputs)를 생성하며, 직렬로 연결된 복수 개의 연산스테이지를 구비한다.
제0연산스테이지(121)는 해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제1먹스(MUX1)의 출력신호(Mo) 또는 제1연산스테이지(122)의 제2출력신호(D1F)를 그대로 혹은 신호처리하여 제1출력신호(D0T) 또는 제2출력신호(D0F)를 생성한다. 여기서 신호처리를 한다는 것은 입력시퀀스에 대하여 FFT 또는 IFFT 연산을 수행하는 것을 의미하며 이하의 설명에서도 동일하게 적용된다.
제1연산스테이지(122)는 해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제1연산스테이지(121)의 제1출력신호(D0T) 또는 제3연산스테이지(123)의 제2출력신호(D0F)를 그대로 혹은 신호처리하여 제1출력신호(D1T) 또는 제2출력신호(D1F)를 생성한다.
제2연산스테이지(123) 내지 제5연산스테이지(126)는 상술한 제1연산스테이지(122)와 동일한 논리로 연결되어 있으므로, 여기서는 설명을 하지 않는다.
제6연산스테이지(127)는 해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제5연산스테이지(126)의 제1출력신호(D5T) 또는 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)를 그대로 혹은 신호처리하여 제1출력신호(D6T) 또는 제2출력신호(D6F)를 생성한다.
상기의 내용을 정리하면, 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs) 및 세 번째(3rd) FFT의 입력시퀀스(3rd FFT inputs)가 연산블록(120)에 입력될 때는 제0연산스테이지(121)로부터 순차적으로 제6연산스테이지(127)의 방향으로 DIT 방식의 연산을 수행하여 첫 번째 FFT의 출력시퀀스(1st FFT outputs) 및 세 번째 FFT의 출력시퀀스(3rd FFT outputs)를 생성시킨다. 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)가 연산블록(120)에 입력될 때는 제6연산스테이지(127)로부터 순차적으로 제0연산스테이지(121)의 방향으로 DIF 방식의 연산을 수행하여 두 번째 IFFT의 출력시퀀스(2nd IFFT outputs)를 생성시킨다.
이러한 FFT/IFFT 연산의 수행방향은 신호처리방식 지시신호(DIT/DIF)에 의하여 결정된다. 8192 포인트 FFT/IFFT 연산일 경우에는 직렬로 연결된 복수 개의 연산스테이지(121 ~ 127)가 모두 사용되겠지만, 8192보다 적은 개수의 FFT/IFFT 연산일 경우에는 바이패스 지시신호(BP)에 의해 일부의 연산스테이지가 사용되지 않게 된다. 즉, 연산에 사용되지 않는 연산스테이지에 연결된 바이패스 지시신호(BP)를 인에이블 시킴으로써, 해당 연산스테이지에 입력되는 시퀀스는 연산되지 않고 그대로 다음 연산스테이지로 바이패스 되게 한다.
상술한 바와 같이 도 1에 도시된 본 발명에 따른 FFT/IFFT 연산코어(100)는 N이 8192개인 8192 포인트 FFT/IFFT 연산코어에 대한 것이므로, 제0연산스테이지 내지 제6연산스테이지 중 하나의 연산스테이지는 래딕스-2(Radix-2) 구조를 가지고, 나머지 6개의 연산스테이지들은 래딕스-4(Radix-4)의 구조를 가져야 할 것이다. 여기서 래딕스-2 구조는 2샘플의 입력시퀀스를 처리하는 구조이며, 래딕스-4 구조는 4샘플의 입력시퀀스를 처리하는 구조를 가진다. 이들이 직렬로 연결되면 모두 8192(2*46) 포인트가 된다. 상기에 기재된 샘플과 이하의 설명에서 사용할 샘플은, I(In-phase) 채널 및 Q(Quadrature) 채널 정보를 포함하고 있다.
또한 도 1에 도시된 본 발명에 따른 FFT/IFFT 연산코어(100)는 OFDM 수신기에서 사용되는 것이 바람직하다.
발명의 개념을 용이하게 이해하기 위하여 도 1에 도시된 제0연산스테이지(121)가 래딕스-2 구조를 가지고 나머지 6개의 연산스테이지들(122 ~ 127)은 래딕스-4 구조를 가진다고 가정한다.
도 2는 도 1에 도시된 제0연산스테이지의 내부 블록다이어그램이다.
도 2를 참조하면, 제0연산스테이지(121)는, 제2먹스(M2), 제3먹스(M3), 제4먹스(M4), 래딕스-2 버터플라이 블록(210), 제1지연기(220) 및 제1곱셈기(230)를 구비한다.
제2먹스(M2)는 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 제1먹스(M1)의 출력신호(Mo)를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIF)에는 제1연산스테이지(122)의 제2출력(D1F)을 선택하여 스위칭한다. 제3먹스(M3)는 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 회전인자(twiddle factor, Wk(n))를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIF)에는 단위 회전인자(1, unit weight)를 선택하여 스위칭 한다. 여기서 k는 정수로서 스테이지의 번호를 의미하며, 따라서 도 2에 사용된 k는 0(zero)이 되고 이 때 회전인자는 W0(n)로 표시된다.
래딕스-2 버터플라이 블록(210)은 제2먹스(M2)의 출력신호 중 일부의 출력신호를 바이패스 시키고, 나머지 출력신호 및 제1지연기(220)로부터 출력되는 지연신호에 버터플라이(butterfly) 연산을 수행한다. 제1지연기(220)는 래딕스-2 버터플라이 블록(210)에서 바이패스 된 신호를 지연시켜 상기 지연신호를 생성한다. 제1곱셈기(230)는 제2먹스(M2)의 출력신호와 래딕스-2 버터플라이 블록(210)의 출력신호를 복소수 곱(complex multiplication)한다.
제4먹스(M4)는 바이패스 지시신호(BP)가 디스에이블(disable)상태인 경우에는 제1곱셈기(230)의 출력신호를 선택하여 스위칭하고, 인에이블(enable)상태가 되면 제2먹스(M2)의 출력신호를 선택하여 스위칭한다. 즉 바이패스 지시신호(BP)가 인에이블 되면 제0연산스테이지(121)는 FFT/IFFT 연산에서 사용되지 않게 되므로 제2먹스(M2)를 통해 입력되는 신호를 바이패스(bypass) 시킨다.
제4먹스(M4)의 출력신호가 제1출력신호(D0T) 및 제2출력신호(D0F)가 된다. 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 제2출력신호(D0F)가 이어지는 다음 연산스테이지에서 사용되지 않으며, 신호처리방식 지시신호(DIT/DIF)가 DIF 방식의 연산을 지시할 경우(DIF)에도 제1출력신호(D0T)가 이어지는 다음 연산스테이지에서 사용되지 않으므로 도 2에 도시된 바와 같이 제1출력신호(D0T) 및 제2출력신호(D0F)가 동시에 출력되더라도 FFT/IFFT 연산에 문제가 발생하지 않는다.
도 3은 도 1에 도시된 제1연산스테이지 내지 제6연산스테이지의 내부 블록다이어그램이다.
도 3을 참조하면, 제k(k는 1 내지 6 중의 하나의 정수)연산스테이지(122~127)는, 제5먹스(M5), 제6먹스(M6), 제7먹스(M7), 래딕스-4 버터플라이 블록(310), 지연블록(320) 및 제2곱셈기(330)를 구비한다.
제5먹스(M5)는 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 제(k-1)연산스테이지의 출력신호(D(k-1)T)를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIF)에는 제(k+1)연산스테이지의 제2출력(D(k+1)F)을 선택하여 스위칭한다. 이 때 제k연산스테이지가 제6연산스테이지(127)인 경우에는, 제2출력(D(k+1)F) 대신 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)가 선택되어 스위칭 되게 될 것이다. 제6먹스(M6)는, 상기 제6먹스(M6)가 포함된 연산스테이지가 FFT/IFFT 연산에 사용되는 연산스테이지들 중 마지막 단계에 사용되는 경우에는 제어신호(last stage)에 응답하여 단위 회전인자(1)를 선택하고, FFT/IFFT 연산에 사용되는 연산스테이지들 중 중간에 사용되는 연산스테이지에 포함되는 경우에는 신호처리방식 지시신호(DIT/DIF)에 따라 결정되는 회전인자(Wk(n))를 선택하여 스위칭 한다.
래딕스-4 버터플라이 블록(310)은 제5먹스(M5)의 출력신호 중 일부 신호를 바이패스 시키고, 제2먹스(M2)의 출력신호 중 나머지 신호 및 지연블록(320)으로부터 출력되는 지연신호들에 버터플라이 연산을 수행한다. 지연블록(320)은 래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호를 지연시켜 상기 복수 개의 지연신호들을 생성하며, 3개의 지연기(321, 322, 323)를 구비한다. 제1지연기(321)는 래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 첫 번째 신호를 일정시간 지연시킨다. 제2지연기(322)는 래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 두 번째 신호를 일정시간 지연시킨다. 제3지연기(323)는 래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 세 번째 신호를 일정시간 지연시킨다. 래딕스-4 버터플라이 블록(310)은 제1지연기(321) 내지 제3지연기(323) 및 제2먹스(M2)의 출력신호에 대해 버터플라이 연산을 수행하며, 버터플라이 연산에서 생성된 4개의 출력 중 하나만 출력되고 나머지 3개의 출력은 3개의 지연기(321~323)에 다시 저장된다.
제2곱셈기(330)는 제6먹스(M6)의 출력신호와 래딕스-4 버터플라이 블록(310)의 출력신호를 복소수 곱한다. 제7먹스(M7)는 바이패스 지시신호(BP)가 인에이블(enable) 되면 제5먹스(M5)의 출력신호를 선택하여 스위칭하고 디스에이블(disable) 되면 제2곱셈기(330)의 출력신호를 선택하여 스위칭한다. 즉 바이패스 지시신호(BP)가 인에이블 되면 제k연산스테이지는 FFT/IFFT 연산에서 사용되지 않게 되므로 제5먹스(M5)를 통해 입력되는 신호를 바이패스(bypass) 시킨다.
여기서 제7먹스(M7)의 출력신호가 제1출력신호(DkT) 및 제2출력신호(DkF)가 된다. 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 제2출력신호(DkF)는 사용되지 않고, 신호처리방식 지시신호(DIT/DIF)가 DIF 방식의 연산을 지시할 경우(DIF)에는 제1출력신호(DkT)는 사용되지 않으므로 도 3에 도시된 바와 같이 제1출력신호(DkT) 및 제2출력신호(DkF)가 동시에 출력되더라도 FFT/IFFT 연산에 문제가 발생하지 않는다. 도 2 및 도 3에 도시된 회전인자(Wk(n))는 각 연산스테이지 별로 다르다.
도면에는 자세하게 기재되지 않았지만, 복수 개의 연산스테이지가 순차적으로 사용될 때의 마지막 연산스테이지의 내부 곱셈기(230, 330)에 먹스(M3, M6)를 통해 인가되는 회전인자(Wk(n))는 항상 1(one)이 된다. 이 부분에 대해서는 이 후에 기재된 도 12를 참조하면 쉽게 이해할 수 있다.
도 4는 다양한 사이즈의 입력시퀀스에 따른 각 연산스테이지들의 사용 여부 및 사용 순서를 나타낸다.
도 4에서 화살표의 방향은 연산이 수행되는 순서를 의미하며, 숫자는 연산스테이지의 번호를 의미한다.
먼저 DIT 방식의 연산을 수행하는 경우에 대하여 설명한다.
이 경우 본 발명에 따른 FFT/IFFT 연산코어(100)가 처리할 수 있는 최대 사이즈가 8192이므로, 이 보다 적은 사이즈의 시퀀스를 처리할 경우에는 내장된 연산스테이지들 중 일부만 사용하고 나머지는 바이패스 되어야 한다.
도 4를 참조하면, FFT의 사이즈가 16일 경우 래딕스-4 구조를 가지는 2개의 연산스테이지를 순차적으로 사용하면 되는데, 여기서는 제1연산스테이지(1) 및 제2연산스테이지(2)가 순차적으로 사용(1→2)되는 것으로 예를 들었다. FFT의 사이즈가 32일 경우에는 FFT의 사이즈가 16일 경우에 래딕스-2 구조를 가지는 제0연산스테이지(0)를 추가(0→1→2)하기만 하면 된다. FFT의 사이즈가 1024일 경우 래딕스-4 구조를 가지는 5개의 연산스테이지를 순차적으로 사용하면 되는데, 여기서는 제1연산스테이지(1) 내지 제5연산스테이지(5)가 순차적으로 사용(1→2→3→4→5)되는 것으로 예를 들었다. 마찬가지로 1024의 2배의 사이즈가 되는 2048의 경우에는 래딕스-2 구조를 가지는 제0연산스테이지(0)를 추가(0→1→2→3→4→5)하기만 하면 된다.
DIF 방식의 연산을 수행하는 경우도 마찬가지로 설명될 수 있다.
도 4를 참조하면, IFFT의 사이즈가 16일 경우 래딕스-4 구조를 가지는 2개의 연산스테이지를 사용하면 되는데, 여기서는 제2연산스테이지(2)를 바이패스 한 제3연산스테이지(3) 및 제1연산스테이지(1)가 사용(3→1)되는 것을 예를 들었다. 32일 경우에는 IFFT 사이즈가 16일 경우에 래딕스-2 구조를 가지는 제0연산스테이지(0)를 추가(3→1→0)하기만 하면 된다. IFFT의 사이즈가 1024일 경우 래딕스-4 구조를 가지는 5개의 연산스테이지를 사용하면 되는데 여기서는 제5연산스테이지(5)를 바이패스 한 제6연산스테이지(6) 내지 제2연산스테이지(2)가 사용(6→4→3→2→1)되는 것을 예로 들었다. 마찬가지로 1024의 2배가 되는 2048의 경우에는 래딕스-2 구조를 가지는 제0연산스테이지(0)가 추가(6→4→3→2→1→0)되기만 하면 된다.
도 5는 FFT/IFFT의 사이즈가 다른 경우, 각 연산스테이지들에서 사용되는 메모리 용량(memory depth)을 나타낸다.
도 5를 참조하면, 각 블록들 내부의 숫자는 메모리 용량(memory depth)을 나타내며, 숫자가 기재되지 않는 블록들은 사용되지 않는 연산스테이지에 대응되는 메모리를 의미한다.
FFT 코어(100)를 1개만 사용하면서 심볼(symbol) 당 FFT 과정, IFFT 과정 및 FFT 과정을 순차적으로 수행하기 위해서는 추가적인 저장장치(memory)가 필요하다. 추가되어야 하는 저장장치는 첫 번째(1st) FFT의 DIT 출력 시에 두 번째(2nd) IFFT의 DIF 입력시퀀스를 저장하기 위한 것 및 두 번째(2nd) IFFT의 DIF 출력 시에 세 번째(3rd) FFT의 DIT 입력시퀀스를 저장하기 위한 것이다.
이를 구체적으로 설명하면, DIT에서 DIF로 FFT 동작 방법이 변경되는 경우에는 최대
Figure 112008040769031-PAT00001
개의 샘플들을 저장하기 위한 메모리가 필요하고, DIF에서 DIT로 FFT 동작방법이 변경되는 경우에는 최대 N개의 샘플을 저장하기 위한 메모리가 필요하다.
상기 메모리에 대한 문제를 해결하기 위하여, 입력버퍼(110)에 저장되는 샘플 당 비트(bits per sample) 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우 및 입력버퍼(110)에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지가 처리 할 수 있는 샘플 당 비트 수와 동일한 경우로 구분한다.
첫 째, 입력버퍼(110)의 샘플 당 비트수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수 N(N은 정수)에 비해 작은 경우, DIT와 DIF 사이에서 필요한 메모리는
Figure 112008040769031-PAT00002
샘플만큼의 추가 메모리를 사용하여 구현하고, DIF와 DIT 사이에서 필요한 N 샘플 메모리는 추가한
Figure 112008040769031-PAT00003
샘플 메모리와 제6연산스테이지(127)의
Figure 112008040769031-PAT00004
샘플 메모리를 공유해서 사용한다. 본 발명에 따른 FFT/IFFT 연산코어가 총 8192 비트의 입력시퀀스를 처리할 수 있으므로, 8192보다 적은 입력시퀀스를 처리하여야 할 경우가 이에 해당된다. 이러한 경우 입력버퍼(110)를 아래에 설명하는 바와 같이 구역분할 하여 사용할 수 있다.
도 6은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우, 입력버퍼의 구성 및 사용 과정의 일실시예이다.
도 6을 참조하면, 입력버퍼(110)의 샘플 당 비트수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 작을 때, 입력버퍼(110)를 8192 용량의 SP-SRAM(Single Port SRAM) 1개(601)와 2048 용량의 SP-SRAM 1개(602)를 사용하는 방식으로 입력버퍼의 구역을 분할할 수 있다. 여기서 2048 용량의 SP-SRAM은 상술한 바와 같은 메모리 즉
Figure 112008040769031-PAT00005
샘플만큼의 추가 메모리가 된다. 첫 번째 심볼(1)에 대한 쓰기 및 읽기(Write & Read) 후 2 번째 심볼(2)에 대한 쓰기 및 읽기, 그리고 연속되는 심볼에 대한 쓰기 및 읽기 과정은 메모리(N, N/4)의 오른쪽에 표시된 화살표에 따라 진행된다.
둘 째, 입력버퍼(110)의 샘플 당 비트 수와 FFT 내부 연산스테이지가 처리 할 수 있는 샘플 당 비트 수가 동일한 경우, DIT와 DIF 사이에서 필요한
Figure 112008040769031-PAT00006
샘플 메모리는 입력버퍼(110)에서
Figure 112008040769031-PAT00007
용량만큼을 공유해서 사용하고, DIF와 DIT 사이에서 필요한 N 샘플 메모리는 입력버퍼(110)의
Figure 112008040769031-PAT00008
용량만큼의 메모리와 제6연산스테이지(127)의
Figure 112008040769031-PAT00009
샘플 메모리를 공유해서 사용한다. 이 경우에도 입력버퍼(110)를 아래에 설명하는 바와 같이 구역분할 하여 사용할 수 있다.
도 7은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수와 동일한 경우, 입력버퍼의 구성 및 사용 과정의 일실시예이다.
도 7을 참조하면, 입력버퍼(110)의 샘플 당 비트수와 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수가 동일할 때, 메모리의 클럭 주파수와 연산코어(100)의 클럭 주파수가 동일할 경우 입력버퍼(110)는 2048 용량의 SP-SRAM 5(701~705)개를 사용하여 구성한다(왼쪽). 메모리의 클럭 주파수가 연산코어(100)의 클럭 주파수에 비해 2배 빠른 경우 입력버퍼(110)는 10240 용량의 SP-SRAM 1개(706)를 사용한다(오른쪽).
첫 번째 심볼(1)에 대한 쓰기 및 읽기(Write & Read) 후 두 번째 심볼(2)에 대한 쓰기 및 읽기가 4개의 메모리(701~704)를 통해 진행된 후, 연속되는 두 번째 심볼에 대한 쓰기 및 읽기 과정은 4개의 메모리(705, 701, 702, 703)를 통해 진행된다. 계속하여 세 번째 심볼에 대한 쓰기 및 읽기 과정은 4개의 메모리(704, 705, 701, 702)를 통해 진행된다.
입력버퍼(110)를 그림 7의 왼쪽과 같이 구성할 경우, 매 심볼마다
Figure 112008040769031-PAT00010
샘플만큼 사용하지 않는 구간이 존재한다. 예를 들어, 첫 번째 심볼의 FFT를 수행하기 위해서 N 샘플(701~704)을 연산블록(120)에서 읽고 난 이후에는, 두 번째 심볼이 입력버퍼(110)에 저장되는 구간에서 도 7의 4번째 메모리 영역(704)은 항상 아이들(idle)상태에 있게 된다. 즉, 매 입력 심볼(input symbol) 마다 아이들(idle) 상태의 메모리 영역이 항상
Figure 112008040769031-PAT00011
샘플만큼 존재한다. 또한 DIF 출력과 DIT 입력 사이에서, 제6연산스테이지(127)의
Figure 112008040769031-PAT00012
샘플 메모리는 읽기 액세스(read access)만 수행하거나 아무런 액세스가 없는 구간 일 수 있으므로, 이 구간에서는 DIT 입력을 메모리에 기록(write)하고 다음 구간에서 읽기(read)함으로써
Figure 112008040769031-PAT00013
샘플 메모리를 공유할 수 있다.
도 6 및 도 7을 참조하면, 일정한 용량의 메모리를 구현시킬 때, 대상되는 용량과 동일한 용량의 메모리 1개를 사용하는 경우가 복수 개의 단일 메모리를 합쳐서 사용하는 경우에 비해 면적이 상대적으로 적게 소비되고 속도도 빠른 것이 일반적이다. 따라서 이러한 장단점에 따라 응용되는 기술에 맞춰 설계자가 임의로, 상기 메모리의 구조를 결정하는 것이 바람직하다.
도 8은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우, 각 연산스테이지들의 메모리 종류 및 용량을 나타낸다.
도 9는 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수와 동일한 경우, 각 연산스테이지들의 메모리의 종류 및 용량을 나타낸다.
도 8 및 도 9를 참조하면, 왼쪽에는 메모리에 사용되는 클럭 주파수와 FFT/IFFT 연산코어에 사용되는 클럭 주파수가 동일한 경우에 대한 경우이고 오른 쪽에는 메모리에 사용되는 클럭 주파수가 FFT/IFFT 연산코어에 사용되는 클럭 주파수에 비해 2배 빠른 경우에 대한 것이다.
도 8을 참조하면, 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우, 입력버퍼에는 추가되는
Figure 112008040769031-PAT00014
메모리(Extra mem)가 포함되어 있다. 도 9를 참조하면, 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 총 비트 수와 동일한 경우, 입력버퍼의 총 용량은 10240인 것을 알 수 있다.
도 10은 32-포인트 DIT FFT의 신호흐름도이다.
도 11은 32-포인트 DIF IFFT의 신호흐름도이다.
도 10 및 도 11은 일반적으로 알려진 연산과정에 대한 것이므로 여기서는 설명을 하지 않는다.
도 12는 32-포인트 DIT 연산 및 32-포인트 DIF 연산을 수행하는 각 연산스테이지들의 연결 관계를 나타낸다.
도 12를 참조하면, 32-포인트 DIT 및 32-포인트 DIF 연산을 수행하기 위해서는 래딕스-2 구조를 가지는 1개의 연산스테이지 및 래딕스-4 구조를 가지는 2개의 연산스테이지가 필요하며, 여기서는 설명의 편의를 위해 래딕스-2 구조를 가지는 제0연산스테이지(0) 및 래딕스-4 구조를 가지는 제1연산스테이지(1) 및 제2연산스테이지(2)를 사용한다고 가정하고 설명한다.
도 12의 왼쪽을 참조하면, 32-포인트 DIT를 수행할 때 입력시퀀스(DIT inputs)는 제0연산스테이지(0), 제1연산스테이지(1) 및 제2연산스테이지(2)를 거치면서 DIT 출력시퀀스(DIT outputs)를 생성한다. 도 12의 오른쪽을 참조하면, 32-포인트 DIF를 수행할 때 입력시퀀스(DIF inputs)는 제2연산스테이지(2), 제1연산스테이지(1) 및 제0연산스테이지(0)를 거치면서 DIF 출력시퀀스(DIF outputs)를 생성한다. 이 때 연산의 마지막 스테이지의 회전인자(Wk(n))는 항상 1(one)이 된다. 도 12에 도시된 각 연산스테이지의 순서는 도 4에 도시된 32-포인트 DIT 및 32-포인트 DIF 연산의 순서에 대응된다.
도 13은 3연속 입력에 대한 32-포인트 DIT/DIF 동작 타이밍을 나타낸다.
도 13을 참조하면, DIT FFT 연산을 처리하고 이어서 DIF IFFT 연산을 처리하며 마지막으로 DIT FFT연산을 처리할 때의 타이밍을 나타낸다. 도 13에 도시된 타이밍 다이어그램은 당업자라면 누구든지 용이하게 해석할 수 있으므로 여기서는 자세한 설명을 하지 않는다.
도면에는 도시되지 않았지만, 본 발명에 따른 FFT/IFFT 연산코어의 연산스테이지에 포함된 복수 개의 연산블록(120)을 구성하는 복수 개의 연산스테이지들이 사용하는 메모리가 포함되어 있다. 3번의 연산을 위해서 3개의 연산코어가 존재하게 된다면, 복수 개의 연산스테이지들 각각의 메모리가 차지하는 면적이 본원 발명에 비해 적어도 3배 크게 된다. 그러나 본 발명에 따른 연산코어는 3번의 연산 시, 이를 시분할 방식으로 공유함으로서 종래에 비해 적어도 소비면적을 1/3으로 감소시킬 수 있다.
이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 이라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
도 1은 본 발명에 따른 FFT/IFFT 연산코어의 블록다이어그램이다.
도 2는 도 1에 도시된 제0연산스테이지의 내부 블록다이어그램이다.
도 3은 도 1에 도시된 제1연산스테이지 내지 제6연산스테이지의 내부 블록다이어그램이다.
도 4는 다양한 사이즈의 입력시퀀스에 따른 각 연산스테이지들의 사용 여부 및 사용 순서를 나타낸다.
도 5는 FFT/IFFT의 사이즈가 다른 경우, 각 연산스테이지들에서 사용되는 메모리 용량(memory depth)을 나타낸다.
도 6은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우, 입력버퍼의 구성 및 사용 과정의 일실시예이다.
도 7은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수와 동일한 경우, 입력버퍼의 구성 및 사용 과정의 일실시예이다.
도 8은 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수에 비해 적은 경우, 각 연산스테이지들의 메모리 종류 및 용량을 나타낸다.
도 9는 입력버퍼에 저장되는 샘플 당 비트 수가 FFT 내부 연산스테이지에서 처리할 수 있는 샘플 당 비트 수와 동일한 경우, 각 연산스테이지들의 메모리의 종류 및 용량을 나타낸다.
도 10은 32-포인트 DIT FFT의 신호흐름도이다.
도 11은 32-포인트 DIF IFFT의 신호흐름도이다.
도 12는 32-포인트 DIT 연산 및 32-포인트 DIF 연산을 수행하는 각 연산스테이지들의 연결 관계를 나타낸다.
도 13은 3연속 입력에 대한 32-포인트 DIT/DIF 동작 타이밍을 나타낸다.

Claims (10)

  1. 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs) 및 세 번째(3rd) FFT의 입력시퀀스(3rd FFT inputs) 중 하나를 스위칭(multiplex)하는 제1먹스(MUX1);
    첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs)를 저장하고 출력하는 입력 버퍼(110);
    신호처리방식 지시신호(DIT/DIF) 및 바이패스 지시신호(BP)에 응답하여, 첫 번째(1st) FFT의 입력시퀀스(1st FFT inputs) 및 세 번째(3rd) FFT의 입력시퀀스(3rd FFT inputs)를 변환하여 첫 번째 FFT의 출력시퀀스(1st FFT outputs) 및 세 번째 FFT의 출력시퀀스(3rd FFT outputs)를 각각 생성하며, 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)를 변환하여 두 번째 IFFT의 출력시퀀스(2nd IFFT outputs)를 생성하는 복수 개의 연산스테이지를 구비하는 연산블록(120); 및
    상기 연산블록(120)에 입력되는 시퀀스를 DIT 방식으로 처리할 것인지 혹은 DIF 방식으로 처리할 것인지를 지시하는 상기 신호처리방식 지시신호(DIT/DIF) 및 입력되는 시퀀스를 처리하지 않고 그대로 통과시킬 것을 지시하는 상기 바이패스 지시신호(BP)를 생성하는 컨트롤블록(130)을 구비하는 것을 특징으로 하는 FFT/IFFT 연산코어.
  2. 제1항에 있어서, 상기 복수 개의 연산스테이지는,
    해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제1먹스(MUX1)의 출력신호(Mo) 또는 제1연산스테이지(122)의 제2출력신호(D1F)를 그대로 바이패스 시키거나 FFT연산 또는 IFFT연산을 하여 제01출력신호(D0T) 또는 제02출력신호(D0F)를 생성하는 제0연산스테이지(121);
    해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제1연산스테이지(121)의 제1출력신호(D0T) 또는 제3연산스테이지(123)의 제2출력신호(D0F)를 그대로 바이패스 시키거나 FFT연산 또는 IFFT연산을 하여 제11출력신호(D1T) 또는 제12출력신호(D1F)를 생성하는 제1연산스테이지(122); 내지
    해당 신호처리방식 지시신호(DIT/DIF) 및 해당 바이패스 지시신호(BP)에 응답하여, 제5연산스테이지(126)의 제1출력신호(D5T) 또는 두 번째(2nd) IFFT의 입력시퀀스(2nd IFFT inputs)를 그대로 바이패스 시키거나 FFT연산 또는 IFFT연산을 하여 제k(k는 정수)1출력신호(D6T) 또는 제k2출력신호(D6F)를 생성하는 제k연산스테이지(127)를 구비하는 것을 특징으로 하는 FFT/IFFT 연산코어.
  3. 제2항에 있어서,
    상기 제0연산스테이지(121) 내지 제k연산스테이지(127) 중 적어도 하나의 연산스테이지는 래딕스-2구조를 가지고, 나머지 (k-1)개의 연산스테이지들은 래딕스-4구조를 가지는 것을 특징으로 하는 FFT/IFFT 연산코어.
  4. 제3항에 있어서, 상기 제0연산스테이지(121)는,
    상기 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 상기 제1먹스(M1)의 출력신호(Mo)를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIF)에는 제1연산스테이지(122)의 제2출력(D1F)을 선택하여 스위칭하는 제2먹스(M2);
    상기 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 회전인자(twiddle factor, Wk(n), k는 정수이며 연산스테이지의 번호)를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIR)에는 단위 회전인자(1, unit weight)를 선택하여 스위칭 하는 제3먹스(M3);
    상기 제2먹스(M2)의 출력신호 중 일부의 출력신호를 바이패스 시키고, 나머지 출력신호 및 지연신호에 대하여 버터플라이(butterfly) 연산을 수행하는 래딕스-2 버터플라이 블록(210);
    상기 래딕스-2 버터플라이 블록(210)에서 바이패스 된 신호를 일정시간 지연시켜 상기 지연신호를 생성하는 제1지연기(220);
    제2먹스(M2)의 출력신호와 래딕스-2 버터플라이 블록(210)의 출력신호를 논 리 곱하는 제1곱셈기(230); 및
    상기 바이패스 지시신호(BP)가 디스에이블(disable)상태인 경우에는 상기 제1곱셈기(230)의 출력신호를 선택하여 스위칭하고, 인에이블(enable)상태가 되면 상기 제2먹스(M2)의 출력신호를 선택하여 스위칭 하는 제4먹스(M4)를 구비하는 것을 특징으로 하는 FFT/IFFT 연산코어.
  5. 제3항에 있어서, 상기 제1연산스테이지(122) 내지 상기 제k연산스테이지(127)는,
    상기 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 제(k-1)연산스테이지의 출력신호(D(k-1)T)를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIF)에는 제(k+1)연산스테이지의 제2출력(D(k+1)F)을 선택하여 스위칭 하는 제5먹스(M5);
    상기 신호처리방식 지시신호(DIT/DIF)가 DIT 방식의 연산을 지시할 경우(DIT)에는 회전인자(Wk(n))를 선택하여 스위칭하고, DIF 방식의 연산을 지시할 경우(DIR)에는 단위 회전인자(1)를 선택하여 스위칭 하는 제6먹스(M6);
    제5먹스(M5)의 출력신호 중 일부 신호를 바이패스 시키고, 제2먹스(M2)의 출력신호 중 나머지 신호 및 복수 개의 지연신호들에 버터플라이 연산을 수행하는 래딕스-4 버터플라이 블록(310);
    래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호를 순차적으로 지연시 켜 상기 복수 개의 지연신호들을 생성하는 지연블록(320);
    상기 제6먹스(M6)의 출력신호와 상기 래딕스-4 버터플라이 블록(310)의 출력신호를 논리곱하는 제2곱셈기(330); 및
    상기 바이패스 지시신호(BP)가 인에이블(enable) 되면 상기 제5먹스(M5)의 출력신호를 선택하여 스위칭하고, 디스에이블(disable) 되면 상기 제2곱셈기(330)의 출력신호를 선택하여 스위칭 하는 제7먹스(M7)를 구비하는 것을 특징으로 하는 FFT/IFFT 연산코어.
  6. 제5항에 있어서, 상기 지연블록(320)은,
    래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 첫 번째 신호를 일정시간 지연시키는 제1지연기(321);
    래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 두 번째 신호를 일정시간 지연시키는 제2지연기(322) 및
    래딕스-4 버터플라이 블록(310)에서 바이패스 된 신호 중 세 번째 신호를 일정시간 지연시키는 제3지연기(323)를 구비하는 것을 특징으로 하는 FFT/IFFT 연산코어.
  7. 제5항에 있어서, 상기 회전인자(Wk(n))의 값은,
    모두 동일한 값을 가지거나 각 연산스테이지 별로 달라지는 것을 특징으로 하는 FFT/IFFT 연산코어.
  8. 제5항에 있어서,
    상기 복수 개의 연산스테이지들 중 FFT 및 IFFT 연산의 마지막 단계를 수행하는 연산스테이지의 곱셈기에 입력되는 회전인자(Wk(n))의 값은 항상 1(one)인 것을 특징으로 하는 FFT/IFFT 연산코어.
  9. 제1항에 있어서, 상기 입력버퍼(110)는,
    N(N은 정수) 저장용량을 가지는 메인메모리 및
    Figure 112008040769031-PAT00015
    의 저장용량을 가지는 보조메모리의 결합 구조,
    Figure 112008040769031-PAT00016
    의 저장용량을 가지는 메인메모리 및
    Figure 112008040769031-PAT00017
    의 저장용량을 가지는 5개의 보조메모리의 결합구조 중 하나의 구조를 가지는 것을 특징으로 하며,
    상기 N은 FFT/IFFT 연산코어에서 처리할 수 있는 최대 입력시퀀스인 것을 특징으로 하는 FFT/IFFT 연산코어.
  10. 제1항에 있어서,
    상기 신호처리방식 지시신호(DIT/DIF) 및 바이패스 지시신호(BP)는 첫 번째 및 세 번째의 FFT의 사이즈와 두 번째 IFFT의 사이즈에 따라 결정되는 것을 특징으 로 하는 FFT/IFFT 연산코어.
KR1020080053456A 2008-06-09 2008-06-09 Fft/ifft 연산코어 KR100989797B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080053456A KR100989797B1 (ko) 2008-06-09 2008-06-09 Fft/ifft 연산코어
US12/996,779 US8917588B2 (en) 2008-06-09 2009-06-08 Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core
PCT/CN2009/072182 WO2009149654A1 (zh) 2008-06-09 2009-06-08 快速傅立叶变换/反快速傅立叶变换运算核
CN2009801001719A CN101836202B (zh) 2008-06-09 2009-06-08 快速傅立叶变换/反快速傅立叶变换运算核

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080053456A KR100989797B1 (ko) 2008-06-09 2008-06-09 Fft/ifft 연산코어

Publications (2)

Publication Number Publication Date
KR20090127462A true KR20090127462A (ko) 2009-12-14
KR100989797B1 KR100989797B1 (ko) 2010-10-29

Family

ID=41416374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080053456A KR100989797B1 (ko) 2008-06-09 2008-06-09 Fft/ifft 연산코어

Country Status (4)

Country Link
US (1) US8917588B2 (ko)
KR (1) KR100989797B1 (ko)
CN (1) CN101836202B (ko)
WO (1) WO2009149654A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9735996B2 (en) 2015-11-25 2017-08-15 Electronics And Telecommunications Research Institute Fully parallel fast fourier transformer
US9852110B2 (en) 2015-01-21 2017-12-26 Electronics And Telecommunications Research Institute Apparatus for controlling inverse fast fourier transform input in long term evolution system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364456A (zh) * 2011-10-18 2012-02-29 广州晶锐信息技术有限公司 64点fft计算器
KR101275087B1 (ko) * 2011-10-28 2013-06-17 (주)에프씨아이 오에프디엠 수신기
CN104462016B (zh) * 2013-09-22 2018-06-05 南京中兴软件有限责任公司 一种矢量运算核以及矢量处理器
WO2016154911A1 (zh) 2015-03-31 2016-10-06 重庆邮电大学 一种多载波时分复用调制/解调方法及系统
US9977116B2 (en) * 2015-10-05 2018-05-22 Analog Devices, Inc. Scaling fixed-point fast Fourier transforms in radar and sonar applications
GB2545210B (en) 2015-12-09 2020-07-29 Imagination Tech Ltd Configurable FFT architecture
WO2021091335A1 (ko) * 2019-11-08 2021-05-14 한국전기연구원 고속 퓨리에 변환 방법 및 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197525B2 (en) * 2002-11-26 2007-03-27 Analog Devices, Inc. Method and system for fixed point fast fourier transform with improved SNR
KR20050017065A (ko) 2003-08-12 2005-02-21 삼성전자주식회사 희소 원소를 갖는 고속 푸리에 변환 및 역고속 푸리에변환에서의 동작 전력 감소 장치 및 방법
US7551545B2 (en) * 2004-02-09 2009-06-23 Qualcomm Incorporated Subband-based demodulation for an OFDM-based communication system
US7870176B2 (en) * 2004-07-08 2011-01-11 Asocs Ltd. Method of and apparatus for implementing fast orthogonal transforms of variable size
TWI308430B (en) 2006-04-26 2009-04-01 Ind Tech Res Inst Phase tracking method and device thereof
CN101110803B (zh) * 2006-07-18 2011-06-01 大唐移动通信设备有限公司 一种基于快速傅立叶变换和反变换联合运算的实现方法
US20080320069A1 (en) * 2007-06-21 2008-12-25 Yi-Sheng Lin Variable length fft apparatus and method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852110B2 (en) 2015-01-21 2017-12-26 Electronics And Telecommunications Research Institute Apparatus for controlling inverse fast fourier transform input in long term evolution system
US9735996B2 (en) 2015-11-25 2017-08-15 Electronics And Telecommunications Research Institute Fully parallel fast fourier transformer

Also Published As

Publication number Publication date
CN101836202B (zh) 2013-08-14
CN101836202A (zh) 2010-09-15
US20110164490A1 (en) 2011-07-07
US8917588B2 (en) 2014-12-23
KR100989797B1 (ko) 2010-10-29
WO2009149654A1 (zh) 2009-12-17

Similar Documents

Publication Publication Date Title
KR100989797B1 (ko) Fft/ifft 연산코어
EP0855657B1 (en) Fast fourier transforming apparatus and method
Chen et al. Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures
KR20010034300A (ko) 파이프라인 고속 푸리에 변환 프로세서
US7415584B2 (en) Interleaving input sequences to memory
US20100128818A1 (en) Fft processor
US20060200513A1 (en) Fast Fourier transform processor and method capable of reducing size of memories
WO2001078290A2 (en) Traced fast fourier transform apparatus and method
Su et al. Reconfigurable FFT design for low power OFDM communication systems
Chang Design of an 8192-point sequential I/O FFT chip
Wenqi et al. Design of fixed-point high-performance FFT processor
Ranganathan et al. Efficient hardware implementation of scalable FFT using configurable Radix-4/2
Hazarika et al. Low-complexity continuous-flow memory-based FFT architectures for real-valued signals
Hassan et al. Implementation of a reconfigurable ASIP for high throughput low power DFT/DCT/FIR engine
TWI390416B (zh) 快速傅立葉變換/反快速傅立葉變換運算核之裝置
KR100668674B1 (ko) 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법
Hassan et al. FPGA Implementation of an ASIP for high throughput DFT/DCT 1D/2D engine
Baek et al. A continuous flow mixed-radix FFT architecture with an in-place algorithm
US11531497B2 (en) Data scheduling register tree for radix-2 FFT architecture
US20240020129A1 (en) Self-Ordering Fast Fourier Transform For Single Instruction Multiple Data Engines
GB2459339A (en) Pipelined 2D fast Fourier transform with three permutation stages, two FFT processor units and a twiddle factor unit.
JP5131346B2 (ja) 無線通信装置
Kumar et al. Design and Implementation of AGU based FFT Pipeline Architecture
Kallapu et al. DRRA-based Reconfigurable Architecture for Mixed-Radix FFT
Khan et al. An efficient FFT/IFFT architecture for wireless communication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131021

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141016

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171016

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181016

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191007

Year of fee payment: 10