زمانی که ما از میکروکنترلرها استفاده میکنیم (مثل ۸۰۵۱ یا AVR) در اصل با یک سخت افزار از پیش طراحی شده سر و کار داریم که دارای یک واحد یک پردازش مرکزی (CPU) میباشد. دلیل پیدایش میکروکنترلرها پیادهسازی نرم افزاری روتینها و الگوریتمهای پیچیدهای است، که برای پیادهسازی سخت افزاری به گیتهای منطقی زیادی نیاز دارد که به دلیل کمبود فضا روی برد و هزینه تمام شده، به صرفه نبوده است.
عمده مشکل میکروکنترلرها سرعت پایین پردازش آنها میباشد. در کنار این مشکل، نویز پذیر بودن آنها محققان را به سمت طراحی سخت افزارهایی با قابلیت پیکربندی مجدد برده است. ایدۀ رایانههای قابل بازسازی (RC) برای اولین بار توسط جرالد استرین در سال ۱۹۶۰ طی مقاله ای ارائه شد.
FPGA مخفف عبارت Field Programmable Gate Array به معنای آرایه گیتهای برنامهپذیر میدانی است. همانطور که ممکن است خودتان هم بدانید یا شنیده باشید، طراحی مدارات دیجیتال توسط FPGA قابل انجام می باشد و یکی از نرم افزارهای رایج برای طراحی مدارات FPGA نرم افزار ISE می باشد.
مدارت FPGA در واقع یک مجموعۀ بزرگ از گیتهای منطقی است که میتوان بارها و بارها آنها را برنامهنویسی کرد و آرایش مداری اتصالات آنها را بر حسب نیاز و کارکرد تغییر داد. مدارات FPGA مدارات مجتمعی هستند که شامل منابع دیجیتالی مثل گیتهای منطقی و سوئیچهایی برای ایجاد مسیرهای مختلف میباشند که میتوان به کمک آنها هر مدار منطقی را پیادهسازی کرد.
تراشه مدارات FPGA شامل منابع دیجیتالی زیادی مثل LUT، Multiplier، Memoryها و … است. این منابع بر خلاف میکروکنترلرها، در ابتدا هیچ قابلیتی ندارند و تفسیر کننده هیچ سخت افزاری نیستند. زمانی که ما برای طراحی مدارات دیجیتال توسط FPGA برنامه مینویسیم، با ایجاد ارتباط بین منابع دیجیتالی در اصل یک سخت افزار با قابلیت مشخص طراحی میکنیم. در مقایسه با پردازندهها سرعت پردازش در مدارات FPGA بسیار بیشتر است.
دلیل این امر در دو قابلیت منحصر به فرد FPGA نهفته است:
ابتدا باید ورود طرح مدارات FPGA به یکی از زبان های VHDL، Verilog و یا هر زبان دیگری به وسیله هر ادیتور فایل متنی انجام شود.
سپس شبیه سازی توسط نرمافزارهای اختصاصی مثل نرم افزار ISE (نرمافزار اختصاصی شرکت Xilinx که آخرین نسخه این نرمافزار ۱۴٫۷ در سال ۲۰۱۳ است و پس از آن این شرکت نرمافزاری جدیدی تحت نام Vivado برای نسخههای بعدی ارایه داده است) انجام میشود. به این شبیهسازی، شبیهسازی اولیه میگویند. در اصل با این شبیهسازی منطق طرح مورد نظر بررسی میشود.
سنتز یعنی مدار توصیف شده به زبان HDL را به وسیله منابع دیجیتالی موجود در مدارات FPGA پیادهسازی کنیم. در این گام برنامه نوشته شده را به منابع درونی تراشه تبدیل میکنیم.
در مرحله جانمایی مشخص میشود که دقیقا محل قرار گرفتن منابعی که در مرحله سنتز استفاده شدهاند کجای تراشه است.
در مرحله مسیر یابی در اصل سیمبندی لازم بین منابع بعد از مشخص شدن محل منابع صورت میگیرد. در انتهای این گام معمولاً یک شبیهسازی دیگر انجام میشود که زمانبندی مورد نیاز را مشخص میکند.
در انتها باید نتایج حاصل به تراشه انتقال یابد. برای این کار باید یک فایل متنی با پسوند bit. ایجاد شود.
برای دریافت مشاوره مربوط به طراحی مدارات FPGA توسط نرم افزار ISE وارد صفحه انجام پروژه شوید.