ዝርዝር ሁኔታ:

የ FPGA ምላሽ ጨዋታ 10 ደረጃዎች
የ FPGA ምላሽ ጨዋታ 10 ደረጃዎች

ቪዲዮ: የ FPGA ምላሽ ጨዋታ 10 ደረጃዎች

ቪዲዮ: የ FPGA ምላሽ ጨዋታ 10 ደረጃዎች
ቪዲዮ: Hearing loss explained: Testing, equipment & communication during COVID-19 | Close to Home Ep. 27 2024, ህዳር
Anonim
የ FPGA ምላሽ ጨዋታ
የ FPGA ምላሽ ጨዋታ

በበጋ ራዘርፎርድ እና ሬጂታ ሶታንድዳር

ደረጃ 1 መግቢያ

ለሲፒኢ 133 ለመጨረሻው ፕሮጄክታችን ፣ ለባሲ 3 ቦርድ በ VHDL ውስጥ የምላሽ ጨዋታ አዘጋጅተናል። ይህ ጨዋታ ተጫዋቹ ብሎኮችን በትክክለኛው ጊዜ መጣል ካለበት የመጫወቻ ማዕከል ጨዋታ “Stacker” ጋር በጣም ሊወዳደር ይችላል። የ Basys3 ሰሌዳ ተለዋጭ LED ዎች ካለው የዳቦ ሰሌዳ ጋር ተገናኝቷል። እነዚህ የ LED መብራቶች በደረጃው ላይ በመመስረት በተወሰነ ድግግሞሽ ይለዋወጣሉ። ይህ ጨዋታ የሰዓት መከፋፈያውን እና ባለ 4 አሃዝ 7 ክፍል ማሳያውን እና እንዲሁም የተወሰነ የስቴት ማሽንን ይጠቀማል። መካከለኛው ኤልኢዲ ሲበራ ተጫዋቹ ትክክለኛውን ማብሪያ ሲያንቀሳቅስ ተጫዋቹ ወደ ቀጣዩ የጨዋታ ደረጃ ያድጋል ፣ ተለዋጭ LED ዎች ድግግሞሽ ይጨምራል። ይህ እያንዳንዱ ቀጣይ ደረጃ ከቀዳሚው ደረጃ የበለጠ ከባድ ያደርገዋል። ተጫዋቹ ደረጃ 7 ን ፣ ከፍተኛውን ደረጃ በተሳካ ሁኔታ ሲመታ ፣ መልእክት በክፍል ማሳያ ላይ ይታያል እና ሁሉም ኤልኢዲዎች በአንድ ጊዜ ያበራሉ እና ያበራሉ።

ደረጃ 2 - ቁሳቁሶች

ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች

የሚያስፈልጉዎት ቁሳቁሶች-

  • Digilent Basys3 ሰሌዳ ከማይክሮ ዩኤስቢ ገመድ ጋር
  • የዳቦ ሰሌዳ
  • 5 ኤል.ዲ
  • 5 ተቃዋሚዎች (እኛ 220 ohms ተጠቅመናል)
  • 11 ዝላይ ሽቦዎች
  • ከቪቫዶ ጋር ኮምፒተር

ደረጃ 3 የከፍተኛ ደረጃ ዲያግራም ጥቁር ሣጥን ንድፍ

የከፍተኛ ደረጃ ንድፍ ጥቁር ሣጥን ንድፍ
የከፍተኛ ደረጃ ንድፍ ጥቁር ሣጥን ንድፍ
የከፍተኛ ደረጃ ንድፍ ጥቁር ሣጥን ንድፍ
የከፍተኛ ደረጃ ንድፍ ጥቁር ሣጥን ንድፍ

እንደሚመለከቱት ፣ የእኛ የላይኛው ደረጃ የማገጃ ሥዕል የሚጀምረው አስፈላጊዎቹን ሰዓቶች ከእኛ ንዑስ ሞዱል ፣ ClkDivide በማግኘት ነው። እነዚህ ሰዓቶች በተለያዩ የሂደት ብሎኮች ውስጥ ግብዓቶች ናቸው። በዋናነት ጨዋታው አንድ ተጠቃሚ ማብሪያ / ማጥፊያውን በትክክል ሲያበራ ፣ ኤልዲዎቹ በፍጥነት መቀያየር መጀመር እንዳለባቸው እና ማሳያው ወደ አንድ ደረጃ መውጣት እንዳለበት መገንዘብ አለበት። የማገጃው ዲያግራም ትንሽ እብድ ሊመስል ይችላል ፣ ግን ይህ የሆነበት ምክንያት በአንድ የተወሰነ ሂደት ውስጥ የተቋቋሙ ብዙ ምልክቶች ስላሉ እና ይህ ምልክት በሌላ የሂደት ማገጃ ውስጥ ሌላ ምልክት ስለሚገልፅ ነው።

