ПОРТ/Лаб 2021

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

Лабораторијске вежбе 2021. године су се одржале у редовним терминима у рачунарским лабораторијама факултета. За прве две лабораторијске вежбе се цртала шема а затим на лабораторијској вежби прецртавала у Qуартус, док се за последње две предавао Qуартус пројекат.

1. лаб

Поставка

Нацртати шему која реализује комбинациону мрежу за приказ декадних цифара на седмосегментном дисплеју коришћењем што мање I, ИЛИ и НЕ логичких елемената. На Слици 1 дат је изглед седмосегментног дисплеја код којег је логичка нула активна вредност (логичка нула пали сегмент на дисплеју). Стање прекидача x3, x2, x1 и x0 представљају бинарну вредност броја за приказ, где је x3 најстарији, а x0 најмлађи бит. У случају да стање прекидача представља бинарну вредност већу од 910, онда је потребно да само сегменти а, г и д седмосегментног дисплеја буду упаљени. Није потребно правити већ претходно реализоване излазе логичких елемената, већ постојеће искористити – цртати обједињену шему. Дозвољено је именовати излазе логичких елемената и користи их на другим деловима шеме. Студент је дужан да црта прегледно коришћењем графитне оловке. Урађен домаћи задатак на овом формулару донети у термину прве лабораторијске вежбе.

Модификације

  • За четворобитни број који се уноси помоћу 4 прекидача, лампица треба да засветли ако је бит парности 1, иначе не треба да светли.

2. лаб

Поставка

Нацртати структурну шему секвенцијалне мреже Милијевог типа која врши бројање од 5 до 0 коришћењем што мање I, ИЛИ и НЕ логичких елемената и Т флип флопова код којих је логичка јединица активна вредност улазних сигнала. Мрежа има два улазна сигнала dec и rst. Ако је сигнал dec активан, а сигнал rst неактиван онда бројач треба да умањи вредност за један. Ако је сигнал dec неактиван, а сигнал rst активан онда бројач треба постави[сиц] на вредност 5. Ако су оба сигнала dec и rst активна или су оба сигнала неактивна, бројач не треба да мења стање. Умањивањем броја 0 бројач не треба да мења своју вредност. Стања треба кодирати редом почев од 1012 до 0002 (нпр. декрементирањем из стања 0112 прелази се у стање 0102). Сигнали z2, z1 и z0 представљају излаз мреже, где је z0 најмлађи, а z2 најстарији бит.

Потребно је нацртати обједињену структурну шему, при чему не треба изнова правити претходно реализоване излазе логичких елемената, већ треба искористити постојеће. Дозвољено је именовати излазе логичких елемената и користи[сиц] их на другим деловима структурне шеме. Студент је дужан да црта прегледно коришћењем графитне оловке. Урађен домаћи задатак на овом формулару донети у термину друге лабораторијске вежбе.

Провера исправности шеме

Од шеме која је дата за домаћи потребно је направити модул Brojac5_0. На располагању су још два типа модула RsisingEdge[сиц] и 7SegmentInterfaceDEC. Модул RisingEdge представља секвенцијалну мрежу која као излаз има један бит који се активира једну периоду такта сваки пут када се улаз промени из неактивног у активно стање. Модул 7SegmentInterfaceDEC рачуна који сегменти седмосегментног дисплеја треба активирати на основу четири улазна сигнала x3..0 који представљају четвробитни бинарни број мањи од 1010. Модул има и улазне сигнале dp и en. Сигналом dp се може контролисати паљење сегмента који представља тачку поред седмосегментног дисплеја. Довођењем логичке нуле на улаз en седмосегментни дисплеј се гаси, док довођењем логичке нуле на седмосегментном дисплеју се приказује одговарајућа вредност задата осталим улазним сигналима.

Излаз модула Brojac5_0 треба повезати на модул 7SegmentInterfaceDEC, како би се приказивала вредност бројача на седмосегментном дисплеју. С обзиром да 7SegmentInterfaceDEC као улаз прима четворобитни број, а модул Brojac5_0 као излаз има тробитни број, највиши бит модула 7SegmentInterfaceDEC би требало повезати на логичку нулу. Стандардна компонента која као излаз има константу логичку нулу зове се gnd. Нема потребе за паљењем тачке иза цифре, па се онда улаз dp повезује такође на gnd. С обзиром да је потребно да се увек приказује цифра, на улаз en је доведена константна логичка јединица уз помоћ стандардне компоненте vcc.

Све секвенцијалне мреже шеме треба повезати на периферију која генерише такт (погледати упутство за плочицу). На плочици се налази генератор такта од 50МХз. Овим повезивањем се остварује прелазак из стања у стање свих секвенцијалних мрежа на такт од 50МХз (0.02 μс).

