فهرست مطالب:

بازی سیارک FPGA: 7 مرحله (همراه با تصاویر)
بازی سیارک FPGA: 7 مرحله (همراه با تصاویر)

تصویری: بازی سیارک FPGA: 7 مرحله (همراه با تصاویر)

تصویری: بازی سیارک FPGA: 7 مرحله (همراه با تصاویر)
تصویری: [S3-18] اردوغان ترکیه زیر آتش پس از زلزله 2024, نوامبر
Anonim
بازی سیارک FPGA
بازی سیارک FPGA

برای پروژه نهایی CPE 133 ، تصمیم گرفتیم با استفاده از دو کلید فشاری و صفحه نمایش 7 قسمتی یک بازی سیارک ها در FPGA خود ایجاد کنیم. این بازی به گونه ای عمل می کند که یک سیارک در یکی از سه ردیف انتخاب شده به طور تصادفی تخم ریزی می کند و به سمت کشتی در طرف دیگر صفحه نمایش 7 قسمتی حرکت می کند. از دکمه بالا و دکمه پایین می توان برای حرکت کشتی شما خارج از سیارک استفاده کرد. در صورت عدم انجام این کار ، صفحه نمایش برای یک لحظه "BAnG" را می خواند و سپس بازی را به سرعت راه اندازی می کند تا کاربر دوباره امتحان کند. آنچه در زیر می آید شرح مختصری از نحوه ساخت پروژه است تا هر کاربری بتواند طرح ما را تکرار یا بهبود بخشد.

مرحله 1: مرور کلی

بررسی اجمالی
بررسی اجمالی
بررسی اجمالی
بررسی اجمالی

این پروژه عمدتا شامل ماشینهای حالت محدود (FSM) است که از منطق برای انتقال FPGA بین حالتهایی که مقادیر مختلف موقعیت کشتی و سنگ را ذخیره و نمایش می دهند ، استفاده می کند. دو ماژول اصلی عبارتند از بازی FSM برای سنگ و کشتی ، و رمزگشای صفحه نمایش دوتایی تا 7 بخش FSM ، که با استفاده از یک مدل ساختاری بسیار ساده در VHDL با هم ادغام شده اند.

FSM ها برای موقعیت کشتی ، موقعیت سنگ و رمزگشای 7 بخش ایجاد شده اند. هدف FSM کشتی این است که کشتی بتواند هنگامی که بازیکن دکمه بالا یا پایین را فشار می دهد به موقعیت مناسب حرکت کند. FSM مورد نیاز است زیرا باید به خاطر داشته باشد که آخرین موقعیت در کدام موقعیت بوده است تا به موقعیت صحیح برسد.

هدف FSM سنگ انتقال سنگ به موقعیت صحیح بر اساس ردیف و آخرین موقعیت آن ردیف است. علاوه بر این ، موقعیت ماژول را که نمایش داده می شود پیگیری می کند و به طور تصادفی یک ردیف جدید را انتخاب می کند تا در بعدی ظاهر شود.

FSM برای رمزگشای صفحه نمایش 7 قسمتی نه تنها برای نمایش کشتی و صخره بلکه برای نمایش "BAnG" هنگامی که موقعیت کشتی و موقعیت سنگ یکسان بود استفاده شد.

مرحله 2: مواد

مواد مورد استفاده در پروژه عبارت بودند از:

  • هیئت توسعه Basys3 از Digilent، Inc.
  • مجموعه طراحی ویوادو
  • sseg_dec.vhd (این فایل در Polylearn در اختیار ما قرار گرفته و توسط برایان میلی نوشته شده است)
  • Clk_div.vhd (این فایل در Polylearn در اختیار ما قرار گرفته و توسط برایان میلی نوشته شده است)
  • سه ماشین حالت محدود (FSM)

مرحله 3: ساخت بازی

ساخت بازی
ساخت بازی
ساخت بازی
ساخت بازی
ساخت بازی
ساخت بازی
ساخت بازی
ساخت بازی

ماژول بازی با استفاده از مدل سازی رفتاری برای توصیف حالات کشتی و سنگ برای FSM های مربوطه ایجاد شد. مزیت این امر این است که مدلسازی رفتاری مدار با توصیف آنچه انجام می دهد بسیار ساده تر از تشخیص تمام اجزای مورد نیاز برای طراحی سخت افزار است.

حالتهای سنگ با استفاده از یک شبه عدد تصادفی مولد برای اولین موقعیت سنگ انجام شد. برای دستیابی به این هدف ، ما به ژنراتور ساعت مخصوص خود را دادیم که نسبت به سرعت بازی بسیار سریع بود. در هر لبه در حال افزایش ، یک عدد سه بیت افزایش می یابد و همه مقادیر آن مربوط به یکی از سه حالت شروع کشتی است. بنابراین ، سه مقدار مربوط به موقعیت 3 (بالا سمت راست) ، سه مقدار مربوط به موقعیت 7 (مرکز) و دو مقدار مربوط به موقعیت 11 (سمت راست پایین) است.

هنگامی که نسل تصادفی رخ داد و حالت اولیه به سیارک داده شد ، بدون وقفه به صورت افقی به سمت کشتی جریان می یابد.

0 ← 1 ← 2 ← 3

4 ← 5 ← 6 ← 7

11 ← 10 ← 9 ← 8

ساعت مورد استفاده برای منطق حالت بعدی سنگ سرعت بازی را کنترل می کند. ما از طریق آزمایش و خطا دریافتیم که 9999999 مقدار خوبی برای حداکثر تعداد آن است.

منطق کشتی با راه اندازی اولیه در موقعیت مرکزی (موقعیت 4) در سمت چپ بسیار دور کار می کند. اگر دکمه بالا یا دکمه پایین فشار داده شود ، کشتی به سمت بالا و پایین به موقعیت 0 و 11 مربوط به دکمه فشرده شده حرکت می کند.

برای اینکه حرکت کشتی برای کاربر خوب باشد ، حرکت آن را ناهمزمان نکردیم. ما از ساعت برای تغییرات حالت آن استفاده کردیم و از حداکثر تعداد 5555555 استفاده کردیم.

مرحله 4: نمایش نتیجه

رمزگشای دوتایی تا 7 قسمتی متغیرهای موقعیت 4 بیتی را برای کشتی و سیارک در نظر گرفته و تصویر مناسب (کشتی یا سنگ یا پیام "BAnG") را نمایش می دهد.

این امر را می توان ابتدا با بررسی مساوی بودن این دو مورد و سپس نمایش پیام "BAnG" در صورت درست بودن چک ، انجام داد.

در صورت عدم بازگشت واقعی ، رمزگشایی کشتی و صخره را با تعویض بین آنها در فرکانس ساعت بسیار بالا و فریب دادن چشم در دیدن آنها گویی در حال نمایش همزمان نشان می دهد.

مرحله 5: همه چیز را با هم ترکیب کنید

همه اش را بگذار کنار هم
همه اش را بگذار کنار هم

ما FSM کشتی و سنگ را در یک FSM بزرگ که به صفحه نمایش FSM وصل کردیم ، در بر گرفتیم. ورودی های بازی عبارتند از دکمه بالا و دکمه پایین روی برد BASYS3 و ساعت سیستم. خروجی ها بردارهای سگمنت و آند هفت بخش نمایش هستند.

این ورودی ها و خروجی ها در فایل محدودیت هایی که در آنها نقشه پورت قرار دارند ، مشاهده می شوند.

مرحله 6: اصلاحات آینده

در آینده ، افزودن قابلیت حرکت بیشتر کشتی به پروژه یک پیشرفت است. این را می توان به سادگی با دادن 2 ورودی دکمه دیگر و اجازه دادن به کشتی برای گرفتن موقعیت (حالت) غیر از 0 ، 4 و 8 ، انجام داد. تغییر احتمالی دیگر می تواند کنترل زمان بندی بعدی وضعیت سیارک باشد به طوری که به آرامی شروع به کار کرده و سرعت آن را افزایش دهد. 1.5 بار هر بار که کشتی را از دست می دهد تا زمانی که ضربه می خورد ، در آنجا دوباره راه اندازی می شود و دوباره کند می شود. این کار سختی بازی را افزایش می دهد و در صورت اجرا برای کاربر سرگرم کننده تر می شود و می توان با ایجاد یک متغیر برای حداکثر تعداد ساعت بعدی سنگ ، این متغیر را در هر بار که سیارک انجام نمی دهد در 1.5 ضرب کرد. ضربه نزنید ، و هربار که صخره برخورد می کند آن را به مقدار اولیه بازگردانید.

مرحله 7: نتیجه گیری

این پروژه به ما در درک بهتر ماشین های حالت محدود ، ساعت ها و نمایش تعاملی نمایشگرهای هفت قسمتی کمک کرده است.

بزرگترین نکته در مورد ماشینهای حالت محدود این است که بدانید (به یاد داشته باشید) در چه وضعیتی هستید تا بتوانید به حالت دلخواه بعدی بروید. از قضا ، توصیه های خوب زندگی ؛ باید بدانید کجا هستید تا بدانید کجا می روید.

با دستکاری نمونه های مختلف ساعت ، ما توانستیم به طور تصادفی اعداد تولید کنیم ، سنگ را به موقعیت بعدی منتقل کنیم و نمایش کشتی ، سنگ و پیام پایان بازی را مدیریت کنیم.

ما آموختیم که بیش از یک آند نمی تواند همزمان نمایش داده شود. ماژولی که به ما داده شد از این نکته استفاده کرد که چشم انسان فقط می تواند تفاوت را تا یک فرکانس مشخص ببیند. بنابراین فرکانس بالاتری از تغییر آندها انتخاب شد. مشاهده کشتی و صخره به طور همزمان در واقع یک کنایه است زیرا هر یک به طور جداگانه نمایش داده می شوند ، اما بسیار سریع. این مفهوم برای نمایش حرکت کشتی ، صخره و پیام "BAnG" به کار گرفته شد.

توصیه شده: