কখন এফপিজিএ ব্যবহার করা যায় এবং মাইক্রোকন্ট্রোলার / ডিএসপি ব্যবহার করা যায় না?


28

আমাকে উন্নত মাইক্রোকন্ট্রোলারগুলির একটি কোর্স এবং উন্নত এফপিজিএর একটি কোর্সের মধ্যে নির্বাচন করতে হবে।

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

আপনি কি এমন কিছু অ্যাপ্লিকেশন / পণ্য / প্রকল্প নিয়ে আসতে পারেন যেখানে একটি মাইক্রোকন্ট্রোলার বা ডিএসপি পর্যাপ্ত হবে না এবং কেন?

ক্যামেরা? দ্রুতগতির ক্যামেরা? উচ্চ গতির চিত্র প্রক্রিয়াকরণ?


4
মূল কারণগুলি হ'ল বেশ অনেকটা 1. 100% নির্দোষ প্রতিক্রিয়া, 2. সমান্তরালতার জন্য বিশাল সম্ভাবনা। তবে, অনেকগুলি ডিজাইন এফপিজিএতে একটি ক্রম-মূল সিপিইউ অন্তর্ভুক্ত করে, যেহেতু একটি প্রসেসরের জন্য ক্রেজি লজিক প্রোগ্রাম করা অনেক সহজ, এটি হার্ডওয়ারের চেয়ে বেশি।
জজারদা

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

আমি এমন অ্যাপ্লিকেশনগুলির সন্ধান করছি যেখানে বেশিরভাগ ক্ষেত্রে একটি মাইক্রোকন্ট্রোলার পর্যাপ্ত পরিমাণে না হয়, বা যেখানে কোনও এফপিজিএ স্পষ্ট পছন্দ হয়।
Jolle

4
আপনার পরিচিতি কোর্সে আপনি কোনটি বোঝা সহজ করেছেন? তারপরে অন্যটিতে উন্নত চয়ন করুন, যেহেতু (সম্ভবত) আপনি নিজের দ্বারা সহজতরটি অধ্যয়ন করতে সক্ষম হবেন।
ওলিভিরাজের

উত্তর:


21

আরও দেখুন FPGA এর বনাম মাইক্রোকন্ট্রোলারের

উচ্চ-গতির চিত্র বা ভিডিও প্রসেসিং একটি ভাল উদাহরণ। অথবা এমন 'চিত্রগুলি' প্রসেসিং করা হচ্ছে যা রাডার বা লেজার-ভিত্তিক সিস্টেমগুলির মতো সোজা অপটিক্যাল চিত্র নয়।

মূল বিষয় হ'ল থ্রুপুট এবং বিলম্ব প্রয়োজনীয়তা। একজন মাইক্রোকন্ট্রোলার একবার প্রতি মাইক্রোসেকেন্ডে একটি বাধা (খুব মোটামুটি) পরিবেশন করতে পারে। এটি একবারে একবারে বাধা প্রদান করতে পারে। আপনার যদি এটিকে বিস্তৃত পদ্ধতিতে প্রক্রিয়া করার প্রয়োজন হয় তবে এটি নির্দিষ্ট সময়ে আপনি কতজনকে পরিষেবা দিতে পারবেন তা সীমাবদ্ধ করে।

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

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

পেরিফেরিয়ালগুলির জন্য বা একটি উচ্চ-গতির ডিজিটাল বাসের জন্যও কথা বলতে পারেন one আপনি কোনও মাইক্রোকন্ট্রোলারের মধ্যে বা বাইরে এইচডিএমআই বিট-ব্যাং করতে পারবেন না। আপনি একটি কাছাকাছি একটি পিসিআই কার্ড তৈরি করতে পারবেন না।


16

ভাল, আমি এফপিজিএগুলিতে এইচডি ভিডিওর রিয়েল-টাইম প্রসেসিং করি। আমি যা কিছু করি তা জিপিইউ চিপে করা যেতে পারে তবে কোনও মাইক্রোকন্ট্রোলার বা ডিএসপিতে নয়। এফপিজিএ আরও নমনীয়।

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

শেষ পর্যন্ত, আপনি উভয় ক্ষেত্রেই কথোপকথন হতে চাইবেন, তাই আপনি প্রথমে কোনটি করছেন তা সত্যিই কেবল একটি প্রশ্ন।


14

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

একটি HDMI ভিডিও স্ট্রিম প্রচুর ডেটা। এটি সাধারণ ভিডিও ক্ষেত্রে সিপিইউ, জিপিইউ বা এএসআইসি দ্বারা করা যেতে পারে, তবে আপনাকে যদি এটিতে কিছুটা কাজ করার প্রয়োজন হয় (উদাহরণস্বরূপ একটি ওভারলে যুক্ত করুন) আপনি একটি এফপিজিএ বেছে নিতে পারেন।

একটি অডিও স্ট্রিম প্রচুর ডেটা নয়, তবে যদি আপনার এটিতে স্পিচ সনাক্তকরণের প্রয়োজন হয় তবে আপনি একটি এফপিজিএতে সিপিইউ পছন্দ করতে চলেছেন।

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

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

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


12

সাধারণত, আপনি যখন কোনও কাজ করতে পারেন তখন আপনি একটি মাইক্রোকন্ট্রোলার ব্যবহার করেন। একটি মাইক্রোকন্ট্রোলার অনুক্রমিক নির্দেশাবলী কার্যকর করে যুক্তি সম্পাদন করে।

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


8

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

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

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


6

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

ন্যানোসেকেন্ডে টাইমিংয়ের প্রয়োজনীয়তা মূলত যে কোনও কিছুতে এফপিজিএ বা এএসআইসি প্রয়োজন।


5

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

একটি দৃ concrete় উদাহরণ: কেন পার্লিন তার সিমপ্লেক্স শব্দের অ্যালগরিদমের একটি হার্ডওয়্যার প্রয়োগের পরামর্শ দিয়েছেন। এটি traditionalতিহ্যবাহী সিপিইউ বা মাইক্রোকন্ট্রোলারের সাহায্যে তুলনামূলক দ্রুত করা যায় তবে কাস্টম হার্ডওয়্যার দিয়ে সুপার দ্রুত তৈরি করা যায়। যেহেতু আমি সন্দেহ করি যে কোনও ডিএসপি এটির জন্য কাজ করবে, তাই সবচেয়ে সহজ জিনিসটি হবে এফপিজিএ। শক্ত উপায়টি অবশ্যই আপনার জন্য একটি প্রকৃত, শারীরিক চিপ বানোয়াট হবে যা অবিশ্বাস্যভাবে ব্যয়বহুল। http://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf


5

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

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


4

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

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


1

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


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


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

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