ዝርዝር ሁኔታ:

የፓንግ ጨዋታ 6 ደረጃዎች
የፓንግ ጨዋታ 6 ደረጃዎች

ቪዲዮ: የፓንግ ጨዋታ 6 ደረጃዎች

ቪዲዮ: የፓንግ ጨዋታ 6 ደረጃዎች
ቪዲዮ: ፓንግስ - ፓንግስ እንዴት ማለት ይቻላል? #ህመም (PANGS - HOW TO SAY PANGS? #pangs) 2024, ሀምሌ
Anonim
የፓንግ ጨዋታ
የፓንግ ጨዋታ

ቁሳቁሶች:

Basys3 FPGA ቦርድ

ቪጂኤ ገመድ

ቪቫዶ

የዚህ አስተማሪ ዓላማ በሞኒተር ላይ የሚታየውን የፓንግ ጨዋታ ማዳበር ነው። ፕሮጀክቱ VHDL ን ለፕሮግራም ይጠቀማል እና ኮዱን ለማከናወን Basys3 FPGA ን ይጠቀማል እና ምስሉን በቪጂኤ በይነገጽ በመጠቀም ያስተላልፋል። ይህ መማሪያ የ VHDL ቀደምት እውቀት ላላቸው ሰዎች የታሰበ ነው። መማሪያው በ 6 የተለያዩ ክፍሎች ይከፈላል -አጠቃላይ እይታ ፣ ሂደት ፣ የውጤት ተቆጣጣሪ ፣ የምስል ትውልድ ፣ የፓንግ ጨዋታ እና ቪጂኤ።

ደረጃ 1 አጠቃላይ እይታ

አጠቃላይ እይታ
አጠቃላይ እይታ

ከላይ ያለው ምስል የፕሮጀክቱ አጠቃላይ ንድፍ ንድፍ ነው።

የጨዋታው ዓላማ;

ጨዋታው በተጠቃሚው ሊቆጣጠር የሚችል ተንሸራታች ቀዘፋ ያለው ማሳያ እና እንደ የላይኛው ወሰን የሚሠራ ቋሚ ግድግዳ አለው። ተጠቃሚው የመነሻ ቁልፍን ሲጫን ፣ የላይኛውን ቁልፍ ሲጫን ኳሱ መነሳት ይጀምራል ፣ እና ከግድግዳው ላይ ይወርዳል እና ቀዘፋውን ለመምታት ይሞክራል። ኳሱ ቀዘፋውን ቢመታ ፣ እንደገና ይነሳና መቅዘፉን እስኪያመልጠው ድረስ መብረሩን ይቀጥላል። ኳሱ ቀዘፋውን መምታት ሲያቅተው ጨዋታው አልቋል። የቀዘፋውን እንቅስቃሴ ለመወሰን ተጠቃሚው የግራ እና የቀኝ የግፊት ቁልፎችን መጠቀም ይችላል። ጨዋታውን ዳግም ለማስጀመር ተጠቃሚው የመሃከለኛውን ቁልፍ መጫን አለበት። የሩጫው ጊዜ በ 7 ክፍል ማሳያ ላይ ይመዘገባል። ተጠቃሚው እስኪያጣ ድረስ የሚቀመጥበትን ደረጃ 5 እስኪመቱ ድረስ አምስት ደረጃዎች አሉ ፣ እና በየአስር ሰከንዶች ደረጃው ይጨምራል። ደረጃዎቹ በኳሱ ፍጥነት ይወሰናሉ ፤ ይህ ማለት በየአስር ሰከንዶች ውስጥ የኳሱ ፍጥነት ይጨምራል ፣ በዚህም የጨዋታውን ችግር ይጨምራል።

የስርዓት ሥነ ሕንፃ;

