Мазмуну:

Универсалдуу өчүрүү модели: 10 кадам
Универсалдуу өчүрүү модели: 10 кадам

Video: Универсалдуу өчүрүү модели: 10 кадам

Video: Универсалдуу өчүрүү модели: 10 кадам
Video: Супруга Камчыбека Ташиева надела серьги своей будущей келин 2024, Июль
Anonim
Универсалдуу өчүрүү модели
Универсалдуу өчүрүү модели

Уйкуңузга чейин үйүңүздүн бардык жарыгы өчүк экенин текшерүүдөн тажадыңызбы? Ар бир жарыкты эч кандай ызы -чуусуз дароо өчүрүүнү каалайсызбы? Күчтү жана убакытты үнөмдөө үчүн, биз теориялык жактан бүтүндөй үйдү бир заматта жаба турган системаны түзүүнү чечтик.

Биз бул түшүнүктүн далилин бир нече LED жана basys 3 схемасын колдонуу менен моделдеп, бир баскычты басуу менен бардык LED диоддорун иштен чыгаруучу дизайнды түздүк. Бул модель үйдүн жарыктандыруу системасына карата колдонулушу мүмкүн, бирок ал VHDL файлдарына татаал зымдарды жана өзгөртүүлөрдү талап кылат.

1 -кадам: Берилген VHDL файлдарын импорттоо

Биздин модель туура иштеши үчүн Basys 3 тактасына көрсөтмөлөрдү берген программаны жүктөп алышыңыз керек болот.

Биринчиден, vhdl файлдарын жабдыктарга киргизүү үчүн синтез куралын жүктөп алышыңыз керек. Эгерде сиз бардык коддор биздин дизайнды эч кандай өзгөртүүлөргө муктаж болбостон толугу менен кайталаарына ишенгиңиз келсе, Vivado 2016.2 колдонууну сунуштайбыз. Vivado орнотулгандан кийин, сиз долбоор түзүп, биздин баштапкы файлдарды жүктөп алсаңыз болот. Аларды сиздин долбоорго булак катары кошуңуз, чектөөлөр файлын кошууну унутпаңыз!

Кийинки биз булак файлдарынын ар бири эмне кыларын түшүндүрөбүз. Эгерде сиз түзмөктүн физикалык курулушуна жеткиңиз келсе, 2ден 6га чейинки кадамдарды өткөрүп жибериңиз.

2 -кадам: VHDL Top модулунун бузулушу

VHDL жогорку модулунун бузулушу
VHDL жогорку модулунун бузулушу
VHDL жогорку модулунун бузулушу
VHDL жогорку модулунун бузулушу

Долбоордун жогорку модулу - бул бардык компоненттердин модулдарын колдонулган жабдыктарга туташтырган нерсе. Көрүнүп тургандай, бизде killSwitch жана buzzerControl модулдары үстүндө компоненттер катары аныкталган.

Төмөнкү бөлүмдө бул модулдар кантип бири -бирине туташтырылгандыгы көрсөтүлгөн. Биз төрт LEDди тактага туташтырып, dev3 аркылуу devS аркылуу killSwitch модулдары менен байланыштырдык. Бизде төрт killSwitch модулу бар, анткени ар бир туташтырылган LEDдин абалын башкаруу үчүн бирөө керек. Бул модулдардын ар бири биз жогорку модулдун аныктамасында жараткан саат жана баскыч сигналын, ошондой эле тиешелүү кирүү которгучун жана чыгаруу түзмөгүнүн сигналдарын колдонот.

Төмөндөгү ызы -чууну башкаруу модулу универсалдуу өчүрүү баскычы басылганда сигналды иштетет. Көрүнүп тургандай, коңгуроону башкаруу модулу саат катары жана баскычтын сигналы катары берилет. Ошондой эле аны көзөмөлдөө үчүн физикалык сигналдын чыккычы өткөрүлүп берилет.

3 -кадам: VHDL Kill Switch модулунун бузулушу

VHDL Kill Switch модулунун бузулушу
VHDL Kill Switch модулунун бузулушу
VHDL Kill Switch модулунун бузулушу
VHDL Kill Switch модулунун бузулушу

Kill Switch - бул универсалдуу өчүрүү баскычы, ал эми модуль биринчи кезекте аны башка схема элементтерине туташтыруу менен байланышкан, ошондуктан ал басылганда бардык жарыктар өчүп калат.

Жогорку модуль программалык камсыздоого физикалык жабдыктарды туташтырса, killSwitch модулу ар бир аппараттын негизги логикасын иштетет. Модуль саат сигналын, универсалдуу өчүрүү баскычын жана түзмөктүн которуштуруу котормосун киргизет. Анын ордуна, ал туташкан түзмөктүн төөнөгүчүнүн абалын көзөмөлдөйт.

Коддун архитектура бөлүмүндө биз эс тутумду сактоо үчүн dFlipFlop модулуна көз каранды экенин көрөбүз. Ошондой эле, биз флип -флопту туташтыруу жана логикалык билдирүүлөрүбүздү ишке ашыруу үчүн колдонула турган төрт сигналды жарыялаганыбызды көрө аласыз. Коддун жүрүм -турум бөлүмүнүн ичинде биз dFlipFlop модулунун экземплярын түздүк жана I/O сигналдарын портко тапшырдык.

Бул жерден биздин логиканын негизги бөлүгү invertState жана isDevOn үчүн сигнал баалуулуктарында жатат. Түзмөк үчүн логикалык негизибиз төмөнкүчө: "Качан болбосун жарык күйгүзүү/өчүрүү абалын өзгөртөт. Кнопка басылганда жана LED учурда күйүп турганда, LED анын абалын өчүрөт. " Бул эки билдирүүдөн биз LEDдин абалын которгучтун XOR жана биздин эс тутум элементибиз болушу керек деп экстраполяциялай алабыз. Бул isDevOn сигналында ишке ашырылганын көрүүгө болот. Эс тутумдун шарты боюнча LED биздин invertState сигналы менен иштейт. Эгерде LED күйүп, баскыч басылса, анда биздин эс тутумубуз жаңыртылып, абалын өзгөртөт. Бул андан кийин LEDдин абалын өзгөртөт.

4 -кадам: VHDL Flip Flop модулунун бузулушу

VHDL Flip Flop модулунун бузулушу
VHDL Flip Flop модулунун бузулушу

Биздин дизайндагы бир көйгөй, өчүрүү которгучун колдонгондон кийин, күйгүзүлгөн абалына кайтуу үчүн, мурун күйүп турган жарыктарды эки жолу айлантуу керек болушу мүмкүн болчу. Бул убакыттын өтүшү менен адамдар үчүн абдан ыңгайсыздык болмок. Дизайнга маалыматты сактоого жөндөмдүү болгон "Flip Flop" схемасын киргизүү менен бул ыңгайсыздыкты айланып өтүүгө жетиштик. Эми, система жарык өчүргүч мурда күйгүзүлгөнүн эстейт, эгер аны кайра оодарса, анын баштапкы абалына карабай күйүп калат.

VHDL коду биздин схеманын компоненти катары флип -флопту түзүү үчүн if жана else билдирүүлөрүн колдонот. Бул сааттык сигнал төмөндөн жогорку абалга өткөндө, лампочка күйүп турганда жана өчүрүү баскычы басылганда, флип -флопс чыгаруу анын киришинин үстүнөн жазылышын камсыз кылат. Киргизүү кайра жазылса, флип -флоп тескери бурулат.

5 -кадам: VHDL Piezo Buzzer модулунун бузулушу

VHDL Piezo Buzzer модулунун бузулушу
VHDL Piezo Buzzer модулунун бузулушу
VHDL Piezo Buzzer модулунун бузулушу
VHDL Piezo Buzzer модулунун бузулушу

Бул файл жабдыктын дизайнына караганда бир аз ашыкча, бирок жогорку модулдун жана чектөөлөрдүн файлдары үзгүлтүксүз иштеши үчүн абдан маанилүү. Эгерде сиз Piezo сигналын колдонбоону чечсеңиз, анда бул файлды жүктөп алыңыз, бирок басызды Basys 3 тактасына тиркебеңиз.

Piezo ызылчасы, өчүрүү баскычын баскандан кийин, колдонуучуга баскыч басылганын угуу менен байланышкан эки нота обонун ойнойт. Биз муну VHDLде процесстин структурасындагы бир нече билдирүүлөр аркылуу ишке ашырдык. Биз сааттын канча жолу өзгөргөнүн байкоо үчүн бүтүн санды түзүү менен баштадык. Процесс башталгандан кийин, программа биринчи жарым секундасын сарптайт (0дон 50 миллион саатка чейин) 440 герцте А нотасын чыгарат. Бул модуль функциясы бар 227272 сааттык кенелердин ар бир нече пьезо сигналын тескери буруу аркылуу ишке ашат. Бул сан тактанын саат сигналын (100 МГц) каалаган жыштыкка (400 Гц) бөлүүнүн натыйжасы. Экинчи жарым секундада (50дөн 100 миллион саатка чейин) такта мурункудай эле ыкма менен 349.2 герцке F нотасын чыгарат. Бир секунддан кийин программа сааттын өзгөрмөсүн көбөйтпөйт жана пьезо сигналынан эч нерсе чыгарууну токтотот. Универсалдуу өчүрүү баскычын кайра басуу менен бул сан 0гө кайтарылат, ызы -чуу цикл кайра башталат.

6 -кадам: VHDL чектөөлөр файлынын бузулушу

Чектөөлөр файлы Vivadoго Basys 3 тактасында кандай түзмөктөрдү колдонуп жатканыбызды айтат. Ошондой эле Vivado'го биздин коддогу түзмөктөргө берген аттарыбызды берет. Vivado бул маалыматка муктаж, ошондуктан логикалык элементтерибизди физикалык жабдыктарга кантип туташтырууну билет. Чектөөлөр файлы көп сандаган комментарийленген (колдонулбаган) кодду камтыйт. Бул код линиялары биз колдонгон эмес, борттогу түзмөктөрдү билдирет.

