ПОРТ/Септембар 2020
Postavka
- Napomena: Određeni delovi postavke su ostavljeni umetničkoj interpretaciji prepisivača i nisu se nužno nalazili u ispitnom zadatku.
Nakon što su Danko i saradnici uspešno konstruisali upravljačku jedinicu za šporet i zasladili se palačinkama, došlo je vreme da odu u kladionicu na rulet. Ali nisu išli u bilo koju kladionicu, već su isključivo birali kladionice koje su držali njihovi bivši studenti koji su predmet položili sa ocenom šest, kojih je u gradu bilo ukupno jedna. Taj dan im se baš posrećilo, pa su veštom manipulacijom generatora nasumičnih brojeva uspeli da na ruletu osvoje 243.500 dinara, burek, automobil pomenutog bivšeg studenta i karticu za besplatnu kafu (ali za burek nismo sigurni). Posle ravnomerne raspodele dobitaka, Danku je ostao automobil. Ali, Dankovim mukama nikad kraja, jer čim je upalio auto primetio je da je uređaj za pokretanje pregoreo. Iz nepoznatih razloga, Danko je sa sobom poneo upravljačku jedinicu svog šporeta (koja je, ponovo, bila ista FPGA pločica koju je sačuvao od munja nakon junskog roka) i uređaj koji je bio sposoban da pokrene Quartus II 13.1 Web Edition, tako da je odmah prionuo na popravljanje svog novoosvojenog automobila.
Zadatak je napraviti uređaj za pokretanje automobila. Kontrole automobila su:
SW9
za uključivanje automobila.SW8
za uključivanje prikaza statusa automobila ("OFF"/"On") na sedmosegmentnim ekranima.SW7
prikazuje koliko se goriva sme sipati u automobil.BTN0
za punjenje goriva na automobilu.
Količina goriva se prikazuje na LED9..0
, gde jedna LED dioda odgovara 10 litara goriva, gorivo se troši 10 litara po sekundi a puni 5 litara po sekundi.
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, šeme za popunjavanje komponenti i testovi komponenti koji bi trebalo da pale LED diode na glavnoj šemi kada određena komponenta krene da radi kao očekivano.
- [? poena] Potrebno je realizovati sedmokanalni multiplekser sa četiri ulaza i dva signala za biranje.
- [? poena] Potrebno je realizovati prioritetni koder sa ulazom za uključivanje
EN
, takav da je aktivna vrednost signala za uključivanje logička nula, a najmanji bit ima najviši prioritet. - [? poena] Potrebno je realizovati jednorazredni oduzimač sa ulazima
A
,B
iEi
i izlazimaF
iEi+1
. - [? poena] Koristeći jednorazredni oduzimač realizovati trorazredni oduzimač.
- [? poena] Realizovati sekvencijalnu mrežu RisingEdge pomoću T flip-flopa.
- [? poena] Realizovati jednorazredni registar sa mogućnostima paralelnog upisa, inkrementiranja i sinhronog brisanja koristeći JK flip-flop.
- [? poena] Realizovati trorazredni registar sa istim mogućnostima koristeći jednorazredni registar.
2. zadatak
Bila je data CLK_DIVIDER
i Binary2BCD
komponente, dekoder sa 16 izlaza kao i interfejs za sedmosegmentni displej.
- [5 poena] Implementirati menjanje stanja automobila (uključen/isključen) preko
SW9
. Ukoliko jeSW8
uključen, prikazati stanje automobila na heksadecimalnom displeju tako da kad je isključen piše "OFF" a kad je uključen "On". Kada je automobil uključen on troši 10 litara goriva u sekundi, a kada mu sipamo gorivo (tu opciju omogućavaBTN0
) puni se 5 litara u sekundi. Automobil može da se puni samo kada je isključen. Potrebno je omogućiti prikaz stanja goriva na LED diodama (na primer, ako ima 53 litara goriva u rezervoaru, svetli diodaLED6
). - [5 poena] Omogućiti da se kada je rezervoar automobila pun (100 litara) na heksadecimalnom displeju ispiše "FULL", a kada je rezervoar prazan da se ispiše "----" ukoliko je
SW8
isključen. Takođe omogućiti da se pomoćuSW7
na heksadecimalnom displeju prikaže koliko se još goriva sme sipati u automobil. - [5 poena] Implementirati uređaj i omogućiti da se ne sme sipati gorivo ako je pun rezervoar i trošiti ako je prazan.