ПОРТ/Август 2021
Поставка
- Напомена: Одређени делови поставке су остављени уметничкој интерпретацији преписивача и нису се нужно налазили у испитном задатку.
Након што је успешно продао аутомобил којег је прошле године у септембру освојио у кладионици, мали Данко је решио да оснује своју перионицу веша. Од новца који је зарадио купио је три супербрзе машине за веш које могу за једну секунду да оперу до пет килограма веша. Нажалост, колико су биле брзе толико су им брзо и прегореле управљачке јединице које су им у фабрици уградили за учитавање жетона од њихових корисника. За Данка, додуше, ово није био проблем, јер је перионицу направио као део Рачунског центра Електротехничког факултета Универзитета у Београду из кога је могао да довуче једну Алтера Цyцлоне III ФПГА плочицу преко које је могао да направи потпуно нову управљачку јединицу за све три веш машине одједном, и притом да корисницима леп увид у то колико им је жетона још остало.
Задатак је направити управљач перионицом веша. Дате су контроле:
- Седмосегментни екрани
HEX0
доHEX2
респективно за представљање веш машина перионице, током анимације ротације пале и гасе се сегменти на кружном делу екрана (приказано на слици) и свеукупно трајање једне ротације је једна секунда, SW0
доSW2
за паљење веш машина,LED5..0
за приказивање тренутног броја жетона које корисник има, иBTN0
за повећавање броја жетона.
Машине не раде уколико је број жетона које корисник има мањи од броја упаљених веш машина.
Поставка Qуартус пројекта са ВХДЛ тестовима може се наћи овде. Решење рока може се наћи овде.
1. задатак
- [4 поена] Направити једноразредни компаратор са улазима
A
,B
,Gi-1
,Ei-1
,Li-1
и излазимаGi
,Ei
,Li
. - [3 поена] Направити шесторазредни компаратор користећи модул из претходне ставке.
- [3 поена] Направити шестоканални мултиплексер са два улаза и једним селекционим сигналом.
- [2 поена] Направити шестоканални мултиплексер са 4 улаза и једним излазним сигналом користећи модул направљен у трећој тачки.
- [3 поена] Реализовати ФаллингЕдге као секвенцијалну мрежу Муровог типа користећи искључиво РС флип флопове.
- [6 поена] Направити једноразредни регистар са операцијама паралелног уписа (
LD
), серијског уписа у лево (SL
), серијског уписа у десно (SR
) и синхроног брисања (CL
) користећи D флип флоп. Највећи приоритет има операција паралелног уписа, затим серијског уписа у лево, затим серијског уписа у десно и на крају најмањи приоритет има синхроно брисање (LD
>SL
>SR
>CL
). - [4 поена] Направити шесторазредни регистар са свим операцијама као и претходни користећи модул из претходне ставке.
2. задатак
- [2 поена] Направити комбинациону мрежу која има три улазна сигнала (
X1
,X2
,X3
) и два излазна сигналаz1
иz2
која треба да приказује број активних улазних сигнала у бинарном бројном систему. На пример, ако су активна било која два улазна сигнала потребно је да сигналz2
има активну вредност а сигналz1
неактивну (102). - [5 поена] Потребно је реализовати модул који управља коришћењем жетона са три улазна сигнала
INC
,ON2..0
иCLK
, и једним излазним сигналомTOKENS5..0
. Он чува информацију о тренутном броју жетона које корисник има као секвенцу јединица онолико пута колико има жетона (на пример, за 4 жетона се чува вредност 0011112). Максималан број жетона које корисник може да има је 6, а минималан 0. Помоћу сигналаINC
број жетона се повећава за 1. Потребно је обезбедити да се број жетона увек налази у опсегу од 0 до 6. Излазни сигнал даје информацију о томе колико жетона корисник има. Улазни сигналON2..0
даје информацију о томе које су машине у том тренутку активне (на пример, уколико су прва и друга машина укључене онда је вредност сигнала 1102). У завсности од тога колико је машина упаљено број жетона корисника се смањује за одређен број сваке секунде (на пример, ако су активне две машине сваке секунде корисник губи по два жетона). За реализацију ове ставке доступан је модулOneSecondTimer
. - [4 поена] Направити модул који управља једном веш машином (дозвољава паљење и гашење). Потребно је да има два улазна сигнала
EN
иCLK
а један излазни сигналWM5..0
. Модул треба да симулира окретање веш машине тако што једну јединицу наWM5..0
помера од бита најмање тежине до бита највеће тежине и понавља то све док је упаљена (једна ротација траје једну секунду). Уколико је веш машина угашена на излазу су све нуле. Након сваког укључивања ротација креће од најнижег бита излазног сигнала. За реализацију овог модула био је дат модулOne36thOfSecond
. - [4 поена] Потребно је имплементирати целу шему помоћу које се управља перионицом веша. Веш машинама се управља модулима из ставке 3.