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

ساختار کلی FPGA
همانطور که در این شکل مشخص است، سه جزء اصلی آن عبارتند از بلوکهای منطقی (Logic Blocks) ، عناصری که برای اتصالات بکار می روند (Integration Resources) و بلوکهای وروی و خروجی (I/O Blocks)، ساختار و محتویات بلوکهای منطقی می تواند خیلی ساده (در حد یک گیت NAND) و یا خیلی پیچیده (نظیر چند MUX یا Look-Up Table به همراه یک فلیپ فلاپ باشد. بلوکهای منطقی در حقیقت جایی هستند که قسمتهای اصلی مدار قرار می گیرند. البته ابتدا باید مداری که قرار است روی FPGA قرار بگیرد به اجزای یکسانی که همان محتویات بلوکهای منطقی هستند تقسیم شودو بعد از این عمل است که می توان با متصل کردن بلوکهای پایه به هم مدارهای واقعی را بدست آورد.
عناصری که برای اتصالات بکار می روند ، معمولا" بین بلوکهایی که منطقی قرار می گیرند و از قطعات فلزی که می توانند به هم یا به بلوکهای منطقی متصل شوند تشکیل شده اند و برای متصل کردن این قطعات از سوئیچهای قابل برنامه ریزی استفاده می شود. این قطعات می توانند طولهای متفاوتی داشته باشند. بلوکهای ورودی خروجی برای اینکه پینهای FPGA را بتوان در مدهای مختلف ورودی یا خروجی یا ورودی/خروجی، همچنین برای ولتاژهای مختلف 3.3 یا 5ولت و ... برنامه ریزی کرد بکار می روند. زیرا طراحی این دو با هم باید یه گونه ای باشد که پیاده سازی مدارات منطقی مختلف را روی FPGA امکان پذیر سازد. معمولا" بین پیچیدگی و انطاف پذیری هر دوی بلوکهای منطقی و منبع اتصالی یک نسبت معکوس وجود دارد. یعنی با زیاد شدن یکی دیگری کم می شود و بالعس.
در ضمن معماری یک بلوک منطقی و همچنین منابع اتصالی بر کل مساحت تراشه و سرعت تراشه اثر دارد.
- سوئیچها و مدار اتی که برای برنامه پذیر کردن چیپ استفاده می شوند.
- قیمت بالا برای تولیدات با تعداد زیاد
انتخاب و استفاده از FPGA
روشهای طراحی مدار:
- شماتیک (Schematic)
- زبانهای برنامه نویسی سخت افزاری (VHDL-Verilog-AHDL-ABL) HDL
- دیاگرام حالت (Start Diagram)

- تایمینگ (Wave form)
2-2- روشهای Program کردن:
- Byte Blaster Parallel Download Cable
- Byte Blaster Serial Download Cable
- External Programming Hardware

انواع نرم افزارهای مربوط به FPGA:
از سوی شرکتهای مختلفی نرم افزارهای با قابلیتهای مختص به خود طراحی کرده اند که اهم آنها به قرار زیرند:
MAXPLUS II – Quartus – Fandation - Leonardo Spectrum – Modelsim - …
قابلیتهای نرم افزار:
نرم افزارها از لحاظ قابلیت و امکانات سرویس دهی با هم تفاوتهایی دارند که معمولا" کارهای زیر را انجام می دهند:
Schematic Editor - text Editor - Waveform Editor (Simulator) - Compiler- synthesizer – Fitter – Programmer - …
اهم شرکتهای سازنده FPGA:
- Altera
- Xiling
- Actel
سریهای ساخت شرکت Xining:
Spartan, XC5000, XC4000, XC3000, XC2000
عوامل انتخاب یک FPGA:
- تعداد گیت
- فرکانس کاری
- تعداد پایه
- قیمت
ترجمه و کامپایل پروژه
کامپایلر ....و ISEیا MAX+PLUS IIپروژه را برای یافتن خطاهای احتمالی بررسی می کند، طرح منطقی را ترکیب می کند، پروژه مذکور را به یکی از ابزارهای قابل برنامه ریزی نسبت می دهد، فایلهای خروجی را برای شبیه سازی و برنامه ریزی بوجود می آورد و سرانجام پنجره نمایش سلسله مراتبی (Hierarchy Display) را به روز در می آورد.
