সুচিপত্র:

FPGA গ্রহাণু খেলা: 7 ধাপ (ছবি সহ)
FPGA গ্রহাণু খেলা: 7 ধাপ (ছবি সহ)

ভিডিও: FPGA গ্রহাণু খেলা: 7 ধাপ (ছবি সহ)

ভিডিও: FPGA গ্রহাণু খেলা: 7 ধাপ (ছবি সহ)
ভিডিও: Cine multi FPGA in Asteroids cocktail CAB 2024, নভেম্বর
Anonim
FPGA গ্রহাণু খেলা
FPGA গ্রহাণু খেলা

আমাদের CPE 133 চূড়ান্ত প্রকল্পের জন্য, আমরা আমাদের FPGA- এ দুটি পুশ বাটন সুইচ এবং 7-সেগমেন্ট ডিসপ্লে ব্যবহার করে একটি গ্রহাণু খেলা তৈরি করার সিদ্ধান্ত নিয়েছি। গেমটি কাজ করে যাতে একটি গ্রহাণু তিনটি এলোমেলোভাবে নির্বাচিত সারির একটিতে জন্মে এবং 7-সেগমেন্ট ডিসপ্লের অন্য দিকে জাহাজের দিকে আঘাত করে। উপরের বোতাম এবং নীচের বোতামটি আপনার জাহাজটিকে গ্রহাণুর পথ থেকে সরানোর জন্য ব্যবহার করা যেতে পারে। এটি করতে ব্যর্থ হলে, ডিসপ্লে কিছুক্ষণের জন্য 'BAnG' পড়ে এবং তারপর দ্রুত গেমটি পুনরায় চালু করে যাতে ব্যবহারকারী আবার চেষ্টা করতে পারে। প্রকল্পটি কীভাবে তৈরি করা হয়েছিল তার একটি সংক্ষিপ্ত বিবরণ অনুসরণ করা হয়েছে যাতে যে কোনও ব্যবহারকারী আমাদের নকশাটি প্রতিলিপি করতে বা উন্নত করতে পারে।

ধাপ 1: ওভারভিউ

ওভারভিউ
ওভারভিউ
ওভারভিউ
ওভারভিউ

প্রকল্পটি মূলত ফিনিট স্টেট মেশিন (FSMs) নিয়ে গঠিত, যা FPGA স্থানান্তর করার জন্য যুক্তি ব্যবহার করে যা জাহাজ এবং শিলা অবস্থানের বিভিন্ন মান সংরক্ষণ এবং প্রদর্শন করে। দুটি প্রধান মডিউল হল শিলা এবং জাহাজের জন্য খেলা FSMs, এবং বাইনারি থেকে 7-সেগমেন্ট ডিসপ্লে ডিকোডার FSM, যা VHDL- এ একটি খুব সাধারণ কাঠামোগত মডেল ব্যবহার করে একত্রিত হয়।

এফএসএমগুলি জাহাজের অবস্থান, শিলার অবস্থান এবং 7-বিভাগ ডিকোডারের জন্য তৈরি করা হয়েছিল। জাহাজের FSM এর উদ্দেশ্য হল যাতে প্লেয়ার আপ বা ডাউন বাটন চাপলে জাহাজ সঠিক অবস্থানে চলে যেতে পারে। FSM এর প্রয়োজন হয় কারণ সঠিক অবস্থানে যাওয়ার জন্য এটি কোন অবস্থানে ছিল তা মনে রাখা দরকার।

শিলার FSM এর উদ্দেশ্য হল শিলাটি কোন সারিতে এবং সেই সারির শেষ অবস্থানের উপর ভিত্তি করে সঠিক অবস্থানে নিয়ে যাওয়া। উপরন্তু, এটি মডিউলটির অবস্থানের উপর নজর রাখে যা এটি প্রদর্শন করবে এবং ছদ্ম-এলোমেলোভাবে একটি নতুন সারি বাছাই করে পরবর্তী প্রদর্শিত হবে।

7-সেগমেন্ট ডিসপ্লে ডিকোডারের জন্য FSM শুধুমাত্র জাহাজ এবং শিলা প্রদর্শন করার জন্য ব্যবহার করা হয় না, যখন জাহাজের অবস্থান এবং শিলা অবস্থান একই থাকে তখন "BAnG" প্রদর্শন করতে ব্যবহৃত হয়।

ধাপ 2: উপকরণ

প্রকল্পে ব্যবহৃত উপকরণগুলি ছিল:

  • ডিজিলেন্ট, ইনকর্পোরেটেড থেকে বেসিস 3 ডেভেলপমেন্ট বোর্ড।
  • ভিভাদো ডিজাইন স্যুট
  • sseg_dec.vhd (এই ফাইলটি Polylearn এ আমাদের প্রদান করা হয়েছিল এবং ব্রায়ান মেলি লিখেছিলেন)
  • Clk_div.vhd (এই ফাইলটি Polylearn এ আমাদের প্রদান করা হয়েছিল এবং ব্রায়ান মেলি লিখেছিলেন)
  • তিনটি সসীম রাষ্ট্রীয় মেশিন (এফএসএম)

ধাপ 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.5x প্রতিবার এটি জাহাজটি মিস করে যতক্ষণ না এটি আঘাত পায়, যেখানে এটি পুনরায় চালু হবে এবং আবার ধীর হয়ে যাবে। এটি গেমটির অসুবিধা বাড়িয়ে তুলবে এবং এটি ব্যবহারকারীর জন্য আরও মজাদার করে তুলবে যদি এটি বাস্তবায়িত হয়, এবং শিলার পরবর্তী রাষ্ট্র ঘড়ির সর্বোচ্চ গণনার জন্য একটি পরিবর্তনশীল তৈরি করে এটি করা যেতে পারে, প্রতিবার গ্রহাণুটি না করার সময় সেই ভেরিয়েবলকে 1.5 দ্বারা গুণ করে আঘাত করবেন না, এবং প্রতিবার শিলা আঘাত করার সময় এটির প্রাথমিক মান পুনরায় সেট করুন।

ধাপ 7: উপসংহার

এই প্রকল্পটি আমাদের সসীম রাষ্ট্রীয় মেশিন, ঘড়ি এবং সাত-সেগমেন্ট ডিসপ্লেতে ইন্টারেক্টিভভাবে প্রদর্শন করতে আরও ভালভাবে বুঝতে সাহায্য করেছে।

সসীম রাষ্ট্রীয় মেশিনের সবচেয়ে বড় বিষয় হল পরবর্তী কাঙ্ক্ষিত অবস্থায় যাওয়ার জন্য আপনি বর্তমানে কোন অবস্থায় আছেন তা জানা (মনে রাখা) গুরুত্বপূর্ণ। হাস্যকরভাবে, ভাল জীবন উপদেশ; আপনি কোথায় যাচ্ছেন তা আপনাকে অবশ্যই জানতে হবে।

ঘড়ির বিভিন্ন দৃষ্টান্ত ম্যানিপুলেট করে, আমরা এলোমেলোভাবে সংখ্যা উৎপন্ন করতে, শিলাটিকে পরবর্তী অবস্থানে নিয়ে যেতে এবং জাহাজ, শিলা এবং খেলা-শেষে বার্তা প্রদর্শন পরিচালনা করতে সক্ষম হয়েছিলাম।

আমরা শিখেছি যে একাধিক অ্যানোড একই সময়ে প্রদর্শিত হতে পারে না। আমাদের দেওয়া মডিউলটি সুবিধা নিয়েছে যে মানুষের চোখ শুধুমাত্র একটি নির্দিষ্ট ফ্রিকোয়েন্সি পর্যন্ত পার্থক্য দেখতে পারে। সুতরাং অ্যানোডগুলি স্যুইচ করার একটি উচ্চতর ফ্রিকোয়েন্সি বেছে নেওয়া হয়েছিল। জাহাজ এবং শিলা একই সময়ে দেখা যাচ্ছে আসলে একটি ইঙ্গিত যেহেতু প্রতিটি পৃথকভাবে প্রদর্শিত হয়, কিন্তু খুব দ্রুত। জাহাজের চলাচল, শিলা এবং "BAnG" বার্তা প্রদর্শনের জন্য এই ধারণাটি প্রয়োগ করা হয়েছিল।

প্রস্তাবিত: