ПОРТ/Јул 2020
Postavka
- Napomena: Određeni delovi postavke su ostavljeni umetničkoj interpretaciji prepisivača i nisu se nužno nalazili u ispitnom zadatku.
Mali Danko se vraćao kući sa junskog ispita iz PORT-a kada ga je zadesila strašna oluja. Gde god da bi se pomerio padala je kiša, ali to ga nije brinulo jer je sa sobom poneo kabanicu i kišobran kao svaki ugledan student Softverskog inženjerstva. Ono što je Danka najviše brinulo jeste da ga ne pogodi munja na putu do kuće, jer je sa sobom poneo FPGA pločicu iz laboratorije kako bi mogao da vežba unapred za ORT2 i ne bi mogao da izađe strašnom Zahariju na oči ukoliko bi se toj pločici nešto desilo.
Zadatak je implementirati simulaciju Danka kako se na sedmosegmentnim ekranima FPGA pločice kreće kroz kišu dok izbegava munju. Kiša je predstavljena vertikalnim segmentima i smenjuje svoj prikaz na pritisak BTN2
(kiša može da se prikazuje ili u vertikalnim segmentima gornje polovine ekrana ili u vertikalnim segmentima donje polovine ekrana).
Na sedmosegmentnim ekranima se takođe prikazuju pozicije Danka i mesta gde će sledeće da padne munja, tako da se munja prikazuje na srednjem horizontalnom segmentu a Danko na donjem horizontalnom segmentu. Munja nasumično menja svoju sledeću poziciju svakim pritiskom BTN2
. Pozicije Danka i munje se takođe prikazuju u binarnom sistemu na LED diodama LED9..8
i LED7..6
, respektivno.
Dankovi poeni se prikazuju u binarnom sistemu na LED diodama LED5..0
. Povećavaju se za 1 ukoliko se Danko pri pritisku BTN2
nalazi desno od najavljene pozicije munje, dupliraju se ukoliko se nalazi levo od najavljene pozicije munje a brišu se ukoliko ga je pogodila munja.
Danko se pomera pomoću BTN1
i SW9
, gde SW9
određuje smer u kojem će Danko krenuti (ukoliko je 0, Danko se pomera levo a ukoliko je 1 Danko se pomera desno). Dugme BTN0
koristi se za resetovanje celog sistema.
Postavka Quartus projekta može se naći ovde. Rešenje roka može se naći ovde.
1. zadatak
Bila je data glavna šema i testovi komponenti koji bi trebalo da upale LED diode kada komponenta krene da radi kao očekivano, s tim što test za petu stavku nije radio.
- [4 poena] Potrebno je realizovati jednorazredni komparator sa ulazima
A
,B
,Gi-1
,Ei-1
iLi-1
i izlazimaG
,E
iL
. - [3 poena] Potrebno je realizovati dvorazredni komparator sa ulazima
A
iB
i izlazimaG
,E
iL
koristeći jednorazredni komparator iz prethodne stavke. - [4 poena] Potrebno je realizovati dekoder sa dva ulaza
X0
iX1
, signalomE
za omogućavanje i četiri izlaza. - [3 poena] Realizovati sekvencijalnu mrežu RisingEdge Murovog tipa koristeći JK flip-flop.
- [6 poena] Realizovati jednorazredni registar preko T flip-flopa sa mogućnostima serijskog upisa preko pomeranja u levo, inkrementiranja, dekrementiranja i sinhronog brisanja. Obezbediti da najviši prioritet ima signal
CL
, zatim signalINC
, paDEC
i na krajuSL
. - [2 poena] Realizovati dvorazredni registar sa mogućnostima inkrementiranja, dekrementiranja i sinhronog brisanja preko jednorazrednog registra realizovanog u prošloj stavci. Obezbediti da redosled prioriteta signala operacija bude isti kao u prošloj stavci.
- [3 poena] Realizovati trorazredni registar sa mogućnostima inkrementiranja, serijskog upisa preko pomeranja u levo i sinhronog brisanja preko jednorazrednog registra realizovanog u pretprošloj stavci. Obezbediti da redosled prioriteta signala operacija bude isti kao u pretprošloj stavci.
2. zadatak
Za razliku od junskog ispitnog roka, nisu postojale test šeme za odvojene komponente već su pinovi bili povezani na glavnoj šemi (koja nije sadržala ništa pored pinova) i postavljeni u Pin Planner-u i nisu bile date nikakve komponente.
- [4 poena] Napraviti generator nasumičnih brojeva koji broji po sekvenci 0-3-1-2-0 kada ulaz
NEXT
ima aktivnu vrednost i vraća se na početak kada ulazCLEAR
ima aktivnu vrednost. - [4 poena] Napraviti sekvencijalnu mrežu koja pomera Danka. Mreža ima ulaze
CL
,MOVE
iDIR
, kada signalMOVE
ima aktivnu vrednost Danko se pomera ulevo ukoliko signalDIR
ima neaktivnu vrednost i udesno ukoliko ima aktivnu vrednost, a kada signalCL
ima aktivnu vrednost mreža se vraća u početno stanje. - [2 poena] Napraviti mrežu koja računa Dankove poene na širini od šest bita sa ulazima
CL
,INC
iSL
i izlazompts5..0
. - [5 poena] Implementirati igru datu u postavci zadatka.