ПОРТ/Лаб 2021

Извор: SI Wiki
< ПОРТ
Датум измене: 18. септембар 2021. у 02:32; аутор: Koldzic.filip (разговор | доприноси) (Нова страница: == Postavka == == 1. lab == Нацртати шему која реализује комбинациону мрежу за приказ декадних цифара…)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Postavka

1. lab

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

2. lab

Нацртати структурну шему секвенцијалне мреже Милијевог типа која врши бројање од 5 до 0 коришћењем што мање И, ИЛИ и НЕ логичких елемената и T флип флопова код којих је логичка јединица активна вредност улазних сигнала. Мрежа има два улазна сигнала 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. Све секвенцијалне мреже шеме треба повезати на периферију која генерише такт (погледати упутство за плочицу). На плочици се налази генератор такта од 50MHz. Овим повезивањем се остварује прелазак из стања у стање свих секвенцијалних мрежа на такт од 50MHz (0.02 μs). Дугмићи на плочици дају логичку нулу када су у притиснутом стању, а када су у отпуштеном стању дају логичку јединицу. Како је активна вредност управљачких сигнала бројача (dec/rst) логичка јединица, између дугмића и остатка шеме постављени су инвертори. Директним повезивањем излаза инвертора на управљачке сигнале бројача довело бих до следећег проблема. У случају да се дугме држи притиснуто неко време (дуже од неколико периода такта), за то протекло време би се мењало стање (на сваких 0.02 μs), што је доста брзо, па би се тешко приметило да ли је бројач добро реализован. Из тог разлога су постављени модули RisingEdge између инвертора и бројача који као задатак имају да у случају дугог притиска дугмета (дуже од 0.02 μs) на излазу дају логичку јединицу само један такт. Овим поступком би се на сваки притисак дугмета примењивала једна команда над бројачем и стање бројача би се променило само једанпут. Напомена: развојне плочице DE0-CV Board немају излаз за активирање децималне тачке на седмосегментном дисплеју, тако да излаз dp из модула не треба 7SegmentInterfaceDEC нигде повезивати.

3. lab

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

4. lab

Потребно је допунити дате шеме како би се реалзовао кошаркашки семафор који има три режима рада. У првом режиму рада се приказује преостало време за напад. Преостало време за напад се приказује на седмосегментним дисплејима 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 бита, а као резултат даје BCD представу бинарног броја са улаза. Комбинациони модул 7segmentInterface као улаз прима бинарни број ширине 4 бита који приказује на седмосегментном дисплеју. Секвенцијални модул RisingEdge као излаз има један бит који се активира на једну периоду такта, сваки пут када се улаз промени из неактивног у активно стање.

Датотека:PORT Lab4.png