Zadatak – Grupa 1 2018/19 1 LOGIČKO PROJEKTOVANJE RAČUNARSKIH SISTEMA 1 Zadatak – Grupa 1 9. Decembar 2018 NAPOMENA Za potrebe zadataka koristiti direktorijum C:\Temp\LPRS1_X_Y_Z\, gde je X oznaka studijskog programa (RA), Y broj indeksa i Z godina upisa. Unutar direktorijuma napraviti direktorijume Zadatak1 i Zadatak2. Svaki zadatak realizovati u zasebnom projektu u njemu predviđenom direktorijumu unutar predefinisanog. ZADATAK 1 (10 bodova) U VHDL jeziku za opis digitalnih sistema opisati i simulirati digitalni sistem prikazan na slici. Ulazi digitalnog sistema: iA [2:0] – prvi ulazni operand, iB [4:0] – drugi ulazni operand, iC [7:0] – treći ulazni operand, iSEL [3:0] – selekcija za multiplekser. Izlazi digitalnog sistema: oRESULT [7:0] – izlaz iz multipleksera. Mux Prioritetni koder iSEL[3:0] 2 8 iA[2:0] Dekoder 8 iB[4:0] F(x) 8 iC[7:0] Komplementer 8 Ashr >> 4 oRESULT[7:0] Slika 1 – Arhitektura sistema
4
Embed
selekcija za multiplekser. M u x oR E S U L T [ 7 : 0] P r ...Zadatak – Grupa 1 2018/19 3 Sistem simulirati pokrivanjem sledeća 4 slučaja: Pokriti slučaj gde se nakon operacije
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Zadatak – Grupa 1 2018/19
1
LOGIČKO PROJEKTOVANJE RAČUNARSKIH SISTEMA 1
Zadatak – Grupa 1
9. Decembar 2018
NAPOMENA
Za potrebe zadataka koristiti direktorijum C:\Temp\LPRS1_X_Y_Z\, gde je X oznaka studijskog
programa (RA), Y broj indeksa i Z godina upisa. Unutar direktorijuma napraviti direktorijume Zadatak1 i
Zadatak2. Svaki zadatak realizovati u zasebnom projektu u njemu predviđenom direktorijumu unutar
predefinisanog.
ZADATAK 1 (10 bodova)
U VHDL jeziku za opis digitalnih sistema opisati i simulirati digitalni sistem prikazan na slici.
Ulazi digitalnog sistema:
iA [2:0] – prvi ulazni operand,
iB [4:0] – drugi ulazni operand,
iC [7:0] – treći ulazni operand,
iSEL [3:0] – selekcija za multiplekser.
Izlazi digitalnog sistema:
oRESULT [7:0] – izlaz iz multipleksera.
Mux
Prioritetni
koder
iSEL[3:0] 2
8iA[2:0]Dekoder
8iB[4:0]F(x)
8iC[7:0]Komplementer
8Ashr >> 4
oRESULT[7:0]
Slika 1 – Arhitektura sistema
Zadatak – Grupa 1 2018/19
2
Opis sistema:
Ulaz iA se dovodi u dekoder.
Ulaz iB se dovodi u blok F(x) čija je funkcionalnost opisana tabelom ispod.
Ulaz iC ulazi u 2 bloka. U komplementeru se obavlja operacija komplementiranja (rezultat je –iC). U
drugom bloku se obavlja operacija aritmetičkog pomeranja u desno za 4 mesta.
Ulaz iSEL se dovodi na prioritetni koder i kao kodovan signal ima ulogu selekcionog bita za
multiplekser. Slučaj kada nema jedinica na ulazu u koder kodovati izlazom koji je jednak nuli (sve nule)
bez dodatnih bita validnosti izlaza kodera. Uzeti da prioritet imaju biti sa većim indeksom.
Izlaz oRESULT predstavlja izlaz multipleksera.
Ulaz Izlaz
00000 00000 000
00001 00010 000
00010 00100 000
00011 00110 000
00100 01000 000
00101 01010 000
00110 01100 000
00111 01110 000
01000 10000 000
01001 10010 000
01010 10100 000
01011 10110 000
01100 11000 000
01101 11010 000
01110 11100 000
01111 11110 000
10000 00000 000
10001 00010 000
10010 00100 000
10011 00110 000
10100 01000 000
10101 01010 000
10110 01100 000
10111 01110 000
11000 10000 000
11001 10010 000
11010 10100 000
11011 10110 000
11100 11000 000
11101 11010 000
11110 11100 000
11111 11110 000 Tabela 1 – Funkcija F(x)
Zadatak – Grupa 1 2018/19
3
Sistem simulirati pokrivanjem sledeća 4 slučaja:
Pokriti slučaj gde se nakon operacije dekodovanja na izlazu iz sistema nalazi vrednost 0x20,
Pokriti slučaj gde se nakon operacije F(x) na izlazu iz sistema nalazi vrednost 0xC0,
Pokriti slučaj gde se nakon operacije komplementiranja na izlazu iz istema nalazi vrednost 0xAB,
Pokriti slučaj gde se nakon operacije aritmetičkog pomeranja na izlazu iz sistema nalazi vrednost 0xF8.
Dodatne napomene za izradu zadatka:
Svaku komponentu realizovati kao blok / kombinacioni proces za sebe. Nemojte ceo sistem
implementirati u okviru jednog procesa.
Komentarisati kod – navesti naziv svake komponente.
Broj na žici predstavlja broj bita.
ZADATAK 2 (10 bodova)
U VHDL jeziku za opis digitalnih sistema opisati i simulirati digitalni sistem prikazan na slici.
Ulazi digitalnog sistema:
iCLK – signal takta, podrazumevan u svakoj sekvencijalnoj mreži
inRST – reset signal koji je asinhron i aktivan na niskom naponskom nivou, podrazumevan u svakoj
sekvencijalnoj mreži
iLOAD – signal dozvole za paralelni upis u pomerački registar, koji istovremeno služi i kao signal
dozvole za proveru parnosti broja
iD [7:0] – osmobitni podatak koji se upisuje u pomerački registar i nad kojim se vrši provera
Izlazi digitalnog sistema:
oONES [7:0] – izlaz iz brojača jedinica koji nam saopštava koliko puta se cifra ‘1’ pojavila u podatku iD,
oEVEN [2:0] – izlaz iz brojača parnih brojeva koji govori koliko je parnih brojeva bilo na ulazu,
oODD [2:0] – izlaz iz brojača neparnih brojeva koji govori koliko je neparnih brojeva bilo na ulazu.
Opis sistema:
Ulaz iLOAD daje dozvolu pomeračkom registru da preuzme vrednost iD. Sve dok je ovaj ulaz na
visokom naponskom nivou pomerački registar će preuzimati vrednost iD. Kada iLOAD nije na visokom
naponskom nivou, pomerački registar pomera svoj sadržaj logički u desno za jedno mesto. Bit
najmanje težine (LSB) se prosleđuje u brojač jedinica. Posle 8 taktova bi sve cifre trebale biti
prosleđene brojaču.
Brojač jedinica treba da evidentira svaku jedinicu koja mu je prosleđena od strane pomeračkog
registra. Npr. ako je iD = “1100 1010“, tada će brojač jedinica izbrojati do 4. Ako u sledećem slučaju iD
bude “0000 1010“, brojač će imati vrednost 6 (2 za trenutni broj i 4 za prethodni).
Blok za proveru parnosti treba da radi samo kada je iLOAD na visokom naponskom nivou. U tom
trenutku proverava da li je broj koji se nalazi na ulazu iD paran ili neparan. Ukoliko je broj paran,
obaveštava brojač parnih brojeva da treba da uveća svoju vrednost, a na ulaz brojača neparnih
brojeva šalje logičku 0 kako taj brojač ne bi brojao. U slučaju da je iLOAD na niskom naponskom
nivou, blok prosleđuje 0 na oba brojača.
Zadatak – Grupa 1 2018/19
4
Brojači parnih i neparnih brojeva uvećavaju svoj sadržaj svaki put kada se na ulazu pojavi paran
odnosno neparan broj.
Pomerački
registar
iLOAD
Brojač jedinica
Provera
parnosti
Brojač parnih
brojeva
Brojač neparnih
brojeva
iD[7:0]oONES[7:0]
iLOAD
iD[7:0]
sDATA
oEVEN[2:0] oODD[2:0]
sEVEN sODD
en
en
en
en en
Slika 2 – Arhitektura sistema
Sistem simulirati na sledeći način:
Potrebno je menjati iLOAD i iD na takav način da na kraju budu ukupno 2 parna i 3 neparna broja koja
zajedno imaju tačno 15 jedinica. Drugim rečima, na kraju simulacije oEVEN treba da ima vrednost 2,
oODD 3 a oONES 15.
Imajte na umu da kada se učita broj u pomerački registar, da je potrebno 8 ciklusa takta da brojač
jedinica “stigne” da prebroji sve jedinice. Ovo će uticati na dužinu čekanja prilikom pravljenja test
bench-a.
Dodatne napomene za izradu zadatka:
Svaku komponentu realizovati kao blok / kombinacioni proces za sebe. Nemojte ceo sistem
implementirati u okviru jednog procesa.
Komentarisati kod – navesti naziv svake komponente.
Broj na žici predstavlja broj bita.
Pod pojmom parnost se misli da li je broj paran (deljiv sa 2) ili neparan (daje ostatak 1 prilikom
deljenja sa 2). Pod pojmom parnost se NE misli na paritet (eng. parity).