You are on page 1of 6

FIR

Cilj je projektovanje FIR filtra primenom koncepta distribuirane aritmetike. Interfejs FIR-a
prikazan je na Sl. 1. Odmerci se dovode na ulaz DIN jedan po jedan. ND = ´1´ ukazuje da je na
ulazu dostupan novi odmerak. Nakon izvršenog procesiranja FIR postavlja RDY = ´1´ i na izlazu
DOUT postavlja vrednost izlaznog odmerka.

Sl. 1
Struktura FIR-a

Sl. 2
Struktura FIR filtra prikazana je na Sl. 2. Dijagram je nacrtan pod pretpostavkom da je dubina FIR-a 8
(broj tapova) i da se odmerci predstavljaju s 8 bita. Broj tapova određuje broj redno povezanih pomeračkih
registara (SR), a time i kapacitet ROM-a, dok ˝dužina˝ odmeraka određuje dužinu pomeračkih registara.
Sledeća pretpostavka je da se za predstavljanje parcijalnih suma takođe koristi 8 bita (broj izlaznih bita iz
ROM-a). Ovaj broj određen je sumom keficijenata FIR-a.
Prvi pomerači registar u nizu (PSC) ima mogućnost paralelnog upisa, dok preostalih 7 poseduju samo
serijski ulaz i serijski izlaz.
Akumulator (sprega sabirača/oduzimača i registra) se realizuje tako što se sa izlaza registra na ulaz
sabirača/oduzimača vraća 7 (u ovom slučaj) bita – odnosno svi osim bita najmanje težine uz znakovno
proširenje za jedan bit (efekat je identičan pomeranju za jednu poziciju udesno izlazne vrednosti – deljenje
sa 2).
Upravljačka jedinica sprovodi jedan kompletan ciklus izračunavanja jednog izlaznog odmerka.
Čeka na ND, a onda upisuje ulazni odmerak u PSR, inicijalizuje akumulator (resetuje registar
akumulatora) i inicijalizuje brojač bitova (count, za postavljene parametre filtra sa slike M ima
vrednost 8). Zatim ulazi u ˝petlju˝ u kojoj obavlja 8 ciklusa čitanja ROM-a/sabiranja-
oduzimanja/pomeranja. Pri tom, u poslednjem (osmom) ciklusu umesto sabiranja bira operaciju
oduzimanja. Po završenom radu, upravljačka jedinica se vraća u inicijalno stanje i aktivira signal
RDY.
ROM
Za realizaciju karakter ROM-a koristićemo blok-RAM. Blok RAM se može uključiti u projekat
na dva načina. Prvi jeste da se ROM opiše u VHDL-u funkcionalno, a da se softveru za sintezu
prepusti da preslika opis na fizički blok RAM odgovarajućih karakteristika. Drugi, lakši i
pouzdaniji način podrazumeva kreiranje ROM modula, željenih karakteristika, pomoću
softerskog alata Core Generator i njegovog uključivanja u projekat u vidu VHDL komponente.
Pod jezgrom (core) podrazumeva se unapred projektovani hardverski modul dostupan za
korišćenje u različitim projektima. Razvojno okruženje ISE sadrži biblioteku core-ova različitih
funkcionalnosti, između ostalog i core ˝blok RAM˝. U nastavku će biti objašnjen postupak
kreiranja ROM komponente na bazi blok RAM-a korišćenjem Core Generatora.
1. Priprema .coe fajla. ROM je predviđen sam za čitanje, tako da kreiranje ROM-a
podrazumeva i definisanje njegovog sadržaja. Sadržaj ROM-a se unapred priprema, u
vidu tzv. .coe fajla, koji se potom uz pomoć Core Generator-a ugrađuje u definiciju ROM
komponente. .coe fajl je tekstualni fajl koji se može pripremiti u bilo kom tekstualnom
editoru, npr. Notepad. Prva linija .coe fajla definiše brojnu osnovu u kojoj će biti
navođene vrednosti memorijskih lokacija ROM-a. Pošto su lokacije ROM koji kreiramo
8-bitne, prirodno je izabrati osnovu 16 (heksadecimalni zapis). Sledi primer .coe fajla za
ROM kapaciteta 4x8 (četiri osmobitne lokacije):
MEMORY_INITIALIZATION_RADIX=16;
MEMORY_INITIALIZATION_VECTOR=
01,
1F,
AC,
34,
00;
Vrednosti lokacija ROM-a se navode počev od najniže adrese (adrese 0) i razdvajaju se
zarezom (novi red nije neophodan). Iza poslednje vrednosti sledi znak ˝;˝.
Kreiranja ROM-a
Izaberite ´New Source´ (Sl. 3) , a zatim opciju ´IP (Coregen & Architecture Wizard)´ (Sl. 4).
Upišite ime modula u polje ˝File name˝. Pritiskom na dugme Next, otvara se Core Generator
(Sl. 5).

Sl. 3 Sl. 4
U prvom prozoru Core Generator-a dostupan je spisak raspoloživih core-ova razvrstanih
u više kategorija. Biramo Single Port Block Memory v6.2 iz kategorije RAMs & ROMs.

Nakon Next (Sl. 5), a zatim Finish (Sl. 6), prelazi se na konfiguraciju memorijskog
modula. U prvom prozoru (Sl. 7) biramo opciju Read Only (zato što kreiramo ROM) i
postavljamo ˝dimenzije˝ ROM-a. Za naše potrebe, biramo Width = 8 i Depth = 2048
(2048 lokacija od po 8 bita).

Na stranici Page 2 (Sl. 8), biramo Eable Pin, što će u interfejsu ROMa kreirati signal za
dozvolu rada.

Na stranici Page 3 (Sl. 9), prikazani su aktivni nivoi upravljačkih signala ROM-a.
Zadržaćemo podrazumevane opcije.

Sadržaj ROM-a se definiše na stranici Page 4 (Sl. 10). Najpre, izborom Load Init File, a
zatim pritiskom na dugme Load, u mogućnosti smo da izaberom prethodno kreiran .coe
fajl (CharMap.coe).

Konačno, pritiskom na dugme Generate na stranici Page 4, pokrećemo proces keiranja


ROM-a. Nakon uspšnog kreiranja, u listi projektnih fajlova pojaviće se stavka koja
odgovara ROM-u.
Sl. 5 Sl. 6

Sl. 7 Sl. 8

Sl. 9 Sl. 10
Rezultat rada alata Core Generator-a je nekoliko fajlova koji se mogu naći u vršnom
direktorijumu vašeg projekta. Fajl sa nastavkom .vho (CharMap.vho) sadrži šablon za
instanciranje single-port RAM modula. Otvorite ovaj fajl u tekst editoru (Sl. 11). U ovom
teksutalnom fajlu možete naći deklaraciju komponente CharMap i šablon za instaciranje,
koje prostim kopiranjem možete prebaciti u vaš VHDL kôd. Deklaracija komponente se
prenosi bez bilo kakvih izmena, dok u šablonu za instanciranje treba promeniti ime
instance i imena internih signala sa kojima se portovi komponente povezuju.

Sl. 11

Zadatak
Dovršiti ASM dijagram upravljačke jedinice FIR-a
Kreirati ROM
Kreirati VHDL opis FIR-a i izvršiti funkcionalu simulaciju
Realizovati test kolo prema dijagramu sa Sl. 12. Potrebno je:
Projektovanje ASM dijagrama upravljačke jedinice test kola. Upravljačka jedinica čeka
na signal en=´1´, a onda upisuje iznos pojačanja u programabilni pojačavač. Nakon toga
upravljačka jedinca čeka na start=´1´, a zatim redom: preuzima vrednost ulaznog
odmerka iz AD konvertora, predaje odmerak FIR-u, a zatom nakon što FIR završi rad,
vrednost izlaznog omerka prosleđuje DA konvertoru. Ako je en još uvek ´1´, upravljačka
jedinica nastavlja rad čekanjem na start=´1´, inače se vraća u inicijalno stanja i čeka na
en=´1´.
Projektovati blok DIV - brojača koji deli učestanost od 50 MHz do frekvencije
odmeravanja.
Kreirati VHDL opis test kola i ispitati njegov rad na razvojnom sistemu.
Sl. 12

You might also like