ከዚህ በታች ያለው ሥዕል ለስርዓቱ መሠረታዊ አጠቃላይ የከፍተኛ ደረጃ የማገጃ ሥዕል ነው። ስርዓቱ አራት ግብዓቶች አሉት -አዝራር አር ፣ አዝራር ኤል ፣ ጅምር እና ዳግም ማስጀመር ፣ እና ሰዓት። አግድም እና ቀጥ ያለ የማመሳሰል ውጤቶች ፣ RBG (በተወሰነ ቦታ ላይ የፒክሰልን ቀለም የሚያመለክት) ፣ እና ውጤት (ለ 7-ክፍል ማሳያ እንደ አውቶቡስ ሆኖ የሚያገለግል)። ወደ ላይ ያለው አዝራር እንደ መጀመሪያው ጥቅም ላይ ይውላል አዝራር ፣ እና የግራ እና የቀኝ ግፊት ቁልፎች መቅዘፉን በየአቅጣጫቸው ለማንቀሳቀስ ያገለግላሉ። ባለ 7-ክፍል ማሳያ ውጤቱን ለመመዝገብ ጥቅም ላይ ይውላል ፣ ይህም ተጠቃሚው ጨዋታውን ሳይሸነፍ የተጫወተው የሰከንዶች ብዛት ነው። ቁጥሩ እንደ አስርዮሽ ቁጥር ይታያል።

የወረዳ አርክቴክቸር-አነስተኛ FSM ን የያዘ አንድ FSM ን በመጠቀም gizmo እንገነባለን ፣ ንዑስ ኤፍኤስኤም የጨዋታውን ችግር ይቆጣጠራል ፣ ዋናው ኤፍኤስኤም የጨዋታውን አጠቃላይ ፍሰት ይቆጣጠራል። ጨዋታው ምን ያህል ፈጣን እንደሆነ መቆጣጠር እንድንችል የእኛ ጊዝሞ ቢያንስ ሶስት የሰዓት መከፋፈያዎችን ይጠቀማል ፣ አንደኛው ለአንድ ውጤት (ጊዜ) ፣ አንዱ ለማሳያው የማደሻ መጠን እና ከዲኤምኤክስ ውፅዓት ጋር የተሳሰረ ነው። እየጨመረ በሚመጣው የችግር መጠን ይቀጥላል። በተጫወቱ ቁጥር ጨዋታው በጣም በፍጥነት ይንቀሳቀሳል። ጨዋታው እርስዎ በሚጫወቱበት ጊዜ ምን ያህል በፍጥነት እንደሚሄድ መቆጣጠር እንድንችል የዲኤምኤክስ የቁጥጥር ግብዓት ይኖረናል። መጫዎትን በሚቀጥሉበት ጊዜ ጥቂት ቆጣሪዎችን እንጠቀምበታለን ፣ አንደኛው ማሳያውን ለማደስ እና አንዱ ውጤቱን ለመቁጠር። ይህ ፕሮጀክት ሁለት ዋና ሞጁሎች እና የግብዓት ውሂቡን የሚቆጣጠሩ የንዑስ ሞዱሎች ድርድር አለው። ሁለቱ ዋና ንዑስ ሞዱሎች ቪጂኤ ሾፌር ፣ እንዲሁም የአዝራር አመክንዮ ሞዱል ናቸው። ቪጂኤ ሾፌር በፕሮግራም ሊሠራ የሚችል ማህደረ ትውስታ ፣ የሰዓት መከፋፈያ እና ውጤቱን ለቀለም የሚያስተካክለው አመክንዮ ይይዛል። የአዝራር አመክንዮ ሞጁል እንዲሁ የሰዓት መከፋፈያ ፣ እና ሊሠራ የሚችል ማህደረ ትውስታ ፣ እንዲሁም ለ 7-ክፍል ማሳያ ከየሰዓቱ መከፋፈያ ጋር ሁለትዮሽ ወደ አስርዮሽ መለወጫ ያካትታል።

ደረጃ 2 የምስል ሂደት

