ዝርዝር ሁኔታ:

ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል - 10 ደረጃዎች
ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል - 10 ደረጃዎች

ቪዲዮ: ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል - 10 ደረጃዎች

ቪዲዮ: ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል - 10 ደረጃዎች
ቪዲዮ: ሁለንተናዊ - Hulentenawi ep7 @ArtsTvWorld 2024, ህዳር
Anonim
ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል
ሁለንተናዊ ጠፍቷል ማብሪያ / ማጥፊያ ሞዴል

ወደ መኝታ ከመሄድዎ በፊት በቤትዎ ውስጥ ያሉት ሁሉም መብራቶች ጠፍተው መሆናቸውን ማረጋገጥ ሰልችቶዎታል? ያለምንም ውጣ ውረድ እያንዳንዱን መብራት በአንድ ጊዜ እንዲያጠፉ ይፈልጋሉ? ኃይልን እና ጊዜን ለመቆጠብ ፣ በንድፈ ሀሳብ መላውን ቤት በአንድ ጊዜ መዝጋት የሚችል ስርዓት ለመፍጠር ወሰንን።

እኛ ሁለት የ LED ን እና የ basys 3 የወረዳ ቦርድ በመጠቀም የዚህን ጽንሰ -ሀሳብ ማረጋገጫ አምሳያ እና በአንድ አዝራር ግፊት ሁሉንም የ LED ን የሚያቦዝን ንድፍ ፈጠርን። ምንም እንኳን ለተሰጡት የ VHDL ፋይሎች የበለጠ የተወሳሰበ ሽቦ እና ማሻሻያ ቢያስፈልግም ይህ ሞዴል በእውነተኛ የቤት መብራት ስርዓት ላይም ሊተገበር ይችላል።

ደረጃ 1 የተሰጡትን የ VHDL ፋይሎችን ያስመጡ

ሞዴላችን በትክክል እንዲሠራ ለ Basys 3 ቦርድ መመሪያዎቹን የሚሰጠውን ሶፍትዌር ማውረድ ያስፈልግዎታል።

በመጀመሪያ የ vhdl ፋይሎችን ወደ ሃርድዌር ለመተግበር የማዋሃድ መሣሪያ ማውረድ ያስፈልግዎታል። ማንኛውም ማሻሻያ ሳያስፈልግ ሁሉም ኮዱ የእኛን ንድፍ ሙሉ በሙሉ እንደሚደግም እርግጠኛ ለመሆን ከፈለጉ ቪቫዶ 2016.2 ን እንዲጠቀሙ እንመክራለን። ቪቫዶን ከጫኑ በኋላ ፕሮጀክት መፍጠር እና የምንጭ ፋይሎቻችንን ማውረድ ይችላሉ። ለፕሮጀክትዎ እንደ ምንጮች ያክሏቸው ፣ እንዲሁም የእገዳዎች ፋይልንም ማከልዎን አይርሱ!

ቀጥሎ እያንዳንዱ የምንጭ ፋይሎች ምን እንደሚሠሩ እንገልፃለን። ወደ መሣሪያው አካላዊ ግንባታ ለመድረስ ከፈለጉ ደረጃ 2 እስከ 6 ን ይዝለሉ።

ደረጃ 2 የ VHDL ከፍተኛ ሞዱል መፍረስ

የ VHDL ከፍተኛ ሞዱል መፍረስ
የ VHDL ከፍተኛ ሞዱል መፍረስ
የ VHDL ከፍተኛ ሞዱል መፍረስ
የ VHDL ከፍተኛ ሞዱል መፍረስ

የፕሮጀክቱ የላይኛው ሞጁል ሁሉንም የግለሰብ አካል ሞጁሎችን ከተጠቀመው ሃርድዌር ጋር የሚያገናኘው ነው። እርስዎ እንደሚመለከቱት እኛ ከላይ እንደ ክፍሎች የተገለጹ የ killSwitch እና buzzerControl ሞጁሎች አሉን።

የታችኛው ክፍል እነዚህ ሞጁሎች እንዴት አንድ ላይ እንደተገናኙ ይገልጻል። እኛ አራት ኤልኢዲዎችን ከቦርዱ ጋር አገናኘን እና ከ devSwitch ሞጁሎች dev0 እስከ dev3 ጋር አገናኘናቸው። እኛ እያንዳንዱ የተገናኘውን የ LED ሁኔታ ለማስተዳደር አንድ ስለሚያስፈልገን የተገለጹ አራት killSwitch ሞጁሎች አሉን። እያንዳንዳቸው እነዚህ ሞጁሎች እኛ በከፍተኛ ሞዱል ትርጓሜ ውስጥ የፈጠርናቸውን የሰዓት እና የአዝራር ምልክት እንዲሁም እንደየራሳቸው የግቤት መቀየሪያ እና የውጤት መሣሪያ ምልክቶች ይጠቀማሉ።

ሁለንተናዊው አጥፋ አዝራር ሲጫን ታችኛው ክፍል ላይ ያለው የጩኸት መቆጣጠሪያ ሞዱል ቡዙን ያነቃቃል። እርስዎ እንደሚመለከቱት የጩኸት መቆጣጠሪያ ሞዱል የሰዓት እና የአዝራር ምልክት እንደ ግብዓቶች ተላል isል። እንደዚሁም ለመቆጣጠር በአካላዊ ጩኸት ውፅዓት ፒን ተላል isል።

ደረጃ 3 - የ VHDL ግድያ መቀየሪያ ሞዱል መከፋፈል

የ VHDL ግድያ መቀየሪያ ሞዱል መከፋፈል
የ VHDL ግድያ መቀየሪያ ሞዱል መከፋፈል
የ VHDL ግድያ መቀየሪያ ሞዱል መከፋፈል
የ VHDL ግድያ መቀየሪያ ሞዱል መከፋፈል

የመግደል መቀየሪያ ሁለንተናዊ የመጥፋት ቁልፍ ነው ፣ እና ሞጁሉ በዋነኝነት የሚመለከተው ከሌሎች የወረዳ አካላት ጋር በማገናኘት ነው ፣ ስለዚህ ሲጫኑ ሁሉም መብራቶች ይጠፋሉ።

የላይኛው ሞጁል አካላዊ ሃርድዌርን ከሶፍትዌር ጋር በማገናኘት ላይ እያለ ፣ የ killSwitch ሞዱል የእያንዳንዱን መሣሪያ ዋና አመክንዮ ይይዛል። ሞጁሉ ለሰዓት ምልክት ፣ ሁለንተናዊ አጥፋ ቁልፍ እና የመሣሪያው መቀያየሪያ መቀየሪያ ግብዓቶችን ይወስዳል። በምላሹ የተገናኘበትን የመሣሪያ ፒን ሁኔታ ይቆጣጠራል።

በኮዱ የሕንፃ ክፍል ውስጥ ማህደረ ትውስታን ለማከማቸት በ dFlipFlop ሞዱል ላይ ጥገኛ መሆኑን እናያለን። እንዲሁም ተጣጣፊውን ለማገናኘት እንዲሁም የእኛን አመክንዮአዊ መግለጫዎች ለመተግበር የሚያገለግሉ አራት ምልክቶችን እንዳወጅን ማየት ይችላሉ። በኮዱ የባህሪ ክፍል ውስጥ የ dFlipFlop ሞዱልን ምሳሌ ፈጥረናል እና የእኛን/አይ ምልክቶች ወደ ወደቦች ሰጥተናል።

ከዚህ የአመክንዮአችን ዋናው ክፍል ለ invertState እና isDevOn በምልክት እሴቶች ውስጥ ይገኛል። ለመሣሪያው አመክንዮአዊ መሠረታችን እንደሚከተለው ነው - “ማብሪያ/ማጥፊያ በተወረወረ ቁጥር መብራቱ የመብራት/ማጥፋትን ሁኔታ ይለውጣል። በማንኛውም ጊዜ አዝራሩ ተጭኖ ፣ እና ኤልኢዲ ሲበራ ፣ ኤልኢዲ ሁኔታውን ወደ ማጥፋት ይለውጣል። » ከነዚህ ሁለት መግለጫዎች እኛ የ LED ሁኔታ የመቀየሪያው XOR እና የእኛ የማስታወሻ አካል መሆን እንዳለበት በዚህ መንገድ መለወጥ እንችላለን። ይህ በ isDevOn ምልክት ውስጥ ሲተገበር ይታያል። ለማስታወሻ ኤለመንት ሁኔታ ላይ ያለው ኤልኢዲ በእኛ በተገላቢጦሽ ሁኔታ ምልክት ይያዛል። ኤልኢዲው በርቶ ከሆነ እና አዝራሩ ከተጫነ ፣ የማስታወሻችን አካል ይዘምናል እና ሁኔታውን ይገለብጣል። ይህ ከዚያ የ LED ን ሁኔታም ይለውጣል።

ደረጃ 4 - የ VHDL Flip Flop ሞዱል መከፋፈል

የ VHDL Flip Flop ሞዱል መፍረስ
የ VHDL Flip Flop ሞዱል መፍረስ

በእኛ ዲዛይን ላይ አንድ ችግር የማጥፊያ ማጥፊያውን ከተጠቀሙ በኋላ ቀደም ሲል የነበሩ መብራቶች ወደ ቦታው ለመመለስ ሁለት ጊዜ መገልበጥ ሊያስፈልጋቸው ይችላል። ይህ በጊዜ ሂደት ለሰዎች የማይመች ይሆናል። መረጃን ለማከማቸት የሚችል “Flip Flop” የተባለ የወረዳ አካልን ወደ ዲዛይናችን በማካተት ይህንን ምቾት ማጣት ችለናል። አሁን ፣ ሥርዓቱ የብርሃን መቀየሪያ ቀደም ብሎ እንደበራ ያስታውሳል ፣ ስለዚህ እንደገና ከተገለበጠ የመነሻ ቦታው ምንም ይሁን ምን ያበራል።

የ VHDL ኮድ በወረዳ ዲዛይናችን ውስጥ Flip Flop ን እንደ አንድ አካል ለመፍጠር እና ሌላ መግለጫዎችን ይጠቀማል። የሰዓት ምልክቱ ከዝቅተኛ ወደ ከፍተኛ ሁኔታ ሲሸጋገር ፣ አምፖሉ ሲበራ ፣ እና የማጥፊያ መቀየሪያው ሲገፋ ፣ ተንሸራታች ፍሎፕ ውፅዓት ግብዓቱን እንደሚተካ ያረጋግጣል። ግብዓቱ በሚተካበት ጊዜ የተገላቢጦሹ ተገልብጦ ይገለበጣል።

ደረጃ 5 የ VHDL Piezo Buzzer ሞዱል መከፋፈል

የ VHDL Piezo Buzzer ሞዱል መፍረስ
የ VHDL Piezo Buzzer ሞዱል መፍረስ
የ VHDL Piezo Buzzer ሞዱል መፍረስ
የ VHDL Piezo Buzzer ሞዱል መፍረስ

የሃርድዌር ንድፍን በተመለከተ ይህ ፋይል ትንሽ ከመጠን በላይ ነው ፣ ግን የላይኛውን ሞዱል እና ገደቦች ፋይሎች በተቀላጠፈ ሁኔታ እንዲሠሩ ለማድረግ አስፈላጊ ነው። የ Piezo buzzer ን ላለመጠቀም ከመረጡ ፣ ይህንን ፋይል ያውርዱ ፣ ነገር ግን ባዘሩን ከ Basys 3 ሰሌዳ ጋር አያይዙት።

የ Piezo Buzzer የአሰናክል አዝራሩን ሲጫኑ አዝራሩ የተገፋውን የመስማት ግብረመልስ ለተጠቃሚው የሚሰጥ ሁለት የማስታወሻ ቃና ይጫወታል። በሂደት አወቃቀር ውስጥ በተከታታይ መግለጫዎች በኩል ይህንን በባህሪ በ VHDL ውስጥ ተግባራዊ አድርገናል። ስንት የሰዓት ለውጦች እንደተከሰቱ ለመከታተል የኢንቲጀር እሴት በመፍጠር ጀምረናል። ሂደቱ አንዴ ከተጀመረ ፕሮግራሙ የመጀመሪያውን ግማሽ ሰከንድ (ከ 0 እስከ 50 ሚሊዮን የሰዓት መዥገሮች) ሀ በ 440 ሄርትዝ በማስታወሻ ያወጣል። ይህ እያንዳንዱን የ 227272 የሰዓት መዥገሮች በሞዱሎ ተግባር እያንዳንዱን ብዜት በመገልበጥ ይፈጸማል። ይህ ቁጥር የቦርዱ የሰዓት ምልክት (100 ሜኸ) በተፈለገው ድግግሞሽ (400 Hz) የመከፋፈል ውጤት ነው። በሁለተኛው አጋማሽ ሰከንድ (ከ 50 እስከ 100 ሚሊዮን የሰዓት መዥገሮች) ቦርዱ ልክ እንደበፊቱ ዘዴ በ 349.2 ሄርዝ ላይ የ F ማስታወሻ ያወጣል። ከአንድ ሴኮንድ በኋላ ፕሮግራሙ የሰዓት ተለዋዋጭውን አይጨምርም እና ከፓይዞ ቡዛር ማንኛውንም ነገር ማምረት ያቆማል። ሁለንተናዊውን አጥፋ ቁልፍን እንደገና መጫን ይህንን ቁጥር ወደ 0 ዳግም ያስጀምረዋል ፣ የጩኸት ዑደቱን እንደገና ያስጀምሩ።

ደረጃ 6 የ VHDL እገዳዎች ፋይል መፍረስ

የእገዳዎች ፋይል እኛ በምንጠቀምበት Basys 3 ሰሌዳ ላይ ምን መሣሪያዎችን ለቪቫዶ ይነግረዋል። እንዲሁም በእኛ ኮድ ውስጥ ላሉት መሣሪያዎች የሰጠናቸውን ስሞች ለቪቫዶ ይሰጣል። ቪቫዶ ይህንን መረጃ ይፈልጋል ስለዚህ የእኛን አመክንዮአዊ አካላት ከአካላዊ ሃርድዌር ጋር እንዴት ማገናኘት እንደሚቻል ያውቃል። የእገዳዎች ፋይል ከፍተኛ መጠን ያለው አስተያየት የተሰጠ (ጥቅም ላይ ያልዋለ) ኮድ ያካትታል። እነዚህ የኮድ መስመሮች እኛ የማንጠቀምባቸውን በቦርዱ ላይ ያሉትን መሣሪያዎች ያመለክታሉ።

የምንጠቀምባቸው መሣሪያዎች በቦርዱ ላይ V17 ፣ V16 ፣ W16 እና W1 የተሰየሙ አራት የግብዓት መቀየሪያዎችን ያካትታሉ። እኛ ደግሞ U18 የተሰየመውን ሁለንተናዊ አጥፋ አዝራርን እየተጠቀምን ነው። ለአራቱ የተገናኙ ኤልኢዲዎቻችን የውጤት ፒኖች JB4 ፣ JB10 ፣ JC4 እና JC10 ናቸው። ለፒዛዞ buzzer እኛ የውጤት ፒን JA9 ን እንጠቀማለን።

ከላይ ባለው ሞዱል ብልሽት ውስጥ እንደገለጽነው ፣ ተጨማሪ የ LEDs ወይም ሌሎች መሣሪያዎችን በቦርዱ ላይ ማከል ከፈለጉ የ sw እና dev ምልክቶችን ወሰን ማሳደግ ፣ ተጨማሪ የ ‹ግድያን› ሞጁሎችን ማከል እና አንድ ላይ ማገናኘት ያስፈልግዎታል። ከዚያ እነዚያን ተለዋዋጭ ስሞች በመገደብ ፋይል በኩል ወደ መሣሪያ ሃርድዌር ማገናኘት ያስፈልግዎታል። ይህ ሊጠቀሙበት ከሚፈልጉት ካስማዎች ጋር የተዛመዱ የኮድ መስመሮችን በማቃለል (እንደገና በማንቃት) እና ከዚያ በላይኛው ሞዱል ውስጥ ተጓዳኙን ተለዋዋጭ ስም በማከል ሊከናወን ይችላል። ለዚህ ትክክለኛው አገባብ እኛ ከምንጠቀምባቸው መሣሪያዎች ሊገለበጥ ይችላል። በቦርዱ ላይ ሊጠቀሙባቸው የሚፈልጓቸውን የፒን ስሞች ስም ለማወቅ የ Baasys 3 ማጣቀሻ መመሪያን እዚህ ይመልከቱ።

ደረጃ 7 - ቤሶቹን መገንባት 3

ቤሶቹን መገንባት 3
ቤሶቹን መገንባት 3
ቤሶቹን መገንባት 3
ቤሶቹን መገንባት 3

የ LED ዎችዎን ወደ ትክክለኛው የ I/O ወደቦች ወደ መሰኪያዎቹ መሰካት ያስፈልግዎታል 3. ትክክለኛው ወደቦች ምን እንደሆኑ ለመወሰን የቀረቡትን ስዕሎች ይከተሉ ፣ ምክንያቱም አንድን LED በተሳሳተ ወደብ ላይ ከሰኩ አይበራም። የፓይዞ ማጉያውን ለማያያዝ ከመረጡ ፣ ያንን ከትክክለኛው የ I/O ወደቦች ጋር ማገናኘት ያስፈልግዎታል።

ቦርዱ ዝግጁ ሲሆን በዩኤስቢ ገመድ በኩል በኮምፒተርዎ ላይ ይሰኩት።

ደረጃ 8 የ VHDL ፋይሎችን ወደ Basys 3 መተግበር

የ VHDL ፋይሎችን ወደ Basys 3 በመተግበር ላይ
የ VHDL ፋይሎችን ወደ Basys 3 በመተግበር ላይ
የ VHDL ፋይሎችን ወደ Basys 3 በመተግበር ላይ
የ VHDL ፋይሎችን ወደ Basys 3 በመተግበር ላይ

አሁን የእርስዎ ሰሌዳ ዝግጁ ሆኖ እና ኮድዎ እንደተጠናቀቀ ፣ በመጨረሻ ሞዴሉን አንድ ላይ ማያያዝ ይችላሉ።

አንዴ በቪቫዶ ፕሮጀክትዎ ከተዋቀረ በኋላ ኮዱን ወደ ቦርዱ ከመጫንዎ በፊት ለማጠናቀር “Bitstream Generate” የሚለውን ቁልፍ ጠቅ ማድረግ አለብዎት። በዚህ ጊዜ የስህተት መልእክት ከተቀበሉ ፣ የእርስዎ ኮድ በትክክል ከእኛ ጋር የሚዛመድ መሆኑን ሁለት ጊዜ ማረጋገጥ አለብዎት። በትክክል ስናገር ፣ እስከ ሴሚኮሎኖች ወይም ጥቅም ላይ የዋሉ የቅንፍ ዓይነቶች እንኳን ማለቴ ነው። የእርስዎ bitstream በተሳካ ሁኔታ ከተፃፈ በኋላ በቪቫዶ ውስጥ ወደ ሃርድዌር አቀናባሪ ይሂዱ እና “ክፍት ዒላማ” ቁልፍን ጠቅ ያድርጉ ፣ ከዚያ ወዲያውኑ “የፕሮግራም መሣሪያ” ላይ ጠቅ ያድርጉ። የእርስዎ Basys 3 ሰሌዳ አሁን ሙሉ በሙሉ የሚሰራ መሆን አለበት።

ደረጃ 9 የ Basys 3 ሰሌዳውን መጠቀም

የ Basys 3 ሰሌዳውን በመጠቀም
የ Basys 3 ሰሌዳውን በመጠቀም

አሁን የ Basys 3 ቦርድ ሥራ ላይ ሲሆን የእኛን ሞዴል ለመወከል ፕሮግራም ተይዞለት ፣ እሱን እንዴት እንደሚጠቀሙበት ማወቅ አለብዎት።

እያንዳንዳቸው አራቱ ወደ ቀኝ ወደ ቀኝ ከቀይሩት አንዱን ይቆጣጠራሉ ፣ እነሱን ጠቅ ማድረጉ ኤልኢዲ እንዲበራ ወይም እንዲጠፋ ያደርገዋል። ኤልኢዲው ካልነቃ ፣ በትክክለኛው የ I/O ወደብ ላይ እንደተሰኩ እና የእርስዎ ኤልዲ በመጀመሪያ ሥራ ላይ መሆኑን ያረጋግጡ።

ሁሉንም የ LED ን በአንድ ጊዜ ለማሰናከል በሚፈልጉበት ጊዜ ከላይ በሚታዩት አምስት አዝራሮች ስብስብ ውስጥ የመሃከለኛውን ቁልፍ መግፋት አለብዎት።

ደረጃ 10: አሳይ

ሞዴሉ ከጓደኞችዎ እና ከቤተሰብዎ ፊት ሊያሳዩት የሚችሉት እንደ ትንሽ ትንሽ አዲስነት ሆኖ ያገለግላል። የ LED ን ወደ መብራቶችዎ በሚመሩ ሽቦዎች ከተተኩ በንድፈ ሀሳብ እንዲሁ ሁለንተናዊውን ማጥፊያ ወደ ቤትዎ የኤሌክትሪክ ስርዓት ለመተግበር ሊያገለግል ይችላል። የሚቻል ቢሆንም ፣ አሁንም እሱን ከመቃወም መምከር አለብን። ያለኤሌክትሪክ ሠራተኛ እገዛ እንደገና ለማደስ ከሞከሩ ለራስዎ ወይም ለቤትዎ ከባድ ጉዳት የማድረስ ዕድል አለ።

የሚመከር: