آنچه باعث میشود کاربرد FPGA در حوزههای مختلف پیادهسازی دیجیتال روز به روز بیشتر شود، اصولا به تفاوت FPGA با پردازندهها مرتبط است.
دو تفاوت اصلی بین این دو تکنولوژی پیادهسازی، امکان موازیسازی و وجود IOهای بیشتر در FPGAها است.
در این ویدئو، بعد از یادآوری این تفاوتها، کاربردهای متعدد FPGAها را در حوزههای مختلف مخابراتی، پزشکی، و... شرح خواهم داد.
More...
بسیاری از افرادی که به دنبال شغلی در زمینه FPGA هستند، نگران آینده این حوزه و مقدار نیاز بازار کار آن هستند.
فکر میکنم یکی از ملاکها برای پیشبینی آینده یک تکنولوژی، حجم سرمایهگذاری باشد که در حال حاضر روی آن انجام میشود.
بنابراین، در این ویدئو، این موضوع را از دیدگاه جهانی و سپس به طور خاص در مورد ایران بررسی خواهم کرد.
ویدئو یا متن؟
محتوای این برنامه آموزشی، به دو صورت ویدئو و متن آماده شده است. اگر علاقمند به یادگیری این مطلب به صورت ویدئویی هستید، ویدئوی زیر را ببینید و اگر ترجیح میدهید آن را به صورت متن مطالعه کنید، ادامه این مطلب را بخوانید.
برای دانلود نسخه با کیفیت این ویدئو، روی دکمه زیر کلیک کنید:
ما اغلب اوقات قبل از اینکه شروع به انجام کار، یا یادگیری مهارتی بکنیم، یک سوال مهم و اساسی ذهن ما را مشغول به خود میکند.
آن سوال این است که چرا و به چه دلایلی باید این کار را انجام بدهم؟ یا چرا این مهارت جدید را یاد بگیرم؟
در ادامه ما جنبههای مختلف این سوال مهم و اساسی را هم از لحاظ حوزههای کاری و هم موقعیتهای شغلی بررسی میکنیم و به پرسشهایی که ممکن است برای شما پیش بیاید پاسخ میدهیم.
کاربرد ویژه FPGAها
اولین سوالی که در زمینهی کاربردهای FPGA پیش میآید این است که دلیل وجود این همه کاربرد ویژه برای FPGAها چیست؟
پاسخ این سوال را باید در تفاوت FPGAها با پردازندهها جستجو کرد.
همانطور که از برنامههای قبلی به یاد دارید، دو تفاوت اصلی FPGAها با پردازندهها، سرعت بالای انجام الگوریتمها به دلیل امکان موازیسازی و طراحی اختصاصی و تعداد زیادI/O های FPGA در مقایسه با پردازندهها بود. این دو ویژگی با هم باعث ایجاد کاربردهای خاصی در FPGAها میشود.
قبل از اینکه این کاربردها را به طور دقیقتر مورد بررسی قرار بدهیم، ابتدا بیایید بررسی کنیم افرادی که در حوزهی FPGA فعال هستند، در چه زمینههایی کار میکنند.
زمینهی کاری افراد مشغول به کار در زمینه FPGA
به طور کلی افرادی که در زمینهی پیادهسازی سیستمهای دیجیتال به کمک FPGA کار میکنند، در یکی از دو زمینهی اصلیای که در ادامه معرفی میکنیم، مهارت دارند.
یا طراح و پیادهساز سیستمهای اینترفیس یا کنترل هستند، و یا طراح و پیادهساز سیستمهای پردازش سیگنال دیجیتال هستند.
کسانی که پیادهساز سیستمهای اینترفیس و کنترل هستند، معمولا انواع پروتکلهای ارتباطی مثل RS232 ،USB ،LAN و یا SATA را پیادهسازی میکنند، و یا اینکه برای بخشهای یک سیستم دیجیتالی، قسمتهای کنترلی را پیادهسازی میکنند.
معمولا هر سیستم دیجیتالی، بخشهای کنترلی هم دارد که آنها هم باید توسط یک پیادهساز دیجیتال انجام شود.
گروه پیادهساز الگوریتمهای پردازش سیگنال، متخصص پیادهسازی الگوریتمهای مختلف پردازش سیگنال در زمینههای مخابرات، رادار و پردازش تصویر هستند. در ادامه در رابطه با این موارد توضیح خواهیم داد.
اکنون اجازه بدهید به بعضی از کاربردهای مهم FPGA در هر دو زمینهی ذکر شده در بالا نگاه دقیقتری داشته باشیم.
کاربردهای FPGA
سیستمهای فرستده-گیرنده
یکی از مهمترین کاربردها، استفاده از FPGA در سیستمهای فرستنده-گیرنده حوزهی مخابرات است.
به طور مثال لینکهای ماهوارهای که وظیفه انتقال دیتا را دارند، در بسیاری از مواقع به سرعت بالا احتیاج دارند و گاهی تنها راه تحقق سرعت بالا استفاده از FPGAها است.
سیستمهای دفاعی
یکی دیگر از کاربردهای بسیار مهم، سیستمهای دفاعی مثل سیستمهای رادار و سونار است.
سیستم رادار برای مکانیابی یک هدف استفاده میشود. سیستم سونار نیز شبیه سیستم رادار است، اما در محیطهای آبی استفاده میشود.
مهندسی پزشکی
در زمینهی مهندسی پزشکی FPGA بسیار پرکاربرد است. با یک دید جهانی میتوان گفت که این بخش یکی از پرکاربردترین بخشهای استفاده از FPGAها است.
رادیونرمافزاری
FPGA برای ساخت سیستمهای رادیونرمافزاری یا Software Define Radio کاربرد زیادی دارد.
پردازش تصویر
در ساخت سیستمهای پردازش تصویر و ویدئو، با رزولوشن بالا و جابهجایی Real Time به یقین میتوان گفت تنها راهحل FPGA است.
سیستمهای کنترل و مانیتورینگ
در سیستمهای کنترل و مانیتورینگ که معمولا در نیروگاهها یا مکانهایی شبیه آن استفاده میشود، از FPGAها میتوانیم استفاده کنیم. در حال حاضر در بسیاری از موارد این سیستمها جایگزین سیستمهای قدیمیتری که به کمک PLCها پیادهسازی میشدند، میشود.
کنترل موتورهای قدرت
افرادی که در گرایش قدرت تحصیل کردهاند و یا در زمینهی Drive موتورها کار کردهاند، میدانند که الگوریتمهای کنترل موتور را میتوانیم به کمک FPGAها پیادهسازی کنیم.
رمزنگاری
در زمینهی رمزنگاری یا Encryption که در خیلی از سیستمها برای انتقال دیتا استفاده میشود، میتوانیم از FPGAها استفاده کنیم.
مدلسازی ASIC
برای مدلسازی ASIC هم میشود از FPGAها استفاده کرد. همانطور که گفتیم FPGAها را بارها میتوانیم برنامهریزی کنیم و برای سختافزارهای مختلف پیکرهبندی کنیم. بنابراین، قبل از اینکه یک IC به صورت دائمی و ASIC ساخته شود، میتوان آن را به کمک FPGA مدلسازی کرد و بعد از اینکه خطاهای آن برطرف شد و به نتیجهی نهایی رسید، میتوان آن را به صورت ASIC یا نهایی پیادهسازی کرد.
acceleratorها
از دیگر کاربردهای FPGAها، ساخت و پیادهسازی شتابدهندهی الگوریتمها یا همان acceleratorها است که در کنار پردازندهها استفاده میشود.
بهطور مثال، فرض کنید که شما به کمک DSP در حال پیادهسازی یک الگوریتم پردازش سیگنال هستید، اما بخشی از این الگوریتم را نمیتوانید از لحاظ سرعت به کمک DSP پیادهسازی کنید. بنابراین، آن بخش خاص را میتوان به یک FPGA سپرد و از آن FPGA در کنار پردازنده استفاده کرد تا در مجموع آن الگوریتم را بتوانید در زمان مورد نظر اجرا کنید.
رادار مکانیاب
کاربرد دیگر FPGA در رادار مکانیاب میباشد. یکی از محصولات یا پروژههای فعال شرکتهای ایرانی که در حوزهی دیجیتال فعالیت میکنند، رادار است.
رادار مکانیاب، راداری است که میتواند موقعیت یک هدف را برای ما مشخص کند.
این سیستم به طور کلی از دو بخش سختافزار و نرمافزار تشکیل شده است که بخش سختافزار نیز از دو بخش RF و دیجیتال تشکیل شده است.
در بخش RF سیگنال هدف توسط آنتن، دریافت میشود و در مدارهای RF، فرکانس این سیگنال پایین میآید یا اصطلاحا Down convert میشود و به حوزهی IF یا Intermediate Frequency یاBase Band که فرکانس پایه است منتقل میشود.
بعد از آن به کمک مبدلهای آنالوگ به دیجیتال، به سیگنالهای نمونهبرداری شدهی دیجیتال تبدیل میشود و به بخش سختافزار پردازش سیگنال دیجیتال هدایت میشود.
در این بخش الگوریتمهای مختلف مکانیابی و Tracking روی این سیگنال اعمال میشود و نتایج آن از طریق یک اینترفیس یا پروتکلهای ارتباطی استاندارد به بخش نرمافزاری ارسال میشود.
در بخش نرمافزاری نیز با اعمال مجدد الگوریتمهای پردازش سیگنالی که از نوع نرمافزاری هستند بر روی سیگنالها، موقعیت هدف مشخص و بر روی مانیتور نمایش داده میشود.
معمولا پارامترهای کنترلی نیز از سمت نرمافزار به وسیلهی همان اینترفیس به بخش سختافزار ارسال میشود.
بخشهایی که در بلوک دیاگرام زیر به رنگ آبی نمایش داده شده است، بخشهایی است که به صورت دیجیتالی و معمولا به کمک FPGA پیادهسازی میشود.
در قسمت RF معمولا مدارهای RF شامل بخشهایی میشود که نیاز به کنترل و Settingهایی دارد، که به کمک مدارهای دیجیتال انجام میشود. در بسیاری از موارد، از FPGAهای ساده برای پیادهسازی این بخش استفاده میشود.
اما در بخش پردازش سیگنال دیجیتال که به صورت سختافزاری در بخش دیجیتال انجام میشود، ما الگوریتمهای بسیار پیچیدهتری داریم که باید به صورت Real Time یا بلادرنگ انجام شود. بنابراین، حجم پردازش بسیار زیادی در این بخش وجود دارد که بهترین راهحل برای پیادهسازی این بخش استفاده از FPGAها است.
با توجه به اینکه برای پیادهسازی بخش پردازش سیگنال از FPGA استفاده میشود، بخش اینترفیس نیز به کمک FPGA پیادهسازی میشود.
انواع پروتکلهای ارتباطی مثل LAN ،USB یا RS232 می تواند ارتباط بین بخش سختافزار و نرمافزار را برقرار کنند.

بخش سختافزار و نرمافزار رادار مکانیاب
معمولا شرکتهای فعال در حوزه RF یک یا دو نیروی پیادهساز دیجیتال دارند، اما شرکتهایی که در زمینهی پردازش سیگنال دیجیتال فعالیت میکنند، تعداد قابل توجهی نیروی متخصص پیادهساز دیجیتال دارند.
این افراد الگوریتمهایی را که در سطح سیستم توسط طراح سیستم توسعه پیدا کرده است را به کمک FPGA یا DSP پیادهسازی میکنند.
قبل از اینکه در رابطه با بازار کار FPGA در ایران صحبت بکنم، میخواهم یک نگاهی به بازار جهانی فروش FPGA داشته باشم.
بازار فروش جهانی FPGA
همانطور که در نمودار زیر میبینید در سال 1988 تقریبا چند سال بعد از ساخت اولین FPGA، بازار فروش جهانی FPGA حدود 13 میلیون دلار در سال بوده است. این رقم در سال 2013 به بیش از 5 میلیارد دلار رسید و پیشبینی کارشناسان این است که تا قبل از سال 2020 مقدار فروش جهانی FPGAها، به بیش از 9 میلیارد دلار میرسد. این آمار میتواند وسعت بازار را تا حد زیادی نشان دهد و راجع به آینده حرفهای زیادی برای گفتن داشته باشد.

بازار فروش جهانی FPGA
کاربرد FPGA در ایران
در ایران نیز در زمینههای صنعتی، پردازش تصویر، دفاعی و مخابرات FPGA به شدت مورد نیاز است.
به علت کمبود نیروی آماده به کار، شرکتهایی که در این حوزه کار میکنند، همواره به دنبال نیرویی متبحر در زمینهی پیادهسازی به کمک FPGA هستند.
در طول پنج سال گذشته در سه شرکت با دهها نفر متقاضی انجام کار در این زمینه مصاحبههای شغلی زیادی را انجام دادهام و نتیجهی آن به طور خلاصه این است که افرادی که بعد از فارغ التحصیلی، یا حتی بعد از چندین سال تجربه کار با FPGA، توانایی انجام پروژه در یک محیط حرفهای را دارند، بسیار محدود هستند.
همین موارد به شما نشان میدهد که اگر بتوانید در این زمینه مهارت لازم را کسب کنید، چه بازار کار وسیعی برای شما وجود دارد.
در انتها به این نکته هم توجه داشته باشید که در سالهای گذشته به خاطر مشکلاتی که در کشور وجود داشت سرمایههای زیادی از این بخش به بخشهای دیگر منتقل شد و این باعث شد بازار کار طراحی سیستمهای دیجیتال به طور خاص تحت تاثیر قرار بگیرد.
اما با توجه به اینکه انتظار داریم تحریمها به صورت تدریجی رفع شود، میتوانیم این انتظار را داشته باشیم که سرمایهی بیشتری به بخش تحقیق و توسعه وارد شده و باعث گسترش بازار کار FPGA شود.
بنابراین، اگر بتوانید مهارتهای خودتان را هر چه سریعتر در این زمینه افزایش بدهید، میتوان آیندهی کاری بسیار روشنی را در سالهای آینده برای شما متصور شد.
آیا برنامه ویدئویی کاربرد FPGA و آینده آن در ایران برای شما مفید بود؟
لطفا نظرتان را در مورد این برنامه در پایین همین پست با دیگران به اشتراک بگذارید. همچنین با کلیک روی هر کدام از دکمههای اشتراک گذاری ابتدای این مطلب و به اشتراکگذاری آن در شبکههای اجتماعی میتوانید افراد بیشتری را در یادگیری این مطالب سهیم کنید.