DOI QR코드

DOI QR Code

Implementation of FPGA-based SoC Design Verification System for a Soundbar with Embedded Processor

사운드바(Soundbar)를 위한 프로세서 내장 SoC 설계 검증을 위한 FPGA 시스템의 구현

  • 김성우 (서울과학기술대학교 IT정책전문대학원) ;
  • 이선희 (서울과학기술대학교 정보통신대학 전자IT미디어공학과) ;
  • 최성진 (서울과학기술대학교 IT정책전문대학원)
  • Received : 2016.06.10
  • Accepted : 2016.08.03
  • Published : 2016.09.30

Abstract

Real time verification is necessary, since there are several features that cannot be verified through design simulation in the design of multiband soundbar system. And then this paper describes an implementation of an FPGA-based real-time verification system for a soundbar SoC with an embedded processor. It is verified a real-time performance test and a listening test which are several features in the design stage that cannot be verified through a design simulation. The measurement of quantitative specifications such as SNR, THD+N, frequency response, etc. as well as the listening test were performed through the implemented FPGA system, and it was verified that test results satisfied the target specifications.

최근 사용이 늘어나고 있는 멀티밴드 사운드바 설계 시, 설계검증은 시뮬레이션으로 확인이 되지 않거나 되기 힘든 검증요소들이 다수 존재한다. 따라서 본 논문에서는 프로세서 내장 사운드바 SoC를 위한 FPGA 검증시스템을 구현하였다. 이를 통해 설계단계의 시뮬레이션으로 검증할 수 없는 실시간 성능테스트와 청취테스트를 실시간 검증하였다. 즉, 구현된 FPGA 검증시스템을 이용해서 SNR, THD+N, 주파수응답과 같은 정량적 항목들의 측정 및 청취테스트를 시행하였고, 테스트 결과가 설계목표를 만족함을 확인하였다.

Keywords

Ⅰ. 서 론

평판디스플레이를 사용하는 디지털TV의 등장은 사용되는 스피커를 비롯한 여러 가지 부품들에 있어서 많은 변화를 일으켜왔다. 얇은 패널두께로 인해, 스피커의 설치공간의 제약이 발생하였고, 스피커 음향의 방사방향이 후면 및 측면으로 바뀜에 따라 스피커의 모양도 기존의 원형에서 타원 형태로 바뀌어 좋은 음질을 유지하는 것이 매우 어려워지고 있다. 특히 최근 OLED TV나 커브드TV와 같은 슬림 디자인은 재생되는 음질을 더욱 나쁘게 만들어서 음질을 강조하는 제품의 경우 스피커를 사운드바 형태로 독립적으로 분리하는 제품들도 출시되고 있다.

이와 더불어 여러 가전업체에서는 기존 2채널 TV사운드를 개선시키고, 가상 서라운드음향을 만들기 위한 사운드바 제품을 출시하고 있다. 사운드바의 종류는 크게 3가지로 구분할 수 있다. 첫 번째는 2~4개의 스피커를 스테레오 채널로 구성하는 형태로 별도의 신호처리를 하지 않으며, 기본적인 스테레오 효과만을 가지는데 신호크기를 패닝하는 방식을 사용하는 경우도 있다[1]. 이 패닝방식은 음장효과를 기대할 수는 없다. 두 번째는 크로스톡(crosstalk) 제거와 같이 사운드신호가 시청자의 양쪽 귀에 도달하는 시간차이를 인위적으로 만드는 알고리즘을 기반으로 하는 형태로 크로스톡 제거효과가 사용되는 함수모델에 따라 차이가 발생하며 동일한 알고리즘에서도 개인 간 차이가 상당히 발생한다[2]. 또한 효과가 극대화되는 위치가 매우 제한적인 문제점이 있다. 그리고 마지막으로 빔포밍, WFS(Wave Field Synthesis)와 같이 가상음원을 합성하는 형태가 있다[3]-[5]. 이 방식은 가상음원을 합성하므로 청취효과가 가장 우수하지만, 복잡한 알고리즘을 구현하기 위해 프로세서가 필요하고, 알고리즘 구현을 위해 DSP를 별도로 사용하는 경우 시스템 구성비용이 높아지는 문제점이 있으므로, 가격적인 측면에서 효율적인 시스템을 구성하기 위해서는 이와 같은 사운드바 알고리즘 기능을 앰프에 통합하는 것이 한 가지 좋은 방법이 될 수 있다. 오디오 시장에서의 제품 가격경쟁이 매우 심화되고 있는 여건을 감안하면, 가상음원 합성알고리즘을 어레이 스피커를 구동하기 위한 멀티채널 앰프와 함께 하나의 칩으로 구현할 경우 시스템 구성이 효과적이고 경제적으로 할 수 있다[6].

본 논문에서는 사운드바용 WFS 알고리즘과 FS(Focused Source) 알고리즘을 구현하기 위한 내장 DSP 프로세서, 그리고 8채널의 디지털앰프 SoC 설계 시, 이를 검증하기 위해 FPGA 시스템을 설계하였다.

 

Ⅱ. 시스템 아키텍처

1. DSP 아키텍처

가상 멀티채널 음향신호처리 알고리즘을 구현하기 위하여 케이던스(Cadence)사의 Xtensa 프로세서의 HIFI2 모듈을 사용하였다[7]. 사용한 프로세서에는 Xtensa 프로세서의 기본 명령어 집합(instruction set)과 재구성(reconfiguration)에 의해서 추가된 명령어 집합이 포함되어 있으며, 여기에 오디오 엔진인 HIFI2 IP 모듈을 추가하였다. 프로세서 후단의 앰프블록과 데이터 전달을 위한 큐(queue) 인터페이스, 제어신호전달을 위한 GPIO(General Purpose Input Output) 인터페이스, 프로그램 메모리로 사용되는 온칩 RAM(Random Access Memory)과 ROM(Read Only Memory)으로 구성되어 있다. 그림 1은 DSP 아키텍처를 나타낸다.

그림 1.DSP 구조 Fig. 1. DSP architecture

HIFI2 오디오 엔진은 24비트 오디오 데이터를 처리하며, 그림 2와 같이 SIMD (Single-Instruction/Multiple-Data) 프로세서의 특성을 가지고 있으며, VLIW(Very Long Instruction Word) 구조를 구현하여 두 개의 동작을 동시에 처리할 수 있다. 또한 내부에 48비트 P 오디오 레지스터, 56비트 Q 오디오 레지스터, 24×24 비트 곱셈기 2개를 포함하고 있어 하나의 명령어로 두 개의 곱셈을 수행 후에 그 결과 값을 더하거나 빼거나 하여 Q 오디오 레지스터로 저장할 수 있으므로 유사 SIMD 곱셈을 수행할 수 있다. 이와 같은 구조적 특징으로 인해 HIFI2 오디오 엔진은 오디오 응용분야에서 연산 사이클 및 전력 소모 관점에서 효율적인 결과를 얻을 수 있어 널리 사용되고 있고, WFS 및 FS 알고리즘을 구현하기 위한 프로세서로 선택하였다.

그림 2.연산 블록 구조 Fig. 2. Operation block architecture

2. Peripheral 설계

프로세서와의 인터페이스를 위한 주변(peripheral) 회로는 크게 오디오 데이터 입력부, 오디오 입력 FIFO(First Input First Output), DSP FIFO, 오디오 데이터 후처리부로 구성되어 있다.

오디오 데이터 입력부는 4개의 I2S(Inter IC Sound)신호를 사용하여 8채널까지 지원한다. 또한 동시에 2개의 입력소스를 연결하여 선택적으로도 사용 가능하며, ADC(Analog to Digital) Converter)를 통한 아날로그 입력과 SPDIF(Sony/Philips Digital Interconnect Format), HDMI(High Definition Multimedia Interface) 등을 통한 디지털 입력도 가능하다. 그림 3과 같이 4개의 SDATA(Seral Data)를 연결할 수 있으며, 2개의 입력소스에서 출력되는 WCK(Word Clock), BCK(Bit Clock)를 각각 연결할 수 있다.

그림 3.오디오 데이터 입력부 Fig. 3. Audio data input part

오디오 입력부에서 처리된 오디오 데이터를 DSP로 전달하기 위해 그림 4와 같은 FIFO를 사용하며, 처리된 8채널의 오디오 데이터를 순차적으로 하나의 FIFO에 저장한다. 실시간으로 입력되는 오디오 데이터를 끊임없이 처리하기 위해 데이터의 언더플로우나 오버플로우가 발생하지 않도록 설계하였다.

그림 4.오디오 FIFO Fig. 4. Audio FIFO

3. 오디오 데이터 후처리, PWM 생성부 및 제어부

오디오 데이터 후처리 및 PWM(Pulse Width Modulation) 신호 생성부에서는 그림 5에서처럼 볼륨제어, 이퀄라이저, 디지털필터 등의 기능이 구현되었으며, 이렇게 처리된 데이터를 최종적으로 파워스테이지를 구동하기 위한 PWM 신호를 발생시켜서 펄스의 신호레벨을 증폭하는 파워스테이지에 연결되도록 하였다. PWM 신호발생을 위해서 384[kHz]의 신호로 만드는 8배 보간필터(interpolation filter)와 잡음성형필터(noise shaping filter)를 구현하였다.

그림 5.오디오 데이터 후처리부 Fig. 5. Audio data post processing part

시스템의 기능을 제어하기 위한 파라미터는 제어레지스터를 통해 설정되며, 외부에서 레지스터의 값을 읽고 쓰기 위해 I2C(Inter IC Control) 인터페이스를 사용하였다.

 

Ⅲ. FPGA 시스템의 구현

앞장에서 언급한 아키텍처를 각 구성 블록별로 HDL(High-level Description Language) 코딩을 하였고, 시뮬레이션을 통해 C언어로 구현된 상위수준 모델과의 동작 일치여부를 검증하였다. HDL 코드의 시뮬레이션은 속도와 입력데이터의 크기가 제한이 되므로 완전한 동작의 검증이 힘들뿐 아니라 실시간 테스트가 필요한 오디오 시스템의 검증으로는 부족한 결과를 얻을 수밖에 없다. 특히, 샘플누락에 따른 클릭(click) 잡음, PWM 신호 시작 시의 팝(pop) 잡음, SNR(Signal to Noise) 및 THD+N(Total Harmonic Distortion+Noise)의 성능 등과 같은 부분은 HDL 코드 시뮬레이션으로는 정확한 결과를 확인하기가 거의 불가능하므로, 본 논문에서 구현한 시스템과 같은 실시간 동작이 가능한 시스템을 이용하여 청취 테스트를 하는 것이 반드시 필요하다.

기본 개발보드에 오디오 인터페이스 보드를 구현하였으며, 인터페이스 보드에는 HDMI 인터페이스, 아날로그 입력 ADC, 그리고 스피커 구동을 위한 파워스테이지가 포함되어 있다.

