KR102064232B1 - 데이터 레이트 변환 장치 및 방법 - Google Patents

데이터 레이트 변환 장치 및 방법 Download PDF

Info

Publication number
KR102064232B1
KR102064232B1 KR1020130118713A KR20130118713A KR102064232B1 KR 102064232 B1 KR102064232 B1 KR 102064232B1 KR 1020130118713 A KR1020130118713 A KR 1020130118713A KR 20130118713 A KR20130118713 A KR 20130118713A KR 102064232 B1 KR102064232 B1 KR 102064232B1
Authority
KR
South Korea
Prior art keywords
enable signal
data
output
rate
flip
Prior art date
Application number
KR1020130118713A
Other languages
English (en)
Other versions
KR20150040111A (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 KR1020130118713A priority Critical patent/KR102064232B1/ko
Priority to US14/206,522 priority patent/US9000958B1/en
Publication of KR20150040111A publication Critical patent/KR20150040111A/ko
Application granted granted Critical
Publication of KR102064232B1 publication Critical patent/KR102064232B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/20Repeater circuits; Relay circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0628Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing the input and output signals being derived from two separate clocks, i.e. asynchronous sample rate conversion

Abstract

데이터 레이트 변환 장치는 샘플링 할 메모리 주소 위치를 나타내는 제1 파라미터와 예측 시점의 위상 값을 나타내는 제2 파라미터를 생성하고, 입력 클럭에 기반하여 입력되는 데이터를 메모리에 기록하고, 출력 클럭에 기반하여 상기 제1 파라미터를 이용하여 메모리로부터 샘플링된 연속된 데이터를 출력하며, 연속된 데이터와 복수의 필터 계수 및 상기 제2 파라미터를 이용하여 최종 데이터를 생성하여 출력한다.

Description

데이터 레이트 변환 장치 및 방법{APPARATUS AND METHOD FOR COVERTING DATA RATE}
본 발명은 이동통신 송수신 시스템의 데이터 레이트 변환 장치 및 방법에 관한 것이다.
현재 존재하는 이동통신 송수신 시스템은 기저대역 모뎀의 클럭과 RF 송수신단의 클럭이 동기되어 사용될 수도 있고, 동기 되지 않고 사용될 수도 있다. 기저대역 모뎀의 클럭과 RF 송수신단의 클럭이 비동기로 작동하는 시스템에서 요구되는 기능은 잡음을 최소화 하면서 기저대역 모뎀의 클럭 레이트에서 RF 송수신단의 클럭 레이트로 변환시켜주는 레이트 변환 장치가 요구된다.
일반적인 레이트 변환 방법으로 M/L인 유리수(rational number) 레이트로 변환시키는 방법이 있다. M/L인 유리수 레이트로 변환시키기 위해서는 L배 다운샘플링한 이후 저역 통과 필터를 통과 시키고 그 이후 M배 업샘플링을 수행하는 방법이 있다. 이때 M과 L의 값이 큰 소수(prime number)로 구현되는 경우 저역 통과 필터는 수백 개의 탭과 계수로 구성이 되어야 한다. 그래서 사용되는 또 다른 방법이 패로우(farrow) 필터를 사용하는 방법이 있다. 패로우 필터 구조의 데이터 레이트 변환 장치는 하드웨어 구현 시 앞에서 설명한 방법에 비해 하드웨어 복잡도는 작아지지만 비동기 클럭을 사용함으로써 발생하는 준안정성(metastability) 문제와 비동기 클럭간 위상 오차로 인해 발생되는 위상 오프셋 문제가 존재한다. 또한 측정 환경에서 발생되는 클럭 주파수 레이트 오차를 보정해야 하는 문제점도 존재한다.
본 발명이 해결하려는 과제는 비동기 클럭을 사용할 때 발생하는 준안정성 문제를 해결하고 비동기 클럭간 위상 오차나 클럭 주파수 레이트 오차로 인한 출력 오차를 최소화할 수 있는 데이터 레이트 변환 장치 및 방법을 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 입력되는 데이터의 레이트를 변환하는 장치가 제공된다. 데이터 레이트 변환 장치는 레이트 카운터, 위상 누적기, 비동기 데이터 샘플러, 필터 계수 연산부, 그리고 위상 연산부를 포함한다. 상기 레이트 카운터는 상기 입력 클럭과 상기 출력 클럭의 주파수의 비를 나타내는 레이트를 계산한다. 상기 위상 누적기는 상기 레이트를 이용하여 샘플링 할 메모리 주소 위치를 나타내는 제1 파라미터와 예측 시점의 위상 값을 나타내는 제2 파라미터를 생성한다. 상기 비동기 데이터 샘플러는 입력 클럭에 기반하여 입력되는 데이터를 기록하고, 출력 클럭에 기반하여 상기 제1 파라미터를 이용하여 연속된 데이터를 출력한다. 상기 필터 계수 연산부는 상기 연속된 데이터와 복수의 필터 계수를 이용하여 복수의 제1 연산 값을 계산한다. 그리고 상기 위상 연산부는 상기 복수의 제1 연산 값과 상기 제2 파라미터를 이용하여 최종 데이터를 생성하여 출력한다.
상기 레이트 카운터는 출력 클럭 카운터, 카운터 인에이블 생성부, 그리고 입력 클럭 카운터를 포함한다. 상기 출력 클럭 카운터는 제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅 동작을 수행한다. 상기 카운터 인에이블 생성부는 상기 출력 클럭 카운터의 카운팅 값을 이용하여 제2 인에이블 신호를 생성하고, 제2 인에이블 신호를 상기 입력 클럭에 기반하여 지연시켜 제3 인에이블 신호를 생성한다. 그리고 상기 입력 클럭 카운터는 상기 제1 인에이블 신호와 상기 제2 인에이블 신호에 따라서 상기 입력 클럭에 기반하여 카운팅 동작을 수행하여 상기 레이트를 생성한다.
상기 위상 누적기는 레이트 인에이블 생성부, 레이트 누적부, 그리고 비트 선택부를 포함한다. 상기 레이트 인에이블 생성부는 제4 인에이블 신호를 이용하여 상기 출력 클럭에 기반하여 제5 인에이블 신호를 생성한다. 상기 레이트 누적부는 상기 제4 인에이블 신호 및 상기 제5 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 상기 레이트를 누적시킨다. 그리고 상기 비트 선택부는 상기 레이트의 누적 값의 일부 비트를 상기 제1 파라미터로 사용하고, 상기 레이트의 누적 값의 다른 일부 비트를 상기 제2 파라미터로 사용한다.
상기 비동기 데이터 샘플러는 쉬프트 레지스터, 쓰기 주소 생성부, 인에이블 제어부, 읽기 주소 생성부, 그리고 메모리를 포함한다. 상기 쉬프트 레지스터는 상기 제3 인에이블 신호에 따라서 상기 입력되는 데이터를 상기 입력 클럭에 기반하여 지연시켜 출력한다. 상기 쓰기 주소 생성부는 상기 제3 인에이블 신호에 따라서 쓰기 주소를 생성한다. 상기 인에이블 제어부는 상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 상기 제4 인에이블 신호 및 제6 인에이블 신호를 생성한다. 상기 읽기 주소 생성부는 상기 제1 파라미터를 이용하여 상기 출력 클럭에 기반하여 상기 연속된 데이터를 읽기 위한 복수의 읽기 주소를 생성한다. 그리고 상기 메모리는 상기 쓰기 주소에 따라서 상기 쉬프트 레지스터로부터 출력되는 데이터를 기록한다.
상기 비동기 데이터 샘플러는 상기 제6 인에이블 신호에 따라서 상기 복수의 읽기 주소에 따라서 상기 메모리로부터 출력된 상기 연속된 데이터를 상기 출력 클럭에 기반하여 지연시켜 상기 필터 계수 연산부로 출력하는 D 플립플롭을 더 포함할 수 있다.
상기 인에이블 제어부는 직렬로 연결되어 있는 복수의 D 플립플롭을 포함하고, 상기 복수의 D 플립플롭 중 앞 쪽에 위치한 일부의 D 플립플롭은 상기 입력 클럭에 기반하여 동작하고, 상기 복수의 D 플립플롭 중 나머지 D 플립플롭은 상기 출력 클럭에 기반하여 동작하며, 상기 복수의 D 플립플롭 중 마지막 D 플립플롭의 출력 값으로부터 제6 인에이블 신호가 생성될 수 있다.
상기 복수의 D 플립플롭 중 상기 마지막 D 플립플롭 직전의 D 플립플롭의 출력 값으로부터 상기 제4 인에이블 신호가 생성될 수 있다.
상기 읽기 주소 생성부는 상기 제1 파라미터를 상기 출력 클럭에 기반하여 제1 읽기 주소를 생성하고, 상기 제1 읽기 주소를 기준으로 상기 제1 읽기 주소에 1부터 구하고자 하는 차수에 해당하는 값만큼 각각 더하여 나머지 읽기 주소를 생성할 수 있다.
상기 쓰기 주소 생성부는 다중화기, 그리고 D 플립플롭을 포함할 수 있다. 상기 다중화기는 상기 제3 인에이블 신호에 따라서 직전 쓰기 주소에 1을 누적한 값을 선택하여 출력한다. 그리고 상기 D 플립플롭은 상기 다중화기의 출력 값을 상기 입력 클럭에 기반하여 지연시켜 상기 쓰기 주소를 생성한다.
상기 시프트 레지스터는 순차적으로 연결된 복수의 서브 지연부를 포함할 수 있다. 상기 복수의 서브 지연부 각각은 상기 제3 인에이블 신호에 따라서 상기 입력되는 데이터를 선택하여 출력하는 다중화기, 그리고 상기 다중화기의 출력을 상기 입력 클럭에 기반하여 지연시켜 출력하는 D 플립플롭을 포함하고, 하나의 서브 지연부의 D 플립플롭의 출력은 상기 하나의 서브 지연부 다음에 위치하는 서브 지연부의 다중화기로 입력될 수 있다.
상기 필터 계수 연산부는 상기 복수의 제1 연산 값을 각각 계산하는 복수의 서브 연산부를 포함하고, 상기 복수의 서브 연산부 각각은 상기 연속된 데이터에 각각 복수의 필터 계수를 곱하고, 곱셈된 값들을 덧셈하여 상기 제1 연산 값을 계산하며, 상기 서브 연산부의 개수는 상기 데이터 레이트 변환 장치의 차수에 따라 결정될 수 있다.
상기 위상 연산부는 복수의 곱셈기, 그리고 상기 복수의 곱셈기의 출력 값에 각각 복수의 제1 연산 값을 덧셈하여 출력하는 복수의 덧셈기를 포함하고, 상기 복수의 곱셈기 각각은 복수의 덧셈기 중 대응하는 덧셈기의 출력 값과 상기 제2 파라미터를 곱셈하여 출력하며, 상기 복수의 덧셈기 중 하나의 덧셈기의 출력 값으로부터 상기 최종 데이터가 생성될 수 있다.
본 발명의 다른 한 실시 예에 따르면, 데이터 레이트 변환 장치에서 입력되는 데이터의 레이트를 변환하는 방법이 제공된다. 데이터 레이트 변환 방법은 입력 클럭과 출력 클럭의 주파수의 비를 나타내는 레이트를 계산하는 단계, 상기 레이트에 따라서 샘플링 할 메모리 주소 위치를 나타내는 제1 파라미터와 예측 시점의 위상 값을 나타내는 제2 파라미터를 생성하는 단계, 상기 입력 클럭에 기반하여 입력되는 데이터를 메모리에 기록하는 단계, 상기 출력 클럭에 기반하여 상기 제1 파라미터를 이용하여 상기 메모리부터 연속된 데이터를 출력하는 단계, 그리고 상기 연속된 데이터와 복수의 필터 계수 및 상기 제2 파라미터를 이용하여 최종 데이터를 출력하는 단계를 포함한다.
상기 레이트를 계산하는 단계는 제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅하는 단계, 상기 카운팅 값을 이용하여 제2 인에이블 신호를 생성하는 단계, 상기 제2 인에이블 신호를 상기 입력 클럭에 기반하여 지연시켜 제3 인에이블 신호를 생성하는 단계, 그리고 상기 제1 인에이블 신호와 상기 제2 인에이블 신호에 따라서 상기 입력 클럭에 기반하여 카운팅하여 상기 레이트를 계산하는 단계를 포함할 수 있다.
상기 기록하는 단계는 제3 인에이블 신호를 따라서 상기 입력 클럭에 기반하여 직전 쓰기 주소에 1을 누적하여 쓰기 주소를 생성하는 단계를 포함하고, 상기 쓰기 주소의 비트 수는 상기 메모리의 주소 길이에 따라 결정될 수 있다.
상기 데이터 레이트 변환 방법은 상기 기록하는 단계 이전에, 제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅하는 단계, 상기 카운팅 값과 임계 값을 비교한 결과에 따라서 제2 인에이블 신호를 생성하는 단계, 그리고 상기 제2 인에이블 신호를 입력 클럭에 기반하여 지연시켜 상기 제3 인에이블 신호를 생성하는 단계를 더 포함할 수 있다.
상기 연속된 데이터를 출력하는 단계는 상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 제6 인에이블 신호를 생성하는 단계, 그리고 상기 제6 인에이블 신호에 따라서 상기 제1 파라미터와 상기 출력 클럭에 기반하여 상기 연속된 데이터를 읽기 위한 복수의 읽기 주소를 생성하는 단계를 포함할 수 있다.
상기 제1 파라미터와 상기 제2 파라미터를 생성하는 단계는 상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 제4 인에이블 신호를 생성하는 단계, 상기 출력 클럭에 기반하여 제5 인에이블 신호를 생성하는 단계, 상기 제4 인에이블 신호 및 상기 제5 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 상기 레이트를 누적시키는 단계, 그리고 상기 레이트의 누적 값의 일부 비트를 상기 제1 파라미터로 설정하고, 상기 레이트의 누적 값의 다른 일부 비트를 상기 제2 파라미터로 설정하는 단계를 포함할 수 있다.
상기 연속된 데이터를 출력하는 단계는 상기 제4 인에이블 신호를 상기 출력 클럭에 기반하여 지연시킨 제6 인에이블 신호에 따라서 상기 연속된 데이터의 읽는 시점을 결정하는 단계를 포함할 수 있다.
상기 최종 데이터를 출력하는 단계는 상기 연속된 데이터와 복수의 필터 계수를 이용하여 복수의 제1 연산 값을 계산하는 단계, 그리고 상기 복수의 제1 연산 값에 각각 상기 제2 파라미터를 적용하여 상기 최종 데이터를 생성하는 단계를 포함할 수 있다.
본 발명의 실시 예에 의하면, 메모리를 사용하여 데이터의 보유 시간을 늘림으로써 비동기 클럭을 사용할 때 발생하는 준안정성 문제를 해결할 수 있다.
입력 클럭의 주파수와 출력 클럭의 주파수의 비를 실제 하드웨어 환경에서 측정하여 데이터 레이트 변환 장치를 동작시키기 때문에 데이터 레이트 변환 장치의 출력 오차를 최소화시킬 수 있고, 메모리의 읽는 과정에서 계산되는 레이트의 누적 값을 통해 샘플링 하고자 하는 메모리의 위치를 예측하기 때문에 비동기 클럭을 사용함으로써 발생되는 클럭간 위상 오차로 인한 출력 오차를 최소화할 수 있다.
또한 정수배, 유리수배에 해당하는 모든 레이트 변환이 가능하며 인터폴레이션 필터 또는 데시메이션 필터의 기능을 모두 수행할 수 있다.
도 1은 본 발명의 실시 예에 따른 데이터 레이트 변환 장치를 나타낸 도면이다.
도 2는 도 1에 도시된 레이트 카운터를 세부적으로 나타낸 도면이다.
도 3은 도 1에 도시된 위상 누적기를 세부적으로 나타낸 도면이다.
도 4는 도 1에 도시된 비동기 데이터 샘플러를 세부적으로 나타낸 도면이다.
도 5는 도 4에 도시된 쉬프트 레지스터를 세부적으로 나타낸 도면이다.
도 6은 도 4에 도시된 쓰기 주소 생성부를 세부적으로 나타낸 도면이다.
도 7은 도 4에 도시된 인에이블 제어부를 세부적으로 나타낸 도면이다.
도 8은 도 4에 도시된 읽기 주소 생성부를 세부적으로 나타낸 도면이다.
도 9는 도 1에 도시된 필터 계수 연산부의 하위 연산부를 세부적으로 나타낸 도면이다.
도 10은 도 1에 도시된 위상 연산부를 세부적으로 나타낸 도면이다.
도 11은 본 발명의 실시 예에 따른 데이터 레이터 변환 장치의 타이밍도의 일 예를 나타낸 도면이다.
도 12 및 도 13은 각각 본 발명의 실시 예에 따른 데이터 레이트 변환 장치의 측정 결과를 시뮬레이션한 그래프도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 데이터 레이트 변환 장치 및 방법에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 레이트 변환 장치를 나타낸 도면이다.
도 1을 참고하면, 데이터 레이트 변환 장치는 입력 플립플롭(100), 레이트 카운터(200), 위상 누적기(300), 비동기 데이터 샘플러(400), 필터 계수 연산부(500) 및 위상 연산부(600)를 포함한다.
입력 플립플롭(100)는 입력 데이터(IN)를 입력 클럭(clkIN)에 동기시켜 데이터(dataIN)를 생성하고, 입력 클럭(clkIN)에 동기된 데이터(dataIN)를 비동기 데이터 샘플러(400)로 출력한다. 이러한 입력 플립플롭(100)으로 D 플립플롭이 사용될 수 있다.
레이트 카운터(200)는 실제 동작하는 입력 클럭(clkIN)과 출력 클럭(clkOUT)의 주파수를 측정하고, 입력 클럭(clkIN)과 출력 클럭(clkOUT)의 주파수의 비에 해당하는 레이트(r1)를 계산하며, 계산한 레이트(r1)를 위상 누적기(300)로 출력한다. 레이트(r1)는 입력 클럭(clkIN)의 주파수/출력 클럭(clkOUT)의 주파수에 의해 계산될 수 있다.
위상 누적기(300)는 레이트 카운터(200)에서 계산된 레이트(r1)를 기반으로 샘플링 할 메모리 주소를 나타내는 제1 파라미터(βint)와 출력 클럭(clkOUT)의 예상 위상 위치를 나타내는 제2 파라미터(βfrac)를 예측하고, 제1 파라미터(βint)를 비동기 데이터 샘플러(400)로 출력하고, 제2 파라미터(βfrac)를 위상 연산부(600)로 출력한다. 제2 파라미터(βfrac)는 입력 클럭(clkIN)의 위상을 기준으로 예측되는 출력 클럭(clkOUT)의 위상 위치를 나타내는 값이다.
비동기 데이터 샘플러(400)는 입력 클럭(clkIN)에 기반하여 데이터(dataIN)를 메모리에 기록하고, 제1 파라미터(βint)를 토대로 메모리에 저장된 연속된 데이터를 읽기 위한 데이터의 읽기 주소를 생성하며, 읽기 주소에 따라서 메모리로부터 연속된 데이터를 읽어 필터 계수 연산부(500)로 출력한다. 이때 연속된 데이터의 개수는 데이터 레이트 변환 장치에 사용된 차수에 대응한다. 여기서 차수는 데이터 레이트 변환 장치에서 데이터 레이트 변환을 위해 사용하는 다항방정식의 차수를 나타낸다. 예를 들면, 데이터 레이트 변환 장치에 사용된 차수가 3이면, 4개의 연속된 데이터(rcOUT0, rcOUT1, rcOUT2, rcOUT3)가 요구되며, 도 1에서는 데이터 레이트 변환 장치의 차수가 3인 것으로 가정하였다.
필터 계수 연산부(500)는 복수의 하위 연산부를 포함한다. 각 하위 연산부는 비동기 데이터 샘플러(400)로부터 출력되는 연속된 데이터와 그에 대응되는 필터 계수를 연산하여 출력한다. 하위 연산부의 개수나 필터 계수의 개수 또한 데이터 레이트 변환 장치에 사용된 차수에 따라 결정된다.
예를 들어, 데이터 레이트 변환 장치의 차수가 3인 경우, 필터 계수 연산부(500)는 4개의 하위 연산부(510, 520, 530, 540)를 포함한다. 하위 연산부(510, 520, 530, 540)는 각각 비동기 데이터 샘플러(400)로부터 출력되는 연속된 데이터(rcOUT0, rcOUT1, rcOUT2, rcOUT3)와 4개의 필터 계수를 각각 곱하고, 곱한 값의 합(H0~H3)을 계산하여 위상 연산부(600)로 출력할 수 있다. 필터 계수는 사용하고자 하는 인터폴레이션 방법에 따라 변화될 수 있다.
위상 연산부(600)는 필터 계수 연산부(500)의 출력 값(H0~H3)와 제2 파라미터(βfrac)를 이용하여 최종 출력 데이터(Y)를 생성하고, 출력 데이터(Y)를 출력한다.
도 2는 도 1에 도시된 레이트 카운터를 세부적으로 나타낸 도면이다.
도 2를 참고하면, 레이트 카운터(200)는 출력 클럭 카운터(210), 카운터 인에이블 생성부(220) 및 입력 클럭 카운터(230)를 포함한다.
출력 클럭 카운터(210)는 덧셈기(211), 다중화기(212) 및 D 플립플롭(213)을 포함한다. 덧셈기(211)는 1과 D 플립플롭(213)의 출력 값(clkOUT_cnt)을 덧셈하고, 덧셈 값을 다중화기(212)로 출력한다. 다중화기(212)는 인에이블 신호(EN_START_IN)에 따라서 0과 덧셈기(211)의 출력 값 중 하나를 선택하여 D 플립플롭(213)으로 출력한다. 특히 다중화기(212)는 인에이블 신호(EN_START_IN)가 1이 되면 덧셈기(211)의 출력 값을 선택하고, 인에이블 신호(EN_START_IN)가 0이 되면 0을 출력한다. 즉, 인에이블 신호(EN_START_IN)가 1이 되면 레이트 카운터(200)가 동작을 시작한다. 도 2에서 다중화기(212) 내의 0과 1은 각각 인에이블 신호(EN_START_IN)가 0과 1일 때 선택되는 데이터를 나타낸다. 다중화기(222, 232) 또한 마찬가지로 0과 1은 각각 인에이블 신호(EN_START_IN)가 0과 1일 때 선택되는 데이터를 나타낸다. 그리고 다른 도면에서도 다중화기 내의 0과 1은 이와 유사하게 적용된다.
D 플립플롭(213)은 다중화기(212)의 출력 값을 출력 클럭(clkOUT)을 기반으로 한 클럭 지연시켜 출력하며, D 플립플롭(213)의 출력 값(clkOUT_cnt)은 덧셈기(211)와 카운터 인에이블 생성부(220)로 입력된다. 이러한 출력 클럭 카운터(210)는 출력 클럭(clkOUT)을 기반으로 인에이블 신호(EN_START_IN)가 1이 되면 카운팅을 시작한다.
카운터 인에이블 생성부(220)는 비교기(221), 다중화기(222) 및 D 플립플롭(223, 224, 225)를 포함한다. 비교기(221)는 출력 클럭 카운터(210)의 출력 값(clkOUT_cnt)과 임계 값(period1)을 비교하고, 출력 클럭 카운터(210)의 출력 값(clkOUT_cnt)이 임계 값(period1)보다 크면 1을 출력하고, 그렇지 않으면 0을 출력한다. 임계 값(period1)은 레이트(r1)를 고정된 값(fixed-point)으로 변경할 비트 수에 따라 결정된다. 예를 들면, 레이트(r1)를 10비트인 값으로 변경 시 임계 값(period1)은 1024가 될 수 있다.
다중화기(222)는 비교기(221)의 출력 값에 따라서 1과 D 플립플롭(223)의 출력 값 중 하나를 선택하여 D 플립플롭(223)으로 출력한다. 특히 다중화기(222)는 비교기(221)의 출력 값이 1이면 1을 출력하고 비교기(221)의 출력 값이 0이면 D 플립플롭(223)의 출력 값을 출력한다. D 플립플롭(223)은 다중화기(222)의 출력 값을 출력 클럭(clkOUT)을 기반으로 한 클럭 지연시켜서 출력하며, D 플립플롭(223)의 출력 값은 인에이블 신호(EN_clkOUT_cnt)로서 다중화기(222)와 입력 클럭 카운터(230)로 입력된다. 즉 인에이블 신호(EN_clkOUT_cnt)는 출력 클럭 카운터(210)의 출력 값(clkOUT_cnt)이 임계 값(period1)보다 커지면 1이 된다. 그리고 D 플립플롭(224, 225)에 의해 인에이블 신호(EN_clkOUT_cnt)가 입력 클럭(clkIN)을 기준으로 두 클럭 지연시켜서 인에이블 신호(EN_RS)가 생성된다.
입력 클럭 카운터(230)는 AND 게이트(231), 덧셈기(232), 다중화기(233) 및 D 플립플롭(234, 235)을 포함한다. AND 게이트(231)는 인에이블 신호(EN_START_IN)와 인에이블 신호(EN_clkOUT_cnt)가 반전된 신호를 AND 연산하여 출력한다. AND 게이트(231)는 인에이블 신호(EN_START_IN)와 인에이블 신호(EN_clkOUT_cnt)를 반전된 신호가 모두 1일 때 1을 출력하고, 그렇지 않으면 0을 출력한다. 덧셈기(232)는 1과 D 플립플롭(234)의 출력 값(clkIN_cnt)을 덧셈하고, 덧셈 값을 다중화기(233)로 출력한다. 다중화기(233)는 인에이블 신호(EN_START_IN)와 인에이블 신호(EN_clkOUT_cnt)가 반전된 신호에 따라서 덧셈기(232)의 출력 값과 D 플립플롭(234)의 출력 값(clkIN_cnt) 중 하나를 선택하여 D 플립플롭(234)으로 출력한다. 다중화기(233)는 AND 게이트(231)의 출력 값이 1이면 덧셈기(232)의 출력 값을 선택하고, AND 게이트(231)의 출력 값이 0면 D 플립플롭(234)의 출력 값(clkIN_cnt)을 선택한다. D 플립플롭(234)은 다중화기(233)의 출력 값을 입력 클럭(clkIN)을 기반으로 한 클럭 지연시켜 출력한다. 그리고 D 플립플롭(235)은 D 플립플롭(234)의 출력 값(clkIN_cnt)을 출력 클럭(clkOUT)을 기반으로 한 클럭 지연시켜서 레이트(r1)를 생성하고, 레이트(r1)를 위상 누적기(300)로 출력한다. 이러한 입력 클럭 카운터(230)의 동작을 보면, 입력 클럭(clkIN)을 기반으로 인에이블 신호(EN_START_IN)가 1이고 인에이블 신호(EN_clkOUT_cnt)가 0인 구간에서만 카운팅 동작을 수행하고, 그 이외의 구간에서는 이전 값을 유지하는 기능을 수행하여 레이트(r1)를 생성한다. 결과적으로, 입력 클럭 카운터(200)는 특정 시간[=Period1*출력 클럭(clkOUT)의 주기] 동안 발생한 출력 클럭(clkOUT)의 주파수와 입력 클럭(clkIN)의 주파수의 비인 레이트(r1)를 구하는 동작을 수행하게 된다.
도 3은 도 1에 도시된 위상 누적기를 세부적으로 나타낸 도면이다.
도 3을 참고하면, 위상 누적기(300)는 레이트 인에이블 생성부(310), 레이트 누적부(320) 및 비트 선택부(330)를 포함한다.
레이트 인에이블 생성부(310)는 덧셈기(311), 다중화기(312, 313), D 플립플롭(314) 및 비교기(315)를 포함한다. 덧셈기(311)는 D 플립플롭(314)의 출력 값과 1을 덧셈하고, 덧셈 값을 다중화기(312)로 출력한다. 다중화기(312)는 비교기(315)의 출력 값인 인에이블 신호(EN_ra)에 따라서 덧셈기(311)의 출력 값과 0 중 하나를 선택하여 다중화기(313)로 출력한다. 다중화기(312)는 인에이블 신호(EN_ra)가 1이면 0을 선택하고 인에이블 신호(EN_ra)가 0이면 덧셈기(311)의 출력 값을 선택한다. 다중화기(313)는 인에이블 신호(EN_pa_start)에 따라서 다중화기(312)의 출력 값과 0 중 하나를 선택하여 D 플립플롭(314)으로 출력한다. 다중화기(313)는 인에이블 신호(EN_pa_start)가 1이면 다중화기(312)의 출력 값을 선택하고 인에이블 신호(EN_pa_start)가 0이면 0을 선택한다. D 플립플롭(314)은 다중화기(313)의 출력 값을 출력 클럭(clkOUT)에 기반하여 한 클럭 지연시켜 비교기(315)로 출력한다. 비교기(315)는 D 플립플롭(314)의 출력 값과 임계 값(period2)을 비교하고, D 플립플롭(314)의 출력 값이 임계 값(period2)과 동일해지면 1을 출력하고, 그렇지 않으면 0을 출력하여 인에이블 신호(EN_ra)를 생성한다. 즉, 레이트 인에이블 생성부(310)는 인에이블 신호(EN_pa_start)가 0인 경우 0인 인에이블 신호(EN_ra)를 생성하고, 인에이블 신호(EN_pa_start)가 1이고 D 플립플롭(314)의 출력 값이 임계 값(period2)이 되기 전까지 0인 인에이블 신호(EN_ra)를 생성하며, D 플립플롭(314)의 출력 값이 임계 값(period2)이 되면 1인 인에이블 신호(EN_ra)를 생성한다. 인에이블 신호(EN_ra)가 1일 때 레이트 누적부(320)의 값이 초기화된다. 즉, 인에이블 신호(EN_ra)는 레이트 누적부(320)를 초기화시키는 동작을 수행한다.
레이트 누적부(320)는 다중화기(321), 덧셈기(322), 다중화기(323) 및 D 플립플롭(324)를 포함한다. 다중화기(321)는 인에이블 신호(EN_ra)에 따라서 0과 D 플립플롭(324)의 출력 값(ra_out) 중 하나를 선택하여 덧셈기(322)로 출력한다. 다중화기(321)는 인에이블 신호(EN_ra)가 1이면 0을 선택하고 인에이블 신호(EN_ra)가 0이면 D 플립플롭(324)의 출력 값(ra_out)을 선택한다. 덧셈기(322)는 다중화기(321)의 출력 값과 레이트(r1)를 덧셈하고, 덧셈 값을 다중화기(323)로 출력한다. 다중화기(323)는 인에이블 신호(EN_pa_start)에 따라서 덧셈기(322)의 출력 값과 0 중 하나를 선택하여 D 플립플롭(324)으로 출력한다. 다중화기(323)는 인에이블 신호(EN_pa_start)가 0일 때 0을 선택하고 인에이블 신호(EN_pa_start)가 1일 때 덧셈기(322)의 출력 값을 선택한다. D 플립플롭(324)은 다중화기(323)의 출력 값을 출력 클럭(clkOUT)을 기반으로 한 클럭 지연시켜 출력한다. D 플립플롭(324)의 출력 값(ra_out)은 다중화기(321) 및 비트 선택부(330)로 입력된다. 이러한 레이트 누적부(320)의 동작을 보면, 인에이블 신호(EN_pa_start)와 인에이블 신호(EN_ra)를 기준으로 인에이블 신호(EN_pa_start)가 0일 때 D 플립플롭(324)의 출력 값(ra_out)은 0이 되고, 인에이블 신호(EN_pa_start)가 1이고 인에이블 신호(EN_ra)가 0인 경우 D 플립플롭(324)의 출력 값(ra_out)은 입력되는 레이트(r1)의 값과 직전 출력 값(ra_out)을 덧셈한 값이 된다. 만약 인에이블 신호(EN_pa_start)가 1이고, 인에이블 신호(EN_ra)가 1인 경우 D 플립플롭(324)의 출력 값(ra_out)은 입력되는 레이트(r1)의 값과 0을 더한 값이 된다.
다음, 비트 선택부(330)는 서브 비트 선택부(331, 332), 인버터(333) 및 D 플립플롭(334)를 포함한다. 서브 비트 선택부(331)는 각각 레이트 누적부(320)의 출력 값(ra_out)를 입력 파라미터(sel_int_bits) 값에 따라 상위 비트 수를 선택하여 출력한다. 서브 비트 선택부(331)의 출력 값이 제1 파라미터(βint)가 된다. 서브 비트 선택부(332)는 각각 레이트 누적부(320)의 출력 값(ra_out)를 입력 파라미터(sel_frac_bits) 값에 따라 전체 비트들 중 서브 비트 선택부(331)에서 선택한 상위 비트들을 제외한 그 다음 상위 비트 수를 선택하여 출력한다. 예를 들어 레이트 누적부(320)의 출력 값(ra_out)의 비트 수가 32비트이고, 입력 파라미터(sel_int_bits)가 3이고 입력 파라미터(sel_frac_bits)가 20이면, 서브 비트 선택부(331)는 출력 값(ra_out)의 상위 3 비트(ra_out[31:29])를 선택하여 출력하고, 서브 비트 선택부(332)는 서브 비트 선택부(331)에서 선택한 출력 값(ra_out)의 상위 3 비트(ra_out[31:29])를 제외한 상위 20비트(ra_out[28:6])를 선택하여 출력한다. 인버터(333)는 서브 비트 선택부(332)의 출력 값을 반전시켜 출력하고, D 플립플롭(334)은 인버터(333)의 출력 값을 출력 클럭(clkOUT)을 기반으로 한 클럭 지연시켜 출력한다. D 플립플롭(334)의 출력 값이 제2 파라미터(βfrac)가 된다.
제1 파라미터(βint)는 메모리에 적힌 데이터를 읽기 위한 주소이며, 입력 파라미터(sel_int_bits)는 메모리에 적힌 데이터를 읽기 위한 주소를 생성하기 위해 사용되는 비트 수이며, 메모리의 사이즈에 따라 결정된다. 예를 들면, 8개의 주소를 가진 메모리가 사용되면, 8개의 주소를 표현하기 위해 최소 3개의 비트(23=8)가 요구 되므로, 입력 파라미터(sel_int_bits)는 3이 될 수 있다.
제2 파라미터(βfrac)는 입력 클럭(clkIN)의 위상을 기준으로 예측되는 출력 클럭(clkOUT)의 위상 위치를 나타내는 값으로서, 샘플링 된 데이터(예를 들면, rcOUT0~rcOUT3)를 기반하여 샘플링 된 데이터 사이의 값을 예측하기 위한 출력 클럭(clkOUT)의 위상 값이며, 위상 연산부(600)에 의해 사용된다. 입력 파라미터(sel_frac_bits)는 제2 파라미터(βfrac)의 해상도를 결정하며 시스템에서 요구되는 신호 대 잡음 비에 따라 결정될 수 있다.
도 4는 도 1에 도시된 비동기 데이터 샘플러를 세부적으로 나타낸 도면이다.
도 4를 참고하면, 비동기 데이터 샘플러(400)는 쉬프트 레지스터(410), 쓰기 주소 생성부(420), 인에이블 제어부(430), 읽기 주소 생성부(440), 메모리(450) 및 D 플립플롭(460)을 포함한다.
쉬프트 레지스터(410)는 인에이블 신호(EN_RS)에 따라서 입력되는 데이터(dataIN)를 입력 클럭(clkIN)에 동기하여 지연시켜 출력한다.
쓰기 주소 생성부(420)는 인에이블 신호(EN_RS)에 따라서 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)를 메모리(450)에 저장할 위치를 나타내는 쓰기 주소(addwr)를 생성한다.
인에이블 제어부(430)는 인에이블 신호(EN_RS)에 따라서 위상 누적기(300)의 동작 시작과 메모리(450)의 읽기 시점을 나타내는 인에이블 신호(EN_pa_start, EN_rd_start)를 생성한다.
읽기 주소 생성부(440)는 위상 누적기(300)로부터 제1 파라미터(βint)를 입력 받고, 제1 파라미터(βint)를 토대로 메모리(450)에 저장되어 있는 연속된 데이터를 읽기 위한 읽기 주소(addrd0~addrd3)를 생성한다.
메모리(450)는 쓰기 주소(addwr)에 따라서 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)를 기록하고, 읽기 주소(addrd0~addrd3)에 따라서 메모리(450)에 저장된 데이터(dataOUT0, dataOUT1, dataOUT2, dataOUT3)를 읽어 D 플립플롭(460)으로 출력한다. 이러한 메모리(450)는 링 타입의 메모리일 수 있다.
D 플립플롭(460)은 출력 클럭(clkOUT)과 인에이블 신호(EN_rd_start)에 기반하여 메모리(450)로부터 출력된 데이터(dataOUT0, dataOUT1, dataOUT2, dataOUT3)를 필터 계수 연산부(500)로 출력한다.
도 5는 도 4에 도시된 쉬프트 레지스터를 세부적으로 나타낸 도면이다.
도 5를 참고하면, 쉬프트 레지스터(410)는 복수의 서브 지연부(sub_SR1, sub_SR2, … sub_SRn)을 포함한다. n은 데이터 레이트 변환 장치의 차수에 따라 결정된다. 각각 다중화기(411) 및 D 플립플롭(412)을 포함한다. 데이터(dataIN)는 서브 지연부(sub_SR1)의 다중화기(411)로 입력된다. 서브 지연부(sub_SR1)의 D 플립플롭(412)은 서브 지연부(sub_SR1)의 다중화기(411)의 출력 값을 입력 클럭(clkIN)을 기준으로 한 클럭 지연시켜 서브 지연부(sub_SR2)의 다중화기(411)로 입력된다. 그리고 서브 지연부(sub_SR2)의 D 플립플롭(412)은 서브 지연부(sub_SR2)의 다중화기(411)의 출력 값을 입력 클럭(clkIN)을 기준으로 한 클럭 지연시켜 서브 지연부(sub_SR3)의 다중화기(411)로 입력된다. 이러한 방법으로 서브 지연부(sub_SR1, sub_SR2, … sub_SRn)는 직렬로 연결된다. 그리고 마지막 서브 지연부(sub_SRn)의 D 플립플롭(412)의 출력 값이 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)가 된다. 서브 지연부(sub_SR1, sub_SR2, …, sub_SRn)의 다중화기(411)는 인에이블 신호(EN_RS)에 따라 입력되는 데이터[dataIN 또는 직전 서브 지연부의 D 플립플롭(412)의 출력 값]와 0 중 하나를 선택하여 출력한다. 이때 인에이블 신호(EN_RS)가 1이면 데이터[dataIN 또는 직전 서브 지연부의 D 플립플롭(412)의 출력 값]가 선택되고, 인에이블 신호(EN_RS)가 0이면 0이 선택된다. 결국, 인에이블 신호(EN_RS)가 0이면 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)는 0이 되어 쉬프트 레지스터(410)가 동작하지 않는 상태가 되고, 인에이블 신호(EN_RS)가 1이면 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)는 데이터(dataIN)가 입력 클럭(clkIN)을 기준으로 데이터 레이트 변환 장치의 차수만큼 지연된 값이 된다.
도 6은 도 4에 도시된 쓰기 주소 생성부를 세부적으로 나타낸 도면이다.
도 6을 참고하면, 쓰기 주소 생성부(420)는 덧셈기(421), 다중화기(422) 및 D 플립플롭(423)을 포함한다. 덧셈기(421)는 1과 D 플립플롭(423)의 출력 값(addwr)을 덧셈하고 덧셈 값을 다중화기(422)로 출력한다. 다중화기(422)는 인에이블 신호(EN_RS)에 따라 0과 덧셈기(421)의 출력 값(addwr) 중 하나를 선택하여 D 플립플롭(423)으로 출력한다. 다중화기(422)는 인에이블 신호(EN_RS)가 0인 경우 0을 선택하고, 인에이블 신호(EN_RS)가 1인 경우 덧셈기(421)의 출력 값 즉, 이전 쓰기 주소(addwr)에 1이 덧셈된 값을 출력한다. D 플립플롭(423)은 입력 클럭(clkIN)에 기반하여 다중화기(422)의 출력 값을 한 클럭 지연시켜서 쓰기 주소(addwr)를 생성하고, 쓰기 주소(addwr)를 출력한다.
즉, 쓰기 주소 생성부(420)는 인에이블 신호(EN_RS)가 0인 경우 0인 쓰기 주소(addwr)를 출력하고, 인에이블 신호(EN_RS)가 1인 경우 이전 쓰기 주소(addwr) 에 1을 누적한 쓰기 주소(addwr)를 출력한다. 이때 쓰기 주소(addwr)의 비트 수는 메모리(450)의 주소 길이에 따라 변동된다. 예를 들어 메모리(450)의 주소 길이가 8인 경우에는 쓰기 주소(addwr)의 비트 수는 3비트로 설정된다. 결국 인에이블 신호(EN_RS)가 1인 경우 입력 클럭(clkIN)을 기준으로 0~7까지 반복되는 쓰기 주소(addwr)를 가진다. 따라서 인에이블 신호(EN_RS)가 0에서 1로 변화되는 순간을 기점으로 입력되는 쉬프트 레지스터(410)의 출력 데이터(Shift_dataIN)는 메모리(450)의 [0]번지 주소에 저장되며, 그 다음 데이터(Shift_dataIN)는 메모리(450)의 [1]번지 주소에 저장이 된다.
도 7은 도 4에 도시된 인에이블 제어부를 세부적으로 나타낸 도면이다.
도 7을 참고하면, 인에이블 제어부(430)는 직렬로 연결되어 있는 복수의 D 플립플롭을 포함한다.
제1 지연부(431)는 복수의 D 플립플롭 중 앞 쪽에 위치한 일부의 D 플립플롭을 포함한다. 제1 지연부(431)의 복수의 D 플립플롭은 입력 클럭(clkIN)에 동기하여 입력되는 인에이블 신호(EN_RS)를 지연시켜 출력한다.
제2 지연부(432)는 복수의 D 플립플롭 중 앞 쪽에 위치한 일부의 D 플립플롭과 마지막 D 플립플롭을 제외한 나머지 D 플립플롭을 포함한다. 제2 지연부(432)의 복수의 D 플립플롭은 출력 클럭(clkOUT)에 동기하여 입력되는 인에이블 신호(EN_RS)를 지연시켜 출력한다. 이때 복수의 D 플립플롭 중 마지막 D 플립플롭의 출력 신호가 인에이블 신호(EN_rd_start)가 되고 복수의 D 플립플롭 중 마지막 D 플립플롭 직전에 위치한 D 플립플롭의 출력 신호가 인에이블 신호(EN_pa_start)가 된다.
인에이블 신호(EN_pa_start, EN_rd_start)는 위상 누적기(300)의 동작 시작과 메모리(450)에 쓰여진 데이터를 읽는 시점을 나타내는 인에이블 신호이며, 데이터 레이트 변환 장치에 사용된 차수와 메모리(450)의 주소 길이에 따라 읽는 시점을 달리 할 수 있다.
예를 들어, 메모리(450)의 주소 길이가 8이고 데이터 레이트 변환 장치의 차수가 3차이면, 제1 지연부(431)의 D 플립플롭의 개수(num_ENdelay1)는 4개고, 제2 지연부(432)의 D 플립플롭의 개수(num_ENdelay2)는 3이 될 수 있다. 즉, 데이터를 샘플링 할 메모리 주소 위치는 인에이블 신호(EN_RS)가 0에서 1로 변화되는 시점을 기준으로 메모리(450)의 [3]번지 주소의 데이터부터 [2]번지, [1]번지 및 [0]번지 주소의 데이터를 모두 샘플링 할 수 있는 시점으로 선택되며, 이때 데이터의 변화가 최소가 되는 시점이 선택된다. 데이터를 샘플링 할 메모리 주소 위치는 비동기 클럭으로 동작 될 때 발생하는 준안정성 문제를 해결 할 수 있다.
제1 지연부(431)의 D 플립플롭의 개수(num_ENdelay1)와 제2 지연부(432)의 D 플립플롭의 개수(num_ENdelay2)는 메모리(450)의 주소 길이가 8을 넘지 않아야 하기 때문에 num_ENdelay1<8이고 num_ENdelay2<8인 값에서 선택될 수 있다.
인에이블 신호(EN_pa_start)를 기점으로 위상 누적기(300)가 동작되므로 위상 누적기(300)의 출력 값(βint)에 기반한 쓰기 주소(addrd0~addrd3)들은 출력 클럭(clkOUT)을 기준으로 한 클록 지연이 된다. 그러므로 메모리(450)에서 데이터를 샘플링 할 위치도 한 클럭 지연된 시점을 기준으로 설정해야 하므로 인에이블 신호(EN_pa_start)를 한 클럭 지연시켜 인에이블 신호(EN_rd_start)가 생성된다. 하드웨어 구성에 따라 이 지연 값은 변동 될 수 있다.
도 8은 도 4에 도시된 읽기 주소 생성부를 세부적으로 나타낸 도면이다.
도 8을 참고하면, 읽기 주소 생성부(440)는 위상 누적기(400)로부터 제1 파라미터(βint)를 입력 받고, 제1 파라미터(βint)를 토대로 메모리(450)에 저장된 연속된 데이터를 읽기 위한 읽기 주소(addrd0~addrd3)를 생성한다. 읽기 주소 생성부(440)는 D 플립플롭(441, 442, 443, 444) 및 덧셈기(445, 446, 447)를 포함한다. D 플립플롭(441)으로는 제1 파라미터(βint)가 입력되고, D 플립플롭(441)은 제1 파라미터(βint)를 출력 클럭(clkOUT)을 기준으로 한 클럭 지연시켜 읽기 주소(addrd3)를 생성한다. 덧셈기(445)는 제1 파라미터(βint)와 1을 덧셈하고, 덧셈 값(=βint+1)을 D 플립플롭(442)으로 출력한다. D 플립플롭(442)은 덧셈기(445)의 덧셈 값(=βint+1)을 출력 클럭(clkOUT)을 기준으로 한 클럭 지연시켜 읽기 주소(addrd2)를 생성한다. 덧셈기(446)는 제1 파라미터(βint)와 2를 덧셈하고, 덧셈 값(=βint+2)을 D 플립플롭(443)으로 출력한다. D 플립플롭(443)은 덧셈기(446)의 덧셈 값(=βint+2)을 출력 클럭(clkOUT)을 기준으로 한 클럭 지연시켜 읽기 주소(addrd1)를 생성한다. 그리고 덧셈기(447)는 제1 파라미터(βint)와 3를 덧셈하고, 덧셈 값(=βint+3)을 D 플립플롭(444)으로 출력한다. D 플립플롭(444)은 덧셈기(447)의 덧셈 값(=βint+3)을 출력 클럭(clkOUT)을 기준으로 한 클럭 지연시켜 읽기 주소(addrd10)를 생성한다.
결국, 읽기 주소 생성부(440)는 샘플링 할 메모리 주소를 나타내는 제1 파라미터(βint)를 시점으로 출력 클럭(clkOUT)을 기반으로 한 클럭씩 지연시켜 메모리(450)에 저장된 연속된 데이터를 읽기 위한 읽기 주소(addrd0~addrd3)를 생성한다.
본 예시에서는 데이터 레이트 변환 장치의 차수가 3차이기 때문에 메모리(450)에서 데이터를 읽기 위해 4개의 읽기 주소가 요구된다. 4개의 읽기 주소를 생성하기 위한 기준 값은 읽기 주소(addrd3)이며 이 기준 값에 구하고자 하는 차수만큼 1~3까지의 값을 더하여 읽기 주소(addrd0~addrd2)가 생성된다.
도 9는 도 1에 도시된 필터 계수 연산부의 하위 연산부를 세부적으로 나타낸 도면으로, 도 9에서는 편의상 하나의 하위 연산부(510)만을 도시하였으며, 하위 연산부(520, 530, 540)는 하위 연산부(510)와 동일하게 구성될 수 있다.
도 9를 참고하면, 하위 연산부(510)는 곱셈기(511, 512, 513, 514) 및 덧셈기(515, 516, 517)을 포함한다. 곱셈기(511)는 데이터(rcOUT0)와 필터 계수(coeff_N0)를 곱하고, 곱한 값을 덧셈기(517)로 출력한다. 곱셈기(512)는 데이터(rcOUT1)와 필터 계수(coeff_N1)를 곱하고, 곱한 값을 덧셈기(516)로 출력한다. 곱셈기(513)는 데이터(rcOUT2)와 필터 계수(coeff_N2)를 곱하고, 곱한 값을 덧셈기(515)로 출력한다. 곱셈기(514)는 데이터(rcOUT3)와 필터 계수(coeff_N3)를 곱하고, 곱한 값을 덧셈기(515)로 출력한다. 덧셈기(515)는 곱셈기(513, 514)의 출력 값을 덧셈하고, 덧셈 값을 덧셈기(516)로 출력한다. 덧셈기(516)는 곱셈기(512)의 출력 값과 덧셈기(515)의 출력 값을 덧셈하고, 덧셈 값을 덧셈기(517)로 출력한다. 덧셈기(517)는 곱셈기(511)의 출력 값과 덧셈기(516)의 출력 값을 덧셈하여 하위 연산부(510)의 출력 값(H0)을 생성한다. 필터 계수(coeff_N0, coeff_N1, coeff_N2, coeff_N3)는 사용하고자 하는 인터폴레이션 방법에 따라 변화될 수 있다.
도 10은 도 1에 도시된 위상 연산부를 세부적으로 나타낸 도면이다.
도 10을 참고하면, 위상 연산부(600)는 복수의 덧셈기(610, 630, 650, 670) 및 복수의 곱셈기(620, 640, 660)를 포함한다. 덧셈기(610)는 하위 연산부(540)의 출력 값(H3)을 곱셈기(620)로 출력하고, 곱셈기(620)는 덧셈기(610)의 출력 값 즉, 하위 연산부(540)의 출력 값(H3)과 제2 파라미터(βfrac)를 곱셈하여 덧셈기(630)로 출력한다. 덧셈기(630)는 하위 연산부(530)의 출력 값(H2)과 곱셈기(620)의 출력 값을 덧셈하고, 덧셈 값을 곱셈기(640)로 출력한다. 곱셈기(640)는 덧셈기(630)의 출력 값과 제2 파라미터(βfrac)를 곱셈하여 덧셈기(650)로 출력한다. 덧셈기(650)는 하위 연산부(520)의 출력 값(H1)과 곱셈기(640)의 출력 값을 덧셈하고, 덧셈 값을 곱셈기(660)로 출력한다. 곱셈기(660)는 덧셈기(650)의 출력 값과 제2 파라미터(βfrac)를 곱셈하여 덧셈기(670)로 출력한다. 덧셈기(670)는 하위 연산부(510)의 출력 값(H0)과 곱셈기(660)의 출력 값을 덧셈하여 데이터 레이트 변환 장치의 출력 데이터(Y)를 생성한다.
본 발명의 실시 예에 따른 데이터 레이트 변환 장치의 목적은 입력 클럭(clkIN)으로 샘플링한 데이터를 기반으로 데이터 레이트가 변환된 데이터를 출력하는 것이다.
비동기 클럭으로 동작되는 상황에서 이러한 목적을 수행하기 위해 제일 중요한 요소가 샘플링된 데이터인 필터 계수 연산부(500)의 출력 값(H0~H3)과 위상 누적기(300)에서 발생된 제2 파라미터(βfrac)의 동기를 맞추어 위상 연산부(600)의 기능을 수행하는 것이다. 비동기 클럭을 사용하면서 발생하게 되는 오차를 최소화하기 위해서는 위상 연산부(600)의 정확한 동작이 요구되며, 위상 연산부(600)의 정확한 동작을 위해 이 전에 설명한 레이터 카운터(200), 위상 누적기(300), 비동기 데이터 샘플러(400), 필터 계수 연산부(500)를 사용하여 해결할 수 있다.
도 11은 본 발명의 실시 예에 따른 데이터 레이터 변환 장치의 타이밍도의 일 예를 나타낸 도면으로, 레이트 카운터(200)에서 구한 레이트(r1)가 0.75인 것으로 가정하고 인에이블 신호(EN_RS)가 0에서 1로 변화되는 시점부터 데이터 레이터 변환 장치의 동작 과정을 도시하였다.
도 11을 참고하면, 인에이블 신호(EN_RS)가 0에서 1이 되면, 쉬프트 레지스터(410)는 입력 클럭(clkIN)에 동기된 데이터(dataIN)를 입력 클럭(clkIN)을 기준으로 3클럭(차수=3) 지연시켜서 데이터(shift_dataIN)를 출력한다. 이때 주소 길이가 8인 메모리(450)에 데이터를 쓰기 위한 메모리(450)의 쓰기 주소(addwr)는 인에이블 신호(EN_RS)가 1이 되는 시점부터 입력 클럭(clkIN)을 기준으로 0~7까지 값을 가지며, 이 과정은 반복된다. 메모리(450)에는 쓰기 주소(addwr)에 따라 데이터(Shift_dataIN)가 쓰여진다. 예를 들면, 쓰기 주소(addwr)가 3인 경우, 메모리(450)의 주소 [3]에 데이터(shift_dataIN) x1이 입력 클럭(clkIN)을 기준으로 쓰여진다. 그리고 쓰기 주소(addwr)가 4이면, 메모리(450)의 주소 [4]에 데이터(shift_dataIN) x2가 입력 클럭(clkIN)을 기준으로 쓰여진다.
이와 같이 메모리(450)의 쓰기 주소(addwr)가 0~7까지 카운팅이 되기 때문에 각 쓰기 주소당 입력 데이터를 보유하는 시간은 8배로 증가하게 된다. 비동기 클럭 시스템에서는 동작되는 클럭의 상승 또는 하강에지 구간에서 입력 데이터가 변화될 때 그 출력 값에 오류가 발생하는 준안정성 문제가 발생된다. 이러한 준안정성 문제는 메모리(450)에서 데이터를 보유하는 시간을 늘림으로써 해결될 수 있다.
다음, num_ENdelay1=4이고 num_ENdelay2=2의 값으로 설정되면 입력 클럭(clkIN)을 기준으로 인에이블 신호(EN_RS)를 4 클럭 지연된 후 출력 클럭(clkOUT)을 2 클럭 지연되어 인에이블 신호(EN_pa_start)가 생성될 수 있다. 이 인에이블 신호(EN_rd_start)는 메모리(450)의 [3]번째 주소를 출력 클럭(clkOUT)을 기준으로 약 3 클럭 뒤에서 샘플링할 수 있게 설정된 신호이다.
인에이블 신호(EN_pa_start)가 1로 되는 시점부터 위상 누적기(300)에서는 출력 클럭(clkOUT)마다 레이트(도 3의 r1)의 값과 이전 출력 값(도 3의 ra_out)을 누적하여 출력 값(ra_out)을 생성한다. 위상 누적기(300)에서 생성한 값(ra_out)은 정수부의 값과 소수부의 값으로 구성되는데, 이때 정수부의 값이 βint가 되고, 소수부의 값이 βfrac가 된다. βint는 메모리(450)에서 데이터를 읽는 시점을 결정하는 값으로 βint토대로 읽기 주소(addrd0~addrd3)가 생성되고 이러한 읽기 주소(addrd0~addrd3)을 기반으로 데이터(dataOUT0~ dataOUT3)가 출력된다. 그리고 βfrac와 H0~H3의 계산 시점을 일치시켜 곱셈과 덧셈 연산을 수행함으로써 데이터 레이트 변환 장치의 최종 출력 데이터(Y)가 생성된다. 이러한 계산 방법을 사용하기 때문에 비동기 클럭을 기반으로 한 데이터 레이트 변환 장치에서는 입출력 클럭간 위상 오차의 영향을 최소화할 수 있다.
도 12 및 도 13은 각각 본 발명의 실시 예에 따른 데이터 레이트 변환 장치의 측정 결과를 시뮬레이션한 그래프도이다. 도 12 및 도 13에서는 입력 데이터 샘플링 레이트가 61.44MHz이고 출력 데이터 샘플링 레이트가 79.79Hz으로, 약 rate=0.77에 해당되는 값이 설정되며, LTE 5MHz의 I채널 데이터 신호를 측정하였다.
도 12는 본 발명의 실시 예에 따른 데이터 레이트 변환 장치의 출력을 나타낸 도면으로, 시간 변화에 따른 LTE 5MHz의 I채널 데이터 신호의 진폭 값을 도시하였다.
도 12에서는 데이터 레이트 변환 장치의 입력 데이터 샘플링 레이트는 61.44MHz이지만 레이트(r1)는 0.77배인 출력 데이터 샘플링 레이트가 79.79MHz으로 변환된 결과를 보인다.
도 13은 도 12에 도시된 신호를 주파수 축에 따른 전력 값으로 나타낸 그래프도로서, 도 13에 도시된 스펙트럼을 관측하면, 신호 성분과 잡음 성분의 간격이 약 60dB 이상의 성능을 유지하면서 출력 레이트로 변환된 것을 확인 할 수 있다.
이와 같이, 본 발명의 실시 예에 따른 데이터 레이트 변환 장치는 단순한 구조를 사용하면서 우수한 성능으로 데이터 레이트 변환을 수행할 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (20)

  1. 입력되는 데이터의 레이트를 변환하는 장치로서,
    입력 클럭과 출력 클럭의 주파수의 비를 나타내는 레이트를 계산하는 레이트 카운터,
    상기 레이트를 이용하여 샘플링 할 메모리 주소 위치를 나타내는 제1 파라미터와 예측 시점의 위상 값을 나타내는 제2 파라미터를 생성하는 위상 누적기,
    입력 클럭에 기반하여 입력되는 데이터를 기록하고, 출력 클럭에 기반하여 상기 제1 파라미터를 이용하여 연속된 데이터를 출력하는 비동기 데이터 샘플러,
    상기 연속된 데이터와 복수의 필터 계수를 이용하여 복수의 제1 연산 값을 계산하는 필터 계수 연산부, 그리고
    상기 복수의 제1 연산 값과 상기 제2 파라미터를 이용하여 최종 데이터를 생성하여 출력하는 위상 연산부
    를 포함하며,
    상기 레이트 카운터는
    제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅 동작을 수행하는 출력 클럭 카운터,
    상기 출력 클럭 카운터의 카운팅 값을 이용하여 제2 인에이블 신호를 생성하고, 제2 인에이블 신호를 상기 입력 클럭에 기반하여 지연시켜 제3 인에이블 신호를 생성하는 카운터 인에이블 생성부, 그리고
    상기 제1 인에이블 신호와 상기 제2 인에이블 신호에 따라서 상기 입력 클럭에 기반하여 카운팅 동작을 수행하여 상기 레이트를 생성하는 입력 클럭 카운터를 포함하는 데이터 레이트 변환 장치.
  2. 삭제
  3. 제1항에서,
    상기 위상 누적기는
    제4 인에이블 신호를 이용하여 상기 출력 클럭에 기반하여 제5 인에이블 신호를 생성하는 레이트 인에이블 생성부,
    상기 제4 인에이블 신호 및 상기 제5 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 상기 레이트를 누적시키는 레이트 누적부, 그리고
    상기 레이트의 누적 값의 일부 비트를 상기 제1 파라미터로 사용하고, 상기 레이트의 누적 값의 다른 일부 비트를 상기 제2 파라미터로 사용하는 비트 선택부를 포함하는 데이터 레이트 변환 장치.
  4. 제1항에서,
    상기 비동기 데이터 샘플러는
    상기 제3 인에이블 신호에 따라서 상기 입력되는 데이터를 상기 입력 클럭에 기반하여 지연시켜 출력하는 쉬프트 레지스터,
    상기 제3 인에이블 신호에 따라서 쓰기 주소를 생성하는 쓰기 주소 생성부,
    상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 제4 인에이블 신호 및 제6 인에이블 신호를 생성하는 인에이블 제어부,
    상기 제1 파라미터를 이용하여 상기 출력 클럭에 기반하여 상기 연속된 데이터를 읽기 위한 복수의 읽기 주소를 생성하는 읽기 주소 생성부, 그리고
    상기 쓰기 주소에 따라서 상기 쉬프트 레지스터로부터 출력되는 데이터를 기록하는 메모리를 포함하는 데이터 레이트 변환 장치.
  5. 제4항에서,
    상기 비동기 데이터 샘플러는 상기 제6 인에이블 신호에 따라서 상기 복수의 읽기 주소에 따라서 상기 메모리로부터 출력된 상기 연속된 데이터를 상기 출력 클럭에 기반하여 지연시켜 상기 필터 계수 연산부로 출력하는 D 플립플롭을 더 포함하는 데이터 레이트 변환 장치.
  6. 제5항에서,
    상기 인에이블 제어부는 직렬로 연결되어 있는 복수의 D 플립플롭을 포함하고,
    상기 복수의 D 플립플롭 중 앞 쪽에 위치한 일부의 D 플립플롭은 상기 입력 클럭에 기반하여 동작하고,
    상기 복수의 D 플립플롭 중 나머지 D 플립플롭은 상기 출력 클럭에 기반하여 동작하며,
    상기 복수의 D 플립플롭 중 마지막 D 플립플롭의 출력 값으로부터 제6 인에이블 신호가 생성되는 데이터 레이트 변환 장치.
  7. 제6항에서,
    상기 복수의 D 플립플롭 중 상기 마지막 D 플립플롭 직전의 D 플립플롭의 출력 값으로부터 상기 제4 인에이블 신호가 생성되는 데이터 레이트 변환 장치.
  8. 제4항에서,
    상기 읽기 주소 생성부는 상기 제1 파라미터를 상기 출력 클럭에 기반하여 제1 읽기 주소를 생성하고, 상기 제1 읽기 주소를 기준으로 상기 제1 읽기 주소에 1부터 구하고자 하는 차수에 해당하는 값만큼 각각 더하여 나머지 읽기 주소를 생성하는 데이터 레이트 변환 장치.
  9. 제4항에서,
    상기 쓰기 주소 생성부는
    상기 제3 인에이블 신호에 따라서 직전 쓰기 주소에 1을 누적한 값을 선택하여 출력하는 다중화기, 그리고
    상기 다중화기의 출력 값을 상기 입력 클럭에 기반하여 지연시켜 상기 쓰기 주소를 생성하는 D 플립플롭을 포함하는 데이터 레이트 변환 장치.
  10. 제4항에서,
    상기 시프트 레지스터는 순차적으로 연결된 복수의 서브 지연부를 포함하고,
    상기 복수의 서브 지연부 각각은
    상기 제3 인에이블 신호에 따라서 상기 입력되는 데이터를 선택하여 출력하는 다중화기, 그리고
    상기 다중화기의 출력을 상기 입력 클럭에 기반하여 지연시켜 출력하는 D 플립플롭을 포함하고,
    하나의 서브 지연부의 D 플립플롭의 출력은 상기 하나의 서브 지연부 다음에 위치하는 서브 지연부의 다중화기로 입력되는 데이터 레이트 변환 장치.
  11. 제1항에서,
    상기 필터 계수 연산부는 상기 복수의 제1 연산 값을 각각 계산하는 복수의 서브 연산부를 포함하고,
    상기 복수의 서브 연산부 각각은 상기 연속된 데이터에 각각 복수의 필터 계수를 곱하고, 곱셈된 값들을 덧셈하여 상기 제1 연산 값을 계산하며,
    상기 서브 연산부의 개수는 상기 데이터 레이트 변환 장치의 차수에 따라 결정되는 데이터 레이트 변환 장치.
  12. 제1항에서,
    상기 위상 연산부는
    복수의 곱셈기, 그리고
    상기 복수의 곱셈기의 출력 값에 각각 복수의 제1 연산 값을 덧셈하여 출력하는 복수의 덧셈기를 포함하고,
    상기 복수의 곱셈기 각각은 복수의 덧셈기 중 대응하는 덧셈기의 출력 값과 상기 제2 파라미터를 곱셈하여 출력하며,
    상기 복수의 덧셈기 중 하나의 덧셈기의 출력 값으로부터 상기 최종 데이터가 생성되는 데이터 레이트 변환 장치.
  13. 데이터 레이트 변환 장치에서 입력되는 데이터의 레이트를 변환하는 방법으로서,
    입력 클럭과 출력 클럭의 주파수의 비를 나타내는 레이트를 계산하는 단계,
    상기 레이트에 따라서 샘플링 할 메모리 주소 위치를 나타내는 제1 파라미터와 예측 시점의 위상 값을 나타내는 제2 파라미터를 생성하는 단계,
    상기 입력 클럭에 기반하여 입력되는 데이터를 메모리에 기록하는 단계,
    상기 출력 클럭에 기반하여 상기 제1 파라미터를 이용하여 상기 메모리부터 연속된 데이터를 출력하는 단계, 그리고
    상기 연속된 데이터와 복수의 필터 계수 및 상기 제2 파라미터를 이용하여 최종 데이터를 출력하는 단계
    를 포함하며,
    상기 레이트를 계산하는 단계는
    제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅하는 단계,
    상기 카운팅 값을 이용하여 제2 인에이블 신호를 생성하는 단계,
    상기 제2 인에이블 신호를 상기 입력 클럭에 기반하여 지연시켜 제3 인에이블 신호를 생성하는 단계, 그리고
    상기 제1 인에이블 신호와 상기 제2 인에이블 신호에 따라서 상기 입력 클럭에 기반하여 카운팅하여 상기 레이트를 계산하는 단계를 포함하는 데이터 레이트 변환 방법.
  14. 삭제
  15. 제13항에서,
    상기 기록하는 단계는 제3 인에이블 신호를 따라서 상기 입력 클럭에 기반하여 직전 쓰기 주소에 1을 누적하여 쓰기 주소를 생성하는 단계를 포함하고,
    상기 쓰기 주소의 비트 수는 상기 메모리의 주소 길이에 따라 결정되는 데이터 레이트 변환 방법.
  16. 제15항에서,
    상기 기록하는 단계 이전에,
    제1 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 카운팅하는 단계,
    상기 카운팅 값과 임계 값을 비교한 결과에 따라서 제2 인에이블 신호를 생성하는 단계, 그리고
    상기 제2 인에이블 신호를 입력 클럭에 기반하여 지연시켜 상기 제3 인에이블 신호를 생성하는 단계
    를 더 포함하는 데이터 레이트 변환 방법.
  17. 제15항에서,
    상기 연속된 데이터를 출력하는 단계는
    상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 제6 인에이블 신호를 생성하는 단계, 그리고
    상기 제6 인에이블 신호에 따라서 상기 제1 파라미터와 상기 출력 클럭에 기반하여 상기 연속된 데이터를 읽기 위한 복수의 읽기 주소를 생성하는 단계를 포함하는 데이터 레이트 변환 방법.
  18. 제15항에서,
    상기 제1 파라미터와 상기 제2 파라미터를 생성하는 단계는
    상기 제3 인에이블 신호를 상기 입력 클럭과 상기 출력 클럭에 기반하여 지연시켜 제4 인에이블 신호를 생성하는 단계,
    상기 출력 클럭에 기반하여 제5 인에이블 신호를 생성하는 단계,
    상기 제4 인에이블 신호 및 상기 제5 인에이블 신호에 따라서 상기 출력 클럭에 기반하여 상기 레이트를 누적시키는 단계, 그리고
    상기 레이트의 누적 값의 일부 비트를 상기 제1 파라미터로 설정하고, 상기 레이트의 누적 값의 다른 일부 비트를 상기 제2 파라미터로 설정하는 단계를 포함하는 데이터 레이트 변환 방법.
  19. 제18항에서,
    상기 연속된 데이터를 출력하는 단계는 상기 제4 인에이블 신호를 상기 출력 클럭에 기반하여 지연시킨 제6 인에이블 신호에 따라서 상기 연속된 데이터의 읽는 시점을 결정하는 단계를 포함하는 데이터 레이트 변환 방법.
  20. 제13항에서,
    상기 최종 데이터를 출력하는 단계는
    상기 연속된 데이터와 복수의 필터 계수를 이용하여 복수의 제1 연산 값을 계산하는 단계, 그리고
    상기 복수의 제1 연산 값에 각각 상기 제2 파라미터를 적용하여 상기 최종 데이터를 생성하는 단계를 포함하는 데이터 레이트 변환 방법.
KR1020130118713A 2013-10-04 2013-10-04 데이터 레이트 변환 장치 및 방법 KR102064232B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130118713A KR102064232B1 (ko) 2013-10-04 2013-10-04 데이터 레이트 변환 장치 및 방법
US14/206,522 US9000958B1 (en) 2013-10-04 2014-03-12 Device and method for converting data rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130118713A KR102064232B1 (ko) 2013-10-04 2013-10-04 데이터 레이트 변환 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150040111A KR20150040111A (ko) 2015-04-14
KR102064232B1 true KR102064232B1 (ko) 2020-02-11

Family

ID=52745134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130118713A KR102064232B1 (ko) 2013-10-04 2013-10-04 데이터 레이트 변환 장치 및 방법

Country Status (2)

Country Link
US (1) US9000958B1 (ko)
KR (1) KR102064232B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9602107B2 (en) * 2014-12-23 2017-03-21 Texas Instruments Incorporated Reset selection cell to mitigate initialization time
WO2020047148A1 (en) * 2018-08-31 2020-03-05 Commscope Technologies Llc Efficient implementation of fixed-rate farrow-based resampling filter

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005521320A (ja) * 2002-03-22 2005-07-14 フリースケール セミコンダクター インコーポレイテッド 非同期サンプリング速度変換

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475628A (en) * 1992-09-30 1995-12-12 Analog Devices, Inc. Asynchronous digital sample rate converter
JPH09261687A (ja) * 1996-03-27 1997-10-03 Hitachi Ltd 映像信号サンプリングレート変換装置
KR100599200B1 (ko) 2003-12-26 2006-07-12 한국전자통신연구원 재구성 가능한 디지털 중간주파수 송신기 및 이를 이용한송신 장치
US7342518B2 (en) 2004-01-20 2008-03-11 Freescale Semiconductor, Inc. Digital rate converter
US7408485B1 (en) * 2007-03-22 2008-08-05 Texas Instruments Incorporated Asynchronous sampling rate converter and method for audio DAC
US8405532B1 (en) * 2009-05-28 2013-03-26 Audience, Inc. Asynchronous sample rate converter
CN102742157B (zh) 2010-01-15 2015-10-21 意法爱立信有限公司 采样率转换器的数据流控制机制

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005521320A (ja) * 2002-03-22 2005-07-14 フリースケール セミコンダクター インコーポレイテッド 非同期サンプリング速度変換

