ПОРТ/Јун 2020

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Postavka

Prikaz predstave Dankovog i ostalih auta na sedmosegmentnim ekranima.
Napomena: Određeni delovi postavke su ostavljeni umetničkoj interpretaciji prepisivača i nisu se nužno nalazili u ispitnom zadatku.

Nakon neuspešne nedelje kockanja, mali Danko je izgubio sve pare i sada nema dovoljno novca da vrati dug zelenašima. Mali Danko je uzeo 3 Altera Cyclone V FPGA pločice da bi ih prodao i vratio dug. Na njegovu nesreću, Zaharije je to veče spavao u Paviljonu Rašović Elektrotehničkog fakulteta Univerziteta u Beogradu i video malog Danka kako uzima pločice, pa je odlučio da ga zaustavi. Mali Danko je brzo seo u kola, ali je zaboravio dozvolu. Na svu sreću, na suvozačevom mestu je pronašao Altera Cyclone III FPGA pločicu. Malom Danku je odmah pala ideja da napravi uredjaj koji će da prati vozila ispred njega i izbegava ih.

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 naših komponenti koji bi trebalo da upale LED diode kada komponenta radi kao očekivano, samo što testovi za poslednje tri komponente nisu radili pa je njih demonstrator ručno pregledao.

  1. [4 poena] Napraviti jednorazredni komparator sa ulazima A, B, Gi-1, Ei-1, Li-1 i izlazima Gi, Ei, Li.
  2. [3 poena] Napraviti trorazredni komparator.
  3. [4 poena] Napraviti trokanalni multiplekser sa dva ulaza i ulazom za omogućavanje.
  4. [3 poena] Napraviti trokanalni multiplekser sa četiri ulaza.
  5. [6 poena] Napraviti jednorazredni registar sa paralelnim upisom, čišćenjem, inkrementiranjem, pomeranjem ulevo i pomeranjem udesno sa D flip-flopom. Signal za inkrementiranje inkrementira broj samo kada je signal za prenos iz prethodnog registra uključen.
  6. [2 poena] Napraviti dvorazredni registar sa inkrementiranjem i čišćenjem.
  7. [3 poena] Napraviti trorazredni registar sa svim kao za jednorazredni.

2. zadatak

Date su komponente CLK_DIVIDER i RisingEdge. Bile su date šeme za ručno testiranje komponenti iz svih stavki zadatka i date komponente su već bile iskorišćene u njima. Komponente su bile u fajlovima mainX.bdf, a test šeme u fajlovima test_mainX.bdf, gde šema main5.bdf nije imala svoju test šemu (to je bila glavna šema, pa se na njih i testiralo). Nisu bile date komponente iz prvog zadatka u VHDL-u, već su morale da se koriste napravljene. Paziti na to da se izlazi koji se povezuju na sedmosegmentni ekran negiraju pri izlazu iz komponenti jer se segmenti sedmosegmentnog ekrana pale pri vrednosti 0 (ovo nije bilo urađeno u postavci, ali je bilo napomenuto na ispitu).

  1. [3 poena] Napraviti brojač koji broji po sekvenci 0-1-4-2-0 kada je signal C jednak 1 i restartuje sekvencu kada je signal CL jednak 1 (signal CL ima veći prioritet). Potrebno je koristiti module iz prvog zadatka. Izlaz ovog kola je trobitni signal i koristi se za poziciju novonadolazećeg auta.
  2. [2 poena] Napraviti sekvencijalnu mrežu koja broji poene Danka na širini od 6 bita kada je uključen ulazni signal INC i podržava čišćenje kroz signal CL (koji ima najveći prioritet).
  3. [3 poena] Napraviti sekvencijalnu mrežu sa četiri izlaza, gde su prva tri pozicije nadolazećih automobila (na gornjoj slici gornje tri formule obojene crvenom bojom) a četvrti se koristi za detekciju sudara. Kada je uključen signal LD mreža učitava stanje sa IN2..0 i na izlazima vraća poslednja četiri učitana stanja, a kada je uključen signal CL (koji ima najveći prioritet) mreža čisti učitana stanja.
  4. [3 poena] Napraviti sekvencijalnu mrežu za kontrolu Dankovog auta koja ima signale UP i DOWN koje kružno pomeraju Dankov auto gore i dole (kada je Danko gore i pomeri se nagore mora da se pojavi dole, kada je Danko dole i pomeri se nadole mora da se pojavi gore) i signal LD koji učitava Dankovu poziciju sa ulaza IN.
  5. [4 poena] Implementirati celu igru (ulazni signali su UP, DOWN i RESET).