Дугмићи на плочици дају логичку нулу када су у притиснутом стању, а када су у отпуштеном стању дају логичку јединицу. Како је активна вредност управљачких сигнала бројача (dec/rst) логичка јединица, између дугмића и остатка шеме постављени су инвертори. Директним повезивањем излаза инвертора на управљачке сигнале бројача довело бих[сиц] до следећег проблема. У случају да се дугме држи притиснуто неко време (дуже од неколико периода такта), за то протекло време би се мењало стање (на сваких 0.02 μс), што је доста брзо, па би се тешко приметило да ли је бројач добро реализован. Из тог разлога су постављени модули RisingEdge између инвертора и бројача који као задатак имају да у случају дугог притиска дугмета (дуже од 0.02 μс) на излазу дају логичку јединицу само један такт. Овим поступком би се на сваки притисак дугмета примењивала једна команда над бројачем и стање бројача би се променило само једанпут.

Напомена: развојне плочице ДЕ0-CV Боард немају излаз за активирање децималне тачке на седмосегментном дисплеју, тако да излаз dp из модула не треба[сиц] 7SegmentInterfaceDEC нигде повезивати.

Преузимање додатних компоненти.

Модификације

Варијанта 1
  1. Направити бројач који броји по секвенци 5-4-3-2-1-0-1-2-3-4-5.
  2. Направити Рисинг Едге (мрежу Муровог типа која детектује секвенцу 01 помоћу тактованог D флип-флопа и на улазу генерише логичку јединицу у трајању од једног такта).
Варијанта 2
  1. Направити бројач који на два дисплеја броји 52-43-34-25-61-70-52
    Идеја за решење овог задатка је била то што цифре увек у збиру дају 7.
  2. Направити ЈК ФФ преко Т ФФ.
Варијанта 3
  1. Направити бројач коиј броји по секвенци 5-3-1-0-5.
  2. Направити Фаллинг Едге.

3. лаб

Поставка

Потребно је допунити дату шему искључиво стандардним комбинационим и стандардним секвенцијалним модулима, тако да шема реализује уређај који омогућава праћење броја постигнутих поена једне екипе на кошаркашкој утакмици. Записничар на кошаркашкој утакмици има на располагању три дугмета, BTN0, BTN1 и BTN2 помоћу којих датој екипи додаје одговарајући број поена за сваки постигнут кош. Притиском дугмета BTN0 записничар додаје један поен, притиском дугмета BTN1 записничар додаје два поена, притиском дугмета BTN2 записничар додаје три поена. Сматрати да није могуће истовремено притиснути више од једног дугмета и да на једној утакмици није могуће постићи више од 99 поена. Број постигнутих поена дате екипе треба представити у декадном облику, а појединачне цифре броја постигнутих поена треба приказати на два седмосегментна дисплеја HEX1 и HEX0 (HEX1 - дисплеј за приказ десетица; HEX0 - дисплеј за приказ јединица). У оквиру решавања задатка потребно је реализовати инкрементер као засебан модул (у поставци пројекта је потребно само имплементирати INC7.bdf шему). Комбинациони модул Binary2BCD као улаз прима бинарни број ширине 7 бита, а као резултат даје БЦД представу бинарног броја са улаза. Комбинациони модул 7segmentInterface као улаз прима бинарни број ширине 4 бита који приказује на седмосегментном дисплеју. Секвенцијални модул RisingEdge као излаз има један бит који се активира на једну периоду такта, сваки пут када се улаз промени из неактивног у активно стање.

Преузимање поставке Qуартус пројекта.

Слика из поставке домаћег задатка за трећу лабораторијску вежбу.

Модификације

Разне модификације из разних термина, без логичке повезаности.

  1. Направити модул ADD1, а онда од њега ADD7.
  2. Уместо два муктиплексера за избор броја поена (1, 2 или 3) користити један са 2 улаза и логичке елементе.
  3. Направити регистар који има задате функције (нпр. LD, INC и CL) помоћу неког синхроног флип-флопа (нпр. Т флип-флоп). Провера исправности се врши повезивањем контролних сигнала на дугмиће, излаза на ЛЕД диоде а осталих улаза на прекидаче.

4. лаб

Поставка

Потребно је допунити дате шеме како би се реалзовао кошаркашки семафор који има три режима рада.

У првом режиму рада се приказује преостало време за напад. Преостало време за напад се приказује на седмосегментним дисплејима HEX0 и HEX1. Дугметом BTN0 се ресетује преостало време за напад на 24 секунде. Дугметом BTN1 се ресетује преостало време за напад на 14 секунди. Дугметом BTN2 се зауставља или наставља бројање преосталог времена за напад. Када преостало време за напад постане једнако нули, бројање преосталог времена за напад се зауставља и укључује се диода LED9, чак иако први режим рада није тренутно активан. Преостало време за напад се увек рачуна, независно од режима рада у којем се налази кошаркашки семафор. За потребе првог режима рада треба реализовати секвенцијални модул Timer24.

У другом режиму рада се приказује број постигнутих поена. Број постигнутих поена домаће екипе се приказује на седмосегментним дисплејима HEX0 и HEX1, а број постигнутих поена гостујуће екипе се приказује на седмосегментним дисплејима HEX2 и HEX3. Комбинацијом прекидача SW7 и дугмади BTN0, BTN1, и BTN2, могуће је додати поене једној од екипа. Позицијом прекидача SW7 бира се екипа којој се додају поени, док се помоћу дугмади BTN0, BTN1, и BTN2, изабраној екипи додаје одговарајући број поена (BTN0 - један, BTN1 - два, BTN2 - три). За потребе другог режима рада треба искористити секвенцијални модул Result.

У трећем режиму рада се приказује број личних грешака играча из обе екипе. Позицијом прекидача SW7 бира се екипа, док се помоћу прекидача SW6 до SW0 уноси бинарна представа броја на дресу играча којем треба додати личну грешку. Број личних грешака изабрачног играча се инкрементира помоћу дугмета BTN0. Број личних грешака изабраног играча се приказује серијским укључивањем диода LED4 до LED0. На пример, ако играч има две личне грешке потребно је укључити диоде LED1 и LED0, а ако играч има четири личне грешке потребно је укључити диоде LED3, LED2, LED1 и LED0. Играч може да направи максимално пет личних грешака. За потребе трећег режима рада треба реализовати регистарски фајл тј. секвеницјални модул RegFile.

Режим рада кошаркашког семафора се бира помоћу прекидача SW9 и SW8, на следећи начин: SW9 = 0, SW8 = 1 -> први режим, SW9 = 1, SW8 = 0 -> други режим, SW9 = 1, SW8 = 1 -> трећи режим.

Ресетовање семафора се активира ако су сва три дугмета истовремено притиснута и ова команда има највиши приоритет.

Секвенцијални модул Timer24 као улаз има три сигнала rst24, rst14 и stop_resume. Активном вредношћу сигнала rst24 преостало време за напад се поставља на 24 секунде. Активном вредношћу сигнала rst14 преостало време за напад се поставља на 14 секунди. Активном вредношћу сигнала stop_resume може да се заустави бројање ако тренутно тече преостало време за напад или да се настави бројање ако је тренутно заустављено преостало време за напад. Секвенцијални модул RegFile тј. регистарски фајл представља скуп регистара. Регистарски фајл има интерфејс сличан интерфејсу меморијских чипова. Постоје стандардни сигнали WR, Adr, DataIN, DataOUT, а постоји и улазни сигнал rst који омогућава постављање вредности свих регистара на нулу. На излазу DataOUT регистарског фајла увек се налази вредност регистра на чију адресу указује улазни сигнал Adr. Приликом реализације регистарског фајла користити седморазредне регистре. Комбинациони модул Binary2BCD као улаз прима бинарни број ширине 7 бита, а као резултат даје БЦД представу бинарног броја са улаза. Комбинациони модул 7segmentInterface као улаз прима бинарни број ширине 4 бита који приказује на седмосегментном дисплеју. Секвенцијални модул RisingEdge као излаз има један бит који се активира на једну периоду такта, сваки пут када се улаз промени из неактивног у активно стање.

Преузимање поставке Qуартус пројекта.

Слика из поставке домаћег задатка за четврту лабораторијску вежбу.

Модификације

Разне модификације из разних термина, без логичке повезаности.

  1. На левом ХЕX екрану исписати број личних грешака, а на десном број дреса за играча који се одабере.
  2. Када се дода лична грешка, аутоматски се паузира време за напад. Два или три бода ресетују тајмер на 24. Лична грешка која није пета рестартује на 14, док пета лична грешка ресетује на 24.
  3. Допустити да играч има 6 личних грешки и број личних грешки приказати као бинарни број на LED2..0.
  4. Уместо rst14, кликом на BTN1 се стартује време у рекету, поновним кликом на rst14 се зауставља. Треба LED9 да засветли када играч проведе 3 секунде у рекету. Кликом на rst24 се време у рекету поставља на 0.
  5. Поред времена за напад, мери се и када је прошло 2 минута од почетка утакмице и када прође упали се нека диода.
  6. Стопирање са личним (исто као друга наведена).