Szűrő architektúrák FPGA realizációjának vizsgálata



Hasonló dokumentumok
FPGA áramkörök alkalmazásainak vizsgálata

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Akusztikus MEMS szenzor vizsgálata. Sós Bence JB2BP7

Xilinx Vivado HLS gyakorlat (2018.) C implementáció és testbench

egy szisztolikus példa

2. Elméleti összefoglaló

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Rendszertervezés FPGA eszközökkel

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Mintavétel: szorzás az idő tartományban

Előadó: Nagy István (A65)

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Véges állapotú gépek (FSM) tervezése

Logikai tervezés gyakorlatok (2018.)

1. Kombinációs hálózatok mérési gyakorlatai

10.1. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

Digitális jelfeldolgozás

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

Számítógépek felépítése, alapfogalmak

Digitális jelfeldolgozás

Digitális technika VIMIAA hét

Digitális jelfeldolgozás

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Véges állapotú gépek (FSM) tervezése

Számítógép felépítése

Logikai tervezés gyakorlatok (2017.)

Digitális technika VIMIAA hét

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Összeadás BCD számokkal

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Akusztikus MEMS szenzor vizsgálata. Sós Bence

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Wavelet transzformáció

Digitális elektronika gyakorlat

Aritmetikai utasítások I.

Hálózati egyenirányítók, feszültségsokszorozók Egyenirányító kapcsolások

A/D és D/A átalakítók gyakorlat

Analóg elektronika - laboratóriumi gyakorlatok

Bevezetés az informatikába

Digitális rendszerek. Mikroarchitektúra szintje

elektronikus adattárolást memóriacím

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

A TMS320C50 és TMS320C24x assembly programozására példák

Szekvenciális hálózatok és automaták

Fehérzajhoz a konstans érték kell - megoldás a digitális szűrő Összegezési súlyok sin x/x szerint (ez akár analóg is lehet!!!)

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

Shift regiszter + XOR kapu: 2 n állapot

Digitális szűrő méréshez (DF)

Mérési struktúrák

A mintavételezéses mérések alapjai

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

Számítógépek felépítése

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Informatika Rendszerek Alapjai

Digitális rendszerek tervezése FPGA áramkörökkel

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata

Mikrorendszerek tervezése

Magas szintű optimalizálás

Adatok ábrázolása, adattípusok

Számítógép architektúra

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Digitális szűrők - (BMEVIMIM278) Házi Feladat

következő: 2.)N=18 bites 2-es komplemens fixpontos rendszer p=3 Vmin+ =delta r=2^(-p)=2^(-3)=

Bevezetés az informatikába

7.hét: A sorrendi hálózatok elemei II.

Digitális technika VIMIAA01

Elektronika Előadás. Modulátorok, demodulátorok, lock-in erősítők

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Mintavételezés és AD átalakítók

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Digitális elektronika gyakorlat. A VHDL leírástípusok

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Elektronika Előadás. Analóg és kapcsolt kapacitású szűrők

4-1. ábra. A tipikus jelformáló áramkörök (4-17. ábra):

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

DIGITÁLIS KOMMUNIKÁCIÓ Oktató áramkörök

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Integrált áramkörök/4 Digitális áramkörök/3 CMOS megvalósítások Rencz Márta

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Gyakorló többnyire régebbi zh feladatok. Intelligens orvosi műszerek október 2.

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI FŐISKOLAI KAR. Mikroelektronikai és Technológiai Intézet. Aktív Szűrők. Analóg és Hírközlési Áramkörök

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

10. Digitális tároló áramkörök

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

Átírás:

Szűrő architektúrák FPGA realizációjának vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Szántó Péter, 2013. Bevezetés Az FPGA-ban megvalósítandó jelfeldolgozási feladatok közül a legfontosabb a véges impulzusválaszú (FIR) szűrők implementációja. Az erőforrásigény, feldolgozási teljesítmény és fogyasztás szempontjából is fontos, hogy adott feladathoz és FPGA architektúrához a megfelelő hardver struktúrát válasszuk. A kutatómunka ennek tükrében tekinti át a különböző megvalósítási lehetőségeket, s segíti a megfelelő struktúra kiválasztását. Konvolúció Az egy dimenziós FIR szűrés a szűrő impulzusválaszának és a bemeneti mintasorozat utolsó N elemének konvolúcióját jelenti: Realizáció szempontjából igen lényeges paraméterek: a bemeneti minták mintavételi frekvenciája a szűrő fokszáma (N) a bemeneti minták (x k ) felbontása a szűrő együtthatókészletének (c k ) felbontása A fenti képletből láthatóan az elvégezendő alapművelet a MAC (multiply-and-accumulate) művelet, vizsgáljuk meg ennek megvalósítási lehetőségeit. Elosztott aritmetika Bár a mai korszerű FPGA-k esetében melyekben nagyszámú dedikált szorzó áramkör található - jelentősége nem túl nagy, a teljesség kedvéért megemlítendő az elosztott aritmetika (DA distributed arithmetic) alkalmazása, melynek esetén a szorzás művelet végrehajtása alapvetően bitsorosan történik, így fizikailag csak egy egy bites szorzó valamint egy akkumulátor realizációját igényli. Bontsuk fel az i-edik bemeneti mintát (feltételezve, hogy B bites, egynél kisebb abszolút értékű kettes komplemens számok): Majd helyettesítsük be ezt a konvolúció képletébe:

Mivel az x kb értékek binárisak, így a kifejezésnek 2 N különböző értéke lehet (mindegyik a C együtthatókészlet elemeinek lineáris kombinációja). Ennek megfelelően a teljes konvolúciót megvalósító hardver struktúra az alábbi: <<1 accu y[n] x[n] (soros) SHR SHR SHR SHR N-1 B bites shift regiszter A megvalósítás előnye, hogy nem igényel dedikált szorzó áramkört, hátránya, hogy a szükséges méret a szűrő fokszámának növekedésével exponenciálisan nő. A számítási teljesítmény ugyanakkor nem függ a szűrő fokszámától, csak a bemeneti minták felbontásától. A bemeneti adat particionálásával és a struktúra többszörözésével a teljesítmény növelhető. Dedikált aritmetikai elemek A jelentősebb gyártók FPGA-i (Altera, Xilinx) igen régóta tartalmaznak a jelfeldolgozási műveletek végrehajtásához dedikált szorzó, illetve jelfeldolgozó egységeket. A régebbi, illetve olcsóbb termékekben (pl. Xilinx Spartan-3, Altera Cyclone IV) tipikusan 18x18 bites előjeles szorzó áramköröket találunk, míg az újabb családok esetén komplett MAC egységek kaptak helyet a szilíciumon. Az alábbi táblázat néhány FPGA család esetére összegzi a legfontosabb paramétereket. Xilinx Altera Spartan-3 18x18 bites előjeles szorzó 18x18 bites előjeles szorzó Spartan-6 18 bites elő-összeadó 48 bites akkumulátor 25x18 bites előjeles szorzó Virtex-6 48 bites akkumulátor logikai műveletek 18x18 bites előjeles szorzó Cyclone IV használható két 9x9 bites szorzóként 18x18 bites szorzó, 18 bites elő-összeadó, 44 bites akkumulátor Cyclone V 27x27 bites szorzó, 26 bites elő-összeadó, 64 bites akkumulátor kisméretű belső együttható tár (8x18 vagy 8x27 bit) Startix V megegyezik a Cyclone V-tel Amennyiben a fenti táblázatban szereplő felbontás megfelelő az adott alkalmazáshoz, úgy egy MAC művelet egyetlen DSP blokk felhasználásával megvalósítható, a működési frekvencia pedig tipikusan 300-500 MHz körül alakul. Amennyiben az alkalmazás a fentieknél finomabb felbontást igényel, úgy a blokkok kaszkádosításával ez megoldható. Az alábbi blokkvázlat a

Spartan-6 négy darab DSP48A1 blokkjával megvalósított 35x35 bites szorzó kialakítását mutatja. a[34:17] Z -3 X + p[69:34] b[34:17] Z -3 DSP48A1 a[34:17] Z -2 >>17 X + p[33:17] {0, b[16:0}] Z -2 DSP48A1 {0, a[16:0}] X + b[34:17] DSP48A1 {0, a[16:0}] >>17 X + Z -3 p[16:0] {0, b[16:0}] DSP48A1 Szűrő struktúrák A szűrő működési frekvenciája (f clk ), a bemeneti mintavételi frekvencia (f s ) és a szűrő fokszáma alapján (N) a kialakított struktúrát három nagy csoportba sorolhatjuk: szekvenciális, párhuzamos és részben párhuzamos. Szekvenciális FIR struktúra Amennyiben teljesül, hogy, akkor a szekvenciális struktúra megfelelő számítási kapacitással rendelkezik. Ebben az esetben egyetlen MAC egység felel a kimeneti minta kiszámításáért, a számítás azaz egyetlen kimeneti minta előállítása pedig N órajelet vesz igénybe.

X + y MAC x Sample RAM Mivel egy órajelben csak egy-egy együtthatóra és bemeneti mintára van szükség, az FPGAkban található beágyazott memória blokkok kedvező lehetőséget kínálnak mind az együttható, mind pedig a minta késleltetővonal kialakítására (utóbbit cirkuláris bufferként használva). Tipikusan ezen belső memóriák dual-port kialakításúak, így az együttható készlet dinamikus változtatása is egyszerűen megoldható. Amennyiben a szűrő fokszáma kicsi (és így az általában 1-2 kb-os memóriák kihasználtsága alacsony), az Altera Stratix, illetve a Xilinx FPGA-k esetében alternatívát jelent az ún. elosztott memória használata, amely az FPGA általános erőforrását (LUT) konfigurálja memóriaként. Xilinx FPGA-k esetében a LUT-okból létrehozott, dinamikusan címezhető shift regiszterek is kedvező alternatívát kínálnak a kisméretű tárolóelemek kialakítására. Teljesen párhuzamos struktúra Amennyiben a mintavételi frekvencia megegyezik a működési frekvenciával (tipikusan ez a helyzet például videó feldolgozásnál), úgy csak a párhuzamos struktúra jelent megoldást. Ebben az esetben a szükséges MAC egységek száma megegyezik a szűrő fokszámával. A konvolúció képletének direkt leképezéséből származtatott ún. direct-form architektúrát az alábbi ábra mutatja. x C 0 X C 1 X C 2 X C 3 X C 4 X + + + + y

A rész-szorzatok összegzése ebben az esetben összeadó-fával történik. A fentiekben bemutatott DSP blokkok felépítéséhez ez a struktúra kevésbé illeszkedik: ugyan az első szintű összeadásokra felhasználható a DSP blokkokban található összeadó/akkumulátor, a további szintek megvalósítása viszont általános logikával történik (miközben a DSP blokkok felében kihasználatlan az összeadó). Ezen architektúra választását éppen ezért legfeljebb az indokolja, hogy késleltetése viszonylag kicsi. Ezzel ellentétben az ún. systolic FIR struktúra köszönhetően az elosztott összeadó fának teljes egészében kihasználja a DSP blokkok adottságait, s ez tekinthető az ideális választásnak. C 2 X + y C 1 X + C 0 X + x Fenti struktúra tökéletesen illeszkedik mind az Altera, mind pedig a Xilinx FPGA-kban található DSP blokkokhoz, ezen blokkok mellett semmiféle kiegészítő logika használatát nem igényli. A DSP blokkok közötti dedikált kaszkádosító huzalozás pedig a jelterjedési időket is minimalizálja, így igen magas működési frekvencia érhető el. Részben párhuzamos struktúra Részlegesen párhuzamosított struktúra használata szükséges amennyiben a szekvenciális megoldás teljesítménye nem elegendő, ugyanakkor a teljesítmény igény nem indokolja a teljesen párhuzamos struktúra kialakítását, azaz amikor. Ebben az esetben több MAC blokk kerül felhasználásra, s az egyes blokkok a rész-szorzatok egy-egy részhalmazát számítják. Tételezzük fel az alábbi paramétereket: f clk =400 MHz működési frekvencia f s =6 MHz mintavételi frekvencia 128-ad fokú szűrő Mivel, így olyan struktúrára van szükség, amely órajelenként képes két MAC művelet kiszámítására. Az alábbi ábrán látható DSP blokkok közül az alsó kettő végez ténylegesen rész-szorzat számítást, a harmadik blokk akkumulátorként funkcionál. Az együtthatókat és mintákat tároló bufferek szét vannak osztva a két MAC egység között, mindkét egység 64-64 művelet végrehajtásáért felelős.

0 X + 0 Buffer 1. X + Sample Buffer 1. Buffer 0. X + x Sample Buffer 0. A mintatár (Sample Buffer) kialakítása történhet dual-port memóriával vagy Xilinx FPGA-k esetében dinamikusan címezhető shift regiszterekkel. Előbbi esetben minden számítási ciklus végén az utolsóként feldolgozott minta átkerül az első mintatárból a másodikba, megvalósítva egy fizikailag ketté bontott cirkuláris buffert. Decimáló- és interpoláló szűrők A decimálás művelete aluláteresztő szűrésből és mintaeldobásból áll: k-ad fokú decimálás esetén a bemeneti jelből kiszűrésre kerülnek a kimeneti mintavételi frekvencia felénél nagyobb frekvenciájú komponensek, majd minden k minta közül (k-1)-t eldobunk. A számítási igény k-ad részére csökkenthető, ha az eldobott mintákat ki sem számítjuk. Ekkor azt is kijelenthetjük, hogy a szűrés számítási igénye független a decimálás fokszámától. A decimálás során használt szűrőkről ugyanis elmondható, hogy a decimálási faktor duplázásakor az ehhez szükséges szűrő fokszáma is a kétszeresére nő. Összességében tehát egyetlen kimeneti minta előállításához kétszeres számú MAC műveletre van szükség, egy kimeneti minta számítására viszont kétszer annyi órajel áll rendelkezésre. Tekintsünk egy N=12 pontos szűrőt, valamint másodfokú decimálást. Ez esetben az érvényes kimenetet generáló konvolúciók (c az együtthatókat, x a bemeneti mintákat jelöli): c 0 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 c 11 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 Decimálás esetén a legnagyobb számítási teljesítményű struktúra (órajelenként egy új bemeneti minta feldolgozása) egy-egy MAC egysége sem csak egy együtthatóval képzett részszorzatot számít, hanem a decimálás fokának megfelelő számút, tehát jelen esetben kettőt. Fenti táblázatban az azonosan színezett együtthatókat ugyanaz a MAC egység használja fel az első számítási fázis első órajelében az első MAC egység az részszorzatot, a második órajelben pedig a részszorzatot számítja. Ebben a MAC egységben a további kimeneti értékek számítása során sem x 0 sem pedig x 1 nem kerül felhasználásra, így ezek továbbadhatók a következő MAC egységnek, tehát a kiadódó struktúra előremutató

adatfolyam jellegű. A MAC egységek számára a bemeneti mintákat a decimálási faktortól függő hosszúságú késleltetővonalak (shiftregiszterek) szolgáltatják. 0 X + y 0 További MAC egységek X + Z -3 X + Z -3 X + Nem ilyen kedvező a helyzet abban az esetben, ha a MAC egységenként feldolgozott együtthatók száma nem egyezik meg a decimálás fokával például ha a fenti esetben egy MAC egység 4 együtthatóval képzett részeredményeket számít. Többé-kevésbé megtartva a fenti struktúrát a MAC egység együttható összerendelés az alábbiak szerint módosítható: c 0 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 c 11 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 Tehát az első kimeneti érték számításakor a három MAC egység ugyanazokat a részszorzatokat számítja, mint az előző esetben a 6 MAC egység közül az első három. Az ezt követő két órejelben ugyanez a három MAC egység számítja ki azokat a részszorzatokat, ami az előző esetben a második három MAC egység feladata volt. Ahhoz, hogy a megfelelő bemenetek rendelkezésre álljanak, a bemeneti shiftregiszter-lánc második felét is a három MAC egység bemenetére kell kötni, tehát minden MAC egység két shiftregiszterből képes bemenetet venni. Interpoláció esetén is lehetőség van a műveletvégzés racionalizálására. Mivel I-ed fokú interpoláció esetén minden bemeneti minta közé (I-1) darab 0 értékű mintát illesztünk, így az ezekkel képzett részszorzat 0, tehát a számítás elhagyható. Az alábbi táblázat másodfokú interpoláció esetét mutatja, az azonosan színezett részszorzatok számítása történik 1-1 MAC egységben. Tehát például a második kimenet előállításához az első MAC egység a részszorzatot számítja, míg a harmadik kimenet előállításához a értéket, és így tovább. Általánosan tehát I-ed fokú interpoláció esetén minden MAC I darab együtthatóval végzett számításokért felelős, s I egymást követő órajelben ezeket ugyanazzal a bemeneti mintával szorozza össze.

c 0 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 c 11 x 0 0 x 1 0 x 2 0 x 3 0 x 4 0 x 5 0 0 x 1 0 x 2 0 x 3 0 x 4 0 x 5 0 x 6 x 1 0 x 2 0 x 3 0 x 4 0 x 5 0 x 6 0 Új bemeneti minta beolvasása ezért minden I-edik órajelben történik, ezt leszámítva a struktúra megfelel a teljesen párhuzamos MAC alapú FIR struktúrának. Összegzés A fentiekből láthatóan a korszerű FPGA-k felépítése architektúrálisan igen kedvező a MAC művelet alapú jelfeldolgozási feladatok megvalósításához. A nagyobb eszközökben, melyek akár 500-1000 DSP blokkot tartalmaznak, extrém sebességű és/vagy fokszámű szűrők is megvalósíthatók, míg a kisebb eszközök igen kedvező ár/teljesítmény és ár/fogyasztás mutatókkal rendelkeznek.