በመጨረሻ ጨዋታው የሚወስደው ግብዓቶች በ 100 ሜኸዝ በሚሰራው በ Basys3 ሰሌዳ ላይ ያለው የግብዓት ሰዓት ፣ በ Basys3 ሰሌዳ ላይ ሰባት መቀየሪያዎች እና ዳግም ማስጀመሪያ ቁልፍ ናቸው። የሚወጣው ለሰባቱ ክፍል ማሳያ ፣ ሰባቱ ክፍሎች ለእይታ እና ለኤዲዲዎች አኖድ ነው።

ደረጃ 4: CLKDivide

CLKDivide
CLKDivide
CLKDivide
CLKDivide
CLKDivide
CLKDivide

ይህ የሰዓት መከፋፈያ ንዑስ ሞዱል እኛ በዋናው ፋይላችን ውስጥ ባስቀመጥነው እሴት ላይ በመመርኮዝ ዘገምተኛ ሰዓት ፈጠረ። Clk400 ፣ PushClk እና newlck ን ለመወሰን ይህንን ንዑስ ሞዱል ተጠቅመናል። ይህ ንዑስ ሞዱል እንደ ግብዓት ሰዓት እና 32 ቢት መከፋፈያን ይወስዳል። የዘገየ ሰዓት ይወጣል። ለከፋፋዩ እና ለዘገየ ሰዓት የሂደት ማገጃ አለ። በሂደቱ ውስጥ የግቤት ሰዓት እየጨመረ በሚሄድ ቁጥር አንድ ቆጠራ ብለን የምንጠራው ጊዜያዊ ተለዋዋጭ ነው። አንዴ ከፋፋይ ቁጥሩ ላይ ከደረሰ ፣ የዘገየው ሰዓት ተለወጠ እና እንደገና ወደ ዜሮ ዳግም ያስጀምራል።

ደረጃ 5 የ Shift ሂደት አግድ

የ Shift ሂደት አግድ
የ Shift ሂደት አግድ

የ Shift ሂደት ማገጃ የ LED ዎች ተለዋዋጭ እንቅስቃሴ እና ፍጥነት ይቆጣጠራል። በስሜታዊነት ዝርዝር ውስጥ የአዲሱ clk እና የማቆሚያ ምልክቶች አሉ። ማቆም ተጠቃሚው ደረጃውን ሲያልፍ ለአጭር ጊዜ መዘግየት ያስከትላል። ማቆሚያው ከፍ ያለ ካልሆነ ፣ የ LEDs በኒውክሊክ ፍጥነት ላይ በመመርኮዝ እንደ መደበኛ ይለዋወጣሉ። ይህ ተለዋጭ ዘይቤ በሁለት ተለዋዋጮች ቁጥጥር ይደረግበታል - ዱካ እና ቆጠራ። ቆጠራው የትኛው LED ላይ መብራት እንዳለበት ይወስናል ፣ ትራክ ደግሞ ቆጠራ ወደ ላይ ወይም ወደ ታች መሆን እንዳለበት ይወስናል። ተጫዋቹ ጨዋታውን ማሸነፍን የሚያመለክተው ደረጃው “111” ሲሆን ብቻ የሚተገበር ሌላ ምልክት አለ። LEDs ያለማቋረጥ ለማብራት እና ለማጥፋት በእያንዳንዱ ሰዓት ጠርዝ በ 0 እና 1 መካከል ይቀያየራል። ይህ ለመጨረሻው ማሳያ የእይታ አካል ብቻ ነው።

ይህ የመቀየሪያ ሂደት ለዚህ ፕሮጀክት የሚጀመርበት ፍጹም ቦታ ነው። የእርስዎ LED ዎች በትክክል እና በቋሚነት እየተለዋወጡ ማግኘት ከቻሉ ፣ ከዚያ እዚህ ደረጃ ሲይዙ በባህሪው ውስጥ ማከል አለብዎት!

ደረጃ 6 - የመጨረሻ ግዛት ማሽን

ውስን የስቴት ማሽን
ውስን የስቴት ማሽን

የግብዓት መቀየሪያ ወይም ዳግም ማስጀመሪያ ቁልፍ ሲጫን ባህሪውን እንዲወስን የፊንቴስ ስቴት ማሽን ፈጠርን። እያንዳንዱ ግዛት “ደረጃ” ነው እና ማብሪያው በተሳሳተ ጊዜ ከተበራ ወይም ዳግም ማስጀመር ከተጫነ ደረጃው ወደ “000” ይመለሳል። አለበለዚያ ማብሪያ / ማጥፊያው በትክክል ከተበራ ከዚያ ደረጃው ወደ “111” እስኪያልቅ ድረስ እና የማሳያው ማሳያ እስኪከሰት ድረስ ደረጃው ከፍ ይላል። ኤፍኤስኤም በሁለቱ የሂደት ብሎኮች sync_proc እና comb_proc ላይ የተመሠረተ ነው። Sync_proc PushClk ብለን የጠራነውን ሰዓት ይጠቀማል። ይህ ሰዓት ቀጣዩ ግዛት የአሁኑ ሁኔታ ምን ያህል ፈጣን እንደሚሆን ይቆጣጠራል። ይህ ሰዓት በጣም ፈጣን መሆን አለበት። ከኛ ፈጣን የ LED ፍጥነት ሁለት እጥፍ ያህል ፍጥነትን መርጠናል።

ለደረጃዎቹ FSM ን በመጠቀም ይህንን ኮድ ተግባራዊ እናደርጋለን። ሆኖም ፣ ከዚህ ፕሮጀክት በኋላ የ FSM የበለጠ ቀልጣፋ አጠቃቀም የመቁጠር ሁኔታ ፣ የመልሶ ማግኛ ሁኔታ ወይም የመቆያ ሁኔታ ሊኖረው እንደሚችል ተገነዘብን። ምንም ነገር ካልተጫነ በቆይታ ሁኔታ ውስጥ ነው። ዳግም ማስጀመር እየተጫነ ከሆነ ወይም ተጫዋቹ ከተበላሸ ፣ በዳግም ሁኔታ ውስጥ ነው። በትክክል ከተጫኑ በመቁጠር ሁኔታ ውስጥ ነው። በዚህ ጨዋታ ውስጥ FSM ን የሚጠቀሙባቸው ሌሎች ብዙ መንገዶች አሉ!

ደረጃ 7 - የማሳያ ሂደቱን አግድ በደረጃ መቆጣጠር

የማሳያ ሂደቱን መቆጣጠር በደረጃ አግድ
የማሳያ ሂደቱን መቆጣጠር በደረጃ አግድ

ደረጃ የማሳያ ሂደቱን አግድ ይቆጣጠራል። በስሜት ዝርዝር ውስጥ ያሉት ተለዋዋጮች ደረጃ ፣ ዳግም ማስጀመር እና Clk400 ናቸው። የ 7 ክፍል ማሳያ የሚጀምረው ለመጀመሪያው ደረጃ ‹1 ›ን በማሳየት ነው። ተጠቃሚው በምን ደረጃ ላይ እንደሆኑ ለማሳየት ተጠቃሚው ደረጃን ባሳለፈ ቁጥር እስከ 7 ድረስ ይቆጥራል። አንዴ ተጠቃሚው ደረጃ 7 ካለፈ በኋላ ተጫዋቹ ጨዋታውን እንደመታ ለማመልከት “አሪፍ” ን ያሳያል። ይህ “ቀዝቃዛ” ማሳያ Clk400 ብለን ከጠራነው 400 Hz ሰዓት ያበቃል። ዳግም ማስጀመር ከተጫነ ማሳያው ወደ “1.” ይመለሳል።

ደረጃ 8 የ LED ፍጥነትን በደረጃ መቆጣጠር

የ LED ፍጥነትን በደረጃ መቆጣጠር
የ LED ፍጥነትን በደረጃ መቆጣጠር

በመጨረሻም ደረጃ የኤልዲዎቹን ፍጥነት ይቆጣጠራል። በስሜታዊነት ዝርዝር ውስጥ ደረጃ ብቸኛው ምልክት ነው። D1 newclk ን ለማግኘት ወደ ሰዓት መከፋፈያ ሂደት ውስጥ የሚሄድ ምልክት ነው። ደረጃው በተለወጠ ወይም ግዛቱ በተለወጠ ቁጥር ሂደቱ “ፍጥነት” ን ያግዳል። ይህ ሂደት የ D1 ዋጋን ይወስናል። እያንዳንዱ ደረጃ እንዲሠራ በፈለግነው ፍጥነት ላይ በመመርኮዝ የመረጥናቸው 8 የተገለጹ የ D1 እሴቶች አሉ። አዲሱ ክሊክ በፍጥነት እንዲሠራ D1 ደረጃው እየጨመረ በሄደ ቁጥር ያንሳል።

ደረጃ 9 የሃርድዌር ስብሰባ

የሃርድዌር ስብሰባ
የሃርድዌር ስብሰባ

የዳቦ ቦርዱን ከ ‹‹Podod›› አያያ oneች በአንዱ ከ Basys3 ጋር አገናኘነው። ከፒሞድ ወደቦች መካከል ስድስቱ ከወንድ ወደ ወንድ አያያዥ ፣ አንደኛው ለመሬቱ ፣ አምስቱ ደግሞ ለ 5 ኤልኢዲዎች ለመሰካት ያገለግሉ ነበር። እንዲሁም ለእያንዳንዱ ኤልኢዲ ተከላካይ አስቀምጠናል። እነዚህ ተቃዋሚዎች 220Ω ናቸው እና የኤልዲዎቹ አጭር ዙር እና እንዳይቃጠሉ ይከላከላሉ። ምንም እንኳን እያንዳንዱ ኤልኢዲ የተወሰነ ተቃውሞ ቢኖረውም ፣ ተቃውሞው ከምንጩ ቮልቴጅን ለማደናቀፍ በቂ አይደለም።

ደረጃ 10: ይዝናኑ

ይህ ጨዋታ ለመጫወት በጣም ቀላል ነው። ተጫዋቹ ከቦርዱ በስተቀኝ መቀየሪያ 1 ፣ V17 ላይ ይጀምራል። መካከለኛው ኤልዲ ሲበራ መቀየሪያውን ከፍ አድርገው መገልበጥ አለባቸው። ከዚያ አንዱን መቀያየር ወደ ግራ ያንቀሳቅሱ እና ተመሳሳይ ነገር ያደርጋሉ! ተጫዋቹ እስከመጨረሻው ከደረሰ ፣ እነሱ በሰባተኛው ማብሪያ ፣ W14 ላይ ያበቃል። ጨዋታውን ካሸነፉ በጣም አስደሳች የሆነ የማጠናቀቂያ ማሳያ ማየት ይችላሉ!

ልብ ሊባል የሚገባው ነገር ይህንን ጨዋታ ሲፈጥሩ ፍጥነቶች ሙሉ በሙሉ በእርስዎ ላይ ናቸው! የመረጥናቸው ፍጥነቶች በጣም ቀርፋፋ ከሆኑ ለማፋጠን እና የበለጠ ፈታኝ ለማድረግ ነፃነት ይሰማዎ! እንዲሁም የተቀመጠ የደረጃዎች ብዛት የለም። የበለጠ ደረጃዎች እንዲኖሩት ከፈለጉ በ FSM እና በደረጃ የሚወሰነው የሂደት ብሎኮች መደረግ ያለባቸው ማሻሻያዎች አሉ ፣ ግን እነዚህ በጣም ቀላል ለውጦች ናቸው።

እኛ እንዲሁ እንደ የተጠቃሚ ግብዓት በቦርዱ ላይ መቀየሪያዎችን ለመጠቀም መርጠናል ፣ ግን ይህ እንዲሁ በ Basys3 ሰሌዳ ላይ ባለው አዝራር ይቻላል። አዝራሩ ተጠቃሚው እንደገና በጀመረ ቁጥር መቀያየሪያዎቹን እንደገና የማቀናበርን አስፈላጊነት ያስወግዳል። እኛ መጀመሪያ አንድ ቁልፍን እንጠቀማለን ፣ ሆኖም ይህ ደረጃውን በመለየት ላይ ስህተቶችን አስከትሏል ምክንያቱም ቁልፉ በሚያዝበት ጊዜ ሁለት ከፍ ያሉ የ edgesሽክክ ጫፎች ቢመቱ ብዙ ደረጃዎችን ስለሚዘል።

ከዚህ በታች እንዴት እንደሚጫወት የሚያሳይ ፣ በመጀመሪያዎቹ 4 ደረጃዎች እና የመጨረሻውን የማሳያ ማሳያ የሚያሳይ ቪዲዮ ነው።

የዚህ ፕሮጀክት ዋናው ፋይል ከዚህ በታች ተካትቷል።

ምንጮች

Basys3 የማጣቀሻ መመሪያ

ለፕሮጀክት ተነሳሽነት - አርዱinoኖ አቁም ጨዋታ

የሚመከር: