You are on page 1of 6

Ovo je HTML inaica datoteke http://c2.etf.unsa.ba/file.php/207/201415/Vjezbe/Projektovanje_sistema_na_cipu_vjezba6.pdf.

G o o g l e automatski izrauje HTML inaice dokumenata dok pretraujemo web.


Page 1

UniverzitetuSarajevu
Elektrotehnickifakultet
Odsjekzaautomatikuielektroniku
Predmet:Projektovanjesistemanacipu
Studijska:2014/2015.godina

Laboratorijskavjezba6
Sekvencijalnakola:konacniautomatisaputempodataka.Memorija.

CiljvjezbejedasestudentiupoznajusaVHDLopisomkonacnih
automatasaputempodataka,tesa
procesomsintentiziranjamemorijskihblokova.
Sarajevo,10.4.2015.g.

1Uvod

1.1Memorija
Ranijesmokonstatovalidajememorijumogucerealizovatikao
kolekcijeDflipflopova(registre).Ipak,
zaodredeneprimjenekadajepotrebnaznacajnakolicinamemorije,
takvarealizacijanijepogodna
obziromdasezasvakibitmemorijezauzimajedanlogicki
elementFPGAcipa.VecinaFPGAuredaja,
kaoioniizCycloneIIporodicenaDE2/DE270razvojnimsistemima
posjedujuporednizovalogickih
elemenatainekedodatnespecijalizovanejedinice.Izmeduostalog,to
sujedinicedistribuiranememorije.
Quartusrazvojnookruzenje,tacnijekompajler,sposobanje
prepoznatiopisaneRAM/ROMmodule
isintetiziratiihkoritenjemspecijalizovanihjedinica.Medutim,
postojijednostavnijinacinzaopis
memorije.Daljejedataproceduraimplementacije8bitnememorije
tipaRAMsa32rijeci(odnosno,
5bitnomadresom).
1.Kreirajtenoviprojekat.

2.KreirajtenovudototekutipaMemoryFile1.Izaberite32rijeci
velicine8bita.Zasadamozete
ostavitisadrzajmemorijepraznim.
3.IzaberiteToolsMegaWizardPluginManager.Naprvomprozoru
izaberiteopcijuCreatea
newcustommegafunctionvariationiklikniteNext.
4.NanarednomprozoruizaberiteRAM:1PORTulistimodulalijevo,
izaberiteVHDLopcijusa
desnestraneiupiitenazivmodulaodmahispod
npr.memorija.vhdlufolderuvaegprojekta,
azatimklikniteNext.
5.PodesitevelicinumemorijskogmodulaiklikniteNext
6.Naslijedecemprozoruzanauprimjenunetrebanitamijenjati,pa
samoklikniteNext
7.NanarednomprozoruizaberiteopcijuYes,usethisfileforthe
memorycontent,kliknitenaBrowse
iizaberitedatotekukojustekreiraliu2.koraku.
1IliHexadecimal(IntelFormat)File(.hex)iliMemoryInitializationFile(.mif).

Razlikaizmeduovedvijevrste
datotekajeunacinupredstavljanjamemorije..mifdatotekemogucejemodifikovati
kaotekstualne,npr.koritenjem
Notepadailislicno,doksu.hexdatotekevbinarne.Micemosadrzajovedatoteke
formiratikoritenjemdijelaQuartus
razvojnogokruzenja,takodanamanemanekeznacajnevrazlikeizmeduovihdatoteka.

1
Page 2

8.Nanarednomprozorusuprikazanebibliotekekojevamtrebajuza
simuulacijudizajnakojisadrzi
ovajmodul.SamopreditenaslijedeciprozorklikomnaNext.
9.Naposljednjemprozoruizaberitesamododatno
generisanjeInstantiationtemplatefileizavrite
klikomnaFinish
Ovakokreiranmemorijskimodulsa328bitnerijeciimainterface
kakoslijedi.
ENTITYmemorijaIS
PORT

(
address
:INSTDLOGICVECTOR(4DOWNTO0);
clock
:INSTDLOGIC:=1;
data
:INSTDLOGICVECTOR(7DOWNTO0);
wren
:INSTDLOGIC;
q
:OUTSTDLOGICVECTOR(7DOWNTO0)
);
ENDmemorija;
Otvoritedatotekumemorijainst.vhdlkojasenalaziufolderuvaeg
projekta.Uovojdatotecidatje
primjerkakoinstanciratispecijalizovanimodul.Njensadrzajjekako
slijedi.
memorijainst:memorijaPORTMAP(
address=>addresssig,
clock
=>clocksig,
data
=>datasig,
wren
=>wrensig,
q
=>qsig
);
clockjeulaznakojisedovoditaktsignal
addressje(unaemprimjeru)5bitniulaznakojisedovodiadresa
qje(unaemprimjeru)8bitniizlazsakojegsecitapodatakna
adresiaddressakonijeaktivan
signalwren
dataje(unaemprimjeru)8bitniizlazkojipredstavljapodatakkoji
seupisujunaadresuaddress

akojeaktivanwrensignal
Trebavoditiracunadasuiulaziiizlaziovogmodulaodvojeni
registrimaodmemorije2.Razlogzaovo
je,kaoiuvijek,omogucavanjeradamodulanaviimfrekvencijama
taktsignala.Posljedicaovogaje
dakadadovedemosignalnaaddressiwrenulaze,tekuslijedecem
periodutaktsignalaceovajsignal
bitiprenesennamemoriju,atekuslijedecemperioducebitiformiran
podatakanaizlazudata.To
znacidaimamokanjenjeod2periodataktsignalaizmeduulazai
izlaza.Toneznacidaprijenegoje
formiranizlaz,nesmijemodovestinoviulazukolikounaprijedznamo
kojipodacisupotrebni(nakojim
adresama).Drugimrijecima,isaovimmodulommogucejekoristiti
principprotocnihstruktura.
Vremenskidijagramiovogmemorijskogmoduladatisunaslici1.Za
potrebeovogzadatkanecevam
bitipotrebanupispodatakaumemoriju,pasefokusirajtesamonadio
dijagramagdjejewrensignal
nalogickojnuli.Primijetitedakadasepostavivrijednostna
ulazuaddress,tavrijednostseocitana
slijedecojrastucojiviciclocksignala,apodatakkojisenalazinatoj
adresisepojavinaizlazuqnakon
slijedecerastuceivice.Toznacidajespremanzacitanjenakondvije
rastuce,odnosnonatrecojiviciod
trenutkapostavljanjapodatkanaaddressulaz.Naprimjer,
adresaa0jepostavljenanaulazaddress
izmedu2.i3.rastuceivicenaslici1.Memorijskiblokjenjenu
vrijednostocitaona3.rastucojivici.
Nakon4.rastuceivicepostavljasepodatakdout0kojisenalazina
lokacijia0umemoriji.Toznaci
dajetajpodatakspremanzacitanjena5.rastucojivici.
2Prilikomspecijalizacijemodulamogucejeizabratidasuizlazispojenidirektnona

memoriju,aliulazimorajubitisa
registrima.

Page 3

Slika1:Vremenskidijagramimemorijskogmodula

1.2Algoritamzabinarnupretragu
Nekajepotrebnopretrazitinekiniziodreditinakojojpozicijise
nalazitrazenielementiliustanoviti
daonnepostoji.Akoelementiunizunisuniukakvomposebnom
redoslijedunemamopunoizbora
negopregledatisveelementeiporeditiihsatrazenim.Medutim,kada
jenizprethodnosortiran,tj.
kadazasvakadvasusjednaelementavrijedidajeprvipovrijednosti
manji/veciodnarednog,mozemo
koristitialgoritamzabinarnupretragu.Ovajalgoritamomogucavada
sepretragazavriunajvie
log2nkoraka,gdjejenbrojelemenataniza.Slijediopisalgoritma
kadajenizasortiranurastucem
redoslijedu.
1.imin0,imaxn1
2.Akojeimax<iminalgoritamjezavren,elementnijepronaden.
3.imid=imin+imax
2

4.Akojeaimid=talgoritamjezavren,pronadenjeelementna
pozicijiimid.
5.Akojeaimid<tondajeimin=imid+1.
6.Akojeaimid>tondajeimax=imid1.
7.Idinakorak2.

2Zadatakzalaboratorijskuvjezbu

InstancirajteranijeopisaniRAMmodulipopunitegapodacimau
rastucemredoslijeduvrijednosti.
Osmisliteiimplementirajtekonacniautomatisaputempodatakakoji
implementiraalgoritambinarne
pretrage.Automattrebadapojavomimpulsautrajanjuodjednog
periodaclocksignalanaulazustart,
ocitavapodataksaulazadata.Zatimdapretrazujememoriju
algoritmomzabinarnupretragu.Po

zavretkuizvravanja,naizlazuaddresspostavitiadresunakojojse
podataknalaziigenerisatiimpuls
utrajanjuodjednogperiodaclocksignala(odnosnodoksenepusti
dugmestart)naizlazudone;ili
generisatiimpulsutrajanjuodjednogperiodaclocksignala(odnosno
doksenepustidugmestart)na
izlazunotfoundakopodataknijepronadenumemoriji.Nakontogaga
instancirajteuosnovnojjedini
dizajnaipovezitenaslijedecinacin.SignaldataspojitenaSW07,
signalstartnaKEY1,aresetna
tasterKEY0.SignaladdressnekabudespojennadiodeLEDR40,a
signalidoneinotfoundredom
naLEDR17iLEDR16.TaktsignaljeCLOCK50.
3

You might also like