ПОРТ/Лаб 2021

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

Laboratorijske vežbe 2021. godine su se održale u redovnim terminima u računarskim laboratorijama fakulteta. Za prve dve laboratorijske vežbe se crtala šema a zatim na laboratorijskoj vežbi precrtavala u Quartus, dok se za poslednje dve predavao Quartus projekat.

1. lab

Postavka

Nacrtati šemu koja realizuje kombinacionu mrežu za prikaz dekadnih cifara na sedmosegmentnom displeju korišćenjem što manje I, ILI i NE logičkih elemenata. Na Slici 1 dat je izgled sedmosegmentnog displeja kod kojeg je logička nula aktivna vrednost (logička nula pali segment na displeju). Stanje prekidača x3, x2, x1 i x0 predstavljaju binarnu vrednost broja za prikaz, gde je x3 najstariji, a x0 najmlađi bit. U slučaju da stanje prekidača predstavlja binarnu vrednost veću od 910, onda je potrebno da samo segmenti a, g i d sedmosegmentnog displeja budu upaljeni. Nije potrebno praviti već prethodno realizovane izlaze logičkih elemenata, već postojeće iskoristiti – crtati objedinjenu šemu. Dozvoljeno je imenovati izlaze logičkih elemenata i koristi ih na drugim delovima šeme. Student je dužan da crta pregledno korišćenjem grafitne olovke. Urađen domaći zadatak na ovom formularu doneti u terminu prve laboratorijske vežbe.

Modifikacije

  • Za četvorobitni broj koji se unosi pomoću 4 prekidača, lampica treba da zasvetli ako je bit parnosti 1, inače ne treba da svetli.

2. lab

Postavka

Nacrtati strukturnu šemu sekvencijalne mreže Milijevog tipa koja vrši brojanje od 5 do 0 korišćenjem što manje I, ILI i NE logičkih elemenata i T flip flopova kod kojih je logička jedinica aktivna vrednost ulaznih signala. Mreža ima dva ulazna signala dec i rst. Ako je signal dec aktivan, a signal rst neaktivan onda brojač treba da umanji vrednost za jedan. Ako je signal dec neaktivan, a signal rst aktivan onda brojač treba postavi[sic] na vrednost 5. Ako su oba signala dec i rst aktivna ili su oba signala neaktivna, brojač ne treba da menja stanje. Umanjivanjem broja 0 brojač ne treba da menja svoju vrednost. Stanja treba kodirati redom počev od 1012 do 0002 (npr. dekrementiranjem iz stanja 0112 prelazi se u stanje 0102). Signali z2, z1 i z0 predstavljaju izlaz mreže, gde je z0 najmlađi, a z2 najstariji bit.

Potrebno je nacrtati objedinjenu strukturnu šemu, pri čemu ne treba iznova praviti prethodno realizovane izlaze logičkih elemenata, već treba iskoristiti postojeće. Dozvoljeno je imenovati izlaze logičkih elemenata i koristi[sic] ih na drugim delovima strukturne šeme. Student je dužan da crta pregledno korišćenjem grafitne olovke. Urađen domaći zadatak na ovom formularu doneti u terminu druge laboratorijske vežbe.

Provera ispravnosti šeme

Od šeme koja je data za domaći potrebno je napraviti modul Brojac5_0. Na raspolaganju su još dva tipa modula RsisingEdge[sic] i 7SegmentInterfaceDEC. Modul RisingEdge predstavlja sekvencijalnu mrežu koja kao izlaz ima jedan bit koji se aktivira jednu periodu takta svaki put kada se ulaz promeni iz neaktivnog u aktivno stanje. Modul 7SegmentInterfaceDEC računa koji segmenti sedmosegmentnog displeja treba aktivirati na osnovu četiri ulazna signala x3..0 koji predstavljaju četvrobitni binarni broj manji od 1010. Modul ima i ulazne signale dp i en. Signalom dp se može kontrolisati paljenje segmenta koji predstavlja tačku pored sedmosegmentnog displeja. Dovođenjem logičke nule na ulaz en sedmosegmentni displej se gasi, dok dovođenjem logičke nule na sedmosegmentnom displeju se prikazuje odgovarajuća vrednost zadata ostalim ulaznim signalima.

Izlaz modula Brojac5_0 treba povezati na modul 7SegmentInterfaceDEC, kako bi se prikazivala vrednost brojača na sedmosegmentnom displeju. S obzirom da 7SegmentInterfaceDEC kao ulaz prima četvorobitni broj, a modul Brojac5_0 kao izlaz ima trobitni broj, najviši bit modula 7SegmentInterfaceDEC bi trebalo povezati na logičku nulu. Standardna komponenta koja kao izlaz ima konstantu logičku nulu zove se gnd. Nema potrebe za paljenjem tačke iza cifre, pa se onda ulaz dp povezuje takođe na gnd. S obzirom da je potrebno da se uvek prikazuje cifra, na ulaz en je dovedena konstantna logička jedinica uz pomoć standardne komponente vcc.

Sve sekvencijalne mreže šeme treba povezati na periferiju koja generiše takt (pogledati uputstvo za pločicu). Na pločici se nalazi generator takta od 50MHz. Ovim povezivanjem se ostvaruje prelazak iz stanja u stanje svih sekvencijalnih mreža na takt od 50MHz (0.02 μs).

Dugmići na pločici daju logičku nulu kada su u pritisnutom stanju, a kada su u otpuštenom stanju daju logičku jedinicu. Kako je aktivna vrednost upravljačkih signala brojača (dec/rst) logička jedinica, između dugmića i ostatka šeme postavljeni su invertori. Direktnim povezivanjem izlaza invertora na upravljačke signale brojača dovelo bih[sic] do sledećeg problema. U slučaju da se dugme drži pritisnuto neko vreme (duže od nekoliko perioda takta), za to proteklo vreme bi se menjalo stanje (na svakih 0.02 μs), što je dosta brzo, pa bi se teško primetilo da li je brojač dobro realizovan. Iz tog razloga su postavljeni moduli RisingEdge između invertora i brojača koji kao zadatak imaju da u slučaju dugog pritiska dugmeta (duže od 0.02 μs) na izlazu daju logičku jedinicu samo jedan takt. Ovim postupkom bi se na svaki pritisak dugmeta primenjivala jedna komanda nad brojačem i stanje brojača bi se promenilo samo jedanput.

Napomena: razvojne pločice DE0-CV Board nemaju izlaz za aktiviranje decimalne tačke na sedmosegmentnom displeju, tako da izlaz dp iz modula ne treba[sic] 7SegmentInterfaceDEC nigde povezivati.

Preuzimanje dodatnih komponenti.

Modifikacije

Varijanta 1
  1. Napraviti brojač koji broji po sekvenci 5-4-3-2-1-0-1-2-3-4-5.
  2. Napraviti Rising Edge (mrežu Murovog tipa koja detektuje sekvencu 01 pomoću taktovanog D flip-flopa i na ulazu generiše logičku jedinicu u trajanju od jednog takta).
Varijanta 2
  1. Napraviti brojač koji na dva displeja broji 52-43-34-25-61-70-52
    Ideja za rešenje ovog zadatka je bila to što cifre uvek u zbiru daju 7.
  2. Napraviti JK FF preko T FF.
Varijanta 3
  1. Napraviti brojač koij broji po sekvenci 5-3-1-0-5.
  2. Napraviti Falling Edge.

3. lab

Postavka

