26
Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21 1 POKAZNA VEŽBA 1 Osnovi projektovanja digitalnih sistema na nivou logičkih kola Potrebno predznanje Osnovno poznavanje digitalne elektronike Bulova (Boolean) algebra Šta će biti naučeno tokom izrade vežbe? Nakon urađene vežbe, bićete u mogućnosti da: razumete razna digitalna logička kola i njihovu funkciju projektujete sistem koji računa proizvoljnu Boolean funkciju pomoću logičkih kola opišete sistem sastavljen od digitalnih logičkih kola pomoću logičke šeme koristite Intel Quartus za opis i sintezu digitalnih sistema. sintetišete i implementirate vaš sistem za FPGA integrisano kolo pomoću Intel Quartus alata Sa znanjem dobijenim u ovoj vežbi, bićete spremni da projektujete složenije sisteme sastavljene od digitalnih logičkih kola, tzv. kombinacione mreže, o kojima će biti više reči u narednoj vežbi. Znanje dobijeno u ovoj vežbi je važno za pravljenje mosta između digitalnog matematičkog sveta Bulove algebre i fizičkog sveta digitalne elektronike. Osnovno znanje dobijeno u ovoj vežbi omogućiće vam da razumete složene digitalne sisteme koje ćete projektovati tokom predmeta. Apstrakt i motivacija U današnje vreme, mnogi uređaji koji nas okružuju su digitalni. Ovi uređaji čitav svoj rad zasnivaju na operacijama unutar skupa od samo dve vrednosti (nule i jedinice), a operacije koje nad njima vrše su operacije Bulove algebre nad ovim skupom vrednosti. Računanje tokom rada aviona koje vodi računa da putnici sigurno slete na odredište, Facebook chata na vašem mobilnom telefonu ili puta na Mesec se vrši isključivo pomoću operacija Bulove algebre nad skupom od dve vrednosti. Nije teško zaključiti da je poznavanje Bulove algebre i njenih operacija ključno znanje prilikom razumevanja rada uređaja modernih tehnologija. Ova vežba će vas naučiti osnovama operacija Bulove algebre i projektovanja sistema koji računaju vrednosti Bulovih funkcija, koji su osnovna gradivna komponenta digitalnih sistema. Vežba će vas naučiti i kako da opišete te sisteme koristeći logičke šeme. Tokom projektovanja vašeg prvog digitalnog sistema, koristićete Intel Quartus alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje koje dobijete u ovoj vežbi je prvi korak ka konačnom cilju ovog predmeta – projektovanju složenih digitalnih sistema za računanje, tj. procesora.

POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

1

POKAZNA VEŽBA 1

Osnovi projektovanja digitalnih sistema na nivou logičkih kola

Potrebno predznanje

• Osnovno poznavanje digitalne elektronike

• Bulova (Boolean) algebra

Šta će biti naučeno tokom izrade vežbe?

Nakon urađene vežbe, bićete u mogućnosti da:

• razumete razna digitalna logička kola i njihovu funkciju

• projektujete sistem koji računa proizvoljnu Boolean funkciju pomoću logičkih kola

• opišete sistem sastavljen od digitalnih logičkih kola pomoću logičke šeme

• koristite Intel Quartus za opis i sintezu digitalnih sistema.

• sintetišete i implementirate vaš sistem za FPGA integrisano kolo pomoću Intel Quartus alata

Sa znanjem dobijenim u ovoj vežbi, bićete spremni da projektujete složenije sisteme sastavljene od digitalnih

logičkih kola, tzv. kombinacione mreže, o kojima će biti više reči u narednoj vežbi. Znanje dobijeno u ovoj vežbi je

važno za pravljenje mosta između digitalnog matematičkog sveta Bulove algebre i fizičkog sveta digitalne

elektronike. Osnovno znanje dobijeno u ovoj vežbi omogućiće vam da razumete složene digitalne sisteme koje

ćete projektovati tokom predmeta.

Apstrakt i motivacija

U današnje vreme, mnogi uređaji koji nas okružuju su digitalni. Ovi uređaji čitav svoj rad zasnivaju na

operacijama unutar skupa od samo dve vrednosti (nule i jedinice), a operacije koje nad njima vrše su operacije

Bulove algebre nad ovim skupom vrednosti. Računanje tokom rada aviona koje vodi računa da putnici sigurno

slete na odredište, Facebook chata na vašem mobilnom telefonu ili puta na Mesec se vrši isključivo pomoću

operacija Bulove algebre nad skupom od dve vrednosti. Nije teško zaključiti da je poznavanje Bulove algebre i

njenih operacija ključno znanje prilikom razumevanja rada uređaja modernih tehnologija.

Ova vežba će vas naučiti osnovama operacija Bulove algebre i projektovanja sistema koji računaju vrednosti

Bulovih funkcija, koji su osnovna gradivna komponenta digitalnih sistema. Vežba će vas naučiti i kako da opišete

te sisteme koristeći logičke šeme. Tokom projektovanja vašeg prvog digitalnog sistema, koristićete Intel Quartus

alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i

implementirate na određenoj fizičkoj platformi. Znanje koje dobijete u ovoj vežbi je prvi korak ka konačnom cilju

ovog predmeta – projektovanju složenih digitalnih sistema za računanje, tj. procesora.

Page 2: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

2

TEORIJSKE OSNOVE

1. Digitalna logička kola

Digitalna logička kola su elektronska kola koja imaju mogućnost računanja vrednosti logičkih funkcija Bulove

algebre. Bulova algebra je definisana nad skupom od 2 vrednosti:

• Logička nula (0, FALSE) – predstavljena niskom vrednosti potencijala na žici,

• Logička jedinica (1, TRUE) – predstavljena visokom vrednosti potencijala na žici.

Neke od logičkih operacija Bulove algebre su:

• Negacija (NOT) – unarna operacija predstavljena znakom komplementa,

• Konjunkcija (AND) – binarna operacija predstavljena znakom množenja,

• Disjunkcija (OR) – binarna operacija predstavljena znakom sabiranja,

• Ekskluzivna disjunkcija (XOR) – binarna operacija predstavljena znakom sabiranja u krugu,

• razne kombinacije ranije navedenih operacija.

Tabela 1.1 na sledećoj strani daje prikaz osnovnih logičkih kola koja se koriste u digitalnoj elektronici, kao i

istinitosne tablice koje prikazuju šta će biti izlaz svakog od kola, za svaku kombinaciju ulaza. Svaki od ovih kola se

realizuje pomoću elektronskih komponenti – tranzistora. Fizička realizacija logičkih kola je izvan opsega ovog

predmeta i neće biti razmatrana. Prilikom projektovanja digitalnih sistema logička kola se koriste kao osnovne

komponente, odn. komponente na najnižem nivou hijerarhije.

Složene funkcije Bulove algebre se realizuju kombinacijom logičkih kola iz Tabele 1-1. Minimalni skup logičkih

kola predstavlja skup pomoću kojeg se može realizovati bilo koja složena funkcija Bulove algebre. Može se

dokazati da kolo NAND predstavlja minimalni skup, odn. bilo koja funkcija Bulove algebre može da se realizuje

koristeći samo NAND kolo. Slično tako, kolo NOR predstavlja minimalni skup. Zanimljivo je da mnogo korišćenije

funkcije u matematičkoj logici - AND, OR i NOT samostalno ne predstavljaju minimalni skup, već minimalni skup

sadrži sve tri navedene funkcije. Kao primer realizacije složenih funkcija, posmatrajmo funkciju 𝑌 = 𝐴𝐵 + 𝐶. Slika

1-1 pokazuje kako se navedena složena funkcija može realizovati pomoću logičkih kola.

Slika 1-1. Primer realizacije složene Bulove funkcije pomoću logičkih kola

Iako izgleda vrlo skromno, sa dve vrednosti i nekoliko operacija, prostor Bulove algebre je matematički

izuzetno moćan i dovoljan da se izvrše sva matematička računanja - od jednostavnih, kao što su sabiranje,

množenje, do veoma složenih kao što su sistemi odlučivanja u složenim uređajima ili numeričko rešavanje

parcijalnih diferencijalnih jednačina. Svi digitalni uređaji su zasnovani na računanju unutar prostora Bulove

algebre. Računanje prilikom kontrolisanja leta aviona, rada vašeg mobilnog telefona i kućnog računara,

automobila, nečeg složenog kao što je superračunar koji kontroliše let svemirske letelice ili nečeg jednostavnog

kao što je budilnik koji vodi računa da ne zakasnite na vežbe iz LPRS1 – sve se to vrši računanjem u prostoru

Bulove algebre i njene dve vrednosti i minimalno jedna operacija su dovoljne za to.

Page 3: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

3

Tabela 1-1. Digitalna logička kola

Naziv Oznaka Funkcija Istinitosna tablica

NOT

𝑌 = �̅�

X Y

0 1

1 0

AND

𝑌 = 𝑋1𝑋2

X1 X2 Y

0 0 0

0 1 0

1 0 0

1 1 1

OR

𝑌 = 𝑋1 + 𝑋2

X1 X2 Y

0 0 0

0 1 1

1 0 1

1 1 1

XOR

𝑌 = 𝑋1 ⊕𝑋2

X1 X2 Y

0 0 0

0 1 1

1 0 1

1 1 0

NAND

𝑌 = 𝑋1𝑋2̅̅ ̅̅ ̅̅ ̅

X1 X2 Y

0 0 1

0 1 1

1 0 1

1 1 0

NOR

𝑌 = 𝑋1 + 𝑋2̅̅ ̅̅ ̅̅ ̅̅ ̅̅

X1 X2 Y

0 0 1

0 1 0

1 0 0

1 1 0

XNOR

𝑌 = 𝑋1 ⊕𝑋2

X1 X2 Y

0 0 1

0 1 0

1 0 0

1 1 1

Page 4: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

4

Digitalna kola zasnovana na logičkim kolima iz Tabele 1-1 se nazivaju kombinacione mreže. Svaka

kombinaciona mreža zahteva određeno vreme računanja koje mora da protekne da bi se na izlazu pojavio validan

rezultat. Ovo vreme postoji zbog parazitne kapacitivnosti u elektronskim komponentima pomoću kojih se

realizuju logička kola i konačnog vremena koje mora da protekne da bi signal promenio vrednost od visokog ka

niskom potencijalu i obrnuto. Zbog toga se za svako logičko kolo definiše kašnjenje logičkog kola, a kašnjenje

složenog logičkog kola se računa kao kašnjenje na najdužoj putanji od nekog ulaza do nekog izlaza. Za primer sa

Slike 1-1, kašnjenje datog kola jednako je zbiru kašnjenja AND i OR kola, pošto je najduža putanja upravo od ulaza

A ili B do izlaza Y, koja prolazi kroz oba kola (da bi OR kolo moglo da računa izlaz, prvo mora AND kolo da izračuna

vrednost međurezultata). Kašnjenje kola direktno određuje maksimalnu frekvenciju na kojoj digitalni sistem može

da funkcioniše, o čemu ćemo više pričati kasnije.

Iako su dovoljna za sva računanja, logička kola iz Tabele 1-1 nisu dovoljna da bi se realizovao kompletan

digitalni sistem. Da bi računanja imala smisla, rezultat tih računanja negde treba da se zapamti kako bi bio

