FPGA w systemach DSP – przykład aplikacji zestawu Eclypse Z7
O tym, że w pełni cyfrowe układy FPGA doskonale nadają się do obróbki sygnałów analogowych wie praktycznie każdy elektronik, niekoniecznie używający tych układów swoich projektach. Żeby nieco przybliżyć technologię DSP bazującą na FPGA szerszemu gronu użytkowników, pokażemy przykład implementacji dolnoprzepustowego filtra FIR w zestawie Digilent Eclypse Z7.
Użycie układów FPGA w aplikacjach DSP jest ze wszech miar uzasadnione, bowiem ich budowa i architektura pozwalają na wykonywanie złożonych obliczeniowo zadań równolegle, a nie sekwencyjnie, jak się to odbywa w typowych architekturach procesorów lub koprocesorów DSP. Dzięki temu możliwe jest relatywnie łatwe uzyskanie dużych prędkości przetwarzania sygnałów, często nieosiągalne dla rozwiązań klasycznych, jak choćby ma to miejsce w przypadku aplikacji SDR (Software Defined Radio).
Zestaw Digilent Eclypse Z7 w skrócie:
- Wbudowany układ SoC z rodziny Zynq-7000 (XC7Z020-1CLG484C) z dwurdzeniowym procesorem Cortex-A9 667 MHz,
- Interfejsy o dużej przepustowości: 1Gb Ethernet, USB 2.0, SDIO,
- Interfejsy o niskiej przepustowości: SPI, UART, CAN, I2C,
- Zintegrowana matryca o architekturze Artix-7 (85000 komórek logicznych),
- Pamięć RAM 1 GB DDR3L z 32-bitową magistralą,
- Pamięć Flash 16 MB Quad-SPI Flash,
- Dwa złącza Zmod (SYZYGY),
- Dwa złącza Pmod,
- 2 przyciski,
- 2 diody LED RGB.
FPGA w cyfrowym przetwarzaniu danych
Układy FPGA z natury rzeczy służą do implementacji systemów cyfrowych. Im więcej zasobów oferują użytkownikom tym prostsze jest implementowanie w nich projektów. W układzie XC7Z020 zastosowanym w zestawie Digilent Eclypse Z7 użytkownik ma do dyspozycji 85000 konfigurowalnych komórek logicznych, w których znajduje się 106400 przerzutników oraz 53200 tablice LUT. Architektura części FPGA tego układu jest kopią używanej w popularnej rodzinie FPGA o nazwie Artix-7, skąd pochodzi także zintegrowana w układzie konfigurowalna pamięć RAM o pojemności 4,9 Mb.
Integralną częścią matrycy FPGA układu XC7Z020 są sprzętowe bloki DSP, których w układzie XC7Z020 jest 220. Każdy z nich składa się ze sprzętowego mulitiplikatora 25×18 bitów zintegrowanego z 48-bitowym akumulatorem na wyjściu oraz konfigurowalną logiką dodatkową, którą można wykorzystać także w projektach nie związanych bezpośrednio z DSP. Schemat blokowy pojedynczego bloku DSP pokazano na rysunku 1.
Rys. 1. Schemat blokowy pojedynczego bloku DSP w FPGA o architekturze Artix-7
W odróżnieniu od klasycznych układów FPGA, w których można implementować m.in. różnego rodzaju rdzenie MPU/MCU, układy Zynq zastosowane w zestawie Digilent Eclypse Z7 dodatkowo wyposażono w zintegrowaną domenę MPU, w której zastosowano 2-rdzeniowy mikroprocesor (2 x Cortex-A9MP) z koprocesorem FPU i peryferiami i układami komunikacyjnymi charakterystycznymi dla systemów mikroprocesorowych.
Przykładowy system DSP
Systemy obróbki sygnałów implementowane w matrycach FPGA są z natury rzeczy przystosowane do działania z sygnałami dyskretnymi. Rolę interfejsu z analogowym otoczeniem zapewniają zestawowi Digilent Eclypse Z7 specjalne moduły przetworników A/C (ADC) i C/A (DAC), które wchodzą w skład nowej rodziny Digilent Zmod i są wyposażone w złącze nowego standardu SYZYGY. Wygląd dwukanałowego przetwornika A/C Zmod ADC 1410 pokazano na fotografii 2, a dwukanałowego przetwornika C/A Zmod DAC 1411 – na fotografii 3. Na fotografii 4 widać zestaw Digilent Eclypse Z7 z zamontowanymi przetwornikami A/C i C/A. Natomiast na fotografii 5 przedstawiono wygląd całego systemu zamkniętego w dedykowanej obudowie.
Fot. 2. Wygląd dwukanałowego przetwornika A/C Zmod ADC 1410 ze złączem SYZYGY
Fot. 3. Wygląd dwukanałowego przetwornika C/A Zmod DAC 1411 ze złączem SYZYGY
Fot. 4. Wygląd zestawu Digilent Eclypse Z7 z zamontowanymi przetwornikami A/C i C/A w złączach SYZYGY
Fot. 5. Zestaw Digilent Eclypse Z7 z przetwornikami Zmod ADC 1410 i Zmod DAC 1411 zamontowane w dedykowanej obudowie
Podstawowe dane przetwornika Zmod ADC 1410
- Rozdzielczość: 14 bitów,
- Częstotliwość próbkowania: 105 MHz,
- Pasmo analogowe: 0-70 MHz,
- Dwa wejściowe kanały napięciowe,
- Wejścia asymetryczne (z uziemieniem),
- Zintegrowany przetwornik Analog Devices AD9648,
- Interfejs SYZYGY.
Podstawowe dane przetwornika Zmod DAC 1411
- Rozdzielczość: 14 bitów,
- Częstotliwość próbkowania: 100 MHz,
- Pasmo analogowe: 0-40 MHz,
- Dwa asymetryczne napięciowe kanały wyjściowe ±5 V, 50 W,
- Interfejs SYZYGY.
Przykładowa implementacja algorytmu filtracji FIR
Firma Digilent przygotowała opis aplikacji demonstracyjnej DSP (pod adresem https://reference.digilentinc.com/reference/programmable-logic/eclypse-z7/low_level_zmod_adc_dac), która ilustruje wykorzystanie przetworników ADC i DAC z zestawem Eclypse Z7 – jest to cyfrowy, konfigurowalny, dolnopasmowy filtr FIR (Finite Impulse Response Filter) implementowany w FPGA. Schemat blokowy rekomendowanej przez producenta konfiguracji testowej pokazano na rysunku 6.
Rys. 6. Schemat blokowy rekomendowanej przez producenta konfiguracji testowej
Jak widać, w torze pomiarowym wykorzystano zintegrowany przyrząd pomiarowy Analog Discovery 2, który za pomocą wbudowanego generatora arbitralnego generuje sygnał wejściowy (żółty z prawej strony rysunku 7) i bada odpowiedź filtra: amplitudową i fazową (niebieskie przebiegi z lewej strony rysunku 7). Filtr FIR został zaimplementowany w FPGA za pomocą konfiguratora IP Xilinx FIR Compiler 7.2, zintegrowanego w środowisku Vivado Design Suite. Na fotografii 8 pokazano zestaw sprzętowy podczas testów.
Rys. 7. Ekran programu Digilent WaveForm z przebiegami zarejestrowanymi przez Analog Discovery 2
Fot. 8. Zestaw sprzętowy skonfigurowany do pomiarów
Wyłącznym, autoryzowanym dystrybutorem edukacyjnym zestawów firmy Digilent w Polsce jest firma Kamami.pl.