ПОРТ/Јул 2020 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Ispisan julski rok iz PORT-a sa malo umetničke slobode)
 
Нема описа измене
 
(Није приказано 7 међуизмена 3 корисника)
Ред 5: Ред 5:
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 <code>BTN2</code> (kiša može da se prikazuje ili u vertikalnim segmentima gornje polovine ekrana ili u vertikalnim segmentima donje polovine ekrana).
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 <code>BTN2</code> (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 ć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 <code>BTN2</code>. Pozicije Danka i munje se takođe prikazuju u binarnom sistemu na LED diodama <code>LED<sub>9..8</sub></code> i <code>LED<sub>7..6</sub></code>, respektivno.
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 <code>BTN2</code>. Pozicije Danka i munje se takođe prikazuju u binarnom sistemu na LED diodama <code>LED<sub>9..8</sub></code> i <code>LED<sub>7..6</sub></code>, respektivno.


Dankovi poeni se prikazuju u binarnom sistemu na LED diodama <code>LED<sub>5..0</sub></code>. Povećavaju se za 1 ukoliko se Danko pri pritisku <code>BTN2</code> 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.
Dankovi poeni se prikazuju u binarnom sistemu na LED diodama <code>LED<sub>5..0</sub></code>. Povećavaju se za 1 ukoliko se Danko pri pritisku <code>BTN2</code> 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 <code>BTN1</code> i <code>SW9</code>, gde <code>SW9</code> određuje smer u kojem će Danko krenuti (ukoliko je 0, Danko se pomera levo a ukoliko je 1 Danko se pomera desno). Dugme <code>BTN0</code> koristi se za resetovanje celog sistema.
Danko se pomera pomoću <code>BTN1</code> i <code>SW9</code>, gde <code>SW9</code> određuje smer u kojem će Danko krenuti (ukoliko je 0, Danko se pomera levo a ukoliko je 1 Danko se pomera desno). Dugme <code>BTN0</code> koristi se za resetovanje celog sistema.
<gallery>
  PORT Jul 2020 Kiša 1.png              | Kiša u prvom stanju
  PORT Jul 2020 Kiša 2.png              | Kiša u drugom stanju
  PORT Jul 2020 Kiša, igrač i munja.png | Pozicije kiše (crveni segmenti), igrača (zeleni segment) i munje (žuti segment)
</gallery>
'''Postavka Quartus projekta može se naći [[{{ns:-2}}:PORT Jul 2020 Postavka.zip|ovde]]. Rešenje roka može se naći [[{{ns:-2}}:PORT Jul 2020 Resenje.zip|ovde]].'''


== 1. zadatak ==
== 1. zadatak ==
Ред 25: Ред 33:
# '''[4 poena]''' Napraviti generator nasumičnih brojeva koji broji po sekvenci 0-3-1-2-0 kada ulaz <code>NEXT</code> ima aktivnu vrednost i vraća se na početak kada ulaz <code>CLEAR</code> ima aktivnu vrednost.
# '''[4 poena]''' Napraviti generator nasumičnih brojeva koji broji po sekvenci 0-3-1-2-0 kada ulaz <code>NEXT</code> ima aktivnu vrednost i vraća se na početak kada ulaz <code>CLEAR</code> ima aktivnu vrednost.
# '''[4 poena]''' Napraviti sekvencijalnu mrežu koja pomera Danka. Mreža ima ulaze <code>CL</code>, <code>MOVE</code> i <code>DIR</code>, kada signal <code>MOVE</code> ima aktivnu vrednost Danko se pomera ulevo ukoliko signal <code>DIR</code> ima neaktivnu vrednost i udesno ukoliko ima aktivnu vrednost, a kada signal <code>CL</code> ima aktivnu vrednost mreža se vraća u početno stanje.
# '''[4 poena]''' Napraviti sekvencijalnu mrežu koja pomera Danka. Mreža ima ulaze <code>CL</code>, <code>MOVE</code> i <code>DIR</code>, kada signal <code>MOVE</code> ima aktivnu vrednost Danko se pomera ulevo ukoliko signal <code>DIR</code> ima neaktivnu vrednost i udesno ukoliko ima aktivnu vrednost, a kada signal <code>CL</code> ima aktivnu vrednost mreža se vraća u početno stanje.
# '''[2 poena]''' Napraviti brojač Dankovih poena sa ulazima <code>CL</code>, <code>INC</code> i <code>SL</code>, tako da kada <code>INC</code> ima aktivnu vrednost njegov broj poena se povećava za 1, kada <code>SL</code> ima aktivnu vrednost njegov broj poena se duplira i kada <code>CL</code> ima aktivnu vrednost on gubi sve poene.
# '''[2 poena]''' Napraviti mrežu koja računa Dankove poene na širini od šest bita sa ulazima <code>CL</code>, <code>INC</code> i <code>SL</code> i izlazom <code>pts<sub>5..0</sub></code>.
# '''[5 poena]''' Implementirati igru datu u postavci zadatka.
# '''[5 poena]''' Implementirati igru datu u postavci zadatka.


[[Категорија:Рокови]]
[[Категорија:Рокови]]
[[Категорија:ПОРТ]]

Тренутна верзија на датум 5. август 2020. у 02:53

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.

  1. [4 poena] Potrebno je realizovati jednorazredni komparator sa ulazima A, B, Gi-1, Ei-1 i Li-1 i izlazima G, E i L.
  2. [3 poena] Potrebno je realizovati dvorazredni komparator sa ulazima A i B i izlazima G, E i L koristeći jednorazredni komparator iz prethodne stavke.
  3. [4 poena] Potrebno je realizovati dekoder sa dva ulaza X0 i X1, signalom E za omogućavanje i četiri izlaza.
  4. [3 poena] Realizovati sekvencijalnu mrežu RisingEdge Murovog tipa koristeći JK flip-flop.
  5. [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 signal INC, pa DEC i na kraju SL.
  6. [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.
  7. [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.

  1. [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 ulaz CLEAR ima aktivnu vrednost.
  2. [4 poena] Napraviti sekvencijalnu mrežu koja pomera Danka. Mreža ima ulaze CL, MOVE i DIR, kada signal MOVE ima aktivnu vrednost Danko se pomera ulevo ukoliko signal DIR ima neaktivnu vrednost i udesno ukoliko ima aktivnu vrednost, a kada signal CL ima aktivnu vrednost mreža se vraća u početno stanje.
  3. [2 poena] Napraviti mrežu koja računa Dankove poene na širini od šest bita sa ulazima CL, INC i SL i izlazom pts5..0.
  4. [5 poena] Implementirati igru datu u postavci zadatka.