ponovno iskoristiv. Za tu svrhu se koriste elektronska kola koja imaju dva stanja čime se logička nula i jedinica

mogu „upamtiti“ u tim kolima. Uvodeći mogućnost memorisanja vrednosti, omogućava se da digitalni sistem

prolazi kroz stanja, čime se uvodi sekvencijalnost u rad digitalnog sistema. Kola koja uz komponente iz Tabele 1-1

sadrže i elektronska kola za memorisanje nazivaju se sekvencijalne mreže. O njima će više biti reči kasnije.

Page 5: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

5

ZADACI

2. Moj prvi digitalni sistem (Intel Quartus tutorial)

Projektovanje složenih digitalnih sistema uz pomoć Intel Quartus programskog paketa je moguće

formiranjem:

• logičke šeme digitalnog sistema (Schematic) ili

• HDL (Hardware Description Language) opisa digitalnog sistema

Intel Quartus alat podržava opis digitalnih sistema pomoću dva jezika za opis fizičke arhitekture:

1. VHDL (Very high speed integrated circuit Hardware Description Language)

2. VERILOG

Postupak implementacije digitalnog sistema u Intel Quartus alatu se uopšteno može podeliti u nekoliko

uzastopnih koraka:

1. Formiranje projekta

2. Formiranje datoteke u kojoj će biti opis sistema logičkom šemom ili VHDL jezikom,

3. Opis sistema koristeći logičku šemu ili VHDL jezik,

4. Sinteza digitalnog sistema

5. Dodela pinova

6. Implementacija digitalnog sistema na FPGA integrisano kolo

2.1. Formiranje projekta Nakon pokretanja Intel Quartus programskog paketa, prikazuje se osnovni prozor (Slika 2-1), koji je podeljen

na nekoliko sastavnih prozora:

• Početni prozor (Project Navigator) – levi gornji deo ekrana

Omogućava pregled i izmenu projekta i njegovih elemenata.

• Izlazni prozor (Messages) – donji deo ekrana

Prikazuje izlazne poruke pokrenutih procesa.

• Prozor za zadatke (Tasks) – levi srednji deo ekrana

Omogućava pokretanje programskog prevodioca, kao i pojedinačnih koraka: analiza, sinteza,

asembler, vremenska analiza itd.

• Radni prozor (Workspace) – centralni i najveći deo ekrana

U ovom prozoru se pri samom pokretanju Quartus programa mogu pokrenuti neke početne

operacije, kao što su formiranje projekta, otvaranje već postojećeg projekta, kao i linkovi ka nekim

dodatnim informacijama. Nakon formiranja ili otvaranja projekta, u ovom prozoru se vrši pisanje i

ispravljanje HDL koda ili drugih tekstualnih datoteka, kao i formiranje logičkih šema.

Page 6: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

6

Slika 2-1. Osnovni prozor Intel Quartus programskog paketa

Na početku projektovanja digitalnog sistema potrebno je napraviti projektnu datoteku koja će pamtiti sve

relevantne podatke o projektu (ime projekta, korišćena komponenta, hijerarhijska struktura, datoteke uključene u

projekat). Projektne datoteke se prepoznaju po ekstenziji *.qpf. Kreiranje projekta se može započeti odabirom

komande File > New Project ili pritiskom na New Project Wizard u radnom prozoru, čime se otvara prozor za

definisanje informacija o projektu kao na Slika 2-2.

Slika 2-2. Formiranje novog projekta

Page 7: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

7

U prvo polje Working directory potrebno je upisati lokaciju projektnog direktorijuma u vidu putanje do

odredišnog direktorijuma, dok u drugo polje Name treba upisati ime projekta. Treće polje Top-level design entity

dobija automatski naziv koje je dato u drugom polju.

Pritiskom na dugme Next prelazi se na sledeći prozor Project Type, gde je moguće izabrati kreiranje novog

projekta (Empty project) bez unapred definisanih datoteka ili kreiranje projekta sa unapred definisanim

datotekama (Project template). Za potrebe ove vežbe izaberite prvu opciju Empty project (Slika 2-3).

Slika 2-3. Izbor tipa projekta

Sledeći prozor omogućava dodavanje postojećih datoteka što ćemo u ovoj vežbi preskočiti pritiskom na

dugme Next (Slika 2-4).

Slika 2-4. Dodavanje postojećih datoteka

Page 8: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

8

U ovom koraku je potrebno podesiti tip uređaja tj. programske platforme za koju se projektuje digitalni sistem

(Slika 2-5). U našem slučaju treba odabrati familiju MAX 10 (DA/DF/DC/SA/SC) i uređaj MAX 10 SA. Zatim u

desnom delu prozora treba izabrati paket UFBGA, broj pinova 169 i ocenu brzine jezgra 8. U donjem delu prozora

će se pojaviti lista dostupnih uređaja koja obuhvata prethodno zadate parametre i treba izabrati uređaj

10M16SAU169C8G. Ovaj korak je neophodan ukoliko želimo da naš dizajn/blok šemu spustimo na ploču i

probamo je uživo.

Slika 2-5. Odabir programabilne sekvencijalne mreže

Ukoliko postoji potreba za dodavanjem alata drugih proizvođača (Third-party tools), to je moguće uraditi u

sledećem koraku podešavanjem EDA alata (Electronic Design Automation). U ovom koraku je potrebno podesiti

polje Simulation, radi simulacije digitalnog sistema.

Simulator će biti primarni način da proverimo ispravnost rada našeg sistema. U praksi se simulator i ploča

koriste zajedno prilikom razvoja. Prednost realne fizičke ploče jeste njena brzina i preglednost, dok je prednost

simulatora to što nam daje mnogo detaljniji uvid u vrednosti svih intenrih signala. Takođe, tipično u jednom timu