Potrebno je dopuniti datu šemu isključivo standardnim kombinacionim i standardnim sekvencijalnim modulima, tako da šema realizuje uređaj koji omogućava praćenje broja postignutih poena jedne ekipe na košarkaškoj utakmici. Zapisničar na košarkaškoj utakmici ima na raspolaganju tri dugmeta, BTN0, BTN1 i BTN2 pomoću kojih datoj ekipi dodaje odgovarajući broj poena za svaki postignut koš. Pritiskom dugmeta BTN0 zapisničar dodaje jedan poen, pritiskom dugmeta BTN1 zapisničar dodaje dva poena, pritiskom dugmeta BTN2 zapisničar dodaje tri poena. Smatrati da nije moguće istovremeno pritisnuti više od jednog dugmeta i da na jednoj utakmici nije moguće postići više od 99 poena. Broj postignutih poena date ekipe treba predstaviti u dekadnom obliku, a pojedinačne cifre broja postignutih poena treba prikazati na dva sedmosegmentna displeja HEX1 i HEX0 (HEX1 - displej za prikaz desetica; HEX0 - displej za prikaz jedinica). U okviru rešavanja zadatka potrebno je realizovati inkrementer kao zaseban modul (u postavci projekta je potrebno samo implementirati INC7.bdf šemu). Kombinacioni modul Binary2BCD kao ulaz prima binarni broj širine 7 bita, a kao rezultat daje BCD predstavu binarnog broja sa ulaza. Kombinacioni modul 7segmentInterface kao ulaz prima binarni broj širine 4 bita koji prikazuje na sedmosegmentnom displeju. Sekvencijalni modul RisingEdge kao izlaz ima jedan bit koji se aktivira na jednu periodu takta, svaki put kada se ulaz promeni iz neaktivnog u aktivno stanje.

Preuzimanje postavke Quartus projekta.

Slika iz postavke domaćeg zadatka za treću laboratorijsku vežbu.

Modifikacije

Razne modifikacije iz raznih termina, bez logičke povezanosti.

  1. Napraviti modul ADD1, a onda od njega ADD7.
  2. Umesto dva muktipleksera za izbor broja poena (1, 2 ili 3) koristiti jedan sa 2 ulaza i logičke elemente.
  3. Napraviti registar koji ima zadate funkcije (npr. LD, INC i CL) pomoću nekog sinhronog flip-flopa (npr. T flip-flop). Provera ispravnosti se vrši povezivanjem kontrolnih signala na dugmiće, izlaza na LED diode a ostalih ulaza na prekidače.

4. lab

Postavka

Potrebno je dopuniti date šeme kako bi se realzovao košarkaški semafor koji ima tri režima rada.

U prvom režimu rada se prikazuje preostalo vreme za napad. Preostalo vreme za napad se prikazuje na sedmosegmentnim displejima HEX0 i HEX1. Dugmetom BTN0 se resetuje preostalo vreme za napad na 24 sekunde. Dugmetom BTN1 se resetuje preostalo vreme za napad na 14 sekundi. Dugmetom BTN2 se zaustavlja ili nastavlja brojanje preostalog vremena za napad. Kada preostalo vreme za napad postane jednako nuli, brojanje preostalog vremena za napad se zaustavlja i uključuje se dioda LED9, čak iako prvi režim rada nije trenutno aktivan. Preostalo vreme za napad se uvek računa, nezavisno od režima rada u kojem se nalazi košarkaški semafor. Za potrebe prvog režima rada treba realizovati sekvencijalni modul Timer24.

U drugom režimu rada se prikazuje broj postignutih poena. Broj postignutih poena domaće ekipe se prikazuje na sedmosegmentnim displejima HEX0 i HEX1, a broj postignutih poena gostujuće ekipe se prikazuje na sedmosegmentnim displejima HEX2 i HEX3. Kombinacijom prekidača SW7 i dugmadi BTN0, BTN1, i BTN2, moguće je dodati poene jednoj od ekipa. Pozicijom prekidača SW7 bira se ekipa kojoj se dodaju poeni, dok se pomoću dugmadi BTN0, BTN1, i BTN2, izabranoj ekipi dodaje odgovarajući broj poena (BTN0 - jedan, BTN1 - dva, BTN2 - tri). Za potrebe drugog režima rada treba iskoristiti sekvencijalni modul Result.

