2010년 5월 26일 수요일

ADC 구현 위한 FPGA 및 CPLD 디지털 로직 강화

증폭, 컨디셔닝 및 변환

ADC 구현 위한 FPGA 및 CPLD 디지털 로직 강화

게재:2010년05월03일

By Ted Marena
Lattice Semiconductor Corp.

디지털 시스템 설계자들은 다양한 프로세서, 메모리 및 표준 함수 컴포넌트들을 인쇄회로기판에 모두 포함시키기 위해 FPGA와 CPLD를 이용해 디지털 설계의 ‘나머지 부문’을 구현하는 데 익숙하다. 이러한 디지털 함수 외에도 FPGA와 CPLD는 LVDS 입력과 간단한 저항 커패시터(RC) 회로 및 FPGA나 CPLD 디지털 논리 소자 일부를 이용하는 공통 아날로그 함수를 구현함으로써 ADC를 제작할 수 있다.

ADC는 보편적인 아날로그 빌딩 블록으로서, FPGA나 CPLD와 같이 디지털 로직을 ‘현실 세계’의 아날로그 센서로 인터페이싱할 때 거의 항상 필요하다. 여기에서는 Lattice Semiconductor사의 유용한 레퍼런스 디자인과 데모 보드를 이용해 저주파수(DC~1KHz)와 고주파수(최대 50KHz) ADC 두 가지를 모두 구현하는 것에 대해 설명할 것이다.

네트워크 스위치 내 시스템 모니터를 위한 어플리케이션과 오디오 통신 시스템 내 주파수 감지를 위한 어플리케이션 등 각 디자인을 위한 간단한 어플리케이션이 검토될 것이다.

ADC 구현의 개요

간단한 ADC는 소형 RC 회로를 FPGA나 CPLD의 LVDS 입력에 추가함으로써 이루어질 수 있다. 그림 1의 좌측 하단에 나타나 있는 바와 같이 RC 네트워크는 LVDS 입력의 한쪽 측면에 위치해 있으며 아날로그 입력은 다른 한 쪽에 자리잡고 있다.

LVDS 입력은 간단한 아날로그 비교기 역할을 하게 되며 아날로그 입력 전압이 RC 네트워크의 전압보다 높은 경우 디지털 ‘1’을 출력하게 된다. LVDS 비교기는 입력 쪽의 전압을 RC 회로로 변화시킴으로써 정확한 디지털 표시를 구현하기 위한 아날로그 입력 전압 분석에 이용될 수 있다.

아날로그-디지털 제어 모듈은 아날로그 입력 주파수, 목표 분해능 및 이용 가능한 로직 리소스에 따라 다양한 방법으로 구현될 수 있다. 그림 1의 좌측 상단 옵션 1에서 볼 수 있듯이 저주파수 신호는 간단한 연속 근사 레지스터를 이용해 처리될 수 있다.

그림 1: ADC(analog to digital converter)의 기본 블록 다이어그램: 저주파수 및 고주파수 옵션

그림 1: ADC(analog to digital converter)의 기본 블록 다이어그램: 저주파수 및 고주파수 옵션

그림 1의 우측 상단에서 볼 수 있듯이 보다 높은 주파수의 구현은 샘플링 레지스터와 CIC(cascade integrated comb) 필터를 구성하는 델타 시그마 변조 함수를 이용해 이루어질 수 있다.

디지털 신호가 구성되면 디지털 출력이 수시로 필터링됨으로써 시스템 잡음이나 피드백 지터로 인한 원치 않는 모든 고주파수 컴포넌트를 제거할 수 있다.

디지털 필터 블록 옵션에 이어서 메모리 버퍼 옵션이 디버깅/테스팅 목적으로 이용될 수 있다. 디지털 출력은 메모리 버퍼에 의해 샘플링되고 그 후 신호 분석 소프트웨어가 구동되고 있는 PC의 JTAG 포트를 통해 스캔 아웃된다.

저주파수 로직 ADC 구현 설명

저주파수 로직 구현에서 샘플링 제어 모듈은 연속 근사 레지스터를 제어하며 일반 출력 신호가 RC 회로에 적용되는 시간을 변경시킨다. 따라서 RC 회로 전압은 일반 출력의 상태, 즉 변화된 값에 따라 증가되거나 감소한다.