više projektanata sistema deli jednu ploču.

Sama provera ispravnosti sistema se obavlja uz pomoć posebnih VHDL datoteka koji se zovu Test Bench-ovi.

Njima ćemo se detaljnije baviti kasnije u toku semestra. U ovom trenutku je dovoljno samo podesiti ModelSim-

Alteru kao simulator i pritisnemo na dugme Next (Slika 2-6).

Page 9: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

9

Slika 2-6. Podešavanje EDA alata

Poslednji prozor za formiranje projekta prikazuje sažetak prethodno odabranih postavki (Slika 2-7). Ukoliko je

potrebno promeniti neki parametar, klikom na dugme Back se može vratiti unatrag kroz opisane prozore i

promeniti željena informacija. Klikom na dugme Finish se završava formiranje projekta i dobija se osnovni Intel

Quartus prozor kao na Slici 2-8.

Slika 2-7. Sažetak odabranih postavki za novi projekat

Page 10: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

10

Slika 2-8. Početni prozor novog projekta u Intel Quartus programskom paketu

2.2 Formiranje logičke šeme digitalnog sistema Nova datoteka u koju će biti smeštena logička šema digitalnog sistema se formira izborom File->New iz

glavnog menija, nakon čega dobijamo prozor kao na Slici 2-9. Potrebno je izabrati Block Diagram/Schematic File i

pritisnuti OK.

Slika 2-9. Formiranje datoteke sa opisom digitalnog sistema

Nakon ovog koraka, potrebno je dati ime novoj datoteci u koju će se smestiti logička šema izborom Save As iz

File menija. U polje File name potrebno je uneti ime datoteke, dok u polju Save as type treba izabrati Block

Page 11: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

11

Diagram/Schematic File (*.bdf). Takođe je potrebno označiti polje Add file to current project. Zatim pritisnite

dugme Save, kako bi sačuvali novoformiranu datoteku u projektni direktorijum (Slika 2-10).

Slika 2-10. Dodavanje nove datoteke u Quartus projekat

Konačni izgled prozora sa grafičkim editorom za pravljenje logičke šeme prikazan je na Slici 2-11. Logička

šema se formira dodavanjem elemenata logičkih kola pritiskom na dugme koje izgleda kao logičko AND kolo ,

koje je obeleženo na Slici 2-11 ili duplim pritiskom na grafički prozor. Tada se otvara novi prozor prikazan na Slici

2-12, koji omogućava veliki izbor logičkih kola, ulaza, izlaza itd.

Slika 2-11. Grafički prozor za pravljenje logičke šeme

Page 12: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

12

Slika 2-12. Dodavanje elemenata logičke šeme

Simboli koji odgovaraju logičkim kolima iz Tabele 1-1 su:

• not – invertor (logičko kolo NOT),

• and2 – dvoulazno AND kolo,

• or2 – dvoulazno OR kolo,

• xor2 – dvoulazno XOR kolo,

• nand2 – dvoulazno NAND kolo,

• nor2 – dvoulazno NOR kolo,

• xnor2 – dvoulazno XNOR kolo.

Veze između kola se definišu spajanjem njihovih ulaza/izlaza pomoću žica: Orthogonal Node Tool.

Ulazi i izlazi sistema se definišu pomoću ulazno/izlaznih markera: Pin Tool (Input, Output, Bidir).

Nakon što je završeno pravljenje logičke šeme, potrebno je dati imena ulazima i izlazima. Duplim klikom na

ulaz, otvara se prozor kao na Slici 2-13 i potrebno je dodeliti imena ulazima i izlazima i podesiti podrazumevanu

vrednost na VCC ili GND.

Slika 2-13. Dodela imena ulazima i izlazima

Page 13: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

13

2.3.Opis digitalnog sistema logičkom šemom Vreme je da opišete vaš prvi digitalni sistem! Nacrtajte logičku šemu sistema sa Slike 2-14.

Slika 2-14. Naš prvi digitalni sistem

2.4. Sinteza digitalnog sistema Napravljena datoteka sa logičkom šemom MyFirstDigitalSystem.bdf se obrađuje pomoću nekoliko Quartus

Prime alata za analizu i sintezu i generiše implementaciju za ciljnu platformu. Ovi alati se kontrolišu pomoću

prevodioca.

Prevođenje se pokreće izborom Processing->Start Compilation iz glavnog menija ili pritiskom na dugme u

gornjem delu ekrana koje izgleda kao plavi trougao . U toku prevođenja prikazuju se poruke u donjem prozoru,

dok se nakon završetka prikazuje prozor sa statusom, greškama i upozorenjima.

Ukoliko je digitalni sistem ispravan, jedna od poslednjih poruka će biti da je prevođenje uspešno završeno i da

nema grešaka. Ukoliko ipak greške postoje, duplim klikom na poruku sa greškom, Intel Quartus će prikazati deo na

šemi koji ima problem. Ispravite grešku i ponovo pokrenite prevođenje.

2.5. Provera ispravnosti sistema – VHDL test bench

Nakon uspešne sinteze sistema, sledeći korak je provera ispravnosti. To je moguće uraditi na dva načina – uz

pomoć razvojne ploče i uz pomoć simulatora. U slučaju razvojne ploče slede još dva koraka i to su dodela pinova

(proces gde se ulazi i izlazi našeg dizajna povezuju na fizičke komponente kao što su prekidači, diode i slično) i

implementacija (pravljenje posebne datoteke koja se koristi za konfiguraciju FPGA integrisanog kola koje potom

emulira naš sistem). S obzirom da u najvećem delu semestra nećete imati ploču pored sebe, mi ćemo ispravnost

naših sistema proveravati uz pomoć simulatora. Generalno je praksa da se u ranim fazama razvoja oslanjamo