ለፕሮጀክቱ የምስል ሂደት ክፍል እኛ የኳሱን እና የቀዘፋውን እንቅስቃሴ እንወስናለን። ፕሮግራሙ የግራ ፣ የቀኝ ፣ የላይ እና የመሃል ግፊት ቁልፎችን ፣ የአሁኑን ሁኔታ ፣ ሰዓት ፣ የኳሱ የ X እና Y አቀማመጥ ፣ የቀዘፋው ግራ እና ቀኝ ጠርዝ እና ውድቀትን የሚያካትቱ ወደቦች አሉት። የአሁኑ ሁኔታ የነቃውን ምልክት ለመወሰን ያገለግላል። ኮዱ ኳሱ ሊንቀሳቀስባቸው በሚችሏቸው በርካታ ጉዳዮች ላይ ያልፋል ፣ እና የኳሱን መንገድ ለመወሰን ሁኔታዎችን አዘጋጅቷል። ቀጣዩ የሂደት ማገጃ በየትኛው አዝራር በተጠቃሚው እንደተጫነ ቀዘፋው የሚንቀሳቀስበትን አቅጣጫ ይወስናል። የዚህ የፕሮጀክቱ ክፍል ኮድ እያንዳንዱ ክፍል የሚያደርገውን ከሚገልጹ ዝርዝር አስተያየቶች ጋር ተያይ attachedል።

ደረጃ 3 የውጤት ተቆጣጣሪ

የውጤት ተቆጣጣሪ
የውጤት ተቆጣጣሪ

ይህ ክፍል በ Basys3 ቦርድ ላይ በ 7 ክፍል ማሳያ ላይ ውጤቱን በሰከንዶች ከማሳየት ጋር የሚዛመዱ ፋይሎችን ያካትታል። ሰከንዶችን ለመቁጠር የሚያገለግል የሰዓት መከፋፈያን ያጠቃልላል ፣ የውጤት ቆጣሪ ተጠቃሚው የሚጫወተውን ሰከንዶች ይቆጥራል ፣ የክፍል ነጂው ነጥቡን ወስዶ በማያ ገጹ ላይ እንዲታይ ወደ አናኖዶች እና ካቶዶች ይለውጠዋል እንዲሁም ቦታውን ይወስናል። ቁጥሩ ይታያል እና በመጨረሻ ፣ የክፍሉ ተቆጣጣሪው በማያ ገጹ ላይ እንዲታይ የሁለትዮሽ አሃዞችን ወደ አስርዮሽ ቁጥሮች ይለውጣል። የውጤት ተቆጣጣሪው ሁሉንም ቁርጥራጮች ሰብስቦ ምልክቶቹን በካርታዎች ላይ ያሳያል። የአምስቱ ፋይሎች ኮድ ከዚህ በታች ተያይ attachedል።

የሰዓት ከፋይ;

የሰዓት መከፋፈያው ግብዓቶች አሉት ክልክል (ሰዓት) ፣ ሲኤን (በ ውስጥ አንቃ) ፣ እና ዲቪ (ከፋይ) እና ውፅዓት Clk_out። የነቃው ምልክት በርቶ ከሆነ ሰዓቱ በሚወጣው ጠርዝ ላይ ይቆጠራል።

የውጤት ቆጣሪ

የውጤት ቆጣሪው ግብዓቶች አሉት Clk (ሰዓት) እና RST (ዳግም አስጀምር) እና ውጤቶች እንደ Clk_Out እና Q ይህም እንደ የውጤት ውጤት ሆኖ ይሠራል።

ክፍል ነጂ

ክፍል ሾፌሩ D1 ፣ D10 ፣ D100 ፣ D1000 እና ሰዓት ግብዓቶች አሉት። ከ “ዲ” በኋላ ያሉት ቁጥሮች በ 7 ክፍል ማሳያ ላይ የአስርዮሽ ቦታን ያመለክታሉ። ውጤቶቹ አኖዶች እና አሃዝ ናቸው። ሰዓቱ ቁጥሮችን ይቆጥራል እና ይመድባል እና ቦታው። ለምሳሌ ፣ “9” በሺዎች ፣ በመቶዎች እና በአስር ቦታዎች ውስጥ “0” ዎች ባሉበት ቦታ ላይ ይታያል። ወደ “10” ሲቀየር ፣ ቁጥሩ አሁን በአሥሩ ቦታ ላይ “1” እና በሺዎች ፣ በመቶዎች እና በአንድ ቦታ “0” ዎች ይኖረዋል።

ክፍል አቀናባሪ

የክፍል ተቆጣጣሪው አኃዝ እንደ ግብዓት እና ካቶዶስ እንደ ውፅዓት አለው። በማያ ገጹ ላይ የአስርዮሽ ቁጥሮችን ለማውጣት በዋናነት ወደ ካቶድ ማሳያ ሁለትዮሽ ቁጥሮች ነው።

የውጤት ተቆጣጣሪ

የውጤት ተቆጣጣሪው የቀደሙትን አራት አካላት ያቀፈ ሲሆን ሁሉንም በአንድ ላይ ያቆማል እና ምልክቶቹን ካርታ ያደርጋል። እንዲሁም አሁን ባለው ሁኔታ ላይ በመመርኮዝ ቆጣሪውን ያነቃል እና ያሰናክላል።

ደረጃ 4 የምስል ማመንጨት

የምስል ማመንጫው አራት ክፍሎችን ያቀፈ ነው -እነማ ፣ ውድቀት ቆጣሪ ፣ ምስል አድስ እና ጀማሪ ቆጣሪ። እነዚህ ፋይሎች በማሳያው ማሳያ ላይ ምስሎቹን እንዴት ማመንጨት እንደሚችሉ ያመለክታሉ።

እነማ

የአኒሜሽን ፋይል ግብዓቶች Clk (የሰዓት ምልክት) ፣ CEN (ቆጠራን ያንቁ) ፣ RST (ዳግም ማስጀመሪያ ምልክት) ፣ B_X (የኳሱ X አቀማመጥ) ፣ B_Y (የኳሱ Y ቦታ) ፣ P_L (የግራ ቀዘፋ አቀማመጥ) እና P_R (የቀኝ ቀዘፋ አቀማመጥ)። ውጤቶቹ WA (ቀለሙን የምንጽፍበት አድራሻ) ፣ እና WD (ቀለሙ በተወሰነው አድራሻ የተፃፈ) ናቸው። ፋይሉ ለ MUX እንደ የቁጥጥር ግብዓት ሆኖ የሚያገለግል Play_Counter አለው ፣ በትክክለኛ ቦታዎች ላይ ትክክለኛ ቀለሞችን ሊያወጣ የሚችል ኢንኮደር ፣ እና በመጨረሻው መቅዘፊያ አቀማመጥ ላይ በመመስረት ትክክለኛውን ቀለም የሚያሳየው ባለብዙ ማዘር ኳስ።

ምስል አድስ

የእድሳት ምስል ፋይል እንደ ኳስ እና ቀዘፋ አቀማመጥ ሲለወጥ ምስሉን ለማደስ ያገለግላል። ፋይሉ ከአኒሜሽን ፣ ከጀማሪ ቆጣሪ እና ከከሸፈ ቆጣሪ ፋይሎች ውስጥ አካላትን ያካትታል። ምልክቶቹን ከእያንዳንዱ አካል ካርታ ይይዛል እና ምልክቶችን እና የውጤት አድራሻዎችን ለመወሰን የስቴት አመክንዮ ይጠቀማል።

ቆጣሪ ጀምር

የመነሻ ቆጣሪ ግብዓቶችን Clk ፣ RS ፣ እና CEN ን ይጠቀማል እና WA እና WD ን ያወጣል። ለ MUX የቁጥጥር ግቤትን ለመወሰን ቆጣሪ እና ልወጣ ይጠቀማል። ከዚያ ባለብዙ ማከፋፈያው ትክክለኛውን የቀለም አድራሻዎችን ለመወሰን ግቤቱን ይጠቀማል እና ይህንን መረጃ ለቪጂኤ ሾፌር ይልካል። ተጠቃሚው ጨዋታውን ሲጀምር ይህ “ፓንግ” ን ለማሳየት ያገለግላል።

