Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
1
POKAZNA VEŽBA 2
Projektovanje složenih digitalnih sistema
Potrebno predznanje
Urađena pokazna vežba 1
Digitalna logička kola
Projektovanje digitalnog sistema uz pomoć logičke šeme pomoću Intel Quartus alata
Karnoove mape
Implementacija digitalnog sistema na FPGA integrisano kolo
Šta će biti naučeno tokom izrade vežbe?
Nakon urađene vežbe, bićete u mogućnosti da:
minimizujete logičke funkcije uz pomoć Karnoovih mapa i opišete dobijenu funkciju preko logičke šeme u
Intel Quartus alatu
napravite logičku šemu za digitalni sistem koji će upravljati 7-segmentnim displejom na MAX 10 platformi.
sintetišete i implementirate vaš sistem za FPGA integrisano kolo
Apstrakt i motivacija
Implementacija složenih sistema koji se sastoje od više logičkih kola, ulaza i izlaza može oduzeti mnogo
vremena. Minimizacijom logičkih funkcija dobijamo uštedu u hardverskim komponentama koje implementiraju
logička kola za izračunavanje pojedinih logičkih funkcija. Svaka logička operacija zahteva jedno kolo i svaki ulaz
logičke operacije zahteva hardversku implementaciju. Minimizacijom ulaza i broja operacija pojeftinjuje se izrada
hardvera. Karnoova mapa je nekad bila uobičajen način da se ručno pojednostave Bulovi izrazi. Često se koristi za
projektovanje digitalnih kola, ali i za programsku logiku (npr. pojednostavljivanje kompleksnog if-else bloka).
Karnoova mapa smanjuje potrebu za obimnim proračunima, tako što se iskorišćava ljudska sposobnost
prepoznavanja uzoraka. Danas je ipak kompjuterski program bolji od ljudskog u opsežnim proračunima, ali je lošiji
od ljudi prilikom prepoznavanja uzoraka.
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
2
TEORIJSKE OSNOVE
1. Minimizacija logičkih funkcija
Cilj minimizacije logičkih funkcija je smanjenje broja logičkih kola u mrežama kojima se date logičke funkcije
realizuju. Tri osnovna načina za minimizaciju logičkih funkcija su:
Analitička metoda
Grafička metoda
Tabelarna metoda
Logička funkcija se može napisati na više razlićitih načina, ali nije svaka minimizacija podjednako pogodna za
praktičnu realizaciju.
Analitički metod se zasniva na matematičkim transformacijama, koje koriste aksiome i teoreme Bulove
algebre, tako da je kod složenih funkcija teško primenjiva.
Najčešće korišćena grafička metoda je minimizacija pomoću Karnoovih mapa, koja koristi modifikovanu
kombinacionu tablicu sa brojem ćelija jednakim broju slogova Bulove funkcije. Karnoove mape se koriste za brzu
minimizaciju Bulovih funkcija do 5 promenljivih. Zbog složenosti i algebarskih pravila, češće se koriste Karnoove
mape, koje predstavljaju vizuelni prikaz istinitosne tablice, u zavisnosti od promenljivih ulaza.
Tabelarne metode za minimizaciju predstavljaju potpuno formalizovane procedure, koje dovode do
jednoznačnog rezultata i pogodne su za programsku implementaciju.
Postupak minimizacije pomoću Karnoovih mapa se obavlja sledećim koracima:
1. Nacrtati Kornoovu mapu odgovarajuće dimenzije i popuniti je na osnovu date logičke funkcije.
2. Susedne kombinacije ulaza se mogu razlikovati samo za 1 bit
3. Formirati veće pravougaone površine od 2k susednih polja koje obuhvataju samo jedinice (k=0,1, ... ,n).
4. Rezultujući izraz napisati u obliku sume proizvoda izostavljajući promenljive koje u istoj pravougaonoj
površini imaju različite vrednosti.
Pravila za formiranje pravougaonih površina:
1. Prvo se izdvajaju najveće površine, koje u tabeli obuhvataju jedinicu koja nije obuhvaćena nijednom
drugom površinom.
2. Sve preostale jedinice u tabeli se takođe grupišu u što veće pravougaone površine.
3. Ukoliko postoji potreba, iste jedinice se mogu grupisati više puta tj. mogu pripadati većem broju
pravougaonih površina.
U nastavku je dat primer kako se radi minimizacija Karnoovom mapom za sledeću logičku funkciju:
F = B2B1B0 + B2B1B0 + B2B1B0 + B2B1B0
Data logička funkcija zavisi od 3 promenljive, tako da je potrebno napraviti kombinacionu tablicu sa 23
kombinacija. Na osnovu zadate logičke funkcije popunićemo tabelu sa nulama i jedinicama, a zatim u izlaznu
kolonu uneti jedinice samo za one kombinacije ulaza, koje postoje u zadatoj Bulovoj funkciji, kao na Slici 1-1.
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
3
B2 B1 B0 F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Slika 1-1. Istinitosna tablica za zadatu logičku funkciju
Sada ćemo nacrtati Karnoovu mapu sa svim mogućim kombinacijama ulaza B2, B1 i B0, uz obavezno PRAVILO
da se susedne kombinacije vrednosti ulaza MOGU RAZLIKOVATI SAMO u 1 BITU, kao na Slici 1-2.
Slika 1-2. Minimizacija pomoću Karnoovih mapa
Na osnovu istinitosne tablice popunjavamo vrednosti izlaza u odnosu na kombinacije ulaza. U tabeli je zatim
potrebno grupisati jedinice u pravougaone površine od 2k susednih polja. U našem slučaju k=1 i imamo ukupno 3
pravougaone površine po 2 jedinice. Rezultat minimizacije je suma 3 pravougaonika za promenljive sa istim
vrednostima:
Y = B2B0 + B2B1 + B1B0
Dobijena minimizovana funkcija je prostija u odnosu na zadatu funkciju i potrebno je manje logičkih kola za
njenu realizaciju.
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
4
2. Upravljanje 7-segmentnim displejom na MAX 10 platformi
Platforma MAX 10 ima četiri 7-segmentna displeja za prikaz decimalnih brojeva ili slova. Ovaj displej je prilično
često u upotrebi kod raznih vrsta prikaznih uređaja i može se naći u digitalnim satovima, uređajima za merenje,
industriji, kalkulatorima i ostalim elektronskim uređajima koji imaju potrebu za prikazom brojne vrednosti.
Na Slici 2-1. je prikazan 7-segmentni displej, koji se sastoji od 7 segmenata (3 horizontalna i 4 uspravna) i svaki
segment je zapravo nezavisna LED dioda. Svaki segment je obeležen redom slovima u smeru kretanja kazaljke na
satu: a, b, c, d, e, f, g. Za prikaz decimalne tačke koristi se poseban segment dp.
Slika 2-1. Izgled 7-segmentnog displeja
Brojevi od 0 do 9, kao i slova A, B, C, D, E i F, mogu se ispisati aktiviranjem odgovarajućih delova 7-
segmentnog displeja, kao što je prikazano na Slici 2-2. Svaki od segmenata se aktivira tj. svetli podešavanjem
odgovarajućeg pina. Listu sa svim pinovima možete pronaći u dokumentu LPRS1_FPGA_pins.pdf.
Slika 2-2. Ispis brojeva i slova na 7-segmentnom displeju
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
5
Za prikaz brojeva od 0 do 9 u binarnom formatu potrebno nam je 4 bita, dok 7-segmentni displej ima 7
segmenata, tako da je u Tabeli 2-1 data istinitosna tablica u kojoj se vidi koje segmente je potrebno aktivirati kako
bi bio prikazan svaki od brojeva 0 do 9, kao i slova A do F.
NAPOMENA: Segmenti 7-segmentnog displeja na MAX 10 platformi su aktivni na 0, tako da ih treba invertovati
u odnosu na Tabelu 2-1.
Tabela 2-1. Istinitosna tablica za prikaz brojeva i slova na 7-segmentni displej
Dekadna cifra Binarni format Segmenti na 7-segmentnom displeju
B3 B2 B1 B0 a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1
A 1 0 1 0 1 1 1 0 1 1 1
B 1 0 1 1 0 0 1 1 1 1 1
C 1 1 0 0 1 0 0 1 1 1 0
D 1 1 0 1 0 1 1 1 1 0 1
E 1 1 1 0 1 0 0 1 1 1 1
F 1 1 1 1 1 0 0 0 1 1 1
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
6
ZADACI
3. Implementacija složenog digitalnog sistema pomoću Karnoovih mapa
U ovoj vežbi ćemo uraditi implementaciju malo složenijeg digitalnog sistema, koji je opisan logičkom
funkcijom u nastavku. Pomoću Karnoove mape potrebno je izvršiti minimizaciju logičke funkcije date sumom
proizvoda.
F = B3B2B1B0 + B3B2B1B0 + B3B2B1B0 + B3B2B1B 0 + B3B2B1B0 + B3B2B1B0 + B3B2B1B0 + B3B2B1B0
Ulazi u sistem su B3, B2, B1 i B0, koji su u našem slučaju prekidači na MAX 10 platformi, a izlaz iz sistema je 7-
segmentni displej na kome je potrebno ispisati rezultat logičke funkcije (0 ili 1) u zavisnosti od pritisnute
kombinacije prekidača.
Tabela 3-1. Istinitosna tablica zadate logičke funkcije
B3 B2 B1 B0 F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
7
NAPOMENA: Rezultat zadate logičke funkcije je potrebno prikazati podešavanjem odgovarajućih pinova,
bez koriščenja dodatnih komponenti za prikaz na 7-segmentnom displeju.
Vaš zadatak je da prođete kroz sve korake projektovanja sistema:
uradite minimizaciju logičke funkcije uz pomoć Karnoovih mapa
opišete dobijenu minimizovanu funkciju uz pomoć logičke šeme
implementirate ovaj sistem koristeći Intel Quartus alat i MAX 10 platformu.
Tabela 3-2. Dodela pinova za ulaze/izlaze digitalnog sistema
Port Smer Komponenta FPGA pin
iB0 input SW0 PIN_M3
iB1 input SW1 PIN_L3
iB2 input SW2 PIN_M2
iB3 input SW3 PIN_M1
oF output 7SEGM0 Segmenti a-g
4. Implementacija logičke šeme za prikaz brojeva i slova na 7-segmentnom
displeju
U prethodnom zadatku smo naučili kako da ispišemo 0 ili 1 na 7-segmentnom displeju, aktiviranjem
određenih pinova. Za prikaz brojeva od 0 do 9, kao i slova A do F, potrebna je malo složenija implementacija
digitalnog sistema.
Vaš zadatak je da pomoću Intel Quartus alata napravite logičku šemu za ispis na JEDAN segment 7-
segmentnog displeja.
Ulazi u sistem su B3, B2, B1 i B0 koji su u našem slučaju prekidači na MAX 10 platformi, a izlaz iz sistema je jedan
segment 7-segmentnog displeja, na kome je potrebno aktivirati samo jedan izabrani segment u zavisnosti od
pritisnute kombinacije prekidača.
Potrebno je da prođete kroz sve korake projektovanja sistema:
uradite minimizaciju logičke funkcije za jedan segment iz Tabele 2-1 uz pomoć Karnoovih mapa
opišete dobijenu minimizovanu funkciju uz pomoć logičke šeme
implementirate ovaj sistem koristeći Intel Quartus alat i MAX 10 platformu.
Tabela 4-1. Dodela pinova za ulaze/izlaze digitalnog sistema
Port Smer Komponenta FPGA pin
iB0 input SW0 PIN_M3
iB1 input SW1 PIN_L3
iB2 input SW2 PIN_M2
iB3 input SW3 PIN_M1
oF output 7SEGM0 Segmenti a-g
Pokazna vežba 2 – Projektovanje složenih digitalnih sistema 2019/20
8
DODATAK
U ovoj vežbi smo naučili kako se projektuje i implementira sistem za prikaz na 7-segmentni displej i kako
možemo upravljati njegovim segmentima. Kako bi olakšali rad na narednim zadacima, koristićemo gotovu
komponentu za prikaz brojeva 0-9 i slova A-F na 7-segmentni displej.
Komponenta se nalazi u posebnom direktorijumu 7segm, koji treba kopirati u projektni direktorijum. Nakon
toga potrebno je podesiti odgovarajuće putanje do novog direktorijuma, kako bi komponenta mogla da se koristi.
U prozoru Assignment->Settings->Libraries dodajte putanje do direktorijuma u kojem se nalazi komponenta, kao
na Slici 5-1, a zatim sačuvajte promene pritiskom na Apply dugme.
Slika 5-1. Podešavanje putanja do nove komponente
ZAKLJUČAK
U ovoj vežbi naučili smo da minimizujemo složene logičke funkcije uz pomoć Karnoovih mapa i uvideli koliko
je jednostavnije napraviti logičku šemu za uprošćen digitalni sistem. Nakon završetka ove vežbe, trebali bi biti u
stanju da opišete proizvoljno složen digitalni sistem koristeći logičke šeme, minimizujete logičke funkcije (ukoliko
je to moguće) pomoću Karnoovih mapa, kao i da implementirate napravljeni digitalni sistem na FPGA integrisano
kolo. Takođe ste stekli znanje za upravljanje 7-segmentnim displejom i trebali bi nakon urađenog 2. zadatka da
bez problema implementirate digitalni sistem koji upravlja bilo kojom ulazno/izlazno komponentom na MAX10
platformi korišćenjem Intel Quartus alata i logičke šeme.