prvenstveno na simulator, a kasnije na ploču. Za potrebe simulatora je potrebno kreirati posebnu VHDL datoteku

koja se naziva Test Bench.

Test bench je digitalni sistem BEZ PROLAZA i služi isključivo za proveru rada nekog drugog digitalnog sistema.

Zadatak test bencha je da definiše ulaz u sistem koji proverava i kupi vrednosti izlaza u svoje interne signale, kako

bi oni mogli biti analizirani od strane alata za simulaciju.

Za razliku od opisa samog sistema (bilo da je u pitanju blok šema ili VHDL opis), test bench opisuje sekvencu

vrednosti ulaznih signala, čime se poprilično razlikuje od samog opisa digitalnog sistema koji nema sekvencijalnost

odnosno vremensku komponentu. Test bench uvodi sekvencijalnost u svoj opis zbog potrebe da se u njemu

definiše vremenski redosled signala, odnosno da se jasno definiše kada se koja vrednost šalje na ulaz i koliko traju

pauze između dve promene vrednosti na ulazu. Test bench biva korišten isključivo od strane simulatora,

programskog alata za simulaciju rada digitalnog sistema, zbog čega i biva interpretiran na „softverski“ način,

sekvencijalno.

Page 14: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

14

Pre nego što napravimo test bench datoteku, potrebno je podesiti EDA alate u slučaju da ste taj korak

preskočili tokom kreiranja projekta. Izborom opcije u glavnom meniju Assignment->Settings->EDA Tool Settings

podesite deo za simulaciju kao na Slici 2-15. Na vežbama ćemo koristiti alat ModelSim-Altera i format VHDL za

opis digitalnog sistema i test datoteke, tako da je potrebno izabrati ove dve opcije.

Slika 2-15. Podešavanje simulatora

Simulator je sada podešen i potrebno je ponovo prevesti ceo projekat, kako bi se kreirao folder za simulaciju

u koji ćemo dodati novu datoteku za testiranje. U slučaju da ste prilikom kreiranja projekta već podesili ovu

stavku, automatski će biti kreiran folder za simulaciju.

Napravite novu *.vhd datoteku, a zatim je sačuvajte kao *_tb.vhd, gde je * naziv entiteta koji se testira (u

našem slučaju MyFirstDigitalSystem), a dodatak u nazivu tb označava da je to test bench datoteka.

Test datoteku je potrebno snimiti u folderu simulation/modelsim i dodati je u projekat pomoću opcije menija

Project->Add/Remove Files in Project...

Takođe je potrebno dodati test bench datoteku i u simulaciju izborom Assignment->Settings->EDA Tool

Settings->Simulation kao na Slici 2-16 i Slici 2-17.

Page 15: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

15

Slika 2-16. Dodavanje nove test bench datoteke 1/2

Pritisnite Test Benches… dugme i otvoriće se prozor za dodavanje nove datoteke, gde je potrebno uneti ime

test datoteke (može biti više test bench datoteka), podesiti period simulacije na 1 µs, navesti putanju do test

bench datoteke i pritisnuti Add.

Slika 2-17. Dodavanje nove test bench datoteke 2/2

Page 16: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

16

Nakon kreiranja test datoteke i dodavanja u projekat i simulaciju, možemo početi sa pisanjem koda koji će

testirati naš digitalni sistem. Listing 1-1 prikazuje kako treba da izgleda test bench za verifikaciju našeg prvog

digitalnog sistema.

Listing 1-1. Struktura VHDL test bench datoteke library ieee;

use ieee.std_logic_1164.all;

entity MyFirstDigitalSystem_tb is

end MyFirstDigitalSystem_tb;

architecture Test_tb of MyFirstDigitalSystem_tb is

signal sA : std_logic;

signal sB : std_logic;

signal sY : std_logic;

component MyFirstDigitalSystem

port(

iA : in std_logic;

iB : in std_logic;

oY : out std_logic

);

end component;

begin

-- instanciranje i mapiranje glavnih portova i signala

uut : MyFirstDigitalSystem port map (

iA => sA,

iB => sB,

oY => sY

);

stimulus : process

begin

sA <= '0';

sB <= '0';

wait for 100 ns;

sA <= '0';

sB <= '1';

wait for 100 ns;

sA <= '1';

sB <= '0';

wait for 100 ns;

sA <= '1';

sB <= '1';

wait;

end process stimulus;

end architecture;

Page 17: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

17

Sve VHDL datoteke se sastoje iz tri dela: use, entity i architecture. Iako se test bench-evi suštinski razlikuju

od VHDL opisa sistema, i dalje prate istovetnu strukturu.

Use deo se nalazi na početku svake VHDL datotete i nakon te ključne reči se navode sve biblioteke koje će biti

korišćene. Za potrebe ovog semestra nama će biti dovoljne samo dve: biblioteka u kojoj se nalaze standardni

logički tipovi i digitalna logička kola (ieee.std_logic_1164) i malo kasnije u semestru ćemo se upoznati i sa

bibliotekom koja nam omogućuje neke osnovne aritmetičke operacije sa neoznačenim i sa označenim brojevima.

Entity deo definiše prolaze (ulaze i izlaze) sistema. Preko prolaza koji se nazivaju port-ovi, naš sistem može da komunicira sa spoljašnim svetom. Ako pogledamo šemu našeg prvog digitalnog sistema i odlučimo da ga opišemo uz pomoć VHDL-a, u ovom delu bismo naveli ulaze iA i iB kao i izlaz oY i rekli da su tipa std_logic. Kada je reč o test bench-evima, entity deo će uvek biti prazan iz razloga što je test bench u suštini digitalni sistem bez prolaza – on je krajnja tačka i neće se povezivati ni sa kakvim spoljašnim svetom.

