ПОРТ/Лаб 2021

Извор: SI Wiki
< ПОРТ
Датум измене: 4. фебруар 2022. у 22:04; аутор: KockaAdmiralac (разговор | доприноси) (Ispravke, nisam još uvek završio)
Пређи на навигацију Пређи на претрагу

Лабораторијске вежбе 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. лаб

Поставка

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

У првом режиму рада се приказује преостало време за напад. Преостало време за напад се приказује на седмосегментним дисплејима ХЕX0 и ХЕX1. Дугметом БТН0 се ресетује преостало време за напад на 24 секунде. Дугметом БТН1 се ресетује преостало време за напад на 14 секунди. Дугметом БТН2 се зауставља или наставља бројање преосталог времена за напад. Када преостало време за напад постане једнако нули, бројање преосталог времена за напад се зауставља и укључује се диода ЛЕД9, чак иако први режим рада није тренутно активан. Преостало време за напад се увек рачуна, независно од режима рада у којем се налази кошаркашки семафор. За потребе првог режима рада треба реализовати секвенцијални модул Тимер24.

У другом режиму рада се приказује број постигнутих поена. Број постигнутих поена домаће екипе се приказује на седмосегментним дисплејима ХЕX0 и ХЕX1, а број постигнутих поена гостујуће екипе се приказује на седмосегментним дисплејима ХЕX2 и ХЕX3. Комбинацијом прекидача СW7 и дугмади БТН0, БТН1, и БТН2, могуће је додати поене једној од екипа. Позицијом прекидача СW7 бира се екипа којој се додају поени, док се помоћу дугмади БТН0, БТН1, и БТН2, изабраној екипи додаје одговарајући број поена (БТН0 - један, БТН1 - два, БТН2 - три). За потребе другог режима рада треба искористити секвенцијални модул Ресулт.

У трећем режиму рада се приказује број личних грешака играча из обе екипе. Позицијом прекидача СW7 бира се екипа, док се помоћу прекидача СW6 до СW0 уноси бинарна представа броја на дресу играча којем треба додати личну грешку. Број личних грешака изабрачног играча се инкрементира помоћу дугмета БТН0. Број личних грешака изабраног играча се приказује серијским укључивањем диода ЛЕД4 до ЛЕД0. На пример, ако играч има две личне грешке потребно је укључити диоде ЛЕД1 и ЛЕД0, а ако играч има четири личне грешке потребно је укључити диоде ЛЕД3, ЛЕД2, ЛЕД1 и ЛЕД0. Играч може да направи максимално пет личних грешака. За потребе трећег режима рада треба реализовати регистарски фајл тј. секвеницјални модул РегФиле.

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

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

Секвенцијални модул Тимер24 као улаз има три сигнала рст24, рст14 и стоп_ресуме. Активном вредношћу сигнала рст24 преостало време за напад се поставља на 24 секунде. Активном вредношћу сигнала рст14 преостало време за напад се поставља на 14 секунди. Активном вредношћу сигнала стоп_ресуме може да се заустави бројање ако тренутно тече преостало време за напад или да се настави бројање ако је тренутно заустављено преостало време за напад. Секвенцијални модул РегФиле тј. регистарски фајл представља скуп регистара. Регистарски фајл има интерфејс сличан интерфејсу меморијских чипова. Постоје стандардни сигнали WР, Адр, ДатаИН, ДатаОУТ, а постоји и улазни сигнал рст који омогућава постављање вредности свих регистара на нулу. На излазу ДатаОУТ регистарског фајла увек се налази вредност регистра на чију адресу указује улазни сигнал Адр. Приликом реализације регистарског фајла користити седморазредне регистре. Комбинациони модул Бинарy2БЦД као улаз прима бинарни број ширине 7 бита, а као резултат даје БЦД представу бинарног броја са улаза. Комбинациони модул 7сегментИнтерфаце као улаз прима бинарни број ширине 4 бита који приказује на седмосегментном дисплеју. Секвенцијални модул РисингЕдге као излаз има један бит који се активира на једну периоду такта, сваки пут када се улаз промени из неактивног у активно стање.

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

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

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

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

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