فن آوري آرايه سوئيچ فيوزهاي قابل برنامهريزي چند باره، انقلابي نوين را در عرصه طراحي ديجيتال به وجود آورد كه مفهوم طراحي ديجيتال را دچار تحولي عظيم در عرصههاي ديدگاه معماري، حجم طراحي، سرعت و نوع نگرش به طراحي ديجيتال نموده است. طوري كه امروزه FPGAها (آرايه هاي گيتي قابل برنامه ريزي ميداني) يك بوم نقاشي سفيد را در اختيار طراح قرار ميدهند كه به او اجازه ميدهد تا طراحي ديجيتال خود را آنچنان كه ميخواهد و با هر حجم و پيچيدگي لازم، طراحي و سپس به جاي انتخاب IC هاي استاندارد و جدا از هم و كنار هم قراردادن آنها در روي يك مدار و وصل كردن آنها از طريق يك بورد مدار چاپي، با استفاده از یکی از زبانهای توصیف سختافزاری نظیر VHDL ، هر یک از قطعات دیجیتالی مورد نیاز را نوشته و با وصل کردن نرمافزاری آنها، سرانجام فایل کامپایل شده نهایی را از طریق یک رابط سختافزاری بر روی یک بسته سختافزاری خام با تعداد پایههای مورد نیاز برنامهریزی کرده و از این IC جدید "خود ساخته" استفاده کند. FPGAها نسل جدید مدارهای مجتمع دیجیتال قابل برنامه ریزی هستند که عبارت FPGA از سر کلمههای Field Programmable Logic Gate Array گرفته شده است. سرعت اجرای توابع منطقی در FPGA ها بسیار بالا و در حد نانو ثانیه است. اگر بخواهیم FPGA ها را به طور ساده تشریح کنیم، عبارت است از یک تراشه که از تعداد بالایی بلوکهای منطقی ، خطوط ارتباطی و پایه های ورودی/ خروجی تشکیل شده است که به صورت آرایه ای در کنار یکدیگر قرار دارند. خطوط ارتباطی که وظیفهء آنها ارتباط بین بلوک های منطقی است از سوئیچهای قابل برنامهریزی تشکیل شدهاند. این سوئیچها بسته به نوعی که دارند، برخی تنها یکبار برنامهریزی هستند و برخی به تعداد دفعات زیادی برنامهریزی میشوند.
بلوکهای منطقی نیز دارای انواع مختلفی هستند که عموما توسط المانی پایه، تمامی توابع منطقی را ایجاد می کنند. به عنوان مثال بلوکهای منطقی در خانواده ACT-1 از شرکت Actel ، با پایهء مالتی پلکسری عمل میکنند. به این معنا که توسط مالتی پلکسر، توانایی ایجاد توابع منطقی مختلف را دارند .
البته تعداد ورودیهای هر بلوک منطقی متفاوت است و به نوع FPGA مربوط می شود. به عنوان مثال بلوک های منطقی در خانوادهء ACT-1، از نوع 8 ورودی است. البته در برخی موارد به بلوکهای منطقی سلولهای منطقی نیز گفته می شود. بلوک دیاگرام یک FPGA به طور ساده در شکل زیر نشان داده شده است.
شکل بلوک دیاگرام یک FPGA
البته بسیاری از سلول های منطقی بر اساس جداول LUT ساخته می شوند. LUT از تعدادی سلولهای حافظه SRAM تشکیل میشود که در هنگام برنامه ریزی FPGA ، مقداردهی میشوند. به طور خلاصه LUT عبارت است از تولید توابع آماده برای استفاده در سلولهای منطقی.
پیادهسازی توابع مختلف نیز به وسیله در کنار هم قرار گرفتن بلوکهای منطقی و همچنین تنظیم ارتباط بین هر بلوک و به عهده گرفتن پردازش اطلاعات توسط هر بخش انجام میشود.
در شکل زیر ساختار داخلی یک FPGA نشان داده شده است. که در آن بلوکهای منطقی، سلولهای ورودی و خروجی، ارتباط بین سگمنتها و در شکلهای کوچکتر جزییات بلوکهای C و S نشان داده شده است.
شکل ساختار داخلی FPGA
محاسن استفاده از FPGA
FPGAها در پیاده سازی توابع نسبتا پیچیده و پیچیده دیجیتال به کار می روند که نیاز به سرعت پردازش بالایی دارند. علاوه بر این کاهش سخت افزار مورد نیاز و همچنین برنامه نویسی ساده و استاندارد نیز از دیگر مزیت های استفاده از FPGA است. آنچه که قابلیت و توانایی FPGA ها را بالا برده است تواناییهایی است که پارهای از آنها در زیر آمده است:
1 کاربرد اصلی FPGA در ایجاد هسته های پردازشی می باشد.
2 مدارهای دیجیتال پیچیده به آسانی در آنها پیاده سازی می شوند.
3 تست مدار سریع است.
4 برای تولیدات با تیراژ پایین ارزان تمام می شود .
5 متناسب با نیاز، تغییرات لازم را در طراحی می توان انجام داد و مجدا FPGA را با ساختار جدید برنامه ریزی نمود.
6 قابل برنامه ریزی توسط کاربر است.
7 می توان چند تا هسته پردازشی داخل یک FPGA تعریف کرد تا در یک زمان واحد چندتا کار را باهم انجام بدهد مثلا شما می توانید با یک FPGA معمولی حدود 200 تا هسته atmega32 تعریف کنید و 200 تا کار را همزمان انجام بدهید.
8 میکروکنترلرها و DSP ها و میکروپروسسورها به صورت سریال دستورالعمل اجرا میکنند و قابلیت پردازش بصورت موازی در آنها وجود ندارد، اما در FPGA قابلیت پردازش موازی وجود دارد و قابلیت انجام عملیات بصورت همزمان را دارد.
9 كاربردهای FPGA خیلی تخصصی میباشد ودر اكثر موارد به عنوان پردازشگر در مدارات پردازشی استفاده میشود. سرعت بالای FPGAها آنها را مساعد کارهای پردازشی سنگین مثل پردازش تصویر و پردازش صدا می کند و سرعت این پردازش نسبت به سیستمهای دیگر خیلی بالاتراست.
10 FPGA ها در پیاده سازی توابع پیچیدهی دیجیتالی به کار میروند که نیاز به سرعت پردازش بالایی دارد.
11 کاهش سختافزار مورد نیاز و همچنین برنامهنویسی ساده و استاندارد نیز از دیگر مزیتهای استفاده از FPGA است.
12 سرعت اجرای توابع منطقی در FPGA ها بسیار بالا و در حد نانو ثانیه است.
13 امکان تعریف هر یک از پایه های IC به صورت ورودی یاخروجی یا هر دو
14 امکان تعریف وضعیت عملکرد هر پایه در هنگام استفاده یا عدم استفاده.به عنوان مثال عملکرد HIGH امپدانس (Z) در هنگام عدم استفاده و یا قرار گرفتن در یک وضعیت منطقی صفر یا یک در هنگام عدم استفاده.
15 امکان تشخیص تغیبیرات سطوح یا لبه های پایین رونده یا بالا رونده منطقی اعمال شده به هر پایه.
16 امکان تغییر متناوب معمار ی داخلی با استفاده از سری های Bootable که نقشه معماری آنها در یک حافظه خارجی نگهداری شده و با تغییر آدرس برنامه ریزی می توان IC را بامعماری جدید Boot کرده و از آن استفاده کرد.
17 امکان برنامه ریزی در مدار (ISP) که این قابلیت را به وجود می آورد تا بدون اعمال تغییراتی که سختافزاری هستند و تنها از طریق پورت برنامه ریزی jTAG، معماری داخلی IC را تغییر داد .
18 کاهش حیرت انگیز حجم مدار و مجتمع سازی در ابعادی تنها به مساحت چند سانتی متر مربع.
19 کاهش یکسان سازی عناصر طراحی و از میان بردن تمامی مشکلات ناشی از عدم تطابق استاندارد های مختلف (LS,HC,s,AS,...).
20 از میان بردن تمامی نویز های ناشی از وجود قطعات مختلف و مجزا در مدار.
21 کاهش چشمگیر توان مصرفی و اتلاف توان.
22 افزایش سرعت پردازش و خطاهای انتشار به دلیل استفاده از فناوری پیشرفته و دستیابی به خطاهای انتشار تا 4ns و فرکانس کلاک فرارتر از 178 مگاهرتز.
23 کار با دو سطح ولتاژ 5v و 3.3v جهت استفاده از آنها در دستگاه های قابل حمل مانند گوشیهای موبایل
24 ضریب ایمنی صد در صد به دلیل عدم امکان دستیابی به محتوای داخلی و عدم توان توصیف محتوای داخلی به دلیل انجام سادهسازی و فشردهسازی بسیار پیچیده.
و بسیاری از قابلیتهای حیرت انگیز دیگر که امکان انجام یک طراحی مجتمع ،کم حجم ،بهینه و سریع را فراهم می آورد.
سازندگان FPGA شامل شرکتهای بزرگی همچون Xilinx و Altera وActel میباشند که سریهای مختلفی، از جمله Xilinx شامل: Spartan و Virtex و Altra شامل: Cyclone وFlex10k و Stratix و .... را به بازار عرضه کردهاند. در کشور ما معمولا با CPLD ها و FPGA هاي شركتهای مذکور كار ميشود كه از نظر محبوبيت به صورت زير هستند
1- XILINX
2- Altera
3- Actel