U trećem režimu rada se prikazuje broj ličnih grešaka igrača iz obe ekipe. Pozicijom prekidača SW7 bira se ekipa, dok se pomoću prekidača SW6 do SW0 unosi binarna predstava broja na dresu igrača kojem treba dodati ličnu grešku. Broj ličnih grešaka izabračnog igrača se inkrementira pomoću dugmeta BTN0. Broj ličnih grešaka izabranog igrača se prikazuje serijskim uključivanjem dioda LED4 do LED0. Na primer, ako igrač ima dve lične greške potrebno je uključiti diode LED1 i LED0, a ako igrač ima četiri lične greške potrebno je uključiti diode LED3, LED2, LED1 i LED0. Igrač može da napravi maksimalno pet ličnih grešaka. Za potrebe trećeg režima rada treba realizovati registarski fajl tj. sekvenicjalni modul RegFile.

Režim rada košarkaškog semafora se bira pomoću prekidača SW9 i SW8, na sledeći način: SW9 = 0, SW8 = 1 -> prvi režim, SW9 = 1, SW8 = 0 -> drugi režim, SW9 = 1, SW8 = 1 -> treći režim.

Resetovanje semafora se aktivira ako su sva tri dugmeta istovremeno pritisnuta i ova komanda ima najviši prioritet.

Sekvencijalni modul Timer24 kao ulaz ima tri signala rst24, rst14 i stop_resume. Aktivnom vrednošću signala rst24 preostalo vreme za napad se postavlja na 24 sekunde. Aktivnom vrednošću signala rst14 preostalo vreme za napad se postavlja na 14 sekundi. Aktivnom vrednošću signala stop_resume može da se zaustavi brojanje ako trenutno teče preostalo vreme za napad ili da se nastavi brojanje ako je trenutno zaustavljeno preostalo vreme za napad. Sekvencijalni modul RegFile tj. registarski fajl predstavlja skup registara. Registarski fajl ima interfejs sličan interfejsu memorijskih čipova. Postoje standardni signali WR, Adr, DataIN, DataOUT, a postoji i ulazni signal rst koji omogućava postavljanje vrednosti svih registara na nulu. Na izlazu DataOUT registarskog fajla uvek se nalazi vrednost registra na čiju adresu ukazuje ulazni signal Adr. Prilikom realizacije registarskog fajla koristiti sedmorazredne registre. Kombinacioni modul Binary2BCD kao ulaz prima binarni broj širine 7 bita, a kao rezultat daje BCD predstavu binarnog broja sa ulaza. Kombinacioni modul 7segmentInterface kao ulaz prima binarni broj širine 4 bita koji prikazuje na sedmosegmentnom displeju. Sekvencijalni modul RisingEdge kao izlaz ima jedan bit koji se aktivira na jednu periodu takta, svaki put kada se ulaz promeni iz neaktivnog u aktivno stanje.

Preuzimanje postavke Quartus projekta.

Slika iz postavke domaćeg zadatka za četvrtu laboratorijsku vežbu.

Modifikacije

Razne modifikacije iz raznih termina, bez logičke povezanosti.

  1. Na levom HEX ekranu ispisati broj ličnih grešaka, a na desnom broj dresa za igrača koji se odabere.
  2. Kada se doda lična greška, automatski se pauzira vreme za napad. Dva ili tri boda resetuju tajmer na 24. Lična greška koja nije peta restartuje na 14, dok peta lična greška resetuje na 24.
  3. Dopustiti da igrač ima 6 ličnih greški i broj ličnih greški prikazati kao binarni broj na LED2..0.
  4. Umesto rst14, klikom na BTN1 se startuje vreme u reketu, ponovnim klikom na rst14 se zaustavlja. Treba LED9 da zasvetli kada igrač provede 3 sekunde u reketu. Klikom na rst24 se vreme u reketu postavlja na 0.
  5. Pored vremena za napad, meri se i kada je prošlo 2 minuta od početka utakmice i kada prođe upali se neka dioda.
  6. Stopiranje sa ličnim (isto kao druga navedena).