ውድቀት ቆጣሪ

ያልተሳካው ቆጣሪው ተጠቃሚው ጨዋታውን ሲያጣ “ጨዋታ አብቅቷል” ን ለማሳየት ያገለግላል። የ Clk ፣ RST እና CEN ምልክት አለው። ለ MUX የቁጥጥር ግቤትን ለመወሰን ቆጣሪ እና የመቀየሪያ ቀመር ይጠቀማል። ከዚያ ባለብዙ ማከፋፈያው ትክክለኛውን የቀለም አድራሻዎችን ለመወሰን ግቤቱን ይጠቀማል እና ይህንን መረጃ ለቪጂኤ ሾፌር ይልካል።

ደረጃ 5 - የፓንግ ጨዋታ

የፓንግ ጨዋታ
የፓንግ ጨዋታ

ይህ የፕሮጀክቱ ክፍል የ Pong Master ፣ Finite State Machine (FSM) ፣ የሰዓት ቆጣሪ እና የጀማሪ ዲቦዚንግ ፋይሎችን ያጠቃልላል።

ሰዓት ቆጣሪ

የሰዓት ቆጣሪው ግብዓቶች Clk (Clock) እና PS (የአሁኑ ግዛት) እና ሰዓት ቆጣሪ እና Clk_out እንደ ውጤቶች ናቸው። ሰዓት ቆጣሪው በየአምስት ሰከንዶች ያህል የጨዋታውን ፍጥነት ለመለወጥ ያገለግላል።

ፍሰት FSM

ፍሰቱ FSM ግብዓቶች Clk ፣ Fail ፣ Timer ፣ Bttn_S (Start Button) እና Buttn_RST (Reset Button) እና Pres_S (የአሁኑ የስቴት ውፅዓት) ግብዓቶች አሉት። ኤፍኤምኤም የአሁኑን ሁኔታ ወደ ቀጣዩ ግዛት ለማዘመን ሰዓት ቆጣሪውን ይጠቀማል እና ጨዋታው እስኪያልቅ ድረስ ጨዋታው እስከሚቆይበት ደረጃ 5 እስኪደርስ ድረስ ቀጣዩን ግዛት ማዘመኑን ይቀጥላል።

Debounce ን ይጀምሩ

የ Start Debounce የኳሱ መነሻ መነሳት ነው። ግብዓቶች አሉት S_in እና Clk ፣ እና መውጫ S_out።

ፓንግ ማስተር ይህ ፋይል ሁሉንም ቀዳሚ ክፍሎች ይጠቀማል እና ሁሉም አካላት በቅጽበት እንዲሆኑ ያደርገዋል። እኛ አብረን የሠራናቸውን ቀደም ሲል የነበሩትን ሁሉንም ክፍሎች አንድ ላይ የሚያጣምረው ዋናው ፋይል ነው።

ደረጃ 6: ቪጂኤ ሾፌር

ቪጂኤ (ቪዥዋል ግራፊክስ ድርድር) አሽከርካሪ ትዕዛዞችን ወይም መረጃን ወደ ማሳያ ማያ ገጹ የሚላክን ለመቀበል የሚያገለግል ሶፍትዌር ነው። ሾፌሩ በእኛ ፕሮፌሰር ተሰጥቶናል። የ Basys3 ሰሌዳውን ከተቆጣጣሪው ጋር ለማገናኘት ሾፌሩን እና የ VGA ገመድ ይጠቀሙ።

VHDL ን በመጠቀም የራስዎን የፓንግ ጨዋታ ለመሥራት አሁን ዝግጁ መሆን አለብዎት!

የሚመከር: