تراشه های FPGA
بعد از اینکه یک مدار دیجیتال را به کمک یک نرمافزار پیادهسازی مثل ISE یا ویوادو طراحی کردید، باید آن را در FPGA پروگرام کنید.اما حافظه درون FPGAها ذاتا مشابه SRAMها هستند و در نتیجه آنچه در آنها پروگرام میشود بعد از قطع منبع تغذیه پاک میشود!اما این مساله برای یک محصول مبتنی بر FPGA قابل قبول نیست و نیاز است به نحوی بتوانیم آن را به صورت دائمی پروگرام کنیم.برای این کار، معمولا از یک حافظه فلش جانبی در FPGA استفاده میشود. مدار نهایی در این حافظه جانبی پروگرام میشود و هر بار که برد روشن میشود، اطلاعات مربوط به مدار به طور خودکار از حافظه فلش به FPGA منتقل میشود اگر شما هم جزو افرادی هستید که به آموزش FPGA علاقه دارید میتوانید صفحه مارا دنبال کنید.
FPGA چیست و کجا کاربرد دارد؟
گر تا به حال با میکروکنترلرها سر و کار داشته اید، حتما برای شما این اتفاق افتاده است که بخواهید چندین کار را به صورت همزمان پیش ببرید؛ این کار با استفاده از میکروکنترلر امکان پذیر نیست. به همین دلیل fpga ها جایگزین خیلی خوبی هستند که می توانند به خصوص در پروژه های بزرگ و انجام عملیات به صورت همزمان به شما کمک کنند. در این مطلب با مفهوم و نحوه خرید fpga، کاربردها، ساختار، مزایا و معایب و تفاوت آن با میکروکنترلر آشنا می شویم.
اف پی جی ای Fpga چیست؟
اگر برای شما هم این سوال پیش آمده که Fpga مخفف چیست ؟ باید بدانید که این عبارت مخفف field programmable gate array، بوده و یک تراشه نیمه رسانای قابل برنامه ریزی است که از اجزای الکترونیکی کوچکی به نام بلوک منطقی (logic block) یا سلول منطقی (logic cell) تشکیل شده است.
به Fpga یا همان آرایه درگاه قابل برنامه ریزی، تراشه fpga هم گفته می شود چرا که امکان برنامه ریزی متناسب با نیاز کاربران و امکان تغییر در روابط منطقی بین داده های ورودی و خروجی را دارد. با استفاده از اف پی جی ای، کاربران می توانند مدار های خاص خود را طراحی کرده و بسازند. در واقع خود FPGA تنها یک برد خالی است که قابلیت ویژه ای ندارد بلکه هنگامی که شما مطابق نیازهایتان آن را پیکر بندی می کنید، کارایی پیدا می کند. برای خرید اف پی جی ای کافی است به فروشگاه اینترنتی ما مراجعه کرده و محصول مورد نظرتان را با بهترین قیمت و کیفیت خریداری کنید.
ساختار اف پی جی ای و نحوه عملکرد آن به چه صورت است؟
در رابطه با کارکرد fpga می توان گفت که این برد دارای ساختاری منظم از سلول های منطقی یا ماژول هاست و در واقع مجموعه ای از گیت های منطقی(logic gates) است که طبق پروگرام شما باهم کار می کنند. به طور دقیق تر اف پی جی شامل 3 بخش اصلی است:
Lut در fpga چیست ؟
LUT (look up table) یا جدول صحت در fpga تعیین می کند که عملکرد هر جزء آن به چه صورت باشد. هر LUT چندین ورودی و یک خروجی دارد و همانطور که از نام آن پیداست، یک جدول صحت، یک جدول واقعی است که بر اساس ورودی ها، یک خروجی ایجاد می کند. در ادامه یک نمونه از یک جدول صحت آورده ایم که عملکرد یک گیت AND را اجرا می کند. اکنون سعی کنید تصور کنید که این جدول در یک RAM کوچک ذخیره شده است. ورودی های A و B پین آدرس و C پین داده است. هر بار که پینهای آدرس شما در حال تغییر هستند، به ورودی آدرس دیگری اشاره میکنند و نتیجه را میخوانند که بر اساس ورودی ها مقدار 0 یا 1 می گیرد.
LUT در fpga در واقع جدول صحت سفارشی شده شما است که بر اساس نیازها و دستورالعمل های خاص شما با مقادیر مرتبط با اف پی جی ای شما بارگذاری می شود. حتی می توانید جدول صحت سفارشی یا LUT خود را به عنوان یک قطعه کوچک RAM در نظر بگیرید که هر زمان که تراشه FPGA خود را فعال می کنید، بارگذاری می شود و رفتار منطق تراشه شما را بر اساس کد VHDL یا Verilog تعریف و هدایت میکند و با ارجاع به مقادیر از پیش تعیین شده، نتایج مورد نظر را ایجاد میکند.بنابراین میتوانید نتیجه بگیرید که LUT اساساً مانند گیتهای منطقی در ترکیب های مختلف عمل میکند. به جای اتصال تعدادی گیت NAND و NOR مختلف، می توانید به سادگی از جدول صحت برای دریافت تمام ترکیبات ممکن استفاده کنید.
فلیپ فلاپ یا flip flop (FF)
فلیپ فلاپ ها رجیستر های شیفت باینری (دودویی) هستند که برای همگام سازی منطق و ذخیره حالت های منطقی بین چرخه های کلاک در یک مدار fpga استفاده می شوند. در هر لبه کلاک، یک فلیپ فلاپ مقدار 1 یا 0 (TRUE یا FALSE) را در ورودی خود می گیرد و آن مقدار را تا لبه کلاک بعدی ثابت نگه میدارد.
بلوک های ورودی/خروجی (I/O)
این پورت ها داده ها را در داخل و خارج از اف پی جی ای دریافت می کنند و اساسا شامل پین ها و پدهای ورودی/خروجی (GPIO) همه منظوره است.بسته به مدل سازنده، FPGA ها همچنین می توانند شامل حافظه های ایستا و پویا روی تراشه باشند. علاوه بر این، در اف پی جی ای ها می توانید اجزای آماده مانند هسته های CPU، کنترل کننده های حافظه، کنترل کننده های USB یا کارت های شبکه را بیابید. این کامپوننت ها آنقدر محبوب هستند که نیازی به پیاده سازی آنها در ساختار FPGA نیست. در عوض، می توانید از یک جزء ساخته شده از قبل استفاده کنید.
کاربرد fpga چیست ؟
FPGAها در دهه گذشته به رشد سریعی دست یافته اند زیرا برای طیف وسیعی از کاربردها مفید هستند. کاربرد خاص یک اف پی جی ای شامل موارد زیر می شود:
- پردازش سیگنال دیجیتال
- سیستم های مخابراتی
- رادیو نرم افزاری
- بیو انفورماتیک
- کنترل کننده دستگاه های مختلف
- منطق تصادفی
- نمونه سازی اولیه ASIC
- تصویر برداری پزشکی
- شبیه سازی سخت افزار کامپیوتر
- ادغام چندین SPLD
- تشخیص صدا
- رمز نگاری
- فیلتر کردن
- رمز گذاری ارتباطات
- و …
معمولاً اف پی جی ای ها برای کاربردهای خاصی که حجم تولید کم است، استفاده می شوند. برای این برنامه های کم حجم، شرکت های برتر هزینه های سخت افزاری را به ازای هر واحد پرداخت می کنند. برخی از کاربرد های رایج دیگر FPGA عبارتند از: هوافضا و کاربرد نظامی، الکترونیک پزشکی، مرکز داده، محاسبات با کارایی بالا، کاربردهای صنعتی، پزشکی، ابزارهای علمی، سیستم های امنیتی، پردازش ویدئو و تصویر و ارتباطات با سیم و بی سیم. در ادامه به چند مورد از کاربرد های مهم اف پی جی ای در صنایع مختلف می پردازیم.
Fpga چه کاربردهای نظامی دارد؟
اف پی جی ها در برد های پردازش سیگنال برای کاربردهای نظامی و دفاعی مانند رادار و سونار مورد استفاده قرار می گیرند و قابلیت های بسیاری، به ویژه در فناوری ارتباطات را در اختیار قرار می دهند. اف پی جی ای ها با انجام کار 12 پردازنده چند منظوره (GPP)، مشکل برق را حل کرده اند. اغلب FPGA ها در رادارها نسبت به کاربردهای سونار، نقش بیشتری در عملکرد پردازش سیگنال دارند.
کاربرد FPGA در زمینه مهندسی پزشکی
FPGA در طول سال های اخیر پیشرفت های چشمگیری داشته است. قابلیت هایی از جمله پردازش موازی و تطبیق پذیری و پروگرام کردن مجدد، این برد ها را تبدیل به گزینه ای مهم و غیر قابل چشم پوشی در کاربرد های گوناگون ساخته است. عرصه مهندسی پزشکی به دلیل ظرافت و نیاز به سرعت بالا در پردازش لحظه ای سیگنال های دریافتی از بدن بیمار می تواند به خوبی از کاربرد این سیستم ها بهره گیری کند.
کاربرد اف پی جی در در مهندسی برق
با استفاده از اف پی جی ای میتوان انواع برنامه نویسی ها را به سادگی انجام داد و امکان پیاده سازی مدارهای پیچیده دیجیتالی با استفاده از FPGA وجود دارد. اف پی جی ای ها دارای قابلیت پردازش موازی هستند که میتوان چند عملیات را به صورت هم زمان در آن به انجام رساند. همچنین سرعت پردازش و ارسال فرمان در اف پی جی ای، بالاست یعنی چند برابر فرکانس میکروکنترلر هاست. از جمله کاربردهای fpga در زمینه مهندسی برق، می توان به آزمایش کردن مدار ها، تبدیل دیجیتال به آنالوگ و کاهش توان مصرفی اشاره کرد.
تفاوت fpga و میکروکنترلر چیست؟
یکی از تفاوت های اصلی بین میکروکنترلر و FPGA این است که یک FPGA ساختار سخت افزاری ثابتی ندارد، در حالی که یک میکروکنترلر دارای ساختار سخت افزاری ثابتی است. در حالی که FPGA ها شامل سلول های منطقی ثابت هستند، این سلول ها، همراه با اتصالات، می توانند به صورت موازی با استفاده از زبان کدگذاری HDL برنامه ریزی شوند. این بدان معناست که FPGA ها از پیش تعریف شده نیستند و می توان آنها را بر اساس برنامه های کاربردی و نیاز کاربر تغییر داد.
از سوی دیگر، میکروپروسسورها ساختار سختافزاری ثابتی دارند، به این معنی که تمام اجزای آن، از جمله پردازنده، حافظه، دستگاههای جانبی و اتصالات از پیش تعریف شده هستند. با استفاده از نرم افزار، طراحان می توانند پردازنده را برای انجام وظایف دلخواه برنامه ریزی کنند.
FPGA بهتر است یا میکروکنترلر؟
به طور کلی، پردازنده هایی از جمله میکروکنترلرها برای کنترل معمول مدارهای خاص، مانند استفاده از سوئیچ یا کلید برای روشن و خاموش کردن یک دستگاه، مناسب تر هستند. اف پی جی ای ها برای برنامه هایی مناسب هستند که خاص تر بوده و به قدرت یا سرعت پردازش بالاتری نیاز دارند. به عنوان مثال، بهترین مورد برای پردازش داده های ویدئویی با وضوح بالا با استفاده از یک پلتفرم FPGA است.
FPGA مخفف Field Programmable Gate Array است که به معنی آرایه دروازههای قابل برنامهریزی در محل است. FPGAها تراشههای نیمهرسانایی هستند که از تعداد زیادی بلوک منطقی کوچک تشکیل شدهاند و میتوانند برای پیادهسازی طیف وسیعی از مدارهای دیجیتال برنامهریزی شوند.
مزایای استفاده از FPGAها:
- قابلیت برنامهریزی: FPGAها میتوانند بارها و بارها برنامهریزی شوند، که این امر انعطافپذیری زیادی را برای طراحی و پیادهسازی مدارها فراهم میکند.
- سرعت بالا: FPGAها میتوانند با سرعت بسیار بالایی عمل کنند، که آنها را برای کاربردهای پردازش سیگنال و پردازش تصویر مناسب میکند.
- مصرف انرژی کم: FPGAها در مقایسه با سایر تراشههای دیجیتال، مصرف انرژی پایینی دارند.
- قیمت مناسب: FPGAها در مقایسه با سایر تراشههای دیجیتال، قیمت مناسبتری دارند.
کاربردهای FPGA:
- پردازش سیگنال: FPGAها در طیف وسیعی از کاربردهای پردازش سیگنال، از جمله فیلترهای دیجیتال، تبدیل فوریه سریع و پردازش صوت و تصویر استفاده میشوند.
- پردازش تصویر: FPGAها برای پردازش تصویر، مانند تشخیص چهره، تشخیص لبه و فشردهسازی تصویر، به کار میروند.
- شبکههای کامپیوتری: FPGAها در روترها، سوئیچها و سایر تجهیزات شبکه استفاده میشوند.
- کنترل صنعتی: FPGAها در سیستمهای کنترل صنعتی، مانند کنترل موتور، رباتیک و اتوماسیون، به کار میروند.
- پزشکی: FPGAها در تجهیزات پزشکی، مانند دستگاههای تصویربرداری و اسکنرهای MRI، استفاده میشوند.