LVDS 입력은 변화하는 RC 회로 전압을 아날로그 입력과 비교한다. 그 결과 RC 회로 전압은 아날로그 입력 전압을 ‘찾는 데’ 이용된다. 그림 2는 전체 입력 전압 범위의 반값에 약간 못 미치는 정적 아날로그 입력(오렌지색 점선)의 실례를 보여 준다. 흑색 수직 점선은 녹색 점선으로 표시된 SAR 샘플 지점 사이의 클럭 수를 나타낸다.

첫번째 계측은 8클럭이 걸리며 다음은 4클럭, 2클럭 등이 걸리게 된다. 처음에 RC 회로는 로직 ‘1’이 일반 출력에 적용됨으로써 아날로그 입력에서 전체 전압 진폭의 반값까지 상승하게 된다. 전압이 2분의 1 지점에 오게 되면 LVDS 입력에 대한 출력은 아날로그 입력값이 RC 회로 전압 이상인지 이하인지를 나타내게 될 것이다.

아날로그 전압이 더 높으면 디지털 출력에서 가장 중요한 비트가 로직 ‘1’이 된다. 아날로그 전압이 더 낮으면 디지털 출력은 로직 ‘0’이 된다. SAR은 반으로 줄어드는 샘플링 시간을 따라 다음 비트로 이동한다. 이러한 과정이 ADC의 정확도가 목표에 도달할 때까지 반복된다.

그림 2: SAR(Successive Approximation Register) 기반 ADC 동작 실례

그림 2: SAR(Successive Approximation Register) 기반 ADC 동작 실례

그림 2의 예를 통해 RC 회로 전압이 어떻게 아날로그 입력값에 단계적으로 도달하는지를 관찰할 수 있다. 이 다이어그램의 하단에는 SAR(0101)의 4비트 디지털 출력이 나타나 있다.

저주파수 디자인은 다양한 공급 전압 및 환경 센서에 해당하는 몇 가지 아날로그 전압 레벨을 모니터링 하는 데 이용될 수 있다. CPLD 구현은 PCB 전원 공급 전압(3.3V, 2.5V 및 1.8V)뿐만 아니라 온도/습도 센서 및 오픈 캐비닛 알람을 모니터링 할 수 있다.

다수의 아날로그 입력을 계측하기 위해 하나의 LVDS 입력이 추가 RC 회로와 함께 각각의 아날로그 전압에 이용된다. 아날로그 전압은 천천히 변화되기 때문에 LVDS 출력이 다중화됨으로써 디지털 로직 함수가 각각의 입력 사이에 공유될 수 있다.

저주파수 로직 ADC 테스트 결과

Lattice MachXO CPLD에는 개발 보드를 이용해 디지털 필터 옵션이 없는 저주파수/최소 로직 회로가 구현되었으며 0~3.3V의 진폭에 0.8Hz의 입력 신호가 이용되었다.

그림 1에서 볼 수 있는 메모리 버퍼 옵션은 Lattice ispLever 디자인 소프트웨어의 Lattice Reveal Logic Analyzer 기능과 함께 이용된다. 이 기능은 디지털 신호 캡처, 데이터 버퍼링 및 JTAG 케이블을 통해 컴퓨터로 데이터를 전송하는 작업을 제어하는 데 필요한 로직 이외의 타깃 디자인에 버퍼 메모리를 추가시켜 준다. 테스트가 진행되는 동안 FFT는 Linear Technology사의 Pscope 소프트웨어를 이용해 수집된 데이터를 기반으로 구동된다.

수신된 디지털 신호는 Pscope 스크린 캡처 창의 상단에 표시된다. 세로축은 코드 스텝으로 측정하며(0~255) 가로축은 샘플로 측정한다(여기서는 1024샘플). 주파수는 f1(기본) 주파수와 같이 우측 상단의 박스에 기록된다. FFT의 결과는 창의 하단에 표시되며 고주파 주파수는 dB 레벨에 따라 세로축으로 표시된다.

FFT에서 발생한 핵심 파라미터들에 대한 요약 내용은 우측 하단 박스에 표시되며 여기에는 ENOB(effective number of bits)와 SNR(signal to noise ratio)도 들어 있다. 이 결과들은 입력 신호가 우수한 분해능과 SNR로 디지털 신호로 성공적으로 변환되었음을 나타내 준다.

고주파수 ADC 구현

