ПОРТ/Јун 2020

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

Поставка

Приказ представе формула на седмосегментним екранима и кретања играча.

Имплементирамо игру где наша играчка формула избегава друге формуле које јој наилазе, добија поене сваки пут кад избегне формулу и ресетује игру када се судари. Формуле се приказују хоризонталним сегментима на четири седмосегментна екрана, а поени играча на ЛЕД диодама.

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

1. задатак

Била је дата главна шема и тестови наших компоненти који би требало да упале ЛЕД диоде када компонента ради као очекивано, само што тестови за последње три компоненте нису радили па је њих демонстратор ручно прегледао.

  1. [4 поена] Направити једноразредни компаратор са улазима A, B, Gi-1, Ei-1, Li-1 и излазима Gi, Ei, Li.
  2. [3 поена] Направити троразредни компаратор.
  3. [4 поена] Направити троканални мултиплексер са два улаза и улазом за омогућавање.
  4. [3 поена] Направити троканални мултиплексер са четири улаза.
  5. [6 поена] Направити једноразредни регистар са паралелним уписом, чишћењем, инкрементирањем, померањем улево и померањем удесно са D флип-флопом. Сигнал за инкрементирање инкрементира број само када је сигнал за пренос из претходног регистра укључен.
  6. [2 поена] Направити дворазредни регистар са инкрементирањем и чишћењем.
  7. [3 поена] Направити троразредни регистар са свим као за једноразредни.

2. задатак

Дате су компоненте CLK_DIVIDER и RisingEdge. Биле су дате шеме за ручно тестирање компоненти из свих ставки задатка и дате компоненте су већ биле искоришћене у њима. Компоненте су биле у фајловима mainX.bdf, а тест шеме у фајловима test_mainX.bdf, где шема main5.bdf није имала своју тест шему (то је била главна шема, па се на њих и тестирало). Нису биле дате компоненте из првог задатка у ВХДЛ-у, већ су морале да се користе направљене. Пазити на то да се излази који се повезују на седмосегментни екран негирају при излазу из компоненти јер се сегменти седмосегментног екрана пале при вредности 0 (ово није било урађено у поставци, али је било напоменуто на испиту).

  1. [3 поена] Направити бројач који броји по секвенци 0-1-4-2-0 када је сигнал C једнак 1 и рестартује секвенцу када је сигнал CL једнак 1 (сигнал CL има већи приоритет). Потребно је користити модуле из првог задатка. Излаз овог кола је тробитни сигнал и користи се за позицију новонадолазеће формуле.
  2. [2 поена] Направити секвенцијалну мрежу која броји поене играча на ширини од 6 бита када је укључен улазни сигнал INC и подржава чишћење кроз сигнал CL (који има највећи приоритет).
  3. [3 поена] Направити секвенцијалну мрежу са четири излаза, где су прва три позиције надолазећих формула (на горњој слици горње три формуле обојене црвеном бојом) а четврти се користи за детекцију судара. Када је укључен сигнал LD мрежа учитава стање са IN2..0 и на излазима враћа последња четири учитана стања, а када је укључен сигнал CL (који има највећи приоритет) мрежа чисти учитана стања.
  4. [3 поена] Направити секвенцијалну мрежу за контролу играчке формуле која има сигнале UP и DOWN које кружно померају играчку формулу горе и доле (када је играч горе и помери се нагоре мора да се појави доле, када је играч доле и помери се надоле мора да се појави горе) и сигнал LD који учитава играчеву позицију са улаза IN.
  5. [4 поена] Имплементирати целу игру (улазни сигнали су UP, DOWN и RESET).