آنچه در این مقاله میخوانید :
ToggleFPGA مخفف اصطلاح Field Programmable Gate Arrays (آرایههای دروازهای میدانی قابل برنامهریزی) است. FPGA در واقع قطعات الکتریکی نیمه رسانایی هستند که از سلسلهای از بلوکهای منطقی (Logic Blocks) تشکیل شدهاند که با رابطهای برنامهپذیر به یکدیگر اتصال یافتهاند و یک ساختار واحد، قابل برنامهریزی و آماده برای پردازش تشکیل دادهاند.
FPGA را میتوان بارها و بارها طراحی و برنامهریزی کرد تا برای کاربردها و مدارهای مختلف قابل استفاده باشد. این خاصیت آنها را از ASICها که تنها برای یک هدف و در سیستمی منحصربهفرد قابل استفادهاند، تفکیک میکند. با این حال، FPGAهایی نیز وجود دارند که تنها یکبار برنامهریزی میشوند که در واقع کاهشی در قابلیت اصلی FPGA است.
عملکرد FPGA
FPGAها دستگاههای قابل برنامهریزی هستند که ماهیت متفاوتی از GPP و DSP دارند. یک FPGA متشکل از مجموعهای مجزا از واحدها تحت نامهایی چون عناصر منطقی (LE)، ماژول منطقی (LM)، برشها یا برخی ارجاعهای دیگر است که وظیفه انجام محاسبات و استنتاجها منطقی و بولی را دارند.
این ابزارها حاوی مقدار نه چندان قابل توجهی، معمولا چند بیت، از حافظهاند. توسعهدهنده برحسب نیاز و کاربرد مطلوب FPGA، اتصال بین سلولهای آن و عملکرد هر کدام از آنها را برنامهریزی میکند. درنهایت، یک ماتریس پردازش منطقی ایجاد میشود که درآیههای آن با یکدیگر در تعاملاند و امکان تغییر کاربری برای اجزای آن وجود دارد.
بهویژه، از سوئیچهای نیمههادی برای تعریف ارتباطات بین سلولهای پردازشی FPGA استفاده میشوند. درواقع، تجهیزات سوئیچینگ هستند که حرکت سیگنالهای فرمان بین سلولها و در نهایت انجام یک عمل منطقی را ممکن میسازند و هرچقدر این عمل سریعتر اتفاق بیافتد، FPGA عملکرد سریعتری خواهد داشت.
اصلیترین جز از یک FPGA بلوکهای منطقی قابل تنظیم (CLB) است. این بلوکها حاوی منطق مورد نیاز برای انجام پردازشها در FPGA هستند. در معماری دانه بزرگ که امروزه توسط تمام تولیدکنندگان FPGA استفاده میشود، این بلوکها از منطق کافی برای تولید ماشین حالت، که در شکل زیر نشان داده شدهاست، برخوردارند.
این بلوکها حاوی RAM کافی برای ایجاد توابع منطق ترکیبی دلخواه هستند که تحت عنوان جداول جستجو (LUT) شناخته میشوند. در بلوکها همچنین، فلیپ فلاپهایی برای عناصر ذخیره سازی، همراه با مالتی پلکسرها به منظور مسیریابی منطق درون بلوک و منطق انتفالی از خارج دستگاه، تعبیه شدهاند.
عملکرد FPGA
به دلیل ماهیت پردازشی و قابلیت برنامهریزی مجدد، FPGA برای کاربردها و تجهیزات مختلفی قابل استفادهاند.
• بخش هوافضا: FPGAهای مقاوم در برابر تشعشعهای مختلف همراه با مالکیت معنوی برای کاربردهایی چون پردازش تصاویر ماهوارهای، تولید امواج و پیکربندی جزئی برای SDRها
• نمونهسازی ASIC: ترکیب ASIC با FPGA به مدلهای سریع و دقیق SoC میانجامد و به تایید نرمافزارهای امبد کمک شایانی میکند.
• صنعت خودرو: ارائه راهحلهای سیلیکونی و IP برای طراحی سیستمهای کمک راننده، راحتی مسیریابی، سرگرمیهای رسانهای
• استفاده از FPGA در لوازم الکترونیکی مصرفی: راهحلهای مقرون به صرفه برای توسعه ابزارهای کنونی، تولید برنامههای کاربردی برای تجهیزات با خصوصیات مختلف مانند هدستهای همگرا، صفحه نمایشهای فلت، لوازم اطلاعاتی، شبکههای خانگی
• استفاده از FPGA در مراکز داده: برای سرورها با پهنای باند زیاد، تاخیر کم و استفاده در برنامههای ذخیرهسازی که برای بهینهسازی استفاده از فضای ابری طراحی شدهاند.
• محاسبات با کارایی بالا و ذخیرهسازی داده: ارائه راهحلهای کاربردی برای ذخیرهسازی متصل به شبکه (NAS)، شبکه ذخیرهسازی ناحیهای (SAN) و ...
• پزشکی: استفاده از FPGA در تجهیزات تشخیص، نظارت و درمان، رابط پردازش
• تولید انرژی: منابع تولید انرژی تجدیدپذیر مانند انرژی خورشیدی و بادی، به شبکهای هوشمند برای کنترل اجزای خود نیاز دارند. بخصوص، خودکارسازی عملیات کنترل، تنظیم، امنیت و ...، در حضور FPGAها با بهره بالاتر و دقت بیشتری انجام میگیرند.
انواع مختلف FPGAها
بهطور کلی سه نوع FPGA وجود دارند: RAM استاتیک، ضد-فیوز (anti-fuses) و فلاش EPROM. به طور خلاصه، در SRAM برای هر عنصر برنامهنویسی، یک بیت RAM استاتیک کوچک درنظر گرفته شده است. نوشتن بیت با "صفر" باعث خاموش شدن سوئیچ و نوشتن با "یک" منجر به روشن شدن آن میشوند. در رویکرد دیگر، از ضدفیوز برای ایجاد ارتباطات استفاده میشود. در واقع، وجود جریان شدید در زمان عملکرد قطعه، باعث برقراری اتصال بین دو سر ضدفیوز میشود. روش سوم (فلاش)، یک رویکرد نسبتا جدید است که در آن از بیتهای فلش EPROM برای هر عنصر برنامهنویسی استفاده میکند.
SRAM FPGA
ازجمله مزایای FPGAهای مبتنی بر SRAM، رایجترین فناوری برنامهنویسی روز، این است که آنها از یک فرایند ساخت استاندارد بهره میگیرند که از سالها پیش توسط شرکتهای تولیدکننده تراشه و به منظور ارتقاء بهرهوری، استفاده میشده است.
از آنجا که SRAMها قابلیت برنامهریزی دوباره دارند، FPGAها را میتوان هرچندبار، حتی زمانی که درون سیستم پردازش هستند، از نو برنامهریزی کرد. اصلیترین عیب SRAM FPGAها فرار بودن آنهاست، به این معنی که، یک اختلال نه چندان شدید در جریان باعث خراب شدن اجزای آن میشود.
Antifuse FPGA
برخلاف نوع قبلی، FPGAهای ضد فیوز فرار نیستند و تاخیرهای ناشی از مسیریابی در آنها بسیار کم است؛ بنابراین، سرعت بیشتری را نتیجه میدهند. این نوع، به انرژی کمتری نیاز دارد و امکان حمل و نگهداری از اطلاعات حساس را ممکن میکنند چراکه به دستگاهی خارجی و به منظور برنامهنویسی بر روی آنها نیازی نیست.
اصلیترین عیب آنها، ساختار پیچیدهای است که این قطعات دارند. به ویژه، برای برنامهریزی اولیه آنها شما به یک برنامهنویس نیاز خواهید داشت و به محض اینکه برنامهریزی شدند، دیگر قابل تغییر نیستند.
FPGAهای فلش
میتوان گفت ترکیبی از مزایا و عملکرد دو نوع قبلی در آنچه Flash FPGA خوانده میشود تجمیع شدهاند. این نوع، مانند ضد فیوز غیرفرار است اما مشابه با FPGAهای SRAM قابلیت برنامهریزی مجدد را دارد. به ویژه، ساختار پیچیدهای ندارند و ایمنی بالایی را نتیجه میدهند. اما، سرعت بالا بهترین خصیصه این نوع از FPGA است.
انواع مختلف از FPGAها در بازار
موارد زیر شاخصترین انواع FPGA در بازار تولید و عرضه این تجهیزات پردازشی هستند:
SRAm FPGA
- خانواده Altera Stratix II و Cyclone II
- خانواده Atemel AT6000 و AT40K
- خانواده Lattice LatticeFC و LatticeECP
- خانواده Xilinx Spartan-3 و Virtex-4
Antifuse FPGA
- خانواده Actel SX و AXcelerator
- خانواده Quicklogic Eclipse
Flash FPGA
- خانواده Actel ProASIC
ترکیب انواع فلش و SRAM
-
خانواده Lattice LatticeXP
FPGAها ریزپردازندههایی هستند که در اکثر تجهیزات الکتریکی و الکترونیکی قابل استفاده و حتی نیاز هستند. این نسل جدید و منعطف از تراشههای پردازش، قدرتی خارقالعاده به برنامهنویسان و طراحان مدارهای الکتریکی دادهاند. برای دریافت هرگونه مشاوره درباره انواع مختلف FPGA با ما تماس بگیرید.
دیدگاهتان را بنویسید