그림 1의 우측 상단에 있는 고주파수 ADC 옵션의 프론트엔드는 여전히 RC 회로와 LVDS 입력을 이용하고 있다. 오버샘플링 플립플롭은 LVDS 입력으로부터 비교기 결과를 캡처한다. 이 신호는 RC 회로를 구동시키는 일반 LVCMOS 출력을 통해 피드백된다. 비교기 출력이 로직 ‘1’이라면, 이는 아날로그 입력이 RC 회로의 전압보다 높다는 것을 의미한다.

로직 ‘1’이 플립플롭에 의해 샘플링되고 RC 회로로 피드백됨으로써 RC 회로 전압은 상승하게 된다. 비교기의 출력이 로직 ‘0’이면 피드백 신호는 로직 ‘0’이 되며 RC 전압은 보다 낮아지게 된다. 이 간단한 피드백 메커니즘을 통해 디지털 값은 아날로그 입력 주파수를 ‘트래킹’하는 것이다.

그림 3: 델타시그마 모듈레이터의 변환 스테이지 결과를 보여준다.

그림 3: 델타시그마 모듈레이터의 변환 스테이지 결과를 보여준다.

그림 3의 우측 하단 그래프의 적색선은 샘플 아날로그 입력 파형과 샘플링 플립플롭의 출력을 나타내며 청색 칸은 로직 ‘1’을 나타내고 백색 칸은 로직 ‘0’을 나타낸다. ‘1’과 ‘0’이 공통 PCM(pulse code modulated) 포맷으로 변화되는 방식을 살펴 보자.

PCM 입력은 CIC(cascaded integrator comb) 필터를 이용해 아날로그 입력 스트림 주파수를 반영하는 출력 스트림으로 변환될 수 있다. CIC 기능은 근본적으로 단일 비트 PCM 신호를 통합하고 있어서 원하는 비트 수로 지속적인 출력 신호를 발생시킨다.

그림 3의 하단부의 예에서 청색 비트는 ‘1’로 백색 비트는 ‘-1’로 간주되는데 합계(통합) 작업이 입력 파형에 대한 디지털 표현을 발생시키는 것이 확실하다.

RC 회로의 전압은 이 피드백 루프를 통해 구현된 “트래킹” 과정으로 인해 아날로그 입력 레벨 주변에서 왔다 갔다 하게 된다. RC 회로 전압은 오버샘플링 플립플롭이 ‘1’과 ‘0’이라는 결과 사이에서 변화되는 것과 같이 아날로그 입력 레벨보다 약간 높거나 낮은 범위 안에서 변하게 된다. 이러한 고주파수 잡음은 부수적인 디지털 필터를 이용함으로써 제거할 수 있다.

고주파수 설계는 동작 및 환경 상태를 전달하는 데 이용되는 다중 오디오 주파수 보조 신호를 모니터링 할 수 있다. 예컨대, 5kHz 및 12kHz 신호가 주기적으로 발생됨으로써 원격 오디오 모니터링 시스템의 상태를 표시할 수 있다. 이러한 신호들은 장비의 환경 상태(온도 및 습도)를 나타낼 수 있다.

앞선 예에서와 같이 다중 아날로그 신호들은 간단하게 보다 많은 LVDS 입력을 추가함으로써 지원될 수 있다. 이 디자인은 최대 8개의 아날로그 신호를 위한 허브가 될 수 있다.

고주파수 ADC 테스트 결과

보다 높은 주파수의 ADC 회로가 개발 보드를 이용해 Lattice XP2-17 FPGA에 구현되었다. 0~3.3V 진폭의 15kHz 입력 신호가 테스트 동안 이용되었다. 이 아날로그 신호는 디지털 필터 옵션을 이용하는 그림 1에 보이는 옵션 2 회로를 이용해 처리된다.

결과가 표시된 창을 보게 되면, 수신된 신호는 상단 창에 표시되고 FFT는 하단에 표시되며 가장 중요한 f1 주파수는 15.1kHz로 표시되는 것을 볼 수 있다. 측면 박스에는 ENOB은 9비트이며 SNR은 61dB라는 결과가 기록된다. 이러한 결과들은 입력 신호가 디지털 신호로 우수한 분해능과 SNR을 통해 성공적으로 변환되었음을 나타내 준다.

<이번호 저널 2010년 5월>호에서 이 기사 및 다른 기사들도 찾아볼 수 있습니다.

본 기사는 http://www.eetkorea.com/ART_8800605154_839591_NT_52a2da9b.HTM에 있는 전자 엔지니어 기사에서 인쇄한 것입니다.

댓글 없음: