dizajn i fpga implementacija nerekurzivnog poboljšanog cic

44
SVEU ˇ CILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ˇ CUNARSTVA DIPLOMSKI RAD br. 1796 Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC filtra bez množila Marija Kneževi´ c Zagreb, srpanj 2019.

Upload: others

Post on 06-Nov-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

SVEUCILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RACUNARSTVA

DIPLOMSKI RAD br. 1796

Dizajn i FPGA implementacijanerekurzivnog poboljšanog CIC

filtra bez množilaMarija Kneževic

Zagreb, srpanj 2019.

Page 2: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Umjesto ove stranice umetnite izvornik Vašeg rada.

Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.

Page 3: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Želim se zahvaliti svojem mentoru prof. dr. sc. Davoru Petrinovicu što je dozvolio

izradu diplomskog rada u suradnji sa Ericsson Nikola Tesla d.d.

Veliku zahvalnost dugujem ekipi iz Ericsson Nikola Tesla d.d.; doc. dr. sc. Goranu

Molnaru, dr. sc. Aljoši Dudarinu, dr. sc. Marku Butorcu te mag. ing. Hrvoju Bu-

tini na svim savjetima i nesebicnoj pomoci pri dizajnu filtra te za razjašnjavanje svih

nejasnoca i nedoumica oko digitalnog dizajna. Veliko hvala na Vašem strpljenju te

izdvojenom vremenu za sve moje upite.

Posebnu zahvalnost iskazujem svojim prijateljima te kolegama s fakulteta;

hvala na svim lijepim uspomenama iz kojih se stvorilo prijateljstvo za cijeli život.

Ucinili ste studiranje na FER-u lakšim (citaj: podnošljivijim) i zabavnijim.

Naposljetku, najvecu zaslugu za sve do sad postignuto pripisujem svojoj obitelji;

neizmjerno hvala za vašu neprestanu podršku i pomoc.

iii

Page 4: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

SADRŽAJ

1. Uvod 1

2. CIC filtar 22.1. Prijenosna funkcija CIC filtra . . . . . . . . . . . . . . . . . . . . . . 2

2.2. Struktura CIC filtra . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3. Frekvencijska karakteristika CIC filtra . . . . . . . . . . . . . . . . . 5

3. Dizajn modificiranog CIC filtra 83.1. Prijenosna funkcija modificiranog CIC filtra . . . . . . . . . . . . . . 8

3.2. Amplitudna karakteristika modificiranog CIC

filtra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4. Struktura modificiranog CIC filtra bez množila 154.1. Realizacija množenja s konstantnim cjelobrojnim brojem izvedena ko-

rištenjem direktnih aciklickih grafova . . . . . . . . . . . . . . . . . 15

4.2. Topologije direktnih aciklickih grafova . . . . . . . . . . . . . . . . . 17

5. Realizacija koeficijenata modificiranog CIC filtra korištenjem direktnihaciklickih grafova 205.1. Koeficijenti modificiranog CIC filtra realizirani korištenjem direktnih

aciklickih grafova . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6. Fizicki ostvariv model modificiranog CIC filtra bez množila 226.1. Strukturni model modificiranog CIC filtra . . . . . . . . . . . . . . . 22

6.2. Fizicki ostvariv model modificiranog CIC filtra . . . . . . . . . . . . 23

6.3. Množila s konstantom . . . . . . . . . . . . . . . . . . . . . . . . . . 24

7. Implementacija modificiranog CIC filtra bez množila na razvojni sustavZedBoard 28

iv

Page 5: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

7.1. Xillybus sucelje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

8. Verifikacija fizicki ostvarivog modela modificiranog CIC filtra bez množila 32

9. Zakljucak 35

Literatura 36

v

Page 6: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

1. Uvod

CIC (engl. Cascaded Integrator Comb) filtri su jednostavni uskopojasni filtri s konac-

nim impulsnim odzivom (engl. Finite Impulse Response, FIR). Njihova je struktura

rezkurzivna i ne sadrži množila. Nedostaci CIC filtara su niska selektivnost te du-

gacke širine rijeci u cvorovima strukture. Ovi nedostaci mogu se otkloniti korištenjem

poboljšanih CIC filtara te nerekurzivnih struktura. U ovome radu, opisan je dizajn i

optimalna implementacija modificiranog CIC filtra s nerekurzivnom strukturom bez

upotrebe množila.

Izvorni CIC filtar ima prijenosnu funkciju cija je forma rekurzivna te za filtar reda

N rezultira N -strukim nulama na jedinicnoj kružnici. Stoga se modifikacija izvor-

nog CIC filtra temelji na razdvajanju višestrukih nula izvornog CIC filtra i njihovom

ravnomjernijem rasporedu duž jedinicne kružnice. Slijedi da modificirana prijenosna

funkcija ima nerekurzivnu formu i takoder rezultira konacnim impulsnim odzivom.

Modificirani CIC filtar pokazuje vecu atenuaciju u podrucju gušenja te uže prijelazno

podrucje što ga cini selektivnijim u odnosu na izvorni CIC filtar.

Koeficijenti dobivenog impulsnog odziva su predznacni cijeli brojevi i mogu se za-

pisati kao suma potencija broja dva. Zatim se, za svaki koeficijent, iz sume pronalazi

optimalna realizacija odnosno ona koja sadrži najmanji broj zbrajala. Optimalna reali-

zacija za svaki pojedini koeficijent pronalazi se primjenom iscrpnog pretraživanja nad

skupom usmjerenih aciklickih grafova (engl. Directed Acyclic Graphs, DAGs).

Nakon što su pronadene optimalne realizacije svakog koeficijenta, razvijen je fizicki

ostvariv model filtra koji ima direktnu realizaciju. Model je razvijen u jeziku VHDL te

optimiziran za implementaciju na programabilnim logickim poljima (FPGA) korište-

njem razvojnih alata ModelSim i Vivado Design Suite. Implementacija modificiranog

CIC filtra izvedena je na platformi Zynq na razvojnom sustavu ZedBoard.

1

Page 7: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

2. CIC filtar

Obradba signala na visokim frekvencijama zahtijeva brza množila te nerijetko višes-

truke i duge iteracije. Za sustave za digitalnu obradbu signala (engl. Digital Signal

Processing, DSP) takva obradba je neucinkovita, jer troši vecinu procesne moci sklo-

povlja [1]. Zbog toga je prije obradbe signala potrebno smanjiti frekvenciju uzorko-

vanja odnosno primjeniti postupak decimacije. Tada govorimo o višetaktnoj obradbi

signala (engl. multi-rate signal processing). Prije nešto više od tri desetljeca, Eugene

B. Hogenauer predstavio je ucinkovito rješenje decimacije signala. Bez množila, prik-

ladno za hardware implementaciju — CIC filtre [2].

CIC filtri su racunski ucinkovita implementacija uskopojasnih niskopropusnih digi-

talnih filtara. Zbog svoje strukture postali su neizostavna komponenta današnjih ko-

munikacijskih sustava.

2.1. Prijenosna funkcija CIC filtra

Neka je zadan filtar s konacnim impulsnim odzivom (FIR) jednakim

h[n] =1

R

δ[n] + δ[n− 1] + ...+ δ[n−R + 1]

(2.1)

Ovaj filtar usrednjava R uzoraka signala. Prijenosna funkcija filtra dana je izrazom

H(z) = Zh[n]

=

1

R

[1 + z−1 + ...+ z−(R−1)

]=

1

R

R−1∑k=0

z−k (2.2)

Dobiveni izraz predstavlja sumu R clanova geometrijskog niza te se izraz 2.2 može

zapisati u rekurzivnoj formi kao u radu [2] i glasi

H(z) =1

R

1− z−R

1− z−1(2.3)

2

Page 8: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Izraz 2.3 odgovara prijenosnoj funkciji CIC filtra prvog reda. Prijenosna funkcija CIC

filtra N - tog reda dana je izrazom

H(z) =

(1

R

1− z−R

1− z−1

)N

(2.4)

Iz prijenosne funkcije mogu se odrediti nule i polovi filtra. Za ilustraciju, neka je

R = 4 i N = 8. Raspored nula i polova dobivenog CIC filtra prikazan je na slici 2.1.

Slika 2.1: Nule i polovi CIC filtra za R = 4 i N = 8

2.2. Struktura CIC filtra

Izraz 2.3 iz prethodnog poglavlja može se zapisati kao umnožak rekurzivnog i nere-

kurzivnog dijela i glasi

H(z) =1

R· 1

1− z−1· (1− z−R) =

1

R·HI(z) ·HC(z) (2.5)

Rekurzivni dio odgovara prijenosnoj funkciji integratora HI(z) = 11−z−1 , dok nerekur-

zivni odgovara prijenosnoj funkciji cešljastog filtra (engl. comb filter)HC(z) = 1−zR.

3

Page 9: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Blok shema cijelog sustava, s integratorom, sklopom za izbacivanje uzoraka i cešljas-

tim filtrom, prikazana je na slici 2.2. Ovakav sustav naziva se CIC decimator prvog

reda [1].

Slika 2.2: CIC decimator prvog reda [1]

Prijenosna funkcija CIC filtra reda N dana je izrazom

H(z) =

(1

R

1− z−R

1− z−1

)N

(2.6)

Blok shema CIC filtra reda N , sa N integratorskih i N sekcija cešljastog filtra prika-

zana je na slici 2.3 [1].

Slika 2.3: CIC decimator reda N [1]

Iz izraza 2.6 može se primijetiti kako CIC filtar sadrži integratore koji su po prirodi

rekurzivni sustavi (filtri s beskonacnim impulsnim odzivom, engl. Infinite Impulse

Response, IIR). Medutim, još iz konacne sume iz izraza 2.2 vidljivo je kako CIC filtar

ima konacan impulsni odziv odnosno zapravo je FIR filtar. Slijedi kako CIC filtar ima

linearnu fazu te konstantno grupno kašnjenje.

Važna karakteristika CIC filtara, koja ih cini popularnima u hardware implementa-

ciji, je ta što ne sadrže množila. Za funkcionalan CIC filtar potrebne aritmeticke ope-

racije su iskljucivo zbrajanje odnosno oduzimanje. CIC filtri najcešce se koriste se

kao anti-aliasing filtri (ako su izvedeni kao decimatori) ili kao anti-imaging filtri (ako

se koriste kao interpolatori). Obje aplikacije primjenjuju se pri velikoj brzini filtrira-

nja podataka, koja je potrebna, primjerice, u delta sigma analogno-digitalnim (A/D) i

4

Page 10: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

digitalno-analognim (D/A) pretvaracima. Takoder, primjenjuju se u dizajnu digitalnih

prijamnika i odašiljaca.

2.3. Frekvencijska karakteristika CIC filtra

Frekvencijska karakteristika CIC filtra reda N dana je izrazom

H(ejω) =

(1

R

1− z−R

1− z−1

)N ∣∣∣∣∣z=ejω

=1

RN

(1− e−jωR

1− e−jω

)N

(2.7)

Slijedi kako je amplitudna karakteristika CIC filtra reda N jednaka

|H(ejω)| =

∣∣∣∣∣ 1

R

sin(ωR2

)

sin(ω2)

∣∣∣∣∣N

(2.8)

Za ilustraciju, na slici 2.4 prikazane su amplitudne karakteristike CIC filtara za red

filtra N = 4 i N = 8 uz faktor decimacije R = 8. Može se uociti kako CIC filtar ima

niskopropusnu amplitudnu karakteristiku.

Slika 2.4: Amplitudne karakteristike CIC filtara reda N

5

Page 11: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Amplitudna karakteristika ima nultocke koje se nalaze na frekvencijama višekratni-

cima 2πR

. Oko nultocaka pojavljuju se podrucja preslikavanja odnosno preklapanja

spektra (engl. folding bands). Podrucja preklapanja nalaze se na frekvencijama

Ω =

2nπR− ωp ≤ ω ≤ 2nπ

R+ ωp ; n = 1, ..., R

2− 1

π − ωp ≤ ω ≤ π(2.9)

za parni R, odnosno za neparni R

Ω =2nπ

R− ωp ≤ ω ≤ 2nπ

R+ ωp ; n = 1, ...,

R− 1

2(2.10)

gdje je ωp granicna frekvencija podrucja propuštanja [3]. Preklapanje je najizraže-

nije na lijevom rubu prvog podrucja preklapanja spektra odnosno na frekvenciji ωa =2πR− ωp.

CIC filtar u ovome radu razmatran je kao klasicni FIR selektivni filtar s izbacivacem

uzoraka na izlazu. Amplitudna karakteristika FIR filtra odredena je podrucjem propu-

štanja, prijelaznim podrucjem i podrucjem gušenja. Stoga naglasak nije na atenuaciji

u podrucjima preklapanja, kao što je slucaj kod CIC filtra, nego je razmatran iznos

atenuacije u sva tri navedena podrucja. U tablici 2.1 su navedeni iznosi minimalnih

atenuacija αmin u podrucju gušenja ovisno o redu filtra N . Kao mjera sustava uzeta

je vrijednost najmanje atenuacije filtra u bocnim laticama. Vrijednost parametra R za

sve slucajeve je jednaka i iznosi R = 10.

Tablica 2.1: Iznos minimalne atenuacije αmin za razlicite vrijednosti reda filtra N

N αmin

1 13 dB

2 26 dB

3 39 dB

4 52 dB

5 65 dB

6 78 dB

7 91 dB

8 104 dB

Iz tablice 2.1 se može zakljuciti kako je minimalna atenuacija u bocnim laticama funk-

cija reda filtra N i raste povecavanjem reda filtra.

6

Page 12: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Kako bi se karakteristika filtra u podrucju gušenja dodano poboljšala jedan od nacina

je i upotreba dodatnog filtra u kaskadi koji bi povecao atenuaciju u podrucju gušenja

(engl. stopband improvement filter).

No postoji i rješenje koje ne zahtijeva upotrebu dodatnih filtara kako bi poboljšao

postojecu amplitudnu karakteristiku CIC filtra, a temelji se na modifikaciji postojece

prijenosne karakteristike CIC filtra. Jedno od takvih rješenja opisano je u nastavku.

7

Page 13: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

3. Dizajn modificiranog CIC filtra

CIC filtri su jednostavni uskopojasni FIR filtri. Kao što je opisano u prethodnom po-

glavlju, njihova je struktura rekurzivna i ne sadrži množila. Glavni nedostatak CIC

filtara je niska selektivnost te dugacke širine rijeci u cvorovima strukture.

Ovi nedostaci mogu se otkloniti korištenjem poboljšanih CIC filtara cija je struktura

nerekurzivna. Prijenosna funkcija poboljšanog CIC filtra nastaje modifikacijom prije-

nosne funkcije izvornog CIC filtra. Rezultat su takoder uskopojasni FIR filtri najcešce

niskoga reda, s koeficijentima koji su predznacni cijeli brojevi. U svojoj strukturi ta-

koder ne sadrže množila.

U nastavku je opisana prijenosna funkcija modificiranog CIC filtra, impulsni odziv

te pripadajuca amplitudna karakteristika.

3.1. Prijenosna funkcija modificiranog CIC filtra

Nerekurzivna forma prijenosne funkcije modificiranog CIC filtra [4] ima oblik

H(R,L, z) =

(1

R

R−1∑k=0

z−k

)L+1

· 1

[(R− 3)(R− 2)(R− 1)(R + 1)(R + 2)(R + 3)]L

·

[(R−4∑k=0

z−k

(R−3∑k=0

z−k)·

(R−2∑k=0

z−k

)

·

(R∑k=0

z−k

(R+1∑k=0

z−k

(R+2∑k=0

z−k

)]L(3.1)

gdje R oznacava broj uzoraka impulsnog odziva, a L odreduje red pojedinih filtara

u kaskadi. Može se primijetiti kako je prijenosna funkcija modificiranog CIC filtra

8

Page 14: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

zapravo umnožak prijenosnih funkcija sedam CIC filtara razlicite duljine impulsnog

odziva. Drugim rijecima, jedan modificiran CIC filtar cini sedam izvornih CIC filtara

spojenih u kaskadu. Svaki od filtara u kaskadi ima razlicito kašnjenje comb sekcije.

Centralni CIC filtar je reda L+ 1 i ima R uzoraka impulsnog odziva. Ostalih sedam u

kaskadi su reda L, a duljina njihovog impulsnog odziva je, redom R−3, R−2, R−1,

R + 1, R + 2 i R + 3.

Rekurzivna forma prijenosne funkcije modificiranog CIC filtra [4] ima oblik

H(R,L, z) =

(1

R

1− z−R

(1− z−1)

)L+1

·

(1− z−(R−3)

(R− 3)(1− z−1)· 1− z−(R−2)

(R− 2)(1− z−1)· 1− z−(R−1)

(R− 1)(1− z−1)

)L

·

(1− z−(R+1)

(R + 1)(1− z−1)· 1− z−(R+2)

(R + 2)(1− z−1)· 1− z−(R+3)

(R + 3)(1− z−1)

)L

(3.2)

Red N modificiranog CIC filtra i parametar L povezani su relacijom: N = 7L+ 1 [4].

Za veliki iznos parametra R, izraz 3.2 aproksimira izraz 2.6, stoga se može zakljuciti

kako opisani dizajn rezultira ucinkovitijim filtrom za slucaj manjeg parametra R.

Na slici 3.1 prikazan je raspored nula i polova modificiranog CIC filtra sa R = 4 i

L = 1, stoga slijedi kako je red modificiranog CIC filtra jednak N = 8. U usporedbi

s rasporedom nula i polova izvornog CIC filtra istog reda N = 8, sa slike 2.1, vidljivo

je kako su višestruke nule izvornog CIC filtra razdvojene te su ravnomjernije raspore-

dene po jedinicnoj kružnici [5]. Tako se postiže gušenje na više razlicitih frekvencija,

a samim time se poboljšava karakteristika filtra u podrucju gušenja.

9

Page 15: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 3.1: Nule i polovi modificiranog CIC filtra za R = 4, L = 1 i N = 8

3.2. Amplitudna karakteristika modificiranog CIC

filtra

Prijenosna funkcija modificiranog CIC filtra može se zapisati kao

H(R,N,L, z) =1

H0(R,N,L)·(R−1)·N∑k=0

h(R,N,L, z) · z−k (3.3)

gdje je H0(R,N,L) = H(R,N,L, z → 1) normalizacijska konstanta, dok su h(R,N,

L, z) koeficijenti impulsnog odziva. Vektor impulsnog odziva h(R,N,L) sadrži ukupno

C = N(R − 1) + 1 koeficijenata. Koeficijenti impulsnog odziva su simetricni, od-

nosno vrijedi h(R,N,L, k) = h(R,N,L,C − k) [4]. Slijedi da se modificirani CIC

filtar može realizirati kao FIR filtar u direktnoj formi. Direktna transponirana struktura

modificiranog CIC filtra prikazana je na slici 3.2. Višestruka množila odgovaraju ko-

eficijentima filtra.

10

Page 16: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 3.2: Direktna transponirana struktura modificiranog CIC filtra

Za ilustraciju, uzet je izvorni CIC filtar s parametrima R = 4 i N = 8. Vektor koefi-

cijenata impulsnog odziva je jednak hCIC(4, 8) =

1, 8, 36, 120, 322, 728, 1428, 2472,

3823, 5328, 6728, 7728, 8092, 7728, 6728, 5328, 3823, 2472, 1428, 728, 322, 120, 36, 8,

1

. Normalizacijska konstanta H0CIC(4, 8) iznosi 65536.

Modificirani CIC filtar s jednakim parametrima R = 4 i N = 8, ima vektor koeficije-

nata impulsnog odziva jednak h(4, 8, 1) =

1, 7, 27, 76, 173, 336, 575, 885, 1242, 1604,

1918, 2132, 2208, 2132, 1918, 1604, 1242, 885, 575, 336, 173, 76, 27, 7, 1

. U ovom slu-

caju, normalizacijska konstantaH0(4, 8, 1) iznosi 20160. Ovo je primjer modificiranog

CIC filtra jednostavne složenosti to jest s malim iznosima parametara R i L.

Impulsni odziv modificiranog CIC filtra odgovara impulsnom odzivu FIR filtra prvog

tipa; simetrican je te ima neparan broj uzoraka. Koeficijenti modificiranog CIC filtra

su cjelobrojni, a omjer po vrijednosti najveceg i najmanjeg koeficijenta je manji nego

za slucaj koeficijenata izvornog CIC filtra. Takoder, vrijednost normalizacijske kons-

tante je manja [4]. Na slici 3.3 prikazana je usporedba impulsnih odziva izvornog CIC

filtra i modificiranog CIC filtra za red N = 8.

11

Page 17: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 3.3: Impulsni odziv izvornog i modificiranog CIC filtra

Amplitudna karakteristika modificiranog CIC filtra odredena je iz impulsnog odziva

filtra. Na slici 3.4 prikazana je usporedba amplitudnih karakteristika izvornog i modi-

ficiranog CIC filtra za R = 4 i N = 8.

PovecavanjemR amplitudna karakteristika modificiranog CIC filtra pocinje pratiti am-

plitudnu karakteristiku izvornog CIC filtra, stoga je ovakav dizajn filtra pogodan za

manji R. Povecavanjem parametra L povecava se red filtra. Kao što je slucaj i kod

izvornog CIC filtra, povecavanjem reda povecava se atenuacija u podrucju gušenja i za

slucaj modificiranog CIC filtra.

Iznos minimalne atenuacije u podrucju gušenja iznosi αmin(ωs) = 90 dB, gdje je

ωs granicna frekvencija podrucja gušenja i iznosi ωs = 0.73 π. Kod modificiranog

CIC filtra minimalna atenuacija u podrucju gušenja iznosi αmin(ωs) = 104 dB, gdje

je ωs = 0.47 π. U odnosu na izvorni CIC filtar, modificirani CIC ima uže podrucje

propuštanja. Prijelazno podrucje je takoder uže, što modificirani CIC filtar cini selek-

tivnijim u odnosu na izvorni CIC filtar. Iz slike 3.4 takoder je vidljivo kako se kod

12

Page 18: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

modificiranog CIC filtra javlja propad karakteristike u podrucju propuštanja (engl. pa-

ssband droop).

Slika 3.4: Amplitudna karakterstika izvornog i modificiranog CIC filtra

Ukoliko se želi postici modificirani CIC filtar vece složenosti, potrebno je promijeniti

parametre R i L. Za ilustraciju, odabrani su parametri R = 10 i L = 2 iz cega sli-

jedi kako je red modificiranog CIC filtra jednak N = 15. Takav filtar rezultira sa 136

koeficijenata impulsnog odziva. Amplitudna karakteristika dobivenog modificiranog

CIC filtra u usporedbi s izvornim CIC filtrom istoga reda prikazana je na slici 3.5.

Iako se u praksi ne koristi i naveden je iskljucivo za ilustraciju, navedeni slucaj do-

bar je primjer kako se analitickim postupkom, dakle samo modifikacijom postojeceg

izraza prijenosne funkcije izvornog CIC filtra, može ostvariti vrlo velika atenuacija u

podrucju gušenja [6].

13

Page 19: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 3.5: Amplitudna karakteristika izvornog i modificiranog CIC filtra

14

Page 20: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

4. Struktura modificiranog CIC filtrabez množila

Množenje s konstantnim cjelobrojnim brojem uobicajena je operacija u mnogim algo-

ritmima digitalne obradbe signala, pa tako i digitalnim filtrima. Množenje s cjelobroj-

nom vrijednošcu izvodi se mrežom zbrajanja odnosno oduzimanja te posmacima.

Kada se prilikom realizacije razlicitih algoritama koristi množilo izvedeno iskljucivo

zbrajalima i posmacima, tada se realizacija naziva multiplierless - bez množila.

Kako bi se postigla ucinkovita implementacija, cilj je minimizirati broj potrebnih zbra-

jala u konacnoj strukturi filtra. U nastavku su objašnjeni nacini izvedbe multiplierless

strukture filtra, kao i nacini na koji se potrebna zbrajala mogu medusobno povezivati

kako bi se ukupna složenost množila smanjila.

4.1. Realizacija množenja s konstantnim cjelobrojnim

brojem izvedena korištenjem direktnih aciklickih

grafova

Cjelobrojni koeficijent k može se zapisati kao

k =B−1∑i=0

bi2−i (4.1)

gdje je B širina rijeci koeficijenta, a bi ∈ (−1, 0, 1) i ukoliko je bi 6= 0 još se naziva i

term. Buduci da zapis odgovara sumi potencija broja dva, kaže se da je to SPT (engl.

Sum of Powers of Two) zapis. Zapis koeficijenta koji sadrži minimalan broj termova

je MSD zapis (engl. Minimum Signed Digit). Jedan MSD zapis je CSD (engl. Ca-

nonic Signed Digit) reprezentacija cjelobrojnog broja. CSD reprezentacija, uz izraz

4.1, ima još jedan dodatan uvjet: u zapisu ne mogu biti dva terma uzastopno odnosno

15

Page 21: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

mora vrijediti bibi−1 = 0, i = 1, 2, ..., B. Neka CSD reprezentacija koeficijenta sadrži

c termova razlicitih od nule. Tada je za izvedbu koeficijenta potrebno c− 1 zbrajala.

Iako je CSD reprezentacija ucinkovit nacin minimizacije broja zbrajala u dizajnu, pos-

toji još jedna reprezentacija pomocu koje se broj ukupnih zbrajala može dodatno mini-

mizirati. Ta reprezentacija temelji se na mreži zbrajala, oduzimala i posmaka u formi

direktnih aciklickih grafova.

U matematici, tocnije u teoriji grafova, svaki se graf sastoji od niza vrhova (cvorova) i

bridova (grana). Neusmjereni ili nedirektni graf je skup vrhova i bridova u kojemu su

svi bridovi dvosmjerni. S druge strane, graf kojemu svi bridovi pokazuju tocno odre-

deni smjer su usmjereni ili direktni grafovi. Direktan aciklicki graf sastoji se od niza

vrhova i usmjerenih bridova gdje svaki brid povezuje jedan vrh s drugim tako da ne

postoji nacin da se pocne u nekom cvoru v i, prateci redoslijed bridova, na kraju petlje

završi u tom istom cvoru v [7].

Množilo izvedeno mrežom zbrajala (odnosno oduzimala) i posmaka takoder se može

prikazati pomocu direktnih aciklickih grafova koji imaju sljedece karakteristike:

– Ukoliko je broj potrebnih zbrajala c, graf ima c+1 vrhova.

– Svaki vrh ima ulazni stupanj din ≥ 2, osim vrha ciji je ulazni stupanj din = 0.

Taj vrh odgovara ulazu u množilo.

– Svaki vrh ima izlazni stupanj dout ≥ 1. osim vrha ciji je izlazni stupanj dout =

0. Taj vrh odgovara izlazu iz množila.

– Vrh s ulaznim stupnjem din = 2 odgovara zbrajalu (odnosno oduzimalu). Uko-

liko je ulazni stupanj vrha din ≥ 2, tada je broj potrebnih zbrajala za realizaciju

vrha c = din − 1.

Važno je napomenuti kako ulazni stupanj vrha din odgovara broju bridova e koji su us-

mjereni u taj vrh. Može se zakljuciti kako je broj zbrajala odreden vrhovima grafa, dok

su posmaci odredeni bridovima buduci da bridovi grafa, u ovom slucaju, odgovaraju

potencijama broja dva [7].

Neka je ulazna vrijednost u množilo jednaka 1, tada se vrijednost preostalih vrhova

racuna kao

vi = ejvj + ekvk (4.2)

16

Page 22: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

gdje su ej i ek vrijednosti bridova kojima je vrh vi krajnji vrh (vrh u kojemu završa-

vaju), dok su vj i vk pocetni vrhovi bridova ej i ek. Primjer realizacije cjelobrojnog

koeficijenta pomocu direktnog aciklickog grafa cije su karakteristike prethodno opi-

sane prikazan je na slici 4.1.

51 34120 = 1 20 = 1

22 = 4 24 = 16

28 = 256

Slika 4.1: Primjer realizacije koeficijenta pomocu direktnog aciklickog grafa

Izlazna vrijednost 341, iz prethodnog primjera, racuna se primjenjujuci jednadžbu 4.2.

Vrijednost u središnjem vrhu racuna se kao 20 + 22 = 5. Zatim se dobije izlazna

vrijednost kao 5 · (20 + 24) + 28 = 341. Broj potrebnih zbrajala jednak je 3, jedno

potrebno za središnji vrh te još dva za krajnji vrh.

Bitno je napomenuti kako je, pomocu grafova, potrebno realizirati samo neparne po-

zitivne izlazne vrijednosti. Parne vrijednosti jednostavno se dobivaju množenjem sa

2 potreban broj puta odnosno logickim posmakom u lijevo za potreban broj mjesta.

Negativne vrijednosti dobivaju se negacijom pozitivne vrijednosti [7].

4.2. Topologije direktnih aciklickih grafova

Strukture grafova mogu se kategorizirati ovisno o trošku (engl. cost) odnosno ukup-

nom broju zbrajala potrebnih za realizaciju grafa. Na slici 4.2 su prikazane sve moguce

topologije grafova za trošak 0, 1, 2, 3, 4 i 5. Grafovi se takoder mogu kategorizirati

ovisno o nacinu racunanja izlazne vrijednosti. Tako razlikujemo aditivne, multiplika-

tivne te leapfrog grafove.

Aditivni grafovi najcešca su vrsta grafova, a moguce ih je jednostavno realizirati na

nacin da se zbroje izlazne vrijednosti dvaju grafova. Rezultirajuci trošak jednak je

zbroju troškova pojedinih podgrafova plus još jedno zbrajalo za zbroj. Neki od pri-

mjera aditivnog grafa je Cost 1 graf 1 i Cost 2 graf 1 sa slike 4.2. Prvi graf dobiven

17

Page 23: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

je zbrajanjem izlaznih vrijednosti dvaju Cost 0 grafova te je njegov rezultirajuci trošak

0 + 0 + 1 = 1. Drugi graf dobiven je zbrajanjem izlaznih vrijednosti Cost 1 grafa 1 i

Cost 0 grafa, stoga je njegov je trošak jednak 1 + 0 + 1 = 2.

Multiplikativni grafovi jednostavno se realiziraju kaskadom dvaju grafova. Zbog toga

je izlazna vrijednost multiplikativnog grafa jednaka umnošku izlaznih vrijednosti poje-

dinih podgrafova. Rezultirajuci trošak jednak je zbroju troškova pojedinih podgrafova.

Primjer multiplikativnog grafa je Cost 2 graf 2 sa slike 4.2, dobiven kaskadom dvaju

Cost 1 grafova. Slijedi da je rezultirajuci trošak jednak 1 + 1 = 2.

Prethodne vrste grafova koristile su samo kombinaciju krajnjih vrhova pojedinih pod-

grafova za izracun konacne izlazne vrijednosti. Takva realizacija grafova moguca je

dok je trošak ≤ 3. Vec za trošak jednak 4, javljaju se topologije grafova koje za izra-

cun izlazne vrijednosti koriste neke od meduvrhova pojedinih podgrafova. Takva vrsta

grafova naziva se leapfrog. Takoder, prethodne vrste grafova mogu se promatrati kao

kombinacija dvaju podgrafova, dok je se za leapfrog vrstu može reci kako je to kombi-

nacija više od dvaju podgrafova. Prvi primjer leapfrog grafa je Cost 4 graf 11 sa slike

4.2. Naziva se još i leapfrog-2 graf, jer sadrži dva grafa koji preskacu (engl. leap -

skok) preko pojedinih podgrafova u strukturi [7].

18

Page 24: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 4.2: Topologije direktnih aciklickih grafova za trošak 0,1,2,3,4 i 5 [7]

19

Page 25: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

5. Realizacija koeficijenatamodificiranog CIC filtra korištenjemdirektnih aciklickih grafova

Ukoliko se cjelobrojne koeficijente modificiranog CIC filtra želi realizirati korištenjem

DAG-ova, cesto se koristi metoda iscrpnog pretraživanja (engl. exhaustive search) za

svaki pojedini koeficijent.

Poznavajuci raspon potencija broja dva potreban za realizaciju traženog koeficijenta,

iscrpnim pretraživanjem provjerava se koja od topologija grafova može na izlazu dati

traženi koeficijent. Pronadena topologija ujedno je i optimalna, jer rezultira minimal-

nim brojem zbrajala.

U nastavku je opisan nacin realizacije koeficijenata modificiranog CIC filtra, dobivenih

u poglavlju 3.2, pomocu DAG-ova.

5.1. Koeficijenti modificiranog CIC filtra realizirani ko-

rištenjem direktnih aciklickih grafova

Buduci da se korištenjem grafova realiziraju samo neparni i pozitivni cjelobrojni koefi-

cijenti, najprije je potrebno koeficijente impulsnog odziva iz poglavlja 3.2 svesti na tra-

ženi oblik. Tako impulsni odziv kojega je potrebno realizirati postaje jednak h(4, 8, 1)

=

1, 7, 27, 19, 173, 21, 575, 885, 621, 401, 959, 533, 69, 533, 959, 401, 621, 885, 575

21, 173, 19, 27, 7, 1

. Potrebne parne vrijednosti pojedinih koeficijenata realiziraju se

naknadnim množenjem s dva potreban broj puta odnosno, u multiplierless strukturi,

logickim posmakom u lijevo za potreban broj mjesta.

20

Page 26: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Zatim je potrebno, za svaki pojedini koeficijent, iscrpnim pretraživanjem pronaci to-

pologiju grafa koja rezultira minimalnim brojem zbrajala. U tablici 5.1 navedena je

struktura grafa i potencije broja dva potrebne za realizaciju pojedinog koeficijenta.

Prikazano je samo pola uzoraka impulsnog odziva, buduci da modificirani CIC filtar

ima simetrican impulsni odziv.

Buduci da je impulsni odziv simetrican, potrebno je implementirati samo pola im-

pulsnog odziva. Stoga je broj potrebnih zbrajala za sve koeficijente jednak C = 28.

Ako se tome doda još 24 zbrajala iz direktne strukture modificiranog CIC filtra sa

slike 3.2, slijedi da ukupan broj potrebnih zbrajala u cjelokupnom dizajnu filtra iznosi

Cuk = 28 + 24 = 52.

Tablica 5.1: Koeficijenti filtra s pripadajucom strukturom DAG-ova

Koeficijent Struktura grafa Potrebne potencije broja 21 Cost 0 20

7 Cost 1 23 − 20

27 Cost 2 graf 1 25 − 22 − 20

19 Cost 2 graf 1 24 + 21 + 20

173 Cost 3 graf 2 (25 + 20)(22 + 20) + 23

21 Cost 2 graf 1 24 + 22 + 20

575 Cost 2 graf 1 29 + 26 − 20

885 Cost 3 graf 2 (27 − 20)(23 − 20)− 22

621 Cost 3 graf 2 (25 − 20)(24 + 20) + 20

401 Cost 3 graf 1 28 + 27 + 24 + 20

959 Cost 2 graf 1 210 − 26 − 20

533 Cost 3 graf 1 29 + 24 + 22 + 20

69 Cost 2 graf 1 26 + 22 + 20

21

Page 27: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

6. Fizicki ostvariv model modificiranogCIC filtra bez množila

Fizicki ostvariv odnosno RTL (engl. Register Transfer Level) model modificiranog

CIC filtra razvijen je korištenjem jezika VHDL (engl. VHSIC Hardware Description

Language) koji je jezik za opis sklopovlja. Zatim je optimiziran za implementaciju na

programabilnim logickim poljima (engl. Field Programmable Arrays, FPGAs).

U nastavku je opisan postupak razvijanja RTL modela modificiranog CIC filtra, izra-

cun potrebnih širina registara te komponente korištene u cjelokupnom dizajnu modela.

6.1. Strukturni model modificiranog CIC filtra

Funkcija koju obavlja filtar je konvolucija ulaznog signala i impulsnog odziva filtra.

Impulsni odziv cija je implementacija objašnjena u nastavku je h(4, 8, 1) naveden u

poglavlju 5.1. Odziv je simetrican i ima neparan broj koeficijenata, stoga je imple-

mentirano samo pola koeficijenata impulsnog odziva filtra. U radu je implementirana

direktna transponirana realizacija filtra, prikazana na slici 3.2.

Kao što je vidljivo sa slike 3.2, višestruka množila s konstantnom odgovaraju koefici-

jentima filtra, gdje je h0 prvi koeficijent, a hM2

središnji koeficijent, najveci po iznosu.

U ovome slucaju filtar ima 25 koeficijenata i prvi je h0, a središnji koeficijent je h12.

Potreban broj množila u direktnoj realizaciji modificiranog CIC filtra iznosi M2

, dok

je potreban broj zbrajala M . M je jednak ukupnom broju koeficijenata minus jedan,

dakle u ovome slucaju M = 24.

Buduci da filtar obavlja funkciju uzastopnog množenja i zbrajanja, prilikom imple-

mentacije važno je osigurati dovoljnu širinu rijeci registara za pohranu rezultata svih

potrebnih operacija kako bi se izbjegla pojava preljeva. Stoga je potrebno izracunati

22

Page 28: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

potrebnu širinu rijeci za najgori slucaj. To znaci da se na širinu ulazne rijeci dodaje

dodatan broj bitova koji se naziva akumulatorska ekstenzija [8]. U ovome slucaju,

akumulatorska ekstenzija modificiranog CIC filtra glasi

AccExt =⌈log2

( M∑m=0

hm[m])⌉

(6.1)

Stoga je potrebna širina internih registara filtra jednaka zbroju širine ulaznog podatka

i akumulatorske ekstenzije.

Izlazni filtrirani podatak je procitan rezultat iz posljednjeg zbrajala. Širina izlazne

rijeci jednaka je širini ulazne rijeci kojoj je dodan broj bitova dobivenih kao poslje-

dica dobitka u pojacanju uslijed obrade (engl. Processing Gain, PG) koji se racunaju

pomocu izraza

PG =

⌈10log10(

πωg

)

6 dB

⌉(6.2)

gdje je ωg granicna frekvencija podrucja propuštanja filtra.

6.2. Fizicki ostvariv model modificiranog CIC filtra

RTL model modificiranog CIC filtra nalazi se pod nazivom cic_modif.vhd. Implemen-

tirana je direktna transponirana struktura filtra sa slike 3.2. Glavni elementi strukture

su koeficijenti odnosno množila s konstantom te zbrajala. Množila s konstantom po-

trebna za koeficijente filtra realizirana su kao zasebne komponente i objašnjena su u

nastavku. U tablici 6.1 su navedene potrebne genericke konstante, dok su u tablici 6.2

navedeni pripadajuci ulazni i izlazni prikljucci entiteta modificiranog CIC filtra.

Tablica 6.1: Opis generickih konstanti modificiranog CIC filtra

Genericka konstanta OpisDinWidth širina rijeci ulaznog podatka

DoutWidth širina rijeci izlaznog podatka

RegWidth širina rijeci internih registara

23

Page 29: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Tablica 6.2: Opis prikljucaka entiteta modificiranog CIC filtra

Prikljucak entiteta Opisclk in signal takta

rst in reset

Din in ulazni podatak

Dout out izlazni podatak

in_valid insignalizira kako ulazna FIFO memorija nije prazna

te se iz memorije može citati

out_ready insignalizira kako izlazna FIFO memorija nije puna

te se u memoriju može zapisivati

in_ready outsignalizira kako je filtar spreman za citanje

novog podatka iz FIFO memorije (read enable)

out_valid outsignalizira kako je spreman podatak na izlazu filtra

valjan za zapis u FIFO memoriju (write enable)

Ulazni podatak Din širine rijeci DinWidth najprije je potrebno predznacno proširiti

na širinu internih registara RegWidth. Predznacno proširen podatak zatim se šalje na

množila odnosno koeficijente filtra. Rezultat množenja prosljeduje se na uzastopna

zbrajala. Rezultati iz pojedinih zbrajala spremaju se u polje posmacnih registara (engl.

shift register). U pojedinom registru spremljen je zbroj prethodnog registra i prethod-

nog izlaza množila. Izlazni podatak Dout cita se iz posljednjeg registra, pri cemu se od

ukupne širine RegWidth cita gornjih DoutWidth bitova.

Ostali prikljucci, in_valid, out_ready, in_ready i out_valid služe za sinkronizaciju i

komunikaciju filtra s FIFO memorijama koje su detaljnije objašnjene u poglavlju 7.1.

6.3. Množila s konstantom

Buduci da je rijec o multiplierless realizaciji filtra, množenje izvedeno korištenjem is-

kljucivo zbrajanja i posmaka. Dodatno, optimalne realizacije koeficijenata, odnosno

one s minimalnim brojem zbrajala, realizirane su korištenjem direktnih aciklickih gra-

fova. U tablici 5.1 iz prethodnog poglavlja, navedene su potrebne strukture grafa za

svaki pojedini koeficijent, a na slici 4.2 izgled pojedine strukture grafa.

Najprije su svi koeficijenti zapisani u odredenoj rezoluciji pomocu odgovarajucih po-

24

Page 30: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

tencija broja dva. U tablici 5.1 nalaze se potrebne potencije broja dva za zapis svakog

pojedinog koeficijenta. Primjerice, koeficijent 27 iz tablice 5.1 realizira se Cost 2 gra-

fom 1 sa slike 4.2. Potrebne potencije broja dva za njegov zapis su 25, 22 i 20, stoga se

on zapisuje kao 00000 + 00− 0−. Rezolucija zapisa koeficijenata odredena je rezolu-

cijom potrebnom za zapis najveceg koeficijenta filtra [9].

Koeficijenti 7, 27, 19, 21, 575, 401, 959, 533 i 69, iz tablice 5.1, realizirani su korište-

njem aditivnih grafova i rezultat su zbrajanja odredenih potencija broja dva. Izvedba

množila za navedene koeficijente prikazana je na slici 6.1. Širine ulazne i izlazne rijeci

su jednake i iznose DWidth.

Slika 6.1: Izvedba množila korištenjem posmaka i zbrajanja [9]

Model množila sadrži vektore S i T. Oni su karakteristicni za svako množilo u dizajnu

odnosno za svaki koeficijent jer su odredeni iz zapisa koeficijenta. Vektor S sadrži

pozicije potrebnih potencija broja dva odnosno odreduje za koliko se mjesta izvodi lo-

gicki posmak u lijevo. Vektor T sadrži predznake + i − i odreduje je li se odredena

potencija broja dva zbraja ili oduzima. Primjerice, za zadani koeficijent 27 pripadajuci

vektori su S = [0, 2, 5] i T = [−,−,+] [9]. RTL model opisanog množila nalazi se

pod nazivom multiplier_ak01.vhd. U tablici 6.3 su prikazane potrebne genericke kons-

tante, a u tablici 6.4 pripadajuci ulazni i izlazni prikljucci entiteta množila.

Tablica 6.3: Opis generickih konstanti množila

Genericka konstanta OpisS vektor s pozicijama potencija broja 2

T vektor s potrebnim predznacima + i −DWidth širina ulazne i izlazne rijeci

25

Page 31: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Tablica 6.4: Opis prikljucaka entiteta množila

Prikljucak entiteta OpisDin in ulazna rijec

Dout out izlazna rijec

Preostali koeficijenti iz tablice 5.1, 173, 885 i 621, realizirani su kombinacijom multi-

plikativnog i aditivnog grafa. Iz tablice 5.1 vidljivo je kako u navedenim strukturama

korišten Cost 3 graf 2 sa slike 4.2. Ovaj graf kombinacija je Cost 2 graf 2 strukture

koja je multiplikativna. Zatim joj je zbrojena struktura Cost 0, koja je u ovom slucaju

odredena potencija broja dva.

Najprije je implementirana multiplikativna Cost 2 graf 2 struktura. Sastoji se od dva

podgrafa koji su Cost 1 strukture, odnosno nastaju zbrajanjem dvaju potencija broja

dva. Zbog toga se Cost 1 struktura jednostavno realizira korištenjem množila multi-

plier_ak01, s pripadajucim vektorima S i T. Ulazni podatak širine DWidth dovodi se

na prvi podgraf. Izlaz iz prvog podgrafa ulaz je u drugi podgraf, pa je konacan rezultat

Cost 2 graf 2 strukture umnožak izlaza dvaju podgrafova i širine je DWidth. RTL mo-

del opisanog grafa nalazi se pod nazivom cost2_graph2.vhd. U tablici 6.5 su prikazane

potrebne genericke konstante. Ulazni i izlazni prikljucci entiteta identicni su kao i za

prošlo množilo i prikazani su u tablici 6.4.

Tablica 6.5: Opis generickih konstanti grafa

Genericka konstanta OpisS1 vektor S prvog podgrafa

T1 vektor T prvog podgrafa

S2 vektor S drugog podgrafa

T2 vektor T drugog podgrafa

DWidth širina ulazne i izlazne rijeci

Prethodno realizirana komponenta zatim se može koristiti pri realizaciji potrebne Cost

3 graf 2 strukture. RTL model množila koje opisuje navedenu strukturu nalazi se pod

nazivom mul_02.vhd. U tablici 6.6 su prikazane potrebne genericke konstante. Ulazni

i izlazni prikljucci entiteta prikazani su u tablici 6.4.

26

Page 32: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Na ulaz množila mul_02 dovodi se ulazni podatak širine DWidth. Podatak se dovodi na

ulaz grafa Graph2_2. Izlazu iz grafa Graph2_2 pribraja se, odnosno oduzima, ulazni

podatak posmaknut za odredeni broj pozicija, što predstavlja množenje ulazne rijeci

s odredenom potencijom broja dva. Rezultat tog zbrajanja odnosno oduzimanja je iz-

lazni podatak, cija je širina rijeci takoder DWidth.

Tablica 6.6: Opis generickih konstanti množila

Genericka konstanta OpisS1 vektor S prvog podgrafa

T1 vektor T prvog podgrafa

S2 vektor S drugog podgrafa

T2 vektor T drugog podgrafa

shift broj mjesta za koji se posmice ulazna rijec

shift_direction zbrajanje ili oduzimanje posmaknute ulazne rijeci

DWidth širina ulazne i izlazne rijeci

27

Page 33: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

7. Implementacija modificiranog CICfiltra bez množila na razvojni sustavZedBoard

Nakon što je napisano odgovarajuce istpitno okruženje (engl. test bench) i uspješno

provedena simulacija fizicki ostvarivog modela modificiranog CIC filtra u alatima Mo-

delSim i Vivado, slijedi implementacija na platformu Zynq, na razvojni sustav ZedBo-

ard.

ZedBoard je jedan od razvojnih sustava koji sadrži cip porodice Zynq-7000, koja je

bazirana na Xilinx-ovoj All Programmable SoC (engl. System on Chip) arhitekturi.

Izgled ZedBoard plocice prikazan je na slici 7.1. Sastoji se od dvojezgrenog ARM

Cortex-A9 procesorskog sustava (engl. Processing System) i programabilne logike

(engl. Programmable Logic) koji su smješteni u jedno kucište i povezani unutarnjim

sabirnicama. Ovakvom integracijom postignuta je fleksibilnost i skalabilnost FPGA,

dok u isto vrijeme procesorski sustav može izvoditi složene aplikacije u Linux ili bilo

kojem drugom okruženju [10]. Sabirnicki sustav upravljan je Xillybus suceljem koje

je opisano u sljedecem poglavlju.

ZedBoard se može programirati na nekoliko nacina. Nacin programiranja ZedBoarda

definira se postavljenjem seta kratkospojnika. Najjednostavniji je USB-JTAG nacin

programiranja ZedBoarda uz pomoc USB-micro-USB kabela koji dolazi u paketu sa

samom plocicom. Bežicni nacin programiranja, korišten za potrebe ovog diplomskog

rada, je programiranje pomocu SD kartice. U utor za SD karticu koji se nalazi s do-

nje strane plocice, umetne se kartica te se ZedBoard isprogramira pomocu podataka

spremljenih na kartici [12].

28

Page 34: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 7.1: ZedBoard [11]

7.1. Xillybus sucelje

Xillybus sucelje omogucuje prijenos podataka izmedu FPGA i procesorskog sustava s

Linux ili Windows operacijskim sustavom.

Logicki blokovi iz FPGA dijela povezuju se na IP (engl. Intellectual Property) jez-

gru kroz FIFO (engl. First In, First Out) memorije. Korisnicki program sa strane

procesorskog sustava izvodi jednostavne ulazno-izlazne datotecne operacije. Strujanje

podataka odvija se prirodno izmedu FIFO memorije i korisnickog programa zaduže-

nog za upravljanje podacima. U ovome prijenosu ne postoji posebno sucelje. Prijenos

podataka Xillybus suceljem izvršava se izvodenjem C programa unutar Linux opera-

cijskog sustava. Blokovska shema Xillybus sucelja prikazana je na slici [10].

Donja FIFO memorija sa slike 7.2 je ulazna dok je gornja FIFO memorija izlazna.

Procesorski sustav preko Xillybus sucelja pošalje podatak koji se upisuje u ulaznu me-

moriju. Iz ulazne memorije citaju se podaci i zatim šalju u implementirani filtar nakon

cega se izlaz iz filtra upisuje u izlaznu FIFO memoriju. Kada su podaci upisani u iz-

aznu FIFO memoriju Xillybus sucelje ocitava podatke iz izlazne FIFO memorije i iste

prosljeduje procesorskom sustavu. Procesorski sustav zatim izvršava daljnu obradu

primljenih podataka.

29

Page 35: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 7.2: Tijek podataka u Xillybus sucelju [10]

Implementacija sklopovlja u FPGA dio SoC-a izvedena je korištenjem Xillybus suce-

lja. Sa Xillybusove stranice [13] preuzet je paket s potrebnim datotekama medu kojima

se nalazi i xillydemo testno okruženje koje sadrži implementirane sve funkcionalnosti

potrebne za rad testne platforme [10].

Xillydemo izvorno sadrži samo jednu FIFO memoriju. Kako bi se model modificira-

nog CIC filtra spojio na Xillybus sucelje potrebno je dodati još jednu FIFO memoriju.

Izgled tako implementiranog sustava nalazi se na slici 7.3.

Slika 7.3: Blokovska shema implementacije modificiranog CIC filtra u sustavu Zynq

Sa slike 7.3 vidljivo je kako donja FIFO memorija služi za prijenos podataka od pro-

cesorskog sustava do strukture modificiranog CIC filtra, dok gornja služi za vracanje

odnosno slanje filtriranog podatka natrag procesorskom sustavu. FIFO memorije kori-

štene u ovom slucaju su velicine od 512 podatka širine 32 bita.

30

Page 36: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Procesorski sustav izvršava jednostavnu C aplikaciju koja ucitava podatke iz tekstualne

datoteke X.txt u kojoj se nalaze uzorci pobudnog signala kojim se pobuduje sustav im-

plementiran u programabilnoj logici. Ucitani podatak se preko Xillybus sucelja šalje

ulaznoj FIFO memoriji.

Ukoliko FIFO memorija nije prazna, postavlja ulaz filtra in_valid u 1. Time se filtru

signalizira kako postoji valjan podatak na ulazu. Kada filtar postavi svoj izlaz in_ready

u 1, to je znak FIFO memoriji da omoguci citanje, odnosno njezin ulaz rd_en postav-

lja se u 1. Tada filtar krece s obradom procitanog valjanog podatka. Kada je obrada

podatka gotova filtar postavlja svoj izlaz out_valid u 1, što je znak izlaznoj FIFO me-

moriji da omoguci pisanje odnosno ulaz memorije wr_en postavlja se u 1. Ukoliko

FIFO memorija nije puna, postavlja ulaz filtra out_ready u 1. Tada ce se u izlaznu

FIFO memoriju zapisati obradeni podatak.

Procesorski sustav izvršava jednostavnu C aplikaciju koja cita obradene podatke iz

izlazne FIFO memorije i sprema ih u tekstualnu datoteku Y.txt.

Sklopovlje potrebno za realizaciju modificiranog CIC filtra u programabilnoj logici

prikazano je u tablici 7.1.

Tablica 7.1: Sklopovlje potrebno za realizaciju modificiranog CIC filtra

Dijelovi sklopa Iskorišteno ZauzeceFlip Flop 733 0.7%

LUT 1076 20%

31

Page 37: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

8. Verifikacija fizicki ostvarivogmodela modificiranog CIC filtra bezmnožila

Za provjeru ispravnosti rada modificiranog CIC filtra implementiranog u programa-

bilnoj logici (FPGA), korištena je MATLAB skripta cic_modif_verif.m. Skripta kao

pobudni signal generira uzdignuti kosinusni puls (engl. raised cosine puls). Uzorci

pobude najprije se kvantiziraju na broj bitova odreden širinom ulazne rijeci DinWidth,

zatim se zapisuju u tekstualnu datoteku X.txt. Uzorci izlaznog signala iz FPGA citaju

se iz tekstualne datoteke Y.txt.

Izlazni signal u MATLAB okruženju dobiven je konvolucijom kvantiziranih uzoraka

signala pobude i cjelobrojnih koeficijenata filtra. Uzorci tako izracunatog signala su

cjelobrojni, a širina najveceg jednaka je širini RegWidth. Uzorci izlaznog signala iz

FPGA, spremljeni u Y.txt datoteku, širine su DoutWidth i to je gornjih DoutWidth bi-

tova procitanih iz registra širine RegWidth. Zbog toga je za usporedbu odziva, potrebno

i izracunati odziv u MATLAB-u kvantizirati na širinu rijeci DoutWidth.

Na slici 8.1 prikazan je valni oblik pobudnog signala dok je na slici 8.2 prikazana pri-

padajuca amplitudna karakteristika. Na slici 8.3 prikazana je usporedba valnog oblika

odziva izracunatog u MATLAB-u s dobivenim valnim oblikom odziva iz FPGA. Na

slici 8.4 prikazana je usporedba kvantizirane amplitudne karakteristike signala odziva

iz MATLAB-a s odzivom iz FPGA.

32

Page 38: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 8.1: Valni oblik pobudnog signala

Slika 8.2: Amplitudna karakteristika pobude

33

Page 39: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Slika 8.3: Valni oblik signala odziva

Slika 8.4: Usporedba amplitudnih karakteristika odziva iz MATLAB-a i FPGA

34

Page 40: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

9. Zakljucak

U radu je opisan postupak dizajniranja modificiranog CIC filtra bez množila, a zatim i

njegova FPGA implementacija. Za postupak i proracun dizajna filtra, kao i za dobiva-

nje koeficijenata impulsnog odiva filtra korišteno je programsko okruženje MATLAB.

Dizajn filtra temelji se na modifikaciji rekurzvine prijenosne funkcije izvornog CIC

filtra, tocnije na razdvajanju višestrukih nula izvornog CIC filtra. Ravnomjernije ras-

poredivanje višestrukih nula postiže se modificiranom nerekurzivnom strukturom koja

rezultira gušenjem na više razlicitih frekvencija. Time se ostvarila veca atenuacija u

podrucju gušenja i uže prijelazno podrucje, što modificirani CIC filtar cini selektivni-

jim u odnosu na izvorni CIC filtar.

Koeficijenti impulsnog odziva dobiveni iz modificirane prijenosne funkcije su pred-

znacni cijeli brojevi i mogu se zapisati kao sume potencija broja dva. Za svaki koefici-

jent pronadena je njegova optimalna realizacija odnosno ona koja rezultira najmanjim

brojem zbrajala. Optimalne realizacije koeficijenata pronadene su primjenom iscrp-

nog pretraživanja nad skupom usmjerenih aciklickih grafova. Na taj nacin osigurana je

struktura filtra bez množila. Time se uvelike pojednostavljuje implementacija filtra na

sklopovlje, jer nije potrebno koristiti posebne sklopove za množenje nego se operacija

množenja zamjenjuje zbrajanjem i posmacima. Na ovaj nacin smanjena je potrošnja

logickih vrata u FPGA implementaciji.

Korištenjem razvojnih alata ModelSim i Vivado Design Suite, razvijen je i fizicki

ostvariv model modificiranog CIC filtra, pomocu jezika za opis sklopovlja, VHDL.

Realizirani model zbog svoje jednostavnosti ima malenu potrošnju resursa dostupnih

unutar FPGA dijela cipa. Model je implementiran na razvojnom sustavu ZedBoard,

na platformi Zynq. Procesorski sustav upravljan je Linux operacijskim sustavom. Ko-

munikacija izmedu procesorskog sustava i programabilne logike ostvarena je pomocu

Xillybus sabirnickog sucelja.

35

Page 41: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

LITERATURA

[1] M. Vucic, “Signal processing for communications - Lectures,” 2009.

[2] E. Hogenauer, “An economical class of digital filters for decimation and interpo-

lation,” IEEE transactions on acoustics, speech, and signal processing, vol. 29,

no. 2, pp. 155–162, 1981.

[3] G. Molnar, A. Dudarin, and M. Vucic, “Minimax design of multiplierless sharpe-

ned CIC filters based on interval analysis,” in 2016 39th International Convention

on Information and Communication Technology, Electronics and Microelectro-

nics (MIPRO), pp. 94–98, IEEE, 2016.

[4] B. Stošic and V. Pavlovic, “Design of new selective CIC filter functions with

passband-droop compensation,” Electronics Letters, vol. 52, no. 2, pp. 115–117,

2015.

[5] B. P. Stošic, D. N. Milic, and V. D. Pavlovic, “Innovative design of CIC FIR

filter functions,” in 2015 12th International Conference on Telecommunication in

Modern Satellite, Cable and Broadcasting Services (TELSIKS), pp. 60–63, IEEE,

2015.

[6] B. P. Stošic, V. D. Pavlovic, and D. N. Milic, “Performances of the novel modi-

fied CIC FIR filter functions,” in 2014 22nd Telecommunications Forum Telfor

(TELFOR), pp. 465–468, IEEE, 2014.

[7] O. Gustafsson, A. G. Dempster, K. Johansson, M. D. Macleod, and L. Wanham-

mar, “Simplified design of constant coefficient multipliers,” Circuits, Systems and

Signal Processing, vol. 25, no. 2, pp. 225–251, 2006.

[8] U. Meyer-Baese and U. Meyer-Baese, Digital signal processing with field pro-

grammable gate arrays, vol. 65. Springer, 2007.

36

Page 42: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

[9] I. Dvoršcak, “FPGA implementacija CIC filtra s poboljšanom selektivnošcu,”

2012.

[10] D. Drvenkar, “Ucinkovita implementacija FIR filtara dobivenih Kaiser-

Hammingovim izoštravanjem,” 2018.

[11] “Zedboard.” http://www.zedboard.org/product/zedboard, Pris-

tupljeno: 5. lipnja 2019.

[12] M. Sertic, “Dizajn i FPGA implementacija jednostavnih FIR filtara bez upotrebe

množila,” 2018.

[13] “Xillybus.” http://xillybus.com/, Pristupljeno: 5. lipnja 2019.

[14] M. Vucic and G. Molnar, “Alati za razvoj digitalnih sustava–Materijali za preda-

vanja,” 2009.

[15] D. Petrinovic, D. Petrinovic, R. Bregovic, H. Babic, and B. Jeren, “Digitalna

obradba signala upute za laboratorijske vježbe,” Zavod za elektronicke sustave i

obradbu informacija, FER, Zagreb, 2003.

37

Page 43: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC filtra bezmnožila

Sažetak

U radu su prouceni postupci dizajna i realizacije filtara s konacnim impulsnim od-

zivom (FIR) koji proizlaze iz razlicitih tehnika poboljšanja amplitudne karakteristike

CIC filtra. Posebno su prouceni postupci koji rezultiraju prijenosnim funkcijama ni-

skog reda i imaju cjelobrojne koeficijente. Takve prijenosne funkcije mogu se ucinko-

vito realizirati nerekurzivnim strukturama koje ne sadrže množila. Svaki cjelobrojni

koeficijent zapisan je kao suma potencija broja dva, a zatim je iz sume pronadena

optimalna realizacija odnosno ona koja sadrži najmanji broj zbrajala. Optimalna reali-

zacija za svaki pojedini koeficijent pronadena je primjenom iscrpnog pretraživanja nad

skupom direktnih aciklickih grafova. Razvijen je fizicki ostvariv model filtra koji ima

direktnu realizaciju. Model je razvijen u jeziku VHDL te optimiziran za implementa-

ciju na programabilnim logickim poljima (FPGA). Razvijeno je odgovarajuce ispitno

okruženje, provedena simulacija te je model uhodan na stvarnom sklopovlju.

Kljucne rijeci: CIC filtar, FIR filtar, cjelobrojni koeficijenti, direktni aciklicki grafovi,

realizacija bez množila, VHDL, FPGA

Page 44: Dizajn i FPGA implementacija nerekurzivnog poboljšanog CIC

DESIGN AND MULTIPLIERLESS FPGA IMPLEMENTATION OFNON-RECURSIVE IMPROVED CIC FILTER

Abstract

In the thesis, the design and implementation of the finite impluse response filters

(FIRs) based on amplitude improvements of the CIC filters, was studied. Particulary

were considered techniques that result in low-order transfer functions and have inte-

ger coefficients. Such transfer functions can be efficiently realized with non-recusrive

structures that do not employ general purpose multipliers. Each integer coefficient

was represented as sum of power of two. Optimal coefficient realization, with lowest

number of adders, was obtained by applying exhaustive search over the set of directed

acyclic graphs (DAGs). Register transfer level (RTL) model has been developed in

VHDL langugage and optimized for development in programmable logic fields (FP-

GAs). An appropriate test environment was developed, simuation was carried out, and

the model was implemented on real hardware.

Keywords: CIC filter, FIR filter, integer coefficients, directed acyclic graphs, multipi-

erless realization, VHDL, FPGA