dizajn i fpga implementacija nerekurzivnog poboljšanog cic
TRANSCRIPT
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.
Umjesto ove stranice umetnite izvornik Vašeg rada.
Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.
Ž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
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
7.1. Xillybus sucelje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8. Verifikacija fizicki ostvarivog modela modificiranog CIC filtra bez množila 32
9. Zakljucak 35
Literatura 36
v
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
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
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
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
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
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
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
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
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
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
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
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
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
Slika 3.5: Amplitudna karakteristika izvornog i modificiranog CIC filtra
14
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
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
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
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
Slika 4.2: Topologije direktnih aciklickih grafova za trošak 0,1,2,3,4 i 5 [7]
19
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
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
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
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
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
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
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
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
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
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
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
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
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
Slika 8.1: Valni oblik pobudnog signala
Slika 8.2: Amplitudna karakteristika pobude
33
Slika 8.3: Valni oblik signala odziva
Slika 8.4: Usporedba amplitudnih karakteristika odziva iz MATLAB-a i FPGA
34
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
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
[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
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
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