Биз колдонгон түзмөктөргө V17, V16, W16 жана W1 деп жазылган төрт киргизүү өчүргүчтөрү кирет. Биз ошондой эле U18 деп аталган универсалдуу өчүрүү баскычын колдонуп жатабыз. Биздин туташкан төрт LED үчүн чыгуучу казыктар JB4, JB10, JC4 жана JC10. Биздин piezzo ызгыры үчүн биз JA9 чыгаруу пинин колдонуп жатабыз.

Биз жогорку модулдун бузулушунда айткандай, эгер сиз тактага кошумча LED же башка түзмөктөрдү кошкуңуз келсе, sw жана dev сигналдарынын масштабын жогорулатууңуз керек, дагы killSwitch модулдарын кошуңуз жана аларды бириктириңиз. Андан кийин чектөө файлы аркылуу ошол өзгөрмөлүү аттарды түзмөктүн жабдыктарына байланыштырышыңыз керек. Муну сиз колдонгуңуз келген төөнөгүчтөр менен байланышкан код линияларын комментарийсиз (кайра иштетүү), андан кийин жогорку модулга байланышкан өзгөрмөнүн атын кошуу аркылуу жасаса болот. Бул үчүн туура синтаксисти биз колдонгон түзмөктөрдөн көчүрсө болот. Тактада колдонгуңуз келген төөнөгүчтөрдүн аттарын билүү үчүн бул жердеги Baasys 3 маалымдамасына кайрылыңыз.

7 -кадам: Базисти куруу 3

Базисти куруу 3
Базисти куруу 3
Базисти куруу 3
Базисти куруу 3

Жарык диоддоруңузду Basysтин туура I/O портторуна туташтырышыңыз керек болот 3. Туура порттордун эмне экенин аныктоо үчүн берилген сүрөттөрдү ээрчиңиз, анткени эгер сиз туура эмес портко LEDди туташтырсаңыз, ал күйбөйт. Эгерде сиз пьезо сигналын тиркөөнү тандасаңыз, аны туура I/O портторуна туташтырууңуз керек болот.

Такта даяр болгондо, аны USB кабели аркылуу компьютериңизге сайыңыз.

8 -кадам: VHDL файлдарын Basysке киргизүү 3

VHDL файлдарын Basysке киргизүү 3
VHDL файлдарын Basysке киргизүү 3
VHDL файлдарын Basysке киргизүү 3
VHDL файлдарын Basysке киргизүү 3

Эми тактаңыз даяр жана кодуңуз бүткөндөн кийин, сиз акыры моделди бириктире аласыз.

Долбооруңузду Vivado'до орноткондон кийин, кодду тактага жүктөө алдында компиляциялоо үчүн "Bitstream түзүү" баскычын басуу керек. Эгерде сиз бул учурда ката билдирүүсүн алсаңыз, анда сиздин код так биздикине дал келерин эки жолу текшеришиңиз керек. Мен так айтканымда, чекит чекиттери же кашаанын түрлөрү жөнүндө айтып жатам. Сиздин bitstream ийгиликтүү жазылгандан кийин, Vivado ичиндеги аппараттык менеджерге барып, "Ачык максат" баскычын чыкылдатыңыз, андан кийин дароо "Программалык түзмөктү" чыкылдатыңыз. Сиздин Basys 3 тактасы эми толук иштеши керек.

9 -кадам: Basys 3 тактасын колдонуу

Basys 3 тактасын колдонуу
Basys 3 тактасын колдонуу

Эми Basys 3 Board иштөөдө жана биздин моделди көрсөтүү үчүн программалангандыктан, сиз аны кантип колдонууну билишиңиз керек.

Төрт өчүргүчтүн ар бири LEDдин бирин башкарат, аларды чертүү LEDдин күйүп же өчүшүнө алып келет. Эгерде LED иштетилбесе, анда сиз туура I/O портуна туташтырылганын текшериңиз жана сиздин LED биринчи кезекте функционалдуу экенин текшериңиз.

Сиз бир убакта бардык светодиоддорду өчүргүңүз келсе, жогоруда көрсөтүлгөн беш баскычтын борбордук баскычын басууңуз керек.

10 -кадам: Көрсөтүү

Модель досторуңуздун жана үй -бүлөңүздүн алдында көрсөтө турган тыкан кичинекей жаңылык катары кызмат кылат. Аны теориялык жактан үйдүн электр системасына универсалдуу өчүрүүнү ишке ашыруу үчүн да колдонууга болот, эгерде сиз светодиоддорду жарыкка алып баруучу зымдар менен алмаштырсаңыз. Мүмкүн болсо да, биз ага каршы кеңеш беришибиз керек. Эгерде сиз электриктин жардамысыз кайра туташтырууга аракет кылсаңыз, өзүңүзгө же үйүңүзгө олуттуу зыян келтирүү мүмкүнчүлүгү бар.

Сунушталууда: