ПОРТ/Јун 2020 — разлика између измена
Нема описа измене |
м (Dodata postavka, razjašnjene stavke zadataka na osnovu današnjih pitanja) |
||
| Ред 1: | Ред 1: | ||
== Postavka == | == Postavka == | ||
[[{{ns:6}}:PORT Jun 2020 prikaz.png|thumb|Prikaz predstave formula na sedmosegmentnim ekranima i kretanja igrača.]] | |||
Implementiramo igru gde naša igračka formula izbegava druge formule koje joj nailaze, dobija poene svaki put kad izbegne formulu i resetuje igru kada se sudari. Formule se prikazuju horizontalnim segmentima na četiri sedmosegmentna ekrana, a poeni igrača na LED diodama. | Implementiramo igru gde naša igračka formula izbegava druge formule koje joj nailaze, dobija poene svaki put kad izbegne formulu i resetuje igru kada se sudari. Formule se prikazuju horizontalnim segmentima na četiri sedmosegmentna ekrana, a poeni igrača na LED diodama. | ||
'''Postavka Quartus projekta može se naći [[{{ns:-2}}:PORT Jun 2020 Postavka.zip|ovde]].''' | |||
== 1. zadatak == | == 1. zadatak == | ||
| Ред 6: | Ред 9: | ||
# '''[4 poena]''' Napraviti jednorazredni komparator sa ulazima <code>A</code>, <code>B</code>, <code>G<sub>i-1</sub></code>, <code>E<sub>i-1</sub></code>, <code>L<sub>i-1</sub></code> i izlazima <code>G<sub>i</sub></code>, <code>E<sub>i</sub></code>, <code>L<sub>i</sub></code>. | # '''[4 poena]''' Napraviti jednorazredni komparator sa ulazima <code>A</code>, <code>B</code>, <code>G<sub>i-1</sub></code>, <code>E<sub>i-1</sub></code>, <code>L<sub>i-1</sub></code> i izlazima <code>G<sub>i</sub></code>, <code>E<sub>i</sub></code>, <code>L<sub>i</sub></code>. | ||
# '''[3 poena]''' Napraviti trorazredni komparator. | # '''[3 poena]''' Napraviti trorazredni komparator. | ||
# '''[4 poena]''' Napraviti multiplekser sa dva ulaza i ulazom za omogućavanje. | # '''[4 poena]''' Napraviti trokanalni multiplekser sa dva ulaza i ulazom za omogućavanje. | ||
# '''[3 poena]''' Napraviti multiplekser sa četiri ulaza. | # '''[3 poena]''' Napraviti trokanalni multiplekser sa četiri ulaza. | ||
# '''[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 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. | ||
# '''[2 poena]''' Napraviti dvorazredni registar sa inkrementiranjem i čišćenjem. | # '''[2 poena]''' Napraviti dvorazredni registar sa inkrementiranjem i čišćenjem. | ||
| Ред 13: | Ред 16: | ||
== 2. zadatak == | == 2. zadatak == | ||
Date su komponente <code>CLK_DIVIDER</code> i <code>RisingEdge</code>. Bile su date šeme za ručno testiranje komponenti i date komponente su već bile iskorišćene u njima. Nisu bile date komponente iz prvog zadatka u VHDL-u, već su morale da se koriste napravljene. | Date su komponente <code>CLK_DIVIDER</code> i <code>RisingEdge</code>. 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 <code>mainX.bdf</code>, a test šeme u fajlovima <code>test_mainX.bdf</code>, gde šema <code>main5.bdf</code> 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). | ||
# '''[3 poena]''' Napraviti brojač koji broji po sekvenci 0-1-4-2-0 kada je signal <code>C</code> jednak 1 i restartuje sekvencu kada je signal <code>CL</code> jednak 1. | # '''[3 poena]''' Napraviti brojač koji broji po sekvenci 0-1-4-2-0 kada je signal <code>C</code> jednak 1 i restartuje sekvencu kada je signal <code>CL</code> jednak 1 (signal <code>CL</code> ima veći prioritet). Potrebno je koristiti module iz prvog zadatka. Izlaz ovog kola je trobitni signal i koristi se za poziciju novonadolazeće formule. | ||
# '''[2 poena]''' Napraviti sekvencijalnu mrežu koja broji poene igrača na širini od 6 bita kada je uključen ulazni signal i podržava čišćenje. | # '''[2 poena]''' Napraviti sekvencijalnu mrežu koja broji poene igrača na širini od 6 bita kada je uključen ulazni signal <code>INC</code> i podržava čišćenje kroz signal <code>CL</code>. | ||
# '''[3 poena]''' Napraviti sekvencijalnu mrežu sa četiri izlaza, gde | # '''[3 poena]''' Napraviti sekvencijalnu mrežu sa četiri izlaza, gde su prva tri pozicije nadolazećih formula (na gornjoj slici gornje tri formule obojene crvenom bojom) a četvrti se koristi za detekciju sudara. Kada je uključen signal <code>LD</code> mreža učitava stanje sa <code>IN<sub>2..0</sub></code> i na izlazima vraća poslednja četiri učitana stanja, a kada je uključen signal <code>CL</code> mreža čisti učitana stanja. | ||
# '''[3 poena]''' Napraviti sekvencijalnu mrežu za kontrolu igračke formule koja ima signale <code>UP</code> i <code>DOWN</code> koje kružno pomeraju igračku formulu gore i dole (kada je igrač gore i pomeri se nagore mora da se pojavi dole, kada je igrač dole i pomeri se nadole mora da se pojavi gore) i signal <code>LD</code> koji učitava igračevu poziciju sa ulaza <code>IN</code>. | # '''[3 poena]''' Napraviti sekvencijalnu mrežu za kontrolu igračke formule koja ima signale <code>UP</code> i <code>DOWN</code> koje kružno pomeraju igračku formulu gore i dole (kada je igrač gore i pomeri se nagore mora da se pojavi dole, kada je igrač dole i pomeri se nadole mora da se pojavi gore) i signal <code>LD</code> koji učitava igračevu poziciju sa ulaza <code>IN</code>. | ||
# '''[4 poena]''' Implementirati celu igru (ulazni signali su <code>UP</code>, <code>DOWN</code> i <code>RESET</code>). | # '''[4 poena]''' Implementirati celu igru (ulazni signali su <code>UP</code>, <code>DOWN</code> i <code>RESET</code>). | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
Верзија на датум 12. јул 2020. у 02:50
Postavka
Implementiramo igru gde naša igračka formula izbegava druge formule koje joj nailaze, dobija poene svaki put kad izbegne formulu i resetuje igru kada se sudari. Formule se prikazuju horizontalnim segmentima na četiri sedmosegmentna ekrana, a poeni igrača na LED diodama.
Postavka Quartus projekta 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.
- [4 poena] Napraviti jednorazredni komparator sa ulazima
A,B,Gi-1,Ei-1,Li-1i izlazimaGi,Ei,Li. - [3 poena] Napraviti trorazredni komparator.
- [4 poena] Napraviti trokanalni multiplekser sa dva ulaza i ulazom za omogućavanje.
- [3 poena] Napraviti trokanalni multiplekser sa četiri ulaza.
- [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.
- [2 poena] Napraviti dvorazredni registar sa inkrementiranjem i čišćenjem.
- [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).
- [3 poena] Napraviti brojač koji broji po sekvenci 0-1-4-2-0 kada je signal
Cjednak 1 i restartuje sekvencu kada je signalCLjednak 1 (signalCLima veći prioritet). Potrebno je koristiti module iz prvog zadatka. Izlaz ovog kola je trobitni signal i koristi se za poziciju novonadolazeće formule. - [2 poena] Napraviti sekvencijalnu mrežu koja broji poene igrača na širini od 6 bita kada je uključen ulazni signal
INCi podržava čišćenje kroz signalCL. - [3 poena] Napraviti sekvencijalnu mrežu sa četiri izlaza, gde su prva tri pozicije nadolazećih formula (na gornjoj slici gornje tri formule obojene crvenom bojom) a četvrti se koristi za detekciju sudara. Kada je uključen signal
LDmreža učitava stanje saIN2..0i na izlazima vraća poslednja četiri učitana stanja, a kada je uključen signalCLmreža čisti učitana stanja. - [3 poena] Napraviti sekvencijalnu mrežu za kontrolu igračke formule koja ima signale
UPiDOWNkoje kružno pomeraju igračku formulu gore i dole (kada je igrač gore i pomeri se nagore mora da se pojavi dole, kada je igrač dole i pomeri se nadole mora da se pojavi gore) i signalLDkoji učitava igračevu poziciju sa ulazaIN. - [4 poena] Implementirati celu igru (ulazni signali su
UP,DOWNiRESET).