এফপিজিএ এর বনাম মাইক্রোকন্ট্রোলারগুলি [বন্ধ]


36

আমি আরডুইনো পরিবারে (বিশেষত সাঙ্গুইনো) কাজ করেছি, কয়েকটি সাধারণ ডিভাইস এবং একটি সাধারণ ফোটোট্রোপ তৈরি করেছি। আমি এইভাবে মাইক্রোকন্ট্রোলারদের সাথে বেশ স্বাচ্ছন্দ্য বোধ করি - বিশেষত আটলের জন্য। আমি কীভাবে জানতে আগ্রহী যে কীভাবে স্ট্যান্ডার্ড মাইক্রোকন্ট্রোলার থেকে এফপিজিএর থেকে আলাদা হয়। আমি একটি প্রযুক্তিগত পটভূমি (সি / সি ++ প্রোগ্রামিং) থেকে এসেছি এবং এইভাবে প্রযুক্তিগত উত্তরগুলি পছন্দ করবে। কেবল মনে রাখবেন যে আমি ইলেকট্রনিক্স ডোমেনে একজন নবাগত (আমার / আমার অভিজ্ঞতার সাথে সম্পর্কিত)। :)

আমি এই ক্যোয়ারির মধ্য দিয়ে গিয়েছিলাম এবং এটি ভাল ছিল তবে আমি আরও গভীর বিশদ অনুসন্ধান করছি।

ধন্যবাদ! Sushrut।


সংযোজন - বাস্তব বিশ্বে এমন কোনও ভাল উদাহরণ রয়েছে যা হাইব্রিড আর্কিটেকচার ব্যবহার করে, অর্থাত্ মাইক্রোকন্ট্রোলারদের সাথে fpga এর সমন্বয় করে?
সুশ্রুত জে মাইর

সুশ্রুত জে মাইর - সাধারণত যখন আপনার কাছে এফপিজিএ থাকে এবং মাইক্রোর প্রয়োজন হয় তখন মাইক্রো এফপিজিএতে প্রয়োগ হয়
কনার ওল্ফ

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

উত্তর:


48

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

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

সমান্তরাল বাস্তবায়নের দিকে এফপিজিএগুলি আরও বেশি ফোকাস করে। কখনও কখনও আপনার চিন্তায় থাকতে হয় যে আপনার এমসিইউয়ের আইএসআর বাধাগুলি পরিষেবা দিতে কতক্ষণ সময় নেয় এবং আপনি আপনার হার্ড-রিয়েল-টাইম সীমাটি অর্জন করতে সক্ষম হবেন কিনা তা নিয়ে ভাবতে হবে। যাইহোক, এফপিজিএ-তে একটি সর্বদা প্রচুর পরিমাণে ফিনিট স্টেট মেশিন (এফএসএম) চলছে। এগুলি "ফেম্টো-কন্ট্রোলারগুলি" যেমন নিয়ন্ত্রণ যুক্তির সামান্য মেঘের মতো। এগুলি সব একই সাথে চলছে, সুতরাং একটি বাধা নিখোঁজ হওয়ার বিষয়ে কোনও উদ্বেগ নেই। আপনার কোনও এডিসির সাথে ইন্টারফেস করার জন্য একটি এফএসএম থাকতে পারে, একটি মাইক্রোকন্ট্রোলারের ঠিকানা / ডেটা বাসে ইন্টারফেস করার জন্য অন্য এফএসএম, স্টেরিও কোডেকে ডেটা প্রবাহিত করার জন্য অন্য এফএসএম, তবে এডিসি থেকে কোডেকে ডেটাফ্লো বাফার জন্য অন্য একটি এফএসএম ... আপনি সমস্ত এফএসএম সমন্বিতভাবে গানে তা নিশ্চিত করার জন্য একটি সিমুলেটর ব্যবহার করা দরকার।

এফপিজিএগুলি একটি পিসিবি লেআউট ডিজাইনারের ভিজা স্বপ্ন। এগুলি অত্যন্ত কনফিগারযোগ্য। আপনার বিভিন্ন ভোল্টেজ এমনকি ড্রাইভের শক্তিগুলিরও বিভিন্ন লজিক ইন্টারফেস (এলভিটিটিএল, এলভিসিএমওস, এলভিডিএস, ইত্যাদি) থাকতে পারে (যাতে আপনার সিরিজ-সমাপ্তি প্রতিরোধকের প্রয়োজন হয় না)। পিনগুলি অদলবদলযোগ্য; আপনি কি কখনও কোনও এমসিইউ ঠিকানা বাস দেখেছেন যেখানে চিপের চারপাশে পিনগুলি ছড়িয়ে ছিটিয়ে ছিল? আপনার পিসিবি ডিজাইনার সম্ভবত সমস্ত সংকেত সঠিকভাবে একসাথে বাঁধতে সম্ভবত একগুচ্ছ বায়াস ফেলে দিতে হবে। একটি এফপিজিএর সাহায্যে, পিসিবি ডিজাইনার পরে সুবিধাজনক যে কোনও আদেশে চিপটিতে সিগন্যালগুলি চালাতে পারে এবং তারপরে এফপিজিএ টুলচেইনে নকশাটি আবার এনোটোটেট করা যায়।

এফপিজিএগুলিতে প্রচুর সুন্দর, অভিনব খেলনা রয়েছে। আমার প্রিয় পছন্দের একটি হ'ল জিলিনেক্স চিপসের ডিজিটাল ক্লক ম্যানেজার। আপনি এটিকে একটি ঘড়ির সংকেত খাওয়াতে পারেন এবং এটি বিভিন্ন প্রকারের ফ্রিকোয়েন্সি মাল্টিপ্লায়ার এবং বিভাজকগুলি ব্যবহার করে এর থেকে আরও চারটি অর্জন করতে পারে, সবগুলিই আদিম 50% শুল্ক এবং 100% ধাপে ... এবং এটি এমনকি ঘড়ির কাঁচের জন্য অ্যাকাউন্ট করতে পারে চিপ থেকে বাহ্যিক প্রচারে বিলম্ব হয়!

সম্পাদনা (সংযোজনের জবাব):

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

শিলিনেক্সের ভার্টেক্স 4 সিরিজের মতো এফপিজিএ ফ্যাব্রিক সহ একটি বাস্তব, ডেডিকেটেড আইবিএম পাওয়ারপিসি রয়েছে এমন কিছু এফপিজিএ রয়েছে যার মধ্যে "হার্ড কোর" এমবেড করা আছে।

EDIT2 (মন্তব্যে জবাব):

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

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

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

এগুলি সংযুক্ত করার সর্বোত্তম উপায় হ'ল একটি বাহ্যিক ঠিকানা এবং ডেটা বাসের সাথে একটি এমসিইউ ব্যবহার করা। তারপরে আপনি কেবল এমসিইউতে এফপিজিএ সার্কিটগুলি মেমরির মানচিত্র করতে পারেন এবং নিজের নিজস্ব "রেজিস্টার" যুক্ত করতে পারেন যার প্রত্যেকটির নিজস্ব ঠিকানা রয়েছে। এখন এফপিজিএ একটি 32-বিট টাইমারের মতো কাস্টম পেরিফেরিয়াল যুক্ত করতে পারে যা 8-বিট রিডের মধ্যে ওভারফ্রোলগুলি রোধ করার জন্য প্রথম বাইটটি একবারে পড়লে একবারে সমস্ত 4 বাইট ল্যাচ করতে পারে। আপনি পৃথক এডিসির মতো অন্যান্য চিপ থেকে আরও পেরিফেরিয়াল মেমরির জন্য আঠালো যুক্তি হিসাবে এটি ব্যবহার করতে পারেন।

শেষ অবধি, কিছু এমসিইউ এফপিজিএর মতো "বাহ্যিক মাস্টার" ব্যবহারের জন্য ডিজাইন করা হয়েছে। সাইপ্রেস কয়েকটি ইউএসবি এমসিইউ তৈরি করে যার ভিতরে একটি 8051 থাকে তবে উদ্দেশ্যটি হ'ল ইউএসবি ডেটা উত্পাদিত / গ্রহণ করা হয় যেমন একটি এফপিজিএ দ্বারা।


ধন্যবাদ, এটি একটি ভাল তথ্য। আমি এইচডিএল সংকলকগুলির কাছে সি / সি ++ শুনেছি। আপনি কি আদৌ চেষ্টা করেছেন?
সুশ্রুত জে মাইর

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

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

মূল ক্যোয়ারীতে আমার সংযোজনের উত্তরটি সবেমাত্র দেখেছি। ধন্যবাদ - তাই আপনি কি বলছেন যে ব্যবহারিকভাবে বলতে গেলে (কমপক্ষে আজকের প্রযুক্তির সাথে), একটি মানক এমসিইউর + একটি এফপিজিএর একটি হাইব্রিড আর্কিটেকচারের সত্যিকারের পরিস্থিতিতে সত্যই ব্যবহারযোগ্য হতে পারে?
সুশ্রুত জে মাইর

অসাধারণ. ধন্যবাদ ajs410। আমি আশা করি উত্তেজনাপূর্ণ হাইব্রিড খিলানের সম্ভাবনাগুলিতে প্রবেশের আগে নিজেকে কয়েক সপ্তাহ ধরে এফপগা-তে নিজেকে বুট করার চেষ্টা করব!
সুশ্রুত জে মাইর

10

"বাস্তব বিশ্বের উদাহরণগুলি ... মাইক্রোকন্ট্রোলারগুলির সাথে এফপিজিএ সংমিশ্রণ করবেন?"

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

  • Elphel ক্যামেরা ; এলফেল প্রজেক্ট উইকির একটি জিলিনেক্স (আর) স্পার্টান 3 ই 1200 কে গেটস এফপিজিএ এবং একটি ইট্রাাক্স এফএস প্রসেসর জিএনইউ / লিনাক্স চালিত রয়েছে।
  • হিজড়া-7500 একটি 5000 লূত জাফরি FPGA এবং 250MHz Cavium ARM9 CPU- র যে লিনাক্স চালাতে পারেন না।
  • বেলুন বোর্ড একটি Xilinx স্পার্টান FPGA এবং এআরএম CPU থাকে
  • বেশ কয়েকটি টিনি ওয়েইনি লিনাক্স এসবিসি-তে একটি এফপিজিএ এবং সিপিইউ উভয়ই অন্তর্ভুক্ত
  • Armadeus প্রকল্প উইকি নথি উভয় একটি Xilinx স্পার্টান -3 FPGA এবং 400 মেগাহার্জ ARM9 CPU- র সঙ্গে কয়েক বোর্ড বোর্ড।
  • Blackfin কুশলী বোর্ড উভয় একটি Xilinx স্পার্টান 3E FPGA এবং 600 মেগাহার্জ এনালগ ডিভাইস Blackfin® ADSP-BF537 প্রসেসর অন্তর্ভুক্ত করা হয়েছে। (এটির কোনও এমএমইউ নেই, সুতরাং এটি সম্পূর্ণ লিনাক্স চালাতে পারে না, তবে এটি ইউসি্লিনাক্স চালাতে পারে)।
  • "Minimig" (মিনি অ্যামিগার মত) ডিস্ক নিয়ামক অভিনয় হিসাবে একটি Xilinx স্পার্টান -3 FPGA, একটি M68000 CPU- র, এবং একটি ছোট আমাদের PIC MCU অন্তর্ভুক্ত করা হয়েছে।

4

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

কয়েকটি পণ্য লাইনগুলিকে অস্পষ্ট করে তোলে। কিছু উদাহরণ:

  1. বড় এফপিজিএগুলিতে হার্ড সিপিইউগুলি অন্তর্ভুক্ত থাকে (বড় প্রকল্পগুলি প্রায়শই তাদের কোনওভাবে প্রয়োজন হয়), যেমন তাদের র‌্যাম এবং গুণক ব্লক রয়েছে
  2. কিছু মাইক্রোকন্ট্রোলার সমান্তরাল ক্রিয়াকলাপ লক্ষ্য করে (এক্সএমওএস এক্সএস 1, আটমেল এক্সমেগা, গ্রিনআরে, প্যারালাক্স প্রপেলার)
  3. কিছু চিপ সংকর হিসাবে ডিজাইন করা হয়েছে (সাইপ্রাস PSoC, Atmel FPSLIC)

একটি অত্যাবশ্যক প্রোগ্রামিং ব্যাকগ্রাউন্ড থেকে আসা, এটি এফপিজিএর সুবিধাগুলি অর্জন করার জন্য আপনার হার্ডওয়্যার ডিজাইনের জন্য এটি বেশ সামঞ্জস্য। তবে আপনি অন্য কোথাও অভিজ্ঞতাটি দরকারী খুঁজে পাবেন।


1

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


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

যদি কোনও পদ্ধতিতে কোনও এফপিজিএ প্রয়োজন হয়, এমসিইউ "ফ্রি"।
লিওন হেলার

1

মাইক্রোকন্ট্রোলাররা হ'ল ডিজিটাল সার্কিট যা তার প্রোগ্রাম মেমরি থেকে ক্রমানুসারে একের পর এক কমান্ড কার্যকর করে a একটি মাইক্রোকন্ট্রোলারের ডিজিটাল হার্ডওয়্যার সার্কিট স্থির হয় এবং ডিজিটাল সার্কিট সমন্বিত বিভিন্ন গেটের মধ্যে আন্তঃসংযোগ স্থায়ী হয় এবং সিলিকনে আটকে থাকে। যেখানে এফপিজিএগুলিকে ডিজিটাল গেটের পুল হিসাবে বিবেচনা করা যেতে পারে (বাস্তবে যদিও লটগুলি পরিবর্তে উপস্থিত রয়েছে) যার প্রোগ্রামে ইন্টারকানেক্ট রয়েছে। এখন আন্তঃসংযোগগুলি প্রোগ্রামিং করে যে কোনও ডিজিটাল সার্কিট (এমনকি একটি মাইক্রোকন্ট্রোলার) এফপিগায় তৈরি করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.