ПОРТ/Август 2021

Извор: SI Wiki
< ПОРТ
Датум измене: 7. септембар 2021. у 21:37; аутор: KockaAdmiralac (разговор | доприноси) (Unapređena postavka i dodato rešenje)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Поставка

Приказ анимације ротације веш машине на седмосегментном екрану из поставке задатка.
Напомена: Одређени делови поставке су остављени уметничкој интерпретацији преписивача и нису се нужно налазили у испитном задатку.

Након што је успешно продао аутомобил којег је прошле године у септембру освојио у кладионици, мали Данко је решио да оснује своју перионицу веша. Од новца који је зарадио купио је три супербрзе машине за веш које могу за једну секунду да оперу до пет килограма веша. Нажалост, колико су биле брзе толико су им брзо и прегореле управљачке јединице које су им у фабрици уградили за учитавање жетона од њихових корисника. За Данка, додуше, ово није био проблем, јер је перионицу направио као део Рачунског центра Електротехничког факултета Универзитета у Београду из кога је могао да довуче једну Алтера Цyцлоне III ФПГА плочицу преко које је могао да направи потпуно нову управљачку јединицу за све три веш машине одједном, и притом да корисницима леп увид у то колико им је жетона још остало.

Задатак је направити управљач перионицом веша. Дате су контроле:

  • Седмосегментни екрани HEX0 до HEX2 респективно за представљање веш машина перионице, током анимације ротације пале и гасе се сегменти на кружном делу екрана (приказано на слици) и свеукупно трајање једне ротације је једна секунда,
  • SW0 до SW2 за паљење веш машина,
  • LED5..0 за приказивање тренутног броја жетона које корисник има, и
  • BTN0 за повећавање броја жетона.

Машине не раде уколико је број жетона које корисник има мањи од броја упаљених веш машина.

Поставка Qуартус пројекта са ВХДЛ тестовима може се наћи овде. Решење рока може се наћи овде.

1. задатак

  1. [4 поена] Направити једноразредни компаратор са улазима A, B, Gi-1, Ei-1, Li-1 и излазима Gi, Ei, Li.
  2. [3 поена] Направити шесторазредни компаратор користећи модул из претходне ставке.
  3. [3 поена] Направити шестоканални мултиплексер са два улаза и једним селекционим сигналом.
  4. [2 поена] Направити шестоканални мултиплексер са 4 улаза и једним излазним сигналом користећи модул направљен у трећој тачки.
  5. [3 поена] Реализовати ФаллингЕдге као секвенцијалну мрежу Муровог типа користећи искључиво РС флип флопове.
  6. [6 поена] Направити једноразредни регистар са операцијама паралелног уписа (LD), серијског уписа у лево (SL), серијског уписа у десно (SR) и синхроног брисања (CL) користећи D флип флоп. Највећи приоритет има операција паралелног уписа, затим серијског уписа у лево, затим серијског уписа у десно и на крају најмањи приоритет има синхроно брисање (LD > SL > SR > CL).
  7. [4 поена] Направити шесторазредни регистар са свим операцијама као и претходни користећи модул из претходне ставке.

2. задатак

  1. [2 поена] Направити комбинациону мрежу која има три улазна сигнала (X1, X2, X3) и два излазна сигнала z1 и z2 која треба да приказује број активних улазних сигнала у бинарном бројном систему. На пример, ако су активна било која два улазна сигнала потребно је да сигнал z2 има активну вредност а сигнал z1 неактивну (102).
  2. [5 поена] Потребно је реализовати модул који управља коришћењем жетона са три улазна сигнала INC, ON2..0 и CLK, и једним излазним сигналом TOKENS5..0. Он чува информацију о тренутном броју жетона које корисник има као секвенцу јединица онолико пута колико има жетона (на пример, за 4 жетона се чува вредност 0011112). Максималан број жетона које корисник може да има је 6, а минималан 0. Помоћу сигнала INC број жетона се повећава за 1. Потребно је обезбедити да се број жетона увек налази у опсегу од 0 до 6. Излазни сигнал даје информацију о томе колико жетона корисник има. Улазни сигнал ON2..0 даје информацију о томе које су машине у том тренутку активне (на пример, уколико су прва и друга машина укључене онда је вредност сигнала 1102). У завсности од тога колико је машина упаљено број жетона корисника се смањује за одређен број сваке секунде (на пример, ако су активне две машине сваке секунде корисник губи по два жетона). За реализацију ове ставке доступан је модул OneSecondTimer.
  3. [4 поена] Направити модул који управља једном веш машином (дозвољава паљење и гашење). Потребно је да има два улазна сигнала EN и CLK а један излазни сигнал WM5..0. Модул треба да симулира окретање веш машине тако што једну јединицу на WM5..0 помера од бита најмање тежине до бита највеће тежине и понавља то све док је упаљена (једна ротација траје једну секунду). Уколико је веш машина угашена на излазу су све нуле. Након сваког укључивања ротација креће од најнижег бита излазног сигнала. За реализацију овог модула био је дат модул One36thOfSecond.
  4. [4 поена] Потребно је имплементирати целу шему помоћу које се управља перионицом веша. Веш машинама се управља модулима из ставке 3.