그림 6은 FPGA(Field Programmable Gate Array)에 구현 된 임베디드 DSP 프로세서를 포함한 전체 블록도를 나타낸다. FPGA는 Xilinx사의 Virtex7을 사용하였다. FPGA 구현은 크게 두 가지 부분으로 이루어져 있는데, 첫 번째는 II장에서 설명한 것과 같이 HDL을 이용하여 RTL로 구현된 주변장치, 오디오 데이터 후처리 블록, PWM 생성부 및 제어부이고, 두 번째는 DSP 프로세서인 Xtensa HIFI2 모듈이다. RTL로 구현된 첫 번째 부분은 C로 레퍼런스 코드를 작성하여 모듈별로 입력과 출력 검증데이터를 이용하여 C레퍼런스 코드와 HDL 코드의 상이성을 검증하였다. 세부적으로 주변장치 블록에서는 오디오 입력을 위한 직렬 오디오 인터페이스(AI, Audio Interface), DC 입력을 막기 위한 DC 컷(cut) 필터, 주파수 튜닝을 위한 파라미터 이퀄라이저(PEQ, Parametric Equalizer), 채널믹서 및 볼륨제어, 그리고 최대 출력레벨을 제어하기 위한 DRC(Dynamic Range Control) 부분이 구현되어 있으며, 내부적으로 모든 데이터는 48kHz의 샘플레이트로 동작하도록 설계하였다. 오디오 데이터 후처리 블록에서는 샘플레이트 컨버터(SSRC, Synchronous Sample Rate Converter), 팝잡음이 없도록 뮤트(mute)를 발생시키는 블록(SM, Soft Mute), OS(Over-Sampling)/NS(Noise Shaping) 처리부, PWM 생성부를 구현하였다.

그림 6.FPGA에 구현된 전체 시스템 블록도 Fig. 6. Total system block diagram implemented in FPGA

DSP 프로세서는 FPGA 검증을 위해 합성 가능한 넷리스트(netlist)를 제공받아 이용하였다. 실시간 동작의 용이성을 위하여 샘플단위로 동작하도록 알고리즘을 구성하였고, 따라서 캐쉬는 사용하지 않았는데, Xtensa HIFI2는 오디오 알고리즘에 최적화된 구조와 명령(instruction)을 제공하고 있는 만큼 추가적인 다른 프레임 데이터 기반의 알고리즘이 포팅된다면, 캐쉬를 이용하는 것이 바람직할 수 있다. Xtensa HIFI2는 듀얼 MAC 구조를 가지고 있어서 SIMD연산에 적합하며, 데이터 메모리는 32kbyte, 코드 메모리는 16kbyte를 사용하였다. 구현한 시스템에서는 외부메모리는 사용하지 않고, 로컬 메모리만 사용하여 한 클럭당 한 번의 연산과 로컬 메모리로의 load/store 명령수행이 가능하였다. DSP 프로세서를 비롯해서 모든 연산은 24비트 정수형으로 실행되었으며, 오버플로우에 의한 연산오류 발생여부에 대해서는 C 모델에서 검증하였다.

FPGA의 넷리스트 합성결과 슬라이스 LUT(LookUp Table)는 67,509개가 사용되었으며, 슬라이스 레지스터는 27,039개가 사용되었는데, 표 1에 요약 결과를 나타내었다. 구현된 WFS 및 FS알고리즘은 80MHz 이상의 클럭에서 실시간 동작이 가능하였는데, FPGA 시스템 클럭은 PWM 신호의 발생을 위해 100MHz를 사용하였다.

표 1.Table 1. The result of used slice LUT and register

 

Ⅳ. 오디오 테스트 및 측정 결과

검증시스템은 총 3개의 보드로 구성되어 있으며 전체 블록도는 그림 7과 같다. 오디오 입력은 8채널 아날로그 입력과 HDMI 인터페이스에 의한 5.1 채널 디지털입력으로 구성되어 있고, 아날로그 입력은 ADC를 통해 I2S신호로 변환되어 FPGA에 입력된다. 그림 8은 오디오 입력 인터페이스보드와 FPGA 보드를 결합한 사진이다.

그림 7.SoC 설계 검증시스템 블록도 Fig. 7. Block diagram for SoC design verification system

그림 8.오디오 입력 인터페이스 및 FPGA 보드 Fig. 8. Audio input interface and FPGA board

검증시스템의 정량적 오디오 성능을 오디오 정밀 측정장비를 통해 측정하였다. 그림 9는 SNR 측정결과로서 X축은 dBr, Y축은 dbFS를 의미하며, 적색선은 채널 1에 대해 청색선은 채널 2에 대한 결과를 나타낸다.

그림 9.SNR 측정 결과 Fig. 9. SNR measurement result

그림 10은 THD+N에 대한 주파수와 전력을 측정한 결과로서 주파수 측정결과에서 X축은 주파수, Y축은 %를 의미하며 전력 측정결과에서 X축은 와트, Y축은 %를 의미하며 적색선은 채널 1에 대해 청색선은 채널 2에 대한 결과를 나타낸다. 특히 (a)는 1W의 앰프 출력조건에서 가청주파수대역에 대한 THD+N을 측정한 결과이며, (b)는 1kHz의 정현파 입력신호에 대해 앰프출력을 가변시키면서 THD+N을 측정한 결과를 나타낸 것이다.

그림 10.THD+N 측정 결과 (a) 주파수 (b) 전력 Fig. 10. THD+N measurement result (a) frequency (b) power

그림 11은 주파수응답을 측정한 결과로서 X축은 주파수, Y축은 dBr을 의미하며 적색선은 채널 1에 대해 청색선은 채널 2에 대한 결과를 나타낸다.

그림 11.주파수응답 측정 결과 Fig. 11. Frequency response measurement result

그림 12는 크로스톡을 측정한 결과로서 X축은 주파수, Y축은 dB를 의미하며 적색선은 채널 1에 대해 청색선은 채널 2에 대한 결과를 나타낸다.

그림 12.크로스톡 측정 결과 Fig. 12. Crosstalk measurement result

이처럼 그림 9-12는 SNR, THD+N, 주파수 응답, 크로스톡에 대한 측정결과로서 8개 채널 중 1개의 채널에 대한 측정결과이며, 다른 채널들도 거의 유사한 수준의 결과가 측정되었다.

표 2는 설계 시 달성하고자 한 정량적 오디오 평가항목 및 목표값과 본 논문에서 구현된 FPGA 시스템의 측정값을 비교한 결과로서, SNR, THD+N, 주파수 응답특성, 크로스톡의 항목에서 모두 설계 목표값을 만족하였음을 알 수 있다.

표 2.Table 2. Audio performance measurement result

실시간 청취 테스트에서는 기본적인 오디오 테스트와 더불어 WFS 알고리즘 및 FS 알고리즘에 기반한 가상 멀티채널 음향신호처리 알고리즘의 전방 음성 정위오차 및 측후방 음장감 성능평가를 실시하였다. 실시간 청취테스트는 검증시스템이 실시간으로 동작하지 않으면 불가능하므로, 본 논문에서 구현한 FPGA 시스템이 필요하였다. 이 테스트에서는 2개의 FPGA 보드를 사용하여 16개 채널로 구성된 시스템을 이용하였으며, 멀티채널 음향평가 경험이 많은 9명의 청취자를 대상으로 실험하였다. 전방 음상정위 오차평가는 그림 13에 나타낸 것과 같이 각 음원 위치별로 지각 음원위치(스피커 유닛번호)를 측정하고, 청취자 위치로부터 기준 대비 오차각도를 산출하는 방법을 사용하였는데, 각 스피커 별로 정면의 정중앙을 기준으로 오른쪽을 +, 왼쪽을 –로 하여 각 스피커의 각도(A, B)를 계산하고, WFS로 재현한 목표 음원위치와 청취자가 지각한 음원위치, 즉 스피커 위치의 차이(θ)를 오차각도로 정하였다. 그 결과 WFS 재현방식 평균 지각오차는 ±1.38도로 목표했던 ±5도 이내 범위를 만족하였다. 측후방 음장감 청취평가는 레퍼런스 5.1채널 시스템 대비 16채널 사운드바 시스템을 이용할 경우 측후방 음장감 평가를 하였으며, DMOS(Degradation Mean Opinion Score) 평가방법을 사용하였다[8]. 후방 채널신호로 레퍼런스 시스템을 사용할 경우를 MOS[8] 5점으로 하고 사운드바를 사용할 경우의 음장감을 비교 평가하였다. 이 평가는 일반적인 음질의 좋고 나쁨이 아니라, 후방 채널음원이 실재 존재하는 경우와 대비해서 전면에 스피커 어레이가 위치하는 사운드바 시스템에서 얼마만큼의 측후방의 음장감을 만들어 내는가를 평가하도록 하였다. 즉, DMOS 5점이 측후방에 음원이 존재하는 느낌을 완벽하게 주는 경우이고, 0점은 측후방의 음원이 존재하지 않다고 느껴지는 경우이다. 이러한 평가는 정량적 기준을 설정하기가 매우 힘들기 때문에 이와 같은 방법을 사용하였다. 먼저 사용자들에게 레퍼런스 5.1채널에 대해 청취를 하고, 이때의 측후방 음장감을 5점으로 할 때 FPGA로 구현된 16 채널 사운드바 시스템의 측후방 음장감을 상대적으로 평가하도록 하였다. 청취평가 음원으로는 음상이동이 있는 동적 콘텐츠와 음상이동이 없는 정적 콘텐츠를 사용하였으며, 청취 평가결과 동적 콘텐츠는 MOS 평균값이 3.67, 정적콘텐츠는 MOS 평균값이 3.83으로 전체 평균은 3.75로 목표값인 3.5를 만족하였다.

