ПОРТ/Септембар 2020
Поставка
- Напомена: Одређени делови поставке су остављени уметничкој интерпретацији преписивача и нису се нужно налазили у испитном задатку.
Након што су Данко и сарадници успешно конструисали управљачку јединицу за шпорет и засладили се палачинкама, дошло је време да оду у кладионицу на рулет. Али нису ишли у било коју кладионицу, већ су искључиво бирали кладионице које су држали њихови бивши студенти који су предмет положили са оценом шест, којих је у граду било укупно једна. Тај дан им се баш посрећило, па су вештом манипулацијом генератора насумичних бројева успели да на рулету освоје 243.500 динара, бурек, аутомобил поменутог бившег студента и картицу за бесплатну кафу (али за бурек нисмо сигурни). После равномерне расподеле добитака, Данку је остао аутомобил. Али, Данковим мукама никад краја, јер чим је упалио ауто приметио је да је уређај за покретање прегорео. Из непознатих разлога, Данко је са собом понео управљачку јединицу свог шпорета (која је, поново, била иста ФПГА плочица коју је сачувао од муња након јунског рока) и уређај који је био способан да покрене Qуартус II 13.1 Wеб Едитион, тако да је одмах прионуо на поправљање свог новоосвојеног аутомобила.
Задатак је направити уређај за покретање аутомобила. Контроле аутомобила су:
SW9
за укључивање аутомобила.SW8
за укључивање приказа статуса аутомобила ("ОФФ"/"Он") на седмосегментним екранима.SW7
приказује колико се горива сме сипати у аутомобил.BTN0
за пуњење горива на аутомобилу.
Количина горива се приказује на LED9..0
, где једна ЛЕД диода одговара 10 литара горива, гориво се троши 10 литара по секунди а пуни 5 литара по секунди.
Поставка Qуартус пројекта може се наћи овде. Решење рока може се наћи овде.
1. задатак
Била је дата главна шема, шеме за попуњавање компоненти и тестови компоненти који би требало да пале ЛЕД диоде на главној шеми када одређена компонента крене да ради као очекивано.
- [? поена] Потребно је реализовати седмоканални мултиплексер са четири улаза и два сигнала за бирање.
- [? поена] Потребно је реализовати приоритетни кодер са улазом за укључивање
EN
, такав да је активна вредност сигнала за укључивање логичка нула, а најмањи бит има највиши приоритет. - [? поена] Потребно је реализовати једноразредни одузимач са улазима
A
,B
иEi
и излазимаF
иEi+1
. - [? поена] Користећи једноразредни одузимач реализовати троразредни одузимач.
- [? поена] Реализовати секвенцијалну мрежу РисингЕдге помоћу Т флип-флопа.
- [? поена] Реализовати једноразредни регистар са могућностима паралелног уписа, инкрементирања и синхроног брисања користећи ЈК флип-флоп.
- [? поена] Реализовати троразредни регистар са истим могућностима користећи једноразредни регистар.
2. задатак
Била је дата CLK_DIVIDER
и Binary2BCD
компоненте, декодер са 16 излаза као и интерфејс за седмосегментни дисплеј.
- [5 поена] Имплементирати мењање стања аутомобила (укључен/искључен) преко
SW9
. Уколико јеSW8
укључен, приказати стање аутомобила на хексадецималном дисплеју тако да кад је искључен пише "ОФФ" а кад је укључен "Он". Када је аутомобил укључен он троши 10 литара горива у секунди, а када му сипамо гориво (ту опцију омогућаваBTN0
) пуни се 5 литара у секунди. Аутомобил може да се пуни само када је искључен. Потребно је омогућити приказ стања горива на ЛЕД диодама (на пример, ако има 53 литара горива у резервоару, светли диодаLED6
). - [5 поена] Омогућити да се када је резервоар аутомобила пун (100 литара) на хексадецималном дисплеју испише "ФУЛЛ", а када је резервоар празан да се испише "----" уколико је
SW8
искључен. Такође омогућити да се помоћуSW7
на хексадецималном дисплеју прикаже колико се још горива сме сипати у аутомобил. - [5 поена] Имплементирати уређај и омогућити да се не сме сипати гориво ако је пун резервоар и трошити ако је празан.