آشنایی با FPGA
FPGA ها (Field Programmable logic Gate Array ) نسل جدید مدارهای مجتمع دیجیتال قابل برنامه ریزی میباشند . سرعت اجرای توابع منطقی در FPGA ها بسیار بالا و در حد نانو ثانیه میباشد . اگر بخواهیم FPGA را به طور ساده تشریح کنیم ، عبارت است از یک تراشه که از تعداد بالایی بلوک منطقی LB (Logic Block) و خطوط ارتباطی و پایه های ورودی / خروجی (IOB) تشکیل شده است که به صورت آرایه ای در کنار یکدیگر قرار گرفته اند . خطوط ارتباطی که وظیفه آنها ارتباط بین بلوک های منطقی است از سوئیچ های قابل برنامه ریزی تشکیل شده اند . این سوئیچ ها بسته به نوعی که دارند ، برخی تنها یکبار قابل برنامه ریزی بوده و برخی به تعداد دفعات زیادی برنامه ریزی میگردند . بلوک های منطقی نیز دارای انواع مختلفی میباشند که عموما توسط المانی پایه ، تمامی توابع منطقی را ایجاد مینمایند . به عنوان مثال بلوک های منطقی در خانواده ACT-1 از شرکت Actel ، با پایه مالتی پلکسری عمل مینمایند . به این معنا که توسط مالتی پلکسر ، توانایی ایجاد توابع منطقی مختلف را دارا میباشند . البته تعداد ورودی های هر بلوک منطقی متفاوت بوده و به نوع FPGA مربوط میگردد . به عنوان مثال بلوک های منطقی در خانواده ACT-1 از نوع 8 ورودی میباشد . در برخی موارد به بلوک های منطقی ، سلول های منطقی نیز گفته می شود (LC) . بلوک دیاگرام یک FPGA به طور ساده در شکل زیر نشان داده شده است :
البته بسیاری از سلول های منطقی بر اساس جداول LUT ساخته میشوند . LUT از تعدادی سلولهای حافظه SRAM تشکیل میگردد که در هنگام برنامه ریزی FPGA ، مقدار دهی میگردند . به طور خلاصه LUT عبارت است از تولید توابع آماده برای استفاده در سلول های منطقی . پیاده سازی توابع مختلف نیز به وسیله در کنار هم قرار گرفتن بلوک های منطقی و همچنین تنظیم ارتباط بین هر بلوک و به عهده گرفتن پردازش اطلاعات توسط هر بخش انجام میپذیرد .
مبحث مربوط به FPGA ها بسیار گسترده است . دلیل این امر گوناگونی معماری ساخت برای FPGA های هر شرکت سازنده میباشد . به
عنوان نمونه در ساختار منطقی بلوکها ، ترکیب های متفاوتی وجود دارد که هر شرکت از
ترکیب خاص خود استفاده مینماید . بنابراین تنها به صورت کلی به بررسی ساختار FPGA پرداخته شد . علاوه بر اجزای گفته شده ، ممکن است برخی قسمت های داخلی نیز برای FPGA تعبیه شده باشد ، نظیر ALU و ... که بستگی به طراحی شرکت
سازنده دارد .
کاربرد FPGA :
FPGA ها در پیاده
سازی توابع نسبتا پیچیده دیجیتال به کار می روند که نیاز به سرعت پردازش
بالایی نیز دارند . علاوه بر این کاهش سخت افزار مورد نیاز و همچنین برنامه نویسی ساده
و استاندارد نیز از دیگر مزیت های استفاده از FPGA ها میباشد .
برنامه نویسی و طراحی با FPGA :
برنامه نویسی و طراحی مدارات با FPGA ها به طور کلی به دو صورت انجام میپذیرد :
الف- با استفاده از زبان های توصیف سخت افزاری مانند VHDL
، AHDL
، HDL و ...
ب- با استفاده از طراحی مدار
این عمل توسط نرم افزارها و ابزارهای برنامه ریزی مختص به هر خانواده که توسط شرکت های سازنده در اختیار طراحان قرار می گیرد ، انجام میپذیرد . به عنوان نمونه MAX
+ PLUS II و QUARTUS II ابزار های برنامه ریزی FPGA های ساخت شرکت ALTERA میباشند .