Deo architecture opisuje “unutrašnost” sistema. U primeru našeg prvog digitalnog sistema bismo ovde naveli

da naš sistem ima jedno AND kolo, kao i jedan invertor (NOT). Kod arhitekture test bencha, definišemo samo

interne signale u koje ćemo mapirati ulaze i izlaze iz glavnog entiteta koji testiramo i koji smo opisali u prethodnoj

VHDL datoteci. Potrebno je napraviti onoliko signala koliko imamo prolaza u glavnom entitetu (blok

šemi/dizajnu).

Takođe, u okviru arhitekture test bench-a moramo instancirati komponentu koju ćemo testirati i povezati

njene prolaze sa signalima u test bench-u (port map). Prvo je potrebno uraditi deklaraciju komponente.

Komponenta izgleda indentično kao entity blok modula koji želite da uključite, samo je ključna reč entity

zamenjena sa component. Komponenta se deklariše u sekciji pre ključne reči begin unutar arhitekture. Posle toga

se glavni entitet instancira unutar arhitekture, ali posle begin. Prilikom mapiranja (povezivanja) prolaza i signala,

potrebno je sa leve strane navesti prolaze glavnog entiteta, a sa desne strane znaka => signale iz test bench

arhitekture.

Nakon instanciranja komponente i mapiranja, potrebno je zadati sekvencu ulaznih vrednosti sa kojima želimo da verifikujemo sistem i to ćemo navesti u stimulus procesu, nakon ključne reči begin od stimulus procesa.

Kako bi verifikovali da naš sistem radi ispravno, poželjno je u test bench-u pokriti sve moguće kombinacije

ulaza (iA i iB) iz istinitosne tablice, a zatim u simulaciji proveriti da li smo dobili željeni rezultat (oY) za svaku od

zadatih kombinacija ulaza.

Naš sistem ima 2 ulaza i potrebno je verifikovati ukupno 22 tj. 4 kombinacije, tako da ćemo ispravnost sistema proveriti koristedi sledeću sekvencu ulaznih vrednosti:

• na početku, oba ulaza neka budu jednaka 0 i neka to stanje traje 100 ns,

• nakon toga, neka signal iA ima vrednost 0, a signal iB vrednost 1 i neka novo stanje traje 100 ns,

• nakon toga, neka signal iA ima vrednost 1, a signal iB vrednost 0 i neka novo stanje traje 100 ns,

• nakon toga, oba ulaza neka budu jednaka 1 i neka ovo stanje traje do kraja simulacije.

Na ovaj način smo pokrili sve kombinacije iz istinitosne tablice za ulaze iA i iB.

Vremenska komponenta u opisu sekvence ulaznih vrednosti se opisuje koristeći wait for iskaz. Ovaj iskaz

govori simulatoru koliko dugo da „drži“ vrednosti na ulazu do naredne promene.

Komentari u VHDL-u se pišu nakon dva minusa (--). Sve navedeno nakon toga alat ignoriše.

Page 18: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

18

Na kraju stimulus procesa treba navesti iskaz wait jer on govori simulatoru da poslednje stanje ulaznih

signala zadrži beskonačno, odnosno do kraja simulacije. U suprotnom, simulacija će stati istog trenutka i

verovatno nećete biti u mogućnosti da vidite izlaz za poslednju kombinaciju ulaza.

U slučaju da vam ovo sve deluje komplikovano i da ima previše informacija, budite bez brige – to je proces

koji je stalno isti prilikom kreiranja svakog novog projekta i kroz par vežbi ćete ga savladati u potpunosti i biti u

stanju da pišete sopstvene test bench datoteke.

* * *

Kada smo uspešno napisali i uvezali naš test bench, sledeći korak jeste samo pokretanje simulacije. Nažalost,

simulator Modelsim-Altera nije u stanju da direktno simulira blok šeme. Ono što nam razrešava ovaj problem

jeste što se iz logičke blok šeme samo jednim klikom može izgenerisati u potpunosti ekvivalentan sistem koji će

biti opisan u VHDL-u. Detalji se vide na slici 2-18.

Slika 2-18. Generisanje ekvivalentne VHDL datoteke spram blok šeme 1/2

Potrebno je označiti našu šemu, zatim kliknuti na File->Create/Update->Create HDL Design File from Current

File. Otvoriće se novi dijalog kao na slici 2-19. Potrebno je odabrati opciju VHDL. U vrlo kratkom roku će alat

izgenerisati novu datoteku pod istim imenom ali ovoga puta sa ekstenzijom .vhdl.

Page 19: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

19

Slika 2-19. Generisanje ekvivalentne VHDL datoteke spram blok šeme 2/2

U okviru Quartus projekta ne možemo imati dva ili više dizajnova koji se zovu identično. Iz tog razloga ćemo

iz projekta isključiti našu šemu (ima ekstenziju .bdf) a ubaciti novu izgenerisanu datoteku. Ovo možemo uraditi

klikom na padajući meni Project->Add/Remove Files in Project. Klikom na ... koje se nalazi u produžetku File

name: možemo pretražiti naš računar i tu pronaći i dodati sve datoteke koje želimo. Datoteke izbacujemo iz

projekta tako što ih obeležimo i kliknemo na Remove.

Slika 2-20. Izbacivanje šeme/ubacivanje izgenerisane VHDL datoteke

Page 20: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

20

Kada smo završili zamenu jednog dizajna drugim, potrebno je sačuvati projekat i još jednom pokrenuti proces

sinteze. Ukoliko dobijete poruku da je sinteza uspešno završena možemo (konačno) preći na pokretanje

simulacije.

2.6. Pokretanje simulacije

ModelSim-Altera simulator je sastavni deo Intel Quartus programskog paketa. Uz pomoć ovog programa