Also Published As

Publication number Publication date
KR20150040111A (ko) 2015-04-14
US20150097708A1 (en) 2015-04-09
US9000958B1 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
TWI450499B (zh) 在樣本速率轉換系統內計算內插因子的方法與設備
US5475628A (en) Asynchronous digital sample rate converter
JP3984284B2 (ja) 改良された時間インタリーブ方式のアナログ−デジタル変換装置及びそれを用いる高速信号処理システム
JP6261740B2 (ja) 消去パルス波高因子の低減
JP2007067646A (ja) サンプリングレート変換方法及びその回路
CA2898640C (en) Methods and devices for determining root mean square of a delta-sigma modulated signal
CN109655644B (zh) 一种降低任意波信号输出抖动的方法和装置
CN111337890A (zh) 一种lfmcw雷达目标回波信号模拟方法
KR102064232B1 (ko) 데이터 레이트 변환 장치 및 방법
CN109976660B (zh) 基于线性插值的任意信号采样率重构方法和数据采样系统
JP2017200162A (ja) 高分解能の時間−ディジタル変換器
JP2006279425A (ja) A/d変換装置
KR101541175B1 (ko) 지연선 기반 시간-디지털 변환기
US7664166B2 (en) Pleisiochronous repeater system and components thereof
US8242829B1 (en) Multichannel interpolator
CN108631752B (zh) 成形滤波器及其成形方法
Zhang et al. Design and FPGA implementation of DDS based on waveform compression and Taylor series
JP5560778B2 (ja) クロック乗せ換え回路、及びクロック乗せ換え方法
JP5876849B2 (ja) サンプリングレート変換システム、及びサンプリングレート変換方法
Napoli et al. A complete system to generate electrical noise with arbitrary power spectral density
KR100706217B1 (ko) 검파 장치, 방법 및 기록 매체
WO2011033588A1 (ja) 試験装置および試験方法
US10873441B2 (en) Method for synchronizing digital data sent in series
CN114384288B (zh) 信号发生装置
Lijun et al. Signal generation techniques based on arbitrary sample rate conversion

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant