با گذر از نسل سیستمهای آنالوگ، طراحی مدارات دیجیتال به یکی از حوزههای رو به گسترش و پرطرفدار رشته الکترونیک تبدیل شده است. در این بین میکروکنترلرها شاید جزء اولین و پرکاربرد ترین قطعاتی هستند که در ساخت سیستمهای کنترل کننده و پردازنده دیجیتالی کاربرد پیدا کردند و همچنان نیز جزء پرفروش ترین قطعات الکترونیکی در دنیا میباشند.
امروزه در کنار میکروکنترلرها، تراشههای FPGA نیز با توجه به ویژگیهای منحصر به فرد خود کاربردهای بسیاری پیدا کرده است. در اغلب موارد یکی از سوالات مطرح در هنگام شروع طراحی یک سیستم انتخاب بین میکروکنترلر یا FPGA است. با توجه به این که این سوال بسیار مهم است و میتواند در هزینه نهایی و مدت زمان طراحی تاثیر بسیار مهمی داشته باشد، در این مطلب سعی می کنیم تعدادی از کاربردهای تراشه های FPGA را بررسی کنیم تا بهتر بتوانیم در مورد انتخاب FPGA تصمیم گیری کنیم.
محدوده کاربردهای FPGA
به طور کلی هر پردازش محاسباتی را میتوان با FPGA انجام داد. این مسئله به این دلیل است که عملا میتوان توسط یک FPGA یک پردازنده را طراحی کرد (به عنوان مثال Xilinx MicroBlaze) و در نتیجه میتوان همهی پردازشهایی که با پردازندههای دیگر انجام میشود را با FPGA انجام داد.
نکتهای که FPGA را در زمینه پردازش و محاسبات از سایر رقبا مانند پردازندهها برتر میکند، ساختار موازی FPGA و توانایی بهینه سازی تعداد گیتهای مصرفی برای پیاده سازی یک عملیات محاسباتی است. به لحاظ تاریخی، FPGA ها در ابتدا رقبای CPLD ها محسوب میشدند اما رفته رفته با افزایش توان پردازشی آنها امروزه FPGA ها تحت عنوان یک سیستم کامل بر روی تراشه (SOC) در بازار ارائه میشوند. منظور از SOC پیاده سازی کامل یک سیستم بر روی تراشه است که از معروف ترین آنها SOC های مبتنی بر FPGA ها است.
امروزه FPGA ها با پردازنده سیگنالهای دیجیتالی (DSP) ها نیز در برخی از زمینهها رقابت میکنند. اولین کاربردهای FPGA به جای DSP ها در دهه 1990 اتفاق افتاد که واحد ضرب کننده (Multiplier) در FPGA ها استفاده شد.
یکی از روندهای دیگر کاربردهای رو به گسترش FPGA استفاده از آنها در افزایش سرعت برخی از الگوریتمهای پردازشی است. در این کاربردها بخشهایی از الگوریتم که پیاده سازی آنها توسط ساختار موازی FPGA با سرعت بالاتر و توان مصرفی کمتری امکان پذیر است در FPGA پیاده سازی شده و بخش های دیگر الگوریتم در پردازندههای عمومی پیاده سازی میشود. در بخش بعدی به صورت خلاصه به تعدادی از کاربردهای عملی که در آنها از FPGA استفاده میشود اشاره میکنیم.
مثالهایی از کاربردهای عملی FPGA
- سیستمهای مخابراتی
- سیستمهای نظامی (رادارها، کنترل و هدایت موشک و…)
- کاربردهایی که در آنها نیاز به الگوریتم های پیشرفته و پرسرعت رمزگذاری وجود دارد.
- رادیو نرم افزاری
- پردازش سیگنالهای تصویر با کیفیت بالا
- جایگزین DPS ها
- پیاده سازی الگوریتمهای پردازش و تشخیص صدا
- روترها و سوییچ های شبکههای مخبراتی
- وسایل حمل و نقل
- ستاپ باکس
- سیستمهای مبتنی بر سرورها
- کنترل موتورهای صنعتی
- و…
با توجه به روند رو به گسترش استفاده از FPGA ها، امیدوارم این مطلب به شما کمک کرده باشد تا دید خوبی نسبت به برخی از کاربردهای این تراشهها داشته باشید. در کشور ما هم FPGA بصورت گسترده در پروژههای نظامی و های_تک استفاده میشه و اگر بلد باشید میتوانید در این مراکز مشغول به کار بشید. شرکتهای خفنی در ایران هستن که برای کاربردهای مخابراتی و نمونه برداری بردهای خاص حرفه ای تولید میکنن.
منابع:
با تلخیص از ویکیپدیا