مقدمه:
امروزه با پیشرفت در زمینه ساخت قطعات قابل برنامه ریزی در روشهای طراحی سخت افزار تکنولوژی V LSIجایگزین SSI شده است.رشد سریع الکترونیک سبب شده است تا امکان طراحی با مدار های مجتمعی فراهم شود که درآنها استفاده از قابلیت مدار مجتمع با تراکم بالا و کاربرد خاص نسبت به سایر کاربردهای ان اهمیت بیشتری دارد. از اینرواخیرا مدارهای مجتمع با کاربرد خاص( Integrated Circuit (Application Specific به عنوان راه حل مناسبی مورد توجه قرار گرفته است(ASIC) وروشهای متنوعی در تولیداین تراشه ها پدیدآمده است.در یک جمع بندی کلی مزایای طراحی به روش A SIC عبارت است از :
کاهش ابعاد و حجم سیستم
کاهش هزینه و افزایش قابلیت اطمینان سیستم که این امر ناشی ازآن است که بخش بزرگی از یک طرح به داخل تراشه منتقل میشود وسبب کاهش زمان ، هزینه مونتاژ راه اندازی ونگهداری طرح می شود و در نتیجه قابلیت اطمینان بالا میرود.
کاهش مد ت زمان طراحی وساخت وعرضه به بازار
کاهش توان مصرفی ,نویز واغتشاش
حفاظت از طرح:سیستم هایی مه با استفاده از تراشه های استاندارد ساخته می شوند به علت وجود اطلاعات کامل در مورد این تراشه ها به راحتی از طریق مهندسی معکوس قابل شناسایی و مشابه سازی هستند.در عین حال امنیت طرح در تجارت از اهمیت زیادی بر خوردار است و اکثر طراحان مایلند تا از این بابت اطمینان حاصل کنند .
اولین تراشه قابل برنامه ریزی که به بازار عرضه شد ، حافظه های فقط خواندنی برنامه پذیر PROM)) بود که خطوط آدرس به عنوان ورودی وخطوط داده به عنوان خروجی این تراشه ها تلقی می شد. PROM شامل دسته ای از گیتهای AND ثابت شده(غیر قابل برنامه ریزی ) که به صورت رمز گشا بسته شده اند و نیز یک ارایه O R قابل برنامه ریزی است.
از آنجایی که PROM دارای قابلیت های لازم برای پیاده سازی مدارهای منطقی نمی باشد، از این تراشه ها بیشتر به عنوان حافظه های قابل برنامه ریزی استفاده می شود.
این قطعات دارای دو آرایه قابل برنامه ریزی AND,OR هستند .در سال 1920 Philips, ساختار PLA را به بازار عرضه کرد که دواشکال ان هزینه گران ساخت ان وسرعت کم آن بود.
شرکت Memories Monolitic برای پوشش دادن اشکالات PLA ساختار آرایه قابل برنامه ریزی منطقی PAL را به بازار عرضه کرد. PAL شامل یک آرایه AND قابل برنامه ریزی و یک OR تثبیت شده است.
PALهای استاندارد،آرایشهای متفاوتی دارند که هر یک از آنها توسط عددی یکتا مشخص می شوند.این عدد همیشه با پیشوند PAL شروع می- شود .دو رقم بعدازPAL , تعداد ورودیها را نشان می دهد که شامل خروجیهایی است که به صورت ورودی به کار روند.حرف بعد از تعداد ورودیها نوع خروجی را نشان می دهد:
L یعنی فعال پایین, H یعنی فعال بالا و P یعنی قابل برنامه ریزی .
یک یا دو عد د بعدی که بعد از نوع خروجی قرار می گیرد،تعداد خروجیهاست. به عنوان مثال PAL10L8 دارای 10 ورودی و8 خروجی فعال پایین است.
علاوه بر این شماره PALمی تواند پسوند هایی برای تعیین سرعت ،نوع بسته بندی و حوزه حرارتی داشته باشد.
بعد از PAL، یکی از تراشه های منطقی قابل برنامه ریزی PLD(Programable Logic Device) که در بسیاری از کاربرد ها،جایگزین مدارهای MSI,LSI با عنوان آرایه عمومی منطقی GAL)) به بازار عرضه شد.
GAL(Generic Array Logic) شامل آرایه ای قابل برنامه ریزی از گیت های AND است که به گیتهای OR متصل شده است.
درGAL به جای فیوزاز سلولهایی از نوع CMOS که قابل پاک شدن به صورت الکتریکی هستند (E2CMOS) هستند استفاده شده است.
GAL آرایشهای متنوعی دارد که هر یک توسط شماره یکتایی مشخص می شود.این شماره ،همواره با پیشوند GAL آغاز میشود دو رقم اولیه که بعد از پیشوند GAL می آید تعداد ورودیها را نشان می دهند که خروجیها یی که میتوانند به عنوان ورودی نیز به کار روند را در بر دارد.حرف V که بعد از ورودیها می اید،خروجی متغیر و یک یا دو رقم بعد از آن، تعداد خروجیها را نشان می دهد.
به عنوان مثال GAL1 6V 8 دارای 16 ورودی و 8 خروجی متغیر است.
به همراه تراشه های قابل برنامه ریزی ASIC قابل ماسک MPGA(Masked Programmable Gate Array) نیز شروع به رشد کرد که به صورت ارایه أی از ترانزیستور های پیش ساخته هستند و برای پیاده سازی مدارهای منطقی ، در کارخانه های سازنده به یکدیگر متصل می شوند.ظرفیت آنها طی ده سال ، از حدود هزار گیت به مرز چند ده هزار گیت رسید.
پیشرفت در ابزار های طراحی و نیز تراشه های قابل برنا مه ریزی منجر به عرضه FPGA شد.
امروزه FPGA ها از نظر تکنولوژی در زمره بزرگترین مدارهای مجتمع موجود در بازار هستند.مثلا محصولات Altera از سری FLEX10K با تکنولوژی نیم میکرون ، حدود ده میلیون ترانزیستور را در گستره أی به ابعاد 1.8cmدر 1.5 cmجای داده اند.
گر چه این محصولات ظرفیتی بیش از 300000 گیت و300 پایه I/ /O را به کاربر عرضه می کند ولی با این همه هنوز از تراشه هایی چون 1 6V8 و نیز سری 74LS00استفاده فراوانی به عمل می اید. با وجود اینکه می توان 7000 نوع از تراشه اخیر در یک FPGA معمولی جای داد.
بیشتر FPGA ها ی مورد استفاده ظرفیتی حدود 8000 گیت دارند .از های بزرگتر برای ساخت نمونه های اولیه به منظور پیاده سازی نهایی با MPGA ها استفاده می گردد .
این امکان نتیجه پیشرفت در نرم افزار های طراحی است که میتوانند مستقل از تراشه نهایی طراحی را انجام دهند و در نهایت طراح می تواند تصمیم بگیرد که طرح با FPGA یا MPGA پیاده سازی گردد .
به نظر می رسد که در آینده ، ایدهFPGA همچنان قوام بیشتری به خود گرفته و با ایجاد ابزارهای طراحی قویتر که دستورات پیشرفته تری از VHDL(Very Hardware Description Languages) و AHDL (Altera Hardware Description Languages) را پشتیبانی می کنند، راه برای به کار گیری هر چه بیشتر این گونه تراشه ها هموار گردد.طلیعه این گونه پیشرفت ها را می توان درتراشه ها ی بسیار پیشرفته (FIPSOC (Fild ed Programmable System On Chip مشاهده کرد.
ساختار کلی F PGA :
FPGAما نند MPGAتشکیل شده است از یک سری عناصر منطقی که برای کار خاصی محدود شده اند و نیز مانند PAL دارای اتصالات قابل برنامه ریزی است. بنابر این هر دو جزء اصلی تشکیل دهنده یک مدار یعنی بلوکهای منطقی و همچنین اتصالات بین آنها، قابل برنامه ریزی است.شکل زیر ساختار اصلی یک F PGA را نشان میدهد.
همانطور که در شکل مشخص است سه جزء اصلی آن عبارتند از بلوکهای منطقی ، عناصری که برای اتصالات به کار می روند وبلوکهای ورودی خروجی.
ساختار و محتویات بلوکهای منطقی میتواند خیلی ساده (در حد گیت NAND) و یا خیلی پیچیده(نظیر چند MUXیاLook-UpTable به همراه یک فلیپ فلاپ) باشد.
بلوکهای منطقی در حقیقت جایی هستند که قسمتهای اصلی مدار قرار می گیرند . البته ابتدا باید مداری که قرار است روی F PGA قرار بگیرد به اجزای یکسانی که همان محتویات بلوکهای منطقی هستند تقسیم شود و بعد از این عمل است که می توان با بلوکهای پایه به هم مدار واقعی را به دست اورد.
عناصری که برای اتصالات به کار می روند ، همانطور که در شکل مشخص است،معمولا بین بلوکهای منطقی قرار می گیرند واز قطعات فلزی که می توانند به هم یا به بلوک های منطقی متصل شوند تشکیل شده اند. برای متصل کردن این قطعات از سوئیچ های قابل برنامه ریزی استفاده می شود. این قطعات می توانند طولهای متفاوتی داشته باشند.
بلوکهای ورودی - خروجی برای اینکه پین ها ی FPGA را بتوان در مد های مختلف 3/3 یا 5 ولت و..برنامه ریزی کرد به کار می روند. طراحی بلوکهای منطقی و عناصر اتصالی مهمترین قسمت طراحی یک F PGA می باشد.زیرا طراحی این دو با هم باید به گونه أی باشد که پیاده سازی مدارات منطقی مختلف را روی F PGA ممکن سازد.معمولا بین پیچیدگی و انعطاف پذیری هر دوی بلوکهای منطقی و منابع اتصالی یک نسبت معکوس وجود دارد .یعنی با زیاد شدن یکی دیگری کم می شود و بر عکس.در ضمن، معماری یک بلوک منطقی و همچنین منابع اتصالی بر کل مساحت تراشه و سرعت تراشه اثر دارد.
مقایسه FPGA با MPGA:
پیشرفت تکنولوژی CMOS همواره باعث ایجاد مدارهای مجتمع پیچیده تر و پیشرفته تر شده است .به گونه أی که روز به روز بر بهبود وضعیت F PGA ها در برابر MPGA ها افزوده می شود. قبل از هر چیز توجه به این نکته ضروری است که به طور کلی نام اختصاری FPGA هم به FPGA هاو هم به CPLD ها اتلاق می گردد.
تا پیش از این تنها از MPGA ها برای تولید سریع نمونه های اولیه در طرح های ASIC استفاده میشد اما به موازات پیشرفت در تکنولوژی C MOS و امکان جای دادن مدارهای بسیار پیچیده بر روی یک تراشه , را برای جایگزین شدن F PGA ها به جای MPGA ها در کاربردهایی همچون سیستمهای کنترل صنعتی و مخابرات , هموار شد.
پس از اینکه ظرفیت FPGA به چند هزار گیت رسید,صحبت از جایگزینی F PGA ها جنبه عملی تر یافت .به علت تنوع تکنولوژی های به کار رفته در ساخت FPGA و نیز وجود ابزار های مختلف و پیشرفته حامی هر یک از انها یک تکنولوژی به خصوص از FPGA ها را نمی توان به ساد گی انتخاب کرد.
گر چه هم اکنون فرکانس کار برای F PGA ها نوعا حدود 120MHZ تا800MHZ می باشد ,اما محدوده واقعی کاملا به نوع طرح پیاده شده بستگی داشته و همچنین بسته به نوع مکان یابی و مسیر یابی ابزارهای طراحی می باشد.
FPGA ها معمولا به اندازه کافی پینI/O فراهم میکنند به طوریکه FPGA هایی با بیش از 300 پین نیز در دسترس می باشند .در طرح هایی که برای پیاده سازی به چند FPGA نیاز می باشد ,از کل این پایه ها استفاده می شود.به خصوص اگر در در طرح,باس های ادرس و داده نیز وجود داشته باشد.
(فرمول ها و تصاویر در فایل اصلی موجود است)