ساختار FPGA


در این بخش به معرفی ساختار کلی FPGA می پردازیم و برخی از بلوک های مهم آنرا شرح می دهیم.

FPGA مخفف Field Programmable Gate Arrays همانطور که از نامش پیداست آرایه ای از گیتهای منطقی است که به وسیله مجموعه های از سوییچهای اتصال قابل برنامه ریزی، توسط کاربر می تواند برنامه ریزی شود بطوریکه مدار و سخت افزار مورد نظر با ترکیب و اتصال گیتهای منطقی پیاده سازی شود. حال آیا در FPGAها واقعا از ارایه گیتهای منطقی که با آنها آشنایی داریم استفاده میشود؟

باید گفت که در FPGA گیت‌های منطقی مجزا برای پیاده سازی مدارات و عملیات منطقی وجود ندارد. در حقیقت FPGA بجای گیتهای منطقی مختلفی که در خارج از FPGA میشناسیم از ارایه های بلوکهای منطقی قابل پیکره بندی یا همان CLBها بهره میبرد. CLBها شامل المانهای منطقی دیجیتالی مانند LUTها، فلیپ فلاپها، مالتیپلکسرها و غیره است که در بخش CLB بیشتر توضیح داده میشود. 

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

در برخی تراشه ها ساختار ساده تر هست مانند شکل فوق که که در کنار آرایه CLBها بلوکهای DLL و RAM نیز وجود دارد. در خانواده های جدیدتر و پیشرفته تر با توجه به بزرگتر شدن حجم CLBها که میتواند طراحی های بزرگ و پیچیده را در آنها پیاده سازی نمود، بلوکهای متنوعتری نیز به کمک طراحان مدارات FPGA آمده است.

مهمترین و پرکاربردترین بلوکهای مورد استفاده در FPGAها بلوکهای RAM ، بلوکهای ضرب کننده DSP، بلوکهای IO و بلوکهای مدیریت کلاک هستند که در بخشهای مربوط به خود بررسی میشوند.