vhdl opis digitalnih sistema na nivou logičkih kola · nakog definisanja entiteta sistema, u...

8
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.

Upload: others

Post on 11-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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.

Page 2: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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.

Page 3: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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.

Page 4: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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

Page 5: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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

Page 6: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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

Page 7: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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

Page 8: VHDL opis digitalnih sistema na nivou logičkih kola · Nakog definisanja entiteta sistema, u poslednjem delu VHDL opisa definiše se arhitektura sistema. Arhitektura Arhitektura

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.