그림 13.음원의 지각 음상 정위 위치 측정 Fig. 13. Perception sound image location measurement of sound source

 

Ⅴ. 결 론

오디오 시스템의 SoC 설계는 시뮬레이션으로 확인이 되지 않거나 되기 힘든 검증요소들이 있으므로 이러한 요소들의 실시간 검증방법이 필요하다. 본 논문에서는 최근 사용이 늘어나고 있는 멀티채널 사운드바용 SoC 설계검증을 위해 FPGA 검증시스템을 구현하였다. 가상 멀티채널 음향신호처리를 위한 내장 DSP 프로사운드바, 세서, 오디오 데이터 입력부, 오디오 FIFO, 그리고 디지털 앰프기능을 위한 오디오 데이터 후처리 및 PWM 생성부를 FPGA에 구현하였다. 이 FPGA을 포함하여, 오디오 입력을 위한 8채널 ADC 및 HDMI 디코더, 그리고 8채널 파워스테이지로 구성된 검증시스템을 통해 전체 SoC 설계를 검증하였다. 검증결과 SNR, THD+N, 주파수 응답, 크로스톡 등의 정량적 테스트와 청취 테스트를 통해 검증하고자 하는 SoC 설계가 목표한 대로 동작함을 확인하였다. 해당 시스템을 이용하여 WFS 가상음원 알고리즘의 동작 및 청취실험을 하였으며, 그 결과 FPGA 기반 시스템을 통해 구현하고자 하는 오디오 SoC 설계의 효과적인 실시간 검증이 유용함을 확인하였다.

References

  1. V. Pulkki, "Spatial sound generation and perception by amplitude panning techniques," Ph.D. thesis, Helsinki university of technology, Laboratory of acoustics and audio signal processing, 2001.
  2. J. Blauert, 「Spatial hearing : The Psychophysics of human sound localization 」, 2nd edition, MIT press, 1997.
  3. A.J. Berkhout and D de Vries, "Acoustic holography for sound control," in 86th AES Convention, Hamburg, March, 1989.
  4. D. Vries and M. Boone, "Wave field synthesis and analysis using array technology," Proc. 1999 IEEE workshop application signal processing audio acoustics, pp.14-18, 1999.
  5. E. Corteel and M. Rosenthal, "Compact loudspeaker array for enhanced stereophonic sound production," Proc. of the 2nd International Symposium on Ambisonics and Spherical Acoustics. May 2010.
  6. J. Seo et al., "Soundbar system with embedded multichannel digital amplifier SoC," Proceedings AES 138th Convention, Warsaw, Poland, 2015.
  7. http://ip.cadence.com/ipportfolio/tensilica-ip
  8. ITU-T Recommendation P.800 Methods for subjective determination of transmission quality