Użycie układów FPGA w aplikacjach DSP jest ze wszechmiar 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).
- wbudowany układ SoC z rodziny Zynq-7000 (XC7Z020-1CLG484C) z dwurdzeniowym procesorem Cortex-A9 667 MHz,
- interfejsy o dużej przepustowości: 1G 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.
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.
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×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 (próbkowanymi w domenie czasu). 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.
- 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.
Wygląd dwukanałowego przetwornika A/C Zmod ADC 1410 pokazano na fotografii 1, a dwukanałowego przetwornika C/A Zmod DAC 1411 – na fotografii 2.
- 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.
Na fotografii 3 widać zestaw Digilent Eclypse Z7 z zamontowanymi przetwornikami A/C i C/A, a na fotografii 4 pokazano wygląd całego systemu zamkniętego w dedykowanej obudowie.
Przykładowa implementacja algorytmu filtracji FIR
Firma Digilent przygotowała opis aplikacji demonstracyjnej DSP (pod adresem https://bit.ly/2N15zx5), 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 2.
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 3) i bada odpowiedź filtra: amplitudową i fazową (niebieskie przebiegi z lewej strony rysunku 3).
Filtr FIR został zaimplementowany w FPGA za pomocą konfiguratora rdzeni IP Xilinx FIR Compiler 7.2, zintegrowanego w środowisku narzędziowym Vivado Design Suite. Na fotografii 5 pokazano zestaw sprzętowy podczas testów.