moguće je izvršiti funkcionalnu proveru ispravnosti digitalnog sistema koji se projektuje. Ovde se navode samo

osnovne komande za njegovo korišćenje.

Simulacija HDL koda se izvršava u tri osnovna koraka (važi za svaki HDL simulator):

• Prevođenje izvornog koda (Compile) – sadrži ranije navedenu opciju za proveru sintakse

• Pokretanje radnog režima za simulaciju (Simulate)

• Pokretanje simulacije (Run)

Kada se ModelSim-Altera simulator pozove iz radnog okruženja sva tri koraka se izvrše automatski. U slučaju

greške u nekom od koraka, poruka o grešci će biti ispisana u konzoli.

U prethodnim koracima za pisanje test bench datoteke uradili smo delimično podešavanja i za simulator. Za

ispravnu simulaciju, takođe je potrebno podesiti putanju do izvršne datoteke ModelSim-Altera simulatora

izborom opcije glavnog menija Tools->Options->General->EDA Tool Options i u polju ModelSim-Altera podesiti

putanju do foldera sa izvršnom datotekom, kao na Slici 2-21.

Slika 1-21. Podešavanje putanje do izvršne datoteke ModelSim-Altera simulatora

Page 21: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

21

U zavisnosti od lokacije na kojoj ste instalirali Quartus je moguće da će ova putanja kod vas biti različita. Bitno

je da putanja pokazuje na win32aloem direktorijum. U slučaju da imate problem sa ovim, probajte na kraju da

dodate još jedan \ posle win32aloem.

Sada možemo pokrenuti ModelSim-Altera simulator u meniju Tools->Run Simulation Tool->RTL Simulation i

dobićemo prozor kao na Slici 2-22.

Slika 2-22. Izgled osnovnog prozora ModelSim-Altera simulatora

Izborom opcije Simulate->Start Simulation, otvoriće se prozor kao na Slici 2-23, gde u polju work vidimo koje

su sve datoteke uključene u simulaciju. Potrebno je izabrati test bench datoteku koji želimo da simuliramo i

pritisnemo OK.

Slika 2-23. Pokretanje simulacije

Page 22: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

22

Nakon toga, otvara se novi prozor, gde se sa leve strane nalazi sim prozor u kojem su prikazani delovi sistema

(Design Unit) i podržane biblioteke, dok se u desnom delu nalaze odgovarajući signali (Slika 2-24).

Slika 2-24. Prikaz signala u simulaciji

Za svaki signal koji želite da pratite u dijagramu signala, pritisnite desni klik na ime signala u prozoru Objects i

izaberite Add To / Wave / Selected Signal, nakon čega će se pojaviti prozor za iscrtavanje signala (Slika 2-25).

Pored signala sa vrha hijerarhije, moguće je dodati i druge signale u prozor za prikaz rezultata simulacije. Oblici

naknadno uključenih signala će biti iscrtani samo u vremenskim trenucima simulacije nakon trenutka uključivanja

signala u listu. Ukoliko želimo omogućiti iscrtavanje oblika svih signala od nultog trenutka (i onih naknadno

dodatih) neophodno je zatvoriti prozor rezultata simulacije i ponovo pokrenuti simulaciju. Alternativno možete

restartovati simulaciju i ponovo pokrenuti opciju Run.

Page 23: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

23

Slika 2-25. Dodavanje signala za iscrtavanje

U gornjem delu prozora sa ikonicama, pronađite ikonicu koja definiše period signala (npr. 100ns). Desno od te

ikonice je ikonica za pokretanje simulacije. Pokrenite simulaciju i signali će se pojaviti u prozoru za iscrtavanje, kao

na Slici 2-26. Svi signali bi trebali biti zelene boje. Ukoliko je neki signal crvene boje, to znači da jedan ili više ulaza

nisu definisani dobro. Sada proverite da li su dobijeni rezultati dobri uz pomoć istinitosne tablice.

Slika 2-26. Pokretanje simulacije

Page 24: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

24

Grupa ikona na Slici 2-27 omogućava podešavanje prikaza signala kao i kontrolu toka izvršenja simulacije.

Slika 2-27. Ikonice za podešavanje signala i kontrolu izvršenja simulacijee

Značenja pojedinih ikona su:

• Zoom In – povećanje nivoa uvećanja.

• Zoom Out – smanjenje nivoa uvećanja.

• Zoom to Full View – podešavanje nivoa uvećanja na nivo koji omogućava pregled kompletnog

toka simulacije.

• Find Previous Transition – skok na prethodnu promenu signala.

• Find Next Transition – skok na narednu promenu signala.

• Insert Cursor – postavljenje pojedinačnog markera.

• Delete Cursor – uklanjanje pojedinačnog markera.

• Restart – restartovanje simulacije.

• Run All – pokretanje izvršenja simulacije na neodređen vremenski period.

• Run– pokretanje izvršenja simulacije na vremeski period definisan u susednom polju.

• Run Length – dužina trajanja simulacije

• Step Into – izvršenje simulacije korak po korak sa uvidom u progres izvršenja u HDL kodu.

• Break – zaustavljanje izvršenja simulacije.

Da bi simulacioni dijagram bio pregledniji, potrebno je pritisnuti na ikonu Zoom to Full View. Na početku,

dijagram prikazuje sve signale i vektore u binarnim vrednostima. Radi lakše čitljivosti vektora, moguće je

promeniti način ispisivanja njihovih vrednosti u neki drugi brojni sistem, npr. heksadecimalni.

2.7. *Bonus – kratko pojašnjenje izgenerisane VHDL datoteke

Kada ste ustanovili da sistem radi ispravno, ukoliko vas zanima možete otvoriti izgenerisanu VHDL

datoteku. Ona bi trebala da izgleda slično kao na Listingu 2.1.

Listing 2-1. Struktura VHDL test bench datoteke

library ieee;

use ieee.std_logic_1164.all;

library work;

entity MyFirstDigitalSystem is

port (

iA : in std_logic;

iB : in std_logic;

oY : out std_logic;

);

end MyFirstDigitalSystem;

Page 25: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

25

architecture bdf_type of MyFirstDigitalSystem is

signal sS : std_logic;

begin

sS <= iA and iB;

oY <= not(sS);

end architecture;

Pojasnićemo samo nekoliko osnovnih detalja za ovaj čas, a više detalja ćete dobiti tokom narednih vežbi.

Kao što smo spomenuli prilikom pisanja test bench-a, i ova VHDL datoteka ima 3 dela. U prvom delu su

nabrojane biblioteke koje će se koristiti.

U delu entity se navode imena prolaza, njihov smer (ulaz ili izlaz) i njihov tip (standardni logički tip).

U okviru arhitekture se navode svi interni signali pre nego što krene sam opis. U našem slučaju mi imamo

samo jedan interni signal S. Prilikom opisa kombinacionih mreža signali nisu neophodni, ali nam oni olakšavaju

posao time što nam omoguću da pišemo preglednije opise i što nam u simulaciji omogućuju da vidimo

„međurezultate“ u svim delovima sistema. Ovo nije slučaj kod sekvencijalnih mreža koje ćemo raditi kasnije u

toku semestra – kod njih je OBAVEZNO korišćenje signala. Preporuka je da signale koristite stalno.

Sva digialna logička kola imaju odgovarajući operator u vidu ključne reči. Tako da umesto kola za konjunkciju

koristimo reč and, kao što za negaciju koristimo reč not. Ovde je zgodno spomenuti i to da VHDL ne pravi razliku

između velikih i malih slova. Samim tim, nije moguće imati signal ss i sS i SS.

I verovatno najbitnija lekcija sa prve vežbe jeste da ovaj opis arhitekture iako liči na programski jezik nema

nikakve veze sa programiranjem. Iskazi gde signal sS dobija vrednog konjinkcije ulaza iA i iB a izlaz oY dobija

negiranu vrednost signala sS nisu nikakve instrukcije. Uopšte ne postoji vremenska komponenta. Ako bi zamenili

mesta ovim iskazima, rezultat bi ostao nepromenjen, kao da smo električnu šemu nacrtali u ogledalu – tako da se

ulazi nalaze sa desne strane a izlaz sa leve. Iako ćemo tokom semestra koristiti još neke dodatne konstrukcije sa

kojima ste se već sretali na ranijim godinama studija, bitno je uvek držati u podsvesti da sve što mi radimo na

ovom predmetu jeste opis same fizičke arhitekture.

Page 26: POKAZNA VEŽBA 1alat koji omogućava ne samo da opišete digitalni sistem nego i da ga simulirate, tj. proverite njegov rad, i implementirate na određenoj fizičkoj platformi. Znanje

Pokazna vežba 1 – Osnovi projektovanja digitalnih sistema na nivou logičkih kola 2020/21

26

3. Moj (već) drugi digitalni sistem

Čestitamo na vašem prvom uspešno projektovanom, opisanom i proverenom digitalnom sistemu! Sada je

vreme da sami implementirate nešto složeniji sistem (kombinacionu mrežu) sa 3 izlaza i 3 ulaza. Pretpostavimo da

je naš novi digitalni sistem opisan sledećom istinitisnom tablicom, tj. sledećim trima Bulovim funkcijama od 3

promenljive:

iX2 iX1 iX0 oY2 oY1 oY0

0 0 0 0 0 1

0 0 1 0 1 0

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Sledeće jednačine predstavljaju Bulove funkcije koje sistem računa:

𝑜𝑌2 = 𝑖𝑋2 ∗ 𝑖𝑋0̅̅ ̅̅̅ + 𝑖𝑋2 ∗ 𝑖𝑋1̅̅ ̅̅̅ + 𝑖𝑋2̅̅ ̅̅̅ ∗ 𝑖𝑋1 ∗ 𝑖𝑋0

𝑜𝑌1 = 𝑖𝑋1 ∗ 𝑖𝑋0̅̅ ̅̅̅ + 𝑖𝑋1̅̅ ̅̅̅ ∗ 𝑖𝑋0

𝑜𝑌0 = 𝑖𝑋0̅̅ ̅̅̅

Vaš zadatak je da prođete kroz sve korake projektovanja sistema i opišete i implementirate ovaj sistem

koristeći Intel Quartus alat. Napravite novi projekat i nazovite ga MySecondDigitalSystem. Ovaj naziv će biti

zgodan jer ćete moći da iskoristite dobar deo test bench-a koji smo koristili za zadatak 1 i samo promenite imena

gde je potrebno.

I za kraj jedno

4. Zaključak

Ova vežba vas je upoznala sa pojmom digitalnih logičkih kola i kombinacionih mreža kao fizičkim realizacijama

Bulovih funkcija. Videli ste kako se digitalni sistem projektuje, od momenta ideje na papiru, preko opisa sistema

do simulacije. Znanje koje ste dobili u ovoj vežbi je dovoljno da ste u stanju samostalno da projektujete bilo koju

kombinacionu mrežu zadatu Bulovim funkcijama. U narednoj vežbi ćemo raditi nešto složenije digitalne sisteme

uz primenu Karnoovih mapa i VHDL jezika za opis fizičke arhitekture.

Pitanje: Ukoliko ulaz i izlaz sistema posmatramo kao 3-bitne brojeve (gde je indeks bita jednak stepenu

mesne vrednosti broja), koju matematičku funkciju ovaj sistem računa?