دسته‌بندی نشده    دسته‌بندی نشده    عنوان: بررسی FPGA و کاربرد های آن فهرست مطالب مقدمه ساختار کلی FPGA مقایسه FPGA با MPGA مراحل پیاده سازی یک طرح بر روی F PGA جایگزینی و سیم کشی اتصالات داخلی انواع متفاوت معماری های F PGA معیارهای اساسی انتخاب واستفاده ازF PGA تکنولوژی های مختلف برنامه ریزی استفاده از S RAM استفاده از Anti_Fuse استفاده از تکنولوژی های گیت شناور( E EPROM, EPROM ) معماری بلوکهای منطقی اثر معماری بلوکهای منطقی بر کارایی F PGA معماری اتصالات قابل برنامه ریزی تراشه های قابل بر نامه ریزیCPLD مقایسه FPGA ها و CPLD ها انواع PLD ها مقایسه معماری CPLD ها و FPGA ها مقایسه CPLD ها و FPGA از نظر اتصالات داخلی بهره برداری از گیت های منطقی تکنولوژی ساخت تراشه زبان توصیف سخت افزاری AHDL نمادها اسامی در AHDL گروهها محدوده و زیر محدوده گروهها عبارات بولی عملگرهای منطقی عملگرهای حسابی مقایسه گرها حق تقدم در عملگرهای بولی و مقایسه گرها گیتهای استاندارد(ساده) بافر TRI ماکروفانکشن ها پورتها نگاهی گذرا به VHDL ویژگیهای زبان VHDL دستورات زبان VHDL مراحل پیاده‌سازی برنامه‌های VHDL در FPGA مقدمه: امروزه با پیشرفت در زمینه ساخت قطعات قابل برنامه ریزی در روشهای طراحی سخت افزار تکنولوژی 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 نیاز می باشد ,از کل این پایه ها استفاده می شود.به خصوص اگر در در طرح,باس های ادرس و داده نیز وجود داشته باشد. FPGA در مقایسه با MPGA دارای دو مزیت عمده می باشد : هزینه پایین برای تولید کم : اماده سازی MPGA نیاز به استفاده از خط تولید کارخانه دارد ودر نتیجه برای تولید کم مقرون به صرفه نیست. سر عت بالای اماده سازی :به دلیل بالا بودن مدت زمان اماده سازی در کار خانه و همچنین صرف زمان برای رفع عیبهای احتمالی ,اماده شدن چیپ M PGA خیلی طولا نیتر از FPGA است که به راحتی ظرف چند دقیقه در محل کار برنامه ریزی میشود. در عوض سه عیب عمده ای که FPGA ها نسبت به MPGA ها دارند عبارتند از : سرعت کم ( تا حد سه برابر ):به دلیل تاخیر زیاد سوئیچهای برنامه پذیر در مسیرهای اتصالات .(زیرا ظرفیت خازنی و مقاومتی بالایی دارند.) چگالی پایین تر منطقی :به دلیل سطح اشغال شده توسط سوئیچهایومداراتی که برای برنامه پذیر کردن چیپ استفاده می شوند. قیمت بالا برای تولیدات با تعداد زیاد . مراحل پیاده سازی یک طرح بر روی F PGA: اصولا روش طرا حی مدارات منطقی مستقل از تراشه نهایی است که برای پیاده سازی انتخاب می گردد .معمولا در این گونه طراحی ها ,یک کتابخانه از بلوکهای پیش ساخته در اختیار طراح قرار دارد که اعضای کتابخانه از قبل طراحی شده اند.البته در این کتابخانه بر خلاف Data Bookها به pin-out نیازی نمی باشد.اعضای پیچیده تر نظیر شمارنده ها و یا ساختار هایی شبیه تراشه های استانداردT T L وCMOS را ماکرو می نامند .هر ماکرو معمولا یک یا چند سلول از تراشه ها را اشغال می کند که با سیم بندی مناسب تابع مورد نظر را ایجاد می کند .در پروسه طراحی مهمترین بخش را مرحله شبیه سازی تشکیل می دهد. از انجا که طرح به صورت بخش بخش می باشد کلیه این بخش ها را می توان جداگانه و با اعمال ورودی و دریافت های خروجی های مورد نظر تست کرده و در نهایت کل طرح را به طور یک جا تست نمود . بر خلاف تراشه های استاندارد,در ماکرو ها می توان تنها بخشهای مورد استفاده در طرح را استفاده کردو بقیه ماکرو را بدون هدر دادن هیچ بخشی از سلول قابل برنامه ریزی ,از طرح زدود.اما با این همه این مشکل به گونه أی د یگر می تواند ظهور کند.از انجا که هر تراشه با تعداد ثابتی سلول ساخته می شود. بنا براین پیاده سازی طرح با اولین تراشه ای صورت می گیرد که بتواند تعداد سلولهای مورد نیاز برای طرح را بر اورده کند.از این رو در صورتی که کوچکترین تراشه دارای 1000 سلول و تراشه بعدی دارای 1500 سلول باشد برای طرحی که نیاز به 1010 سلول دارد, 30% از تراشه اخیر بدون استفاده رها خواهد شد . شکل صفحه بعد فلو چارت مراحلی را که برای پیاده سازی یک طرح بر روی F PGA باید طی شود نشان می دهد. ورودی سیستم در یک نرم افزار طراحی مدار را به روشهای مختلف می توا ن وارد نمود .و از جمله این روشها ویرایشگر های شماتیکی مدار , زبانهای ساده توصیف سخت افزار ( AHDLوDBEL و…) ویرایشگر های موج(که شکل موج ورودی /خروجی را به عنوان ورودی به سیستم قبول می کنند) و زبانهای توصیف سخت افزار در سطوح مختلف(مانند VHDLوVerilog) می باشند. ترکیب و ترجمه در ادامه طراحی می توان هر قسمت از طراحی را به هر یک از روشهای بالا که وارد شود با قسمت های دیگر ترکیب کرد و کل مدار را به صورت معادلات منطقی در اورد که خروجی طبقه کامپایل و ترکیب است. بهینه سازی در این قسمت به وسیله یک سری از الگوریتم ها و با توجه به معادلات جبر بولی و الگوریتم های بهینه سازی در ان و همچنین با توجه به ساختار خاص بلوکهای برنامه ریزی در FPGA ,معادلات بهینه به دست می اید. یک نقطه ضعف در خلاصه سازی ان است که تغییر ساختار مدار باعث دشواری رفع خطاها یی که در مرحله شبیه سازی اشکار می شوند,می گردد. نگاشت تکنولوژی ترجمه یک مدار از گیت های پایه به مدارهایی با المانهای مداری دیگر (مانند سلولهای منطقی FPGAیا سلولهای پایه CPLD)را نگاشت تکنولوژی گویند.از انجایی که اطلاعات کامل در رابطه با ساختار FPGA باید در اختیار نرم افزار نگاشت قرار گیرد,معمولا این نرم افزارتوسط شرکت فروشنده تراشه قابل برنامه ریزی تولید می شود. معمولا در برنامه نگاشت تکنولوژی یک فاز بهینه سازی منطقی با توجه به ساختار بلوکهای برنامه پذیر ,برای مینیمم کردن مساحت مصرفی یا بالا بردن سرعت موجود می باشد. جایگزینی و سیم کشی اتصالات داخلی بعد از انجام عمل نگاشت برنامه جایگزینی برای محل قرار گیری هر بلوک منطقی مدار تصمیم می گیرد که هر سلول منطقی در کدام سلول فیزیکی F PGA قرار گیرد.این مساله دارای پیچیدگی زیادی است.از انجایی که اطلاعات کامل در رابطه با ساختار اتصالات داخلی FPGA و نحوه قرار گیری سلولها درون FPGA باید در اختیار نرم افزار جایگزینی و سیم کشی قرار گیرد ,معمولا این نرم افزار ها توسط شرکت فروشنده تراشه تولید می شود. بعد از این عمل جایگزینی نرم افزار سیم کش در مورد واگذاری منابع برای اتصالات مورد نیاز تصمیم می گیرد.در این تراشه ها ,استفاده از 95% سلولها و حتی بیشتر امکان پذیر است . شبیه سازی دو نوع شبیه سازی توسط نرم افزار انجام می شود: شبیه سازی منطقی این شبیه ساز از نظر منطقی عملکرد مدار را تست می کند.در این عمل , اطلاعاتی از زمان بندی و همچنین عملیات بهینه سازمنطقی در اختیار نیست.اگر خطایی در طراحی باشد در این مرحله مشخص می شود. شبیه ساز زمانی در این مرحله که پیش از مسیر یابی و رفع سایر مشکلات صورت می گیرد. پارامتر های تاخیر ,توان و خازنهای مدار و..نیز به محیط شبیه سازی منتقل شده و تصویر واقعی از عملکرد تراشه را به دست می دهد . تاخیر های فوق در واقع از کتابخانه ای که نرم افزار در دسترس دارد ,استخراج می شود و معمولا بدتر از حالت واقعی تراشه در نظرگرفته شده است .به گونه أی که پس از برنامه ریزی تراشه ,عملکرد تراشه معمولا سریعتر از مقدار پیش بینی شده توسط نرم افزار شبیه سازی است. از مرحله شروع تا جا دادن طرح در داخل یک یا چند FPGA (با توجه به اندازه مدار ) و همچنین متصل کردن بلوکهای منطقی به هم اصطلاحا سنتز مدار روی FPGA گفته می شود. انواع متفاوت معماری های F PGA چهارنوع مختلف معماریهای FPGA را که کارخانجات متفاوت استفاده می کنند, عبارتند از : ارایه دو بعدی متقارن سطری دریایی از گیت ها مدارات سلسله مراتبی نوع اول از یک ارایه دو بعدی از یک بلوکهای منطقی که منابع اتصالات به صورت سطری و ستونی بین این بلوکها واقع شده اند,تشکیل یافته است. این نوع معماری توسط شرکت Xilinx استفاده می شود. نوع دوم شبیه به نسلهای اولیه MPGA ها می باشد و در حال حاضر ,توسط شرکت Actel پیاده سازی می شود. نوع سوم متشکل از بلوکهای کوچک منطقی است که با لایه هایی برای برقراری اتصال بین این بلوکها پوشیده شده است .در این گونه ساختار سلولهای منطقی تنها قادرند که به نزدیکترین سلول همسایه أی متصل شوند که در مختصات افقی یا عمودی مشابهی قرار دارد .در این ساختار از سلولهای منطقی نیز می توان در جهت برقراری ارتباط استفاده کرد.که البته چنین کاری باعث افزایش تاخیر در مسیر سیگنال و نیز کاهش ظرفیت گیتی در دسترس می گردد .این نوع معماری شبیه به نسلهای بعدی MPGA ها می باشد که ان هم توسط شرکت Actel در معماریهای جدیدش استفاده می شود. نوع چهارم معماری FPGA بر گرفته شده ازمعماری PLD ها وCPLD ها میباشد وتوسط شرکت Atera در سری MAX ساخت این کارخانه استفاده شده است. معیارهای اساسی انتخاب واستفاده ازF PGA به هنگام طراحی یک سیستم طراح با توجه به مشخصات سیستم ابتدا بلوکهای کلی از بخشهای اساسی سیستم را روی کاغذ پیاده می کند.نوعا این بلوکها شامل بلوک پردازنده , بلوکهای حافظه و برخی ورودی ها –خروجی ها و مدار های واسطه لازم می باشند. برخی از این بلوکها را می توان با یک تراشه طراحی کرد حال انکه برخی قسمت ها به تعداد تراشه های بیشتری نیاز دارند . به موازات پیشرفت تکنولوژی امروزه بسیاری از بلوکها را می توان در یک تراشه جای داد. از این رو طراح باید دست به انتخاب چنین تراشه أی بزند و طراحی سایر قسمتها رابر این اساس پیش ببرد. با ظهور مدارهای LSI قابل برنامه ریزی وFPGAها,طراحان با گستره أی از انتخاب ها مواجه شدند.از این روطراح قبل از انتخاب یک F PGA نیازبه اطلاعات اساسی در این زمینه دارد.در این رابطه لازم است که طراح بتواند میزان گیت مورد نیازو نیز تعداد پایه های I/O و مشخصه مورد نیاز برای طراحی را تخمین بزند. با توجه به اینکه امروزه خانواده های مختلفی از F PGA ها در دسترس می باشند,مسئله أی پیش روی طراح وجود داردو ان اینست که کدام تراشه برای یک کاربرد خاص مفید تر است؟ با در نظر گرفتن سه فاکتور مهم در هر خانواده می توان به انتخاب نهایی نزدیک شد.انتخاب نهایی نیز می تواند با توجه به فاکتور مهم قیمت صورت گیرد. مقایسه مشخصه ها از نظر مشخصه ها هنگامی می توان FPGA ها را با یکدیگر مقایسه کرد که این موضوع روشن شده باشد که اندازه گیری مشخصه در خانواده های مختلف از راه های مشابهی صورت گرفته است . از فرکانس کار می توان به عنوان نمونه أی در این زمینه نام برد. چنین فرکانسی می تواند ماگزیمم فرکانسی باشد که فلیپ فلاپها قادر به تقسیم ان دو باشند و یا مینیمم پهنای پالس H ighوLowباشد که یک شمارنده قادر است با ان درست عمل کند و یا اصولا ماکزیمم فرکانس کار یک ماشین حالت باشد.برخی نیز مبنای اندازه گیری را میزان تاخیر انتشار در نظر می گیرند.گر چه تعاریف اخیر ساده است ولی با این همه مشکلاتی را پیش می اورد . بر این اساس FPGA را به صورت یک گیت ساده برنامه ریزی کرده و تاخیر بین ورودی و دریافت خروجی را اندازه گیری می نمایند.برای مثال فرض کنید که یک گیت پیچیده مثلا یک AND با 20 ورودی لازم باشد, در این حال تراشه های خانواده های PAL تاخیری به اندازه یک گیت ساده دو ورودی را ایجاد می کنند.در حالیکه در ساختارهای FPGA به دلیل به کارگیری چند لایه برای تحقق چنین گیتی , میزان تاخیر افزایش می یابد. بنابر این انچه که باید مشخص شود,ان است که برای اندازه گیری مشخصه هادر F PGA های مختلف چه اندازه گیریهایی صورت گیرد؟در این رابطه می توان به ازمایشهای پیچیده أی که از سوی موسسات ناظر بر این تولیدات صورت می گیرد ,مراجعه کرد.اما برای انجام یک مقایسه ساده بر اساس داده های تولید کنندگان ,چهار ازمایش انجام می شود.نتایج این ازمایشها در کنار نتایج حاصل از ان دسته خانواده هایی که با ازمایشهای PREPتست شده اند نشان می دهد که تا چه اندازه می توان بر این تخمین ها تکیه کرد.چهار ازمایش مذکور عبارتند از : تاخیر ورودی-خروجی یک AND چهار ورودی تاخیر ورودی-خروجی یک مقایسه کننده هشت ورودی ماکزیمم فرکانس CLOCK مربوط به یک شیفت رجیستر ماکزیمم فرکانس کار یک شمارنده 16 بیتی(این قسمت از ازمایشهای P REPاست) تعداد گیت و پایه های I/O پس از انکه مشخص شد کدام یک از خانواده ها قادرند تا مشخصه لازم را براورده کنند, انتخاب تراشه بستگی به تعداد گیت ,تعدادI/O و فاکتور قیمت دارد.تعداد گیتهای MPGA ها استاندارد خاصی ندارد اما برای ارایه های گیتی,اغلب بر اساس گیتهای دو ورودی محاسبه می شود.در این روش یک گیت چهار ورودی معادل سه گیت دو ورودی و یک فلیپ فلاپ D معادل 6 گیت محاسبه می گردد. با این همه تخمین گیت در FPGA عموما ساده نیست.برای مثال MACH110 دارای 32 سلول بزرگ(Macrocell) می باشد که هر یک دارای چهار AND_22 ورودی که از ترکیب 21 گیت دو ورودی ساخته شده و یک گیت O R چهار ورودی که از ترکیب سه گیت دو ورودی ساخته شده و یک فلیپ فلاپ D که از ترکیب 6 گیت دو ورودی ساخته شده , تشکیل شده است.از این رو برای ساخت هر Macrocell به 93 گیت نیاز می باشد. به عبارتی مجموعا می توان ظرفیت تراشه را با 2967 گیت تخمین زد .تعداد درست گیت موجود در تراشه بستگی کامل به طرح در دست پیاده سازی دارد .برای مثال اگر با هر Microcell یک گیت چهار ورودی را پیاده سازی کنیم,در این صورت ظرفیتMACH110 برابر 96 گیت خواهد بود. ظرفیت یک أی سی با استفاده از نتایج چند ازمایش مختلف و گرفتن متوسط ان به دست می اید,معمولا این ازمونها بر اساس پیاده سازی چهار مدار زیر صورت می گیرد: گیت های چهار ورودی مقایسه کننده های هشت ورودی شیفت رجیستر های هشت بیتی شمارنده UP/DOWN داده های PREP PREPموسسه مستقلی است که توسط مجموعه تولید کنندگان تراشه های قابل برنامه ریزی حمایت می شود.این موسسه با استفاده ازیک سری ازمایشهای به خصوص ,مشخصه و ظرفیت تولیدات مختلف را مقایسه می کند. پیاده سازی مدارهای زیر مبنای این مقایسه ها می باشد : یک مدار مسیر داده (شامل یک مالتی پلکسر 4 به 1و یک رجیستر و یک شیفت رجیستر) یک شمارنده (شامل دو رجیستر و یک مالتی پلکسر 4به1) یک ماشین حالت کوچک( شامل 8 حالت و 8 ورودی و خروجی) یک ماشین حالت بزرگ(شامل 16 حالت و 8 ورودی و خروجی) یک مدار محاسبه ریاضی(شامل یک ضرب کننده 4 در 4 به همراه یک جمع کننده 8 بیتی و یک رجیستر 8 بیتی) یک اکومولاتور 16 بیتی یک شمارنده 16 بیتی با قابلیت بار شدن و فعال کننده هم زمان یک شمارنده 16 بیتی با قابلیت بار شدن و امکان اغاز شمارش با مقدار جدید بار شده یک دیکدر ادرس 16 بیتی جزییات این مدار ها را با مراجعه به Data Book هر یک از تولید کنندگان تحت حمایت PREP می توان بررسی کرد.تراشه تحت حمایت برای اجرای چندین مدار از نمونه های فوق به کارگرفته می شود. به عنوان نتیجه گیری باید گفت از انجا که P REP از سوی بسیاری از تولید کنندگان حمایت می شود,می توان به داده های ان برای برای انتخاب تراشه مناسب تا اندازه زیادی اعتماد کرد. تکنولوژی های مختلف برنامه ریزی قابلیت برنامه ریزی شدن مدارات مختلف و اتصالات متفاوت رویF PGA به دلیل وجود سوئیچهای الکتریکی قابل برنامه ریزی است که روی این تراشه وجود دارد .این سوئیچها باید دارای مشخصاتی باید دارای مشخصاتی باشند تا اثر منفی بر روی عملکرد FPGA نداشته باشند .مهمترین این مشخصات ان است که باید تا حد امکان جای کمی را اشغال کنند و مقاومت و ظرفیت خازنی کمی داشته باشند تا تاخیر زیادی ایجاد نکنند. از جمله سایر مشخصاتی که بعضی از این سوئیچها دارند قابلیت حفظ اطلاعات نوشته شده بر روی انها با از دست دادن برق(Non_Volatile), قابلیت برنامه ریزی مجدد روی انها (Reprogrammable), قابلیت برنامه ریزی داخل مداری(Programmable in system) و… می باشندکه سه مورد اخر هر کدام مزایا و معایبی دارند.به عنوان مثال سوئیچهای مبتنی بر حافظه های موقت با قطع برق اطلاعات خود را از دست می دهند. در نتیجه با هر بار روشن و خاموش شدن سیستم ,مجددا باید FPGAبرنامه ریزی شود. سه تکنولوژی اصلی که برای برنامه ریزی کردن ساختار F PGA استفاده می شود عبارتند از: استفاده از سلولهای حافظه موقت(S RAM) استفاده از Anti_Fuse استفاده از گیت شناور (EEPROM,EPROM) استفاده از S RAM از سلول حافظه به دو گونه استفاده می شود.در روش اول از از یک سلول حافظه موقت برای کنترل روشن یا خاموش بودن یک ترانزیستور CMOS(PASS GATE) استفتده می شود.یعنی خروجی سلول حافظه را به گیت این ترانزیستور متصل می کنند. در روش دوم با اتصال خروجیهای سلولهای حافظه به ورودیهای انتخاب یک مالتی پلکست مشخص می کنند که کدامیک از خطهای ورودی مالتی پلکسربه خروجی متصل می شود.همانطور که اشاره شد این روش دارای این ضعف است که باید هر بار که برق سیستم قطع می شود مجددا محتوای سلولهای حافظه نوشته شود که این کار نیاز به این دارد که یک حافظه دائمی PROM یا EPROM یا یک دیسک مغناطیسی در کنار FPGA گذاشته شود تا هر بار موقع روشن شدن اطلاعات خودش را از روی ان بخواند(عمل B OOT شدن (FPGA.مشکل دیگر این روش حجم زیادی است که سلول حافظه به خود اختصاص می دهد.زیرا یک سلول حافظه به 5 یا 6 ترانزیستور نیاز دارد .ولی در عین حال مزیت استفاده از حافظه های موقت ,قابلیت برنامه ریزی مجدد ان حتی در داخل مدار می باشد.شرکت Xilinx برای برنامه ریزی FPGA های ساخت خود استفاده می کند. استفاده از Anti_Fuse Anti_Fuseنوعی فیوز است که بر عکس فیوز معمولی در حالت عادی اتصال کوتاه است.لذا در حالت عادی قطع است و هنگامی وصل می باشد که یک جریان نسبتا زیادی از دو سر ترمینال ان عبور داده شود. دو نوع انتی فیوز در FPGA مورد استفاده است .یک نوع انها که تحت عنوان PLICE شناخته شده توسط شرکت Actel استفاده می شود و نوع دیگر که تحت عنوان Vialink شناخته می شود ,توسط شرکت Quicklogic استفاده می شود. FPGA هایی که از قابلیت انتی فیوز استفاده می کنند چگالی گیتی بیشتری را نسبت به انواع دیگر که از المانهای حافظه استفاده می کنند, در اختیار طراح قرار می دهند.مزیت عمده استفاده از انتی فیوزها بالا بودن فرکانس کاری انها می باشد چرا که ظرفیت خازنی و اثر مقاومتی کمی دارند. عیب اصلی این روش انست که قابلیت برنامه ریزی مجدد ندارند و وقتی که یک انتی فیوز برنامه ریزی شد دیگر به حالت قطع بر نمی گردد. استفاده از تکنولوژی های گیت شناور( E EPROM, EPROM ) در تکنولوژی MOS ترانزیستور ها خود به عنوان سوئیچی عمل می کنند که با اعمال سطح High یاLow به گیتشان می توان باعث قطع و وصل شدن این سوئیچها شد.در این روش از ترانزیستوری استفاده می شود که دارای گیت شناور است.با استفاده از این گیت شناور می توان سطح استانه ترانزیستور را با شارژ و دشارژ کردن گیت دوم تغییر داد و ترانزیستور را به صورت دائم خاموش کرد . به این ترتیب که با گذراندن یک جریان زیادبین گیت اصلی و درین ترانزیستور مقداری بار روی گیت شناور قرار می گیرد که باعث بابلا رفتن ولتاژ استانه ترانزیستور از حد معمول می شود و در نتیجه در ولتاژهای کاری ترانزیستور همیشه خاموش است.برای از بین بردن این بار در EPROM از اشعه ماورائ بنفش ودر EEPROM از جریان الکتریکی استفاده می شود. شرکت Altera از این روش در سری های اولیه تولید خود استفاده می کرد . مزیت این روش مانند روش استفاده از حافظه موقت قابلیت برنامه ریزی مجدد انست.لازم به ذکر است که EPROM در خارج مدار وEEPROM در داخل مدار,برنامه ریزی مجدد را دارا می باشند. معماری بلوکهای منطقی بلوکهای منطقی شرکتهای سازنده FPGA از نظر اندازه و منطق به کار رفته در انها با هم تفا وتهای زیادی دارند .به عنوان مثال شرکت Plessey از دو عدد ترانزیستور برای ساخت بلوکهای منطقی خود استفاده کرده که تنها قابلیت ساخت یک گیت NOT ا دارد و در عین حال شرکت Xilinx از یک (LUT)Look_Up Table 5 ورودی که قابلیت ساخت هر تابع تا 5 ورودی را دارد استفاده کرده است. لازم به توضیح است که n_LUT چیزی جز یک حافظه با 2 محل ذخیره سازی و در نتیجه n ورودی نیست.یک روش برای دسته بندی بلوکهای منطقی مختلف می توان تعریف معیار Granularity است این معیار را به گونه های مختلف می توان تعریف کرد که از ان جمله می توان به موارد زیر اشاره کرد: تعداد توابع منطقی که یک بلوک منطقی می تواند پیاده سازی کند تعداد گیت های NAND دو ورودی معادل با ان تعداد ترانزیستورهای ان تعداد ورودی ها و خروجی های ان در هر حال به نظر می رسد که دو تعریف اول پر کاربرد ترین تعریف بین سازندگان مختلف FPGA باشند. برای بررسی بلوکهای منطقی مختلف به کار رفته شده توسط سازندگان مختلف ,انها به دو دسته اصلی بلوکهای بزرگ و کوچک (حجیم و ساده )معادل با واژه های Course Grain و Fine Grain تقسیم می نمایند.در هر کدام از این دسته ها به تعدادی از بلوکهای منطقی استفاده شده در FPGA های مشهور بازار اشاره خواهد شد. بلوکهای منطقی کوچک این بلوکهای منطقی از نظر اندازه تا حد چند ترانزیستور هستند و بسیار شبیه به MPGA ها هستند .ولی در این بلوکها ترانزیستور ها می توانند به صورت برنامه ریزی شده به هم متصل شوند . مهمترین مزیت استفاده از بلوکهای منطقی کوچک این است که استفاده کامل از این بلوکها به سادگی میسر است . همچنین سنتز کردن مدار انها اسان است.ساختار این FPGA ها بسیار شبیه به MPGA هااست و بنابر این ار الگوریتم های سنتز موجود می توان استفاده کرد.ولی عیب اصلی این گونه بلوکها این است که حجم اتصالات در این گونه FPGA ها بسیار بالا می رود و چون اتصالات قابل برنامه ریزی هم از لحاظ جایی که اشغال می کنند و هم از نظر سرعت کار به صرفه نیستند ,بنابراین این نوع FPGA ها اصولا از چگالی و سرعت کمتری نسبت به FPGA هایی که از بلوکهای منطقی بزرگ استفاده می کنند ,برخوردار می باشند. بلوکهای منطقی بزرگ این بلوکها قابلیت پیاده سازی توابع بزرگتری را نسبت به حالت قبلی ,دارا می باشند,همچنین تعداد توابعی که می توانند پیاده سازی کنند ,زیاد است این نوع بلوکها معمولا دارای یک فلیپ فلاپ داخلی برای ساخت مدارات ترتیبی هستند که در بعضی از این نوع بلوکها ,قابلیت نوع فلیپ فلاپ نیز وجود دارد .معمولا نرم افزار های سنتز ,توانایی استفاده کامل از همه قابلیت های این گونه بلوکهای منطقی پیچیده را ندارند و در نتیجه این یک ضعف برای این نوع بلوکها می باشد. در عوض به علت این که حجم زیادی از مدار را بر روی این بلوکها می توان پیاده سازی کرد, حجم اتصالات موجود بین بلوکها کمتر می شود و همین یکی از مزایای عمده این نوع بلوکها نسبت به بلوکهای کوچکتر می باشد.در حال حاضر بیشتر شرکتهای عمده سازنده FPGA نظیر Xilinx و Actel و Altera از این نوع بلوکها استفاده می کنند . اثر معماری بلوکهای منطقی بر کارایی F PGA منظور از کارایی FPGA همان سرعت ان است.معماری بلوکهای منطقی به دو گونه خلاف هم برسرعت اثر می گذارد.با افزایش یچیدگی بلوک منطقی همانطور که گفته شد,هم تعداد بلوکهای منطقی مورد نیاز کم می شود و هم تعداد سطوح مورد نیاز برای پیاده سازی مدار .در نتیجه با افزایش تعداد ورودیهای بلوکهای منطقی ,سرعت FPGA ها بالا می رود. مساله دیگری که بر سرعت FPGA تاثیر دارد این است که تاخیر اتصالات با افزایش پیچیدگی بلوکهای منطقی افزایش می یابد.از دلایل این امر می توان به موارد زیر اشاره کرد: تعداد سوئیچهای متصل به هر سیم در حال افزایش است. طول سیم ها با بزرگ شدن بلوکهای منطقی افزایش می یابد. معماری اتصالات قابل برنامه ریزی بعد از اینکه مدار مورد نظر طراح توسط نرم افزار سنتز به بلوکهای منطقی موجود روی FPGA سنتز شد, باید به مسیله أی این بلوکهای منطقی را به یکدیگر متصل کرد. اتصال بلوکهای منطقی به یکدیگر توسط منابع اتصال قابل برنامه ریزی انجام می شود. این منابع معمولا حجم زیادی را روی FPGA اشغال می کنند.دلیل این مساله بزرگ بودن سوئیچهای است که برای برنامه ریزی کردن انها استفاده می شود.در ضمن به علت بزرگ بودن تاخیر RC انها ,سوئیچها معمولا باعث پایین اوردن سرعت FPGA می شوند.هر چه تعداد منابع اتصالات بیشتر باشد امکان برقراری اتصالات بین بلوکهای منطقی بیشتر و برقراری ارتباط اسانتر است. قبل از وارد شدن به بحث ابتدا دو اصطلاح Segment وTrack که در این مبحث از انها نام برده می شود ,تعریف می شوند. Segment:قطعه أی از سیم است که در وسط ان سوئیچ استفاده نشده باشد. Track: عبارت است از چند segment که در یک خط راست که به وسیله یک یا چند سوئیچ از هم جدا شده اند. در هر یک از مدلهای FPGA به گونه های مختلف عمل برقراری اتصالات انجام می شود که در بخش زیر به ان پر داخته می شود. روشهای مختلف ارتباط با توجه به نوع مداری که برای FPGA در نظر گرفته می شود طریقه برقراری اتصالات در انها فرق می کند.این روشها عبارتند از : FPGAهای متقارن دو بعدی FPGA های سطری FPGA های سلسله مرا تبی تراشه های قابل بر نامه ریزیCPLD PRIVATE "TYPE=PICT;ALT=0904_SR_button.gif"بازار تراشه های قابل بر نامه نویسی منطقی ظرفیت بالا در سالهای اخیر گسترش زیادی یافته است .دلیل ان هم اشنایی طراحان با تراشه های تازه ومعماری جدید آنها می باشد. با توجه به اینکه این تراشه ها دامنه بزرگی از طراحی ها را برایمان ممکن می سازد یک مهندس طراح می بایست بسته به نوع طراحی خود از میان تمام قطعات موجود بهترین و در عین حال به صرفه ترین تراشه را برای طراحی خود انتخاب کند.انتخاب تراشه مناسب می تواند به بازار فروش منجر شود.در حالی که انتخاب غلط سبب شکست اقتصادی پروژه خواهد شد.برای یک تصمیم صحیح به صرفه شما باید با تواناییها و همچنین محدودیت های تراشه های مختلف آشنا شوید. PLD ها شامل قطعات کم ظرفیت تا پر ظرفیت می باشند.ظرفیت های کم PLD ها که اصطلاحا PLD های ساده نامیده می شوند معمولا کمتر از 600 گیت قابل استفاده دارند و شامل محصو لاتی چون PLD-GAL می شوند.PLD های ساده توسط تکنو لوژی CMOS طراحی شده اند که شامل EPROM و EEPROM و حافظه FLASH می باشند.HCPLD ها بیش از 600 گیت قابل استفاده دارند و شامل CPLD و FPGA ها می شوند. در در این نوع تراشه ها تکنولوژی بسیار بالایی به کار رفته است. HCPLD را بسته به ساختمان اتصالات داخلی آنها می توان به دو دسته CPLD ها و FPGA ها تقسیم کرد. CPLD ها از چندین تکنو لوژی مختلف CMOS استفاده می کنند که دامنه گسترده یی از طراحیهای دیجیتال را در اختیار قرار می دهند. ترتشه های EPROM -EEPROM - FLASH قابلیت دوباره بر نامه ریزی شدن را دارند. در CPLD هایی که بر مبنای SRAM ساخته شده اند معماری LUT به کار رفته است که رجیستر های متمرکز را در اختیار طراح قرار می دهد. این قطعات قابلیت تغییر شکل درون مداری را دارند.امروزه شبیه سازی کامپیوتری میتوانند جلوی برخی اشکالات و اشتباهات طراحی را بگیرد. اما به هر حال یک طرح قاعدتا نیاز به تست سخت افزاری طرح خود را دارد تا تغییرات نا محسوس خصو صیات سیستم را مشاهده و خطایابی کند. با قطعه ای که قابلیت فقط یک بار بر نامه ریزی داشته باشد و مثلا ساخته شده باشد طراحی چیزی جز به هدر دادن سرمایه نیست. مقایسه FPGA ها و CPLD ها بازار تراشه های قابل برنامه نویسی منطقی ظرفیت بالا HCLPD(Programmable Logic Device High Capacity) در سالهای اخیر گسترش زیادی یافته است. دلیل آن هم آشنایی طراحان با تراشه های تازه و معماری جدید آنها می باشد. با توجه به اینکه این تراشه ها دامنه بزرگی از طراحی ها را برایمان ممکن می سازند ، یک مهندس طراح می بایست بسته به نوع طراحی خود از میان تمام قطعات موجود ، بهترین و درعین حال به صرفه ترین تراشه را برای طراحی انتخاب کند. انتخاب تراشه مناسب می تواند به بازار فروش موفق منجر شود ، در حالیکه انتخاب غلط سبب شکست اقتصادی پروژه خواهد شد. برای یک تصمیم صحیح و به صرفه ، باید با توانایی ها و همچنین محدودیت های تراشه های مختلف آشنا شویم. در این قسمت با خصوصیات دو دسته مهم HCPLD ها یعنی CPLD و FPGA آشنا می شویم. انواع PLD ها PLD ها شامل قطعات کم ظرفیت تا پر ظرفیت می باشند. ظرفیت های کم PLD که اصطلاحاً PLD های ساده نامیده می شوند معمولاً کمتر از 600 گیت قابل استفاده دارند و شامل محصولاتی چون PLA ها ، GAL ها و 22V10 ها می شوند. PLD های ساده توسط تکنولوژی CMOS طراحی شده اند که شامل EPROM و EEPROM و حافظه FLASH می باشند. HCPLD ها بیش از 600 گیت قابل استفاده دارند و شامل CPLD ها و FPGA ها می شود. در HCPLD ها تکنولوژی CMOS با SRAM EPROM, , EEPROM,Anti fuseOption FLASH,, به کار رفته است. HCPLD ها را بسته به ساختمان اتصالات داخلی آنها می توان به دو دسته CPLD ها و FPGA ها تقسیم کرد. CPLD ها ساختمان اتصالات داخلی پیوسته (Continous) دارند در حالیکه FPGA ها دارای اتصالات قطعه قطعه می باشند. مقایسه معماری CPLD ها و FPGA ها CPLD ها از چندین تکنولوژی مختلف CMOS استفاده می کنند که دامنه گسترده ای از طراحی های دیجیتال را در اختیار قرار می دهند. EPROM و EEPROM و تراشه هایی که اساس آنها FLASH است (شامل قطعات کلاسیک,MAX 7000 MAX 5000 ,MAX 9000 ,Altera خانواده های منطقی FLASH ) برای تولید قطعات ترکیبی در عین حال متمرکز به کار می روند و برای همین کار نیز بهینه سازی شده اند.تراشه های EPROM , EEPROM وFLASH قابلیت دوباره برنامه نویسی شدن را دارند. در CPLD هایی که برمبنای SRAM ساخته شده اند. (مانند خانواده FLEX 8000 از Altera ) معماری (Look-Up Table) LUT به کار رفته است که رجیسترهای متمرکز در اختیار طراح قرار می دهد. این قطعات قابلیت ، تغییر شکل درون مداری را دارند. در مقابل FPGA ها اکثراً از SRAM و المانهای حافظه Anti fuse با یک بار قابلیت نوشتن استفاده می کنند. معماری قطعه- قطعه و بخش بخش F PGA ها ، ابراز قدرتمندی را در دامنه وسیعی از کاربردها در اختیار طراح قرار می دهد. اما نسبت به CPLD ها کارآیی کمتری را در به کارگیری طراحی های ترکیبی-متمرکز دارا می باشند. یک تراشه که بر اساس Anti fuse ساخته شده (برخلاف یک FPGA که بر اساس SRAM ساخته شده است). قابلیت پاک شدن و بازترکیب را ندارد. در صورتی که PLD های ساده و ارزان قیمت (مانند 22V10) شاید اصولاً قابلیتهای بالا را لازم نداشته باشند. اصولاً دانستن این خصوصیات HCPLD ها ضروری است. زیرا یک طرح که شامل هزار ها گیت می باشد سبب می شود تا چندین بار عمل طراحی تکرار گردد. شبیه سازی کامپیوتری می تواند جلوی برخی اشکالات و اشتباهات طراحی را بگیرد. اما به هر حال یک طراح قاعدتاً نیاز به تست سخت افزاری طرح خود دارد تا تغییرات نامحسوس خصوصیات سیستم را مشاهده و خطا یابی کند. با قطعه ای که قابلیت فقط یک بار برنامه ریزی داشته باشد و مثلاً برپایه Anti fuse ساخته شده باشد، طراحی، چیزی جز به هدر دادن سرمایه نیست. مقایسه CPLD ها و FPGA از نظر اتصالات داخلی CPLD ها و FPGA ها از ساختمان اتصالات داخلی متفاوتی بهره می برند. درCPLD ها ساختمان به صورت پیوسته وجود دارد در حالیکه در FPGA ها این ساختمان به صورت قطعه-قطغه و مجزا می باشد. ساختمان اتصالات پیوسته در CPLD ها خطوطی از فلز می باشند که به صورت متحدالشکل در طول و عرض تراشه و به صورت متقاطع قرار گرفته اند. مدامی که مقاومت و ظرفیت خازنی تمام اتصالات داخلی مقدار ثابتی باشد، تأخیر بین هر دو سلول منطقی در داخل تراشه قابل پیش بینی و محاسبه است. این متحالشکل بودن خطوط در تراشه سبب به حداقل رسیدن انحراف سیگنال خروجی می شود. ساختار قطعه-قطعه در اتصالات داخلی FPGA ها شامل ماتریسی از قطعات فلزی می باشد که در داخل تراشه جای گرفته اند. تعداد قطعات داخلی مورد نیاز برای ارتباط سیگنال نه مقدار ثابتی است و نه قابل پیش بینی. تا موقعی که جایگذاری و سیم کشی به صورت کامل انجام نشود، مقدار تأخیر نمی تواند قابل محاسبه باشد. ساختمان اتصالات داخلی در مشخصات زیر تأثیر می گذارد: پیش بینی مشخصات تراشه کارآیی درون سیستمی بهره برداری منطقی پیش بینی مشخصات تراشه تأخیر زمانی ثابت بین هر دو سلول منطقی در یک تراشه با ساختمان اتصالات پیوسته به طراح توانایی آن را می دهد تا مشخصات خروجی یک تراشه CPLD را پیش بینی نماید، به عنوان مثال مدل زمانی شرکت Altera شامل پارامترهای لازم برای طراح است که مشخصات خروجی طرح را پیش بینی کند که شامل تأخیر ها در اتصالات داخلی می باشد. تأخیر زمانی که در ساختمان قطعه ای تراشه ها (FPGA ها) به وجود می آید، مستقیماً به تعداد قطعاتی که سیگنال در آنها عبور می کند، بستگی دارد. دانستن اینکه تعداد این قطعات چند تا است، تا موقعی که این طرح منطقی جایگذاری و سیم کشی نشده است غیرممکن است.(جایگذاری و سیم کشی معمولاً توسط نرم افزار صورت می گیرد) حتی یک تغییر منطقی کوچک در این مرحله شاید نیاز به تغییر بزرگی در نحوه سیم کشی داشته باشد که همین امر، در مشخصات کلی تراشه تأثیر می گذارد. مدل زمانی و پارامترهای تأخیر برای FPGA ها وجود ندارند چرا که تأخیر در آنها قابل محاسبه و پیش بینی نیست. CPLD ها به عنوان یک تراشه با کارآیی درون سیستمی بالا شناخته می شوند که این، نتیجه مستقیم ساختار پیوسته آنها وسیستم سیم کشی و اتصالات داخلی کارآمد آنها می باشد. تأخیرهای CPLD به صورت جمع شده نیست به این معنی که تأخیر یک سیگنال از راهی که سیگنال می پیماید تا از نقطه ای به نقطه دیگر برسد، کاملاً مستقل است و سیگنالهایی که باید قسمت های مختلفی را طی کنند تا به مقصد برسند، اختلاف بسیار جزئی در انحراف سیگنالهای نهایی ایجاد می کنند. در مقابل، تأخیر در FPGA ها خاصیت جمع شدن دارد. وقتی تعداد قطعات داخلی که سیگنال از آنها عبور می کند رو فزونی گذارد، تأخیر نیز به همان نسبت افزایش پیدا می کند. در صورتی که یک سیگنال از دو راه به مقصد برسد دارای تأخیر متفاوتی خواهد بود که این واقعیت، محدودیت های بسیاری سبب می شود. بنابراین CPLD ها نسبت به FPGA های هم حجم خود کارآیی بیشتری دارند. کارآیی یک تراشه توسط مؤسسه PREPتعیین می شود( اتحادیه تولید کنندگان PLD که استانداردهایی را اندازه گیری میزان ظرفیت و کارآیی PLD هاتعیین می کنند). سرعت متوسط نمادیمن(ABS) در CPLD ها وFPGA های شامل تعداد مساوی گیت منطقی، در شکل زیر آمده است. ABS با اندازه گیری متوسط نشانهای ورودی و خروجی به دست می آید که توسط PREP اندازه گیری و نشان داده شده است. بهره برداری از گیت های منطقی سلولهای منطقی در FPGA ها معمولاً به صورت دانه های بسیار ریز و جداگانه وجود دارند. به همین علت به سلولهای منطقی بیشتری به CPLD ها برای به کارگیری یک تابع، احتیاج دارند. به علت اینکه سلولهای منطقی قسمت کمی از یک طراحی را شامل می شوند، بیشتر مسئولیت های یک طرح بر دوش ساختمان داخلی قطعه ای FPGA ها است. بنابراین سیم بندی داخلی نامناسب FPGA ها تأثیر نامطلوبی بر روی بهره برداری از آنها خواهد گذاشت، همانطور که بر روی کارآیی درون سیستمی آنها تأثیر منفی می گذارد. وقتی یک طرح پیچیده تر شود احتمال ناهمخوانی هم افزایش می یابد و همه اینها سبب می شود فاکتور بهره برداری منطقی FPGA پایین بیاید. تکنولوژی ساخت تراشه تکنولوژی ساخت PLD ها با 0.8 micron CMOS و(DLM)(لایه فلزی دوگانه) است. اما در بسیاری از کارخانجات 1.0 micron CMOS وDLM هم مشاهده می گردد. پیشرفت در هر کدام از دو تکنولوژی فوق (تعداد لایه ها و اندازه کوچکترین ترانزیستور) سبب افزایش کارآیی و کاهش قیمتها می شود اما این مهم خود به معماری تراشه ها بستگی دارد. به دلیل ماهیت ساختمانی پیوسته اتصالات داخلی CPLD ها، ساختCPLD ها از FPGA ها ساده تر است. ساختمان پیوسته اتصالات CPLD ها شامل تعداد زیادی خطوط فلزی می شود که به صورت متقاطع درکل سطح تراشه قرار دارد. همین امر سبب می شود تا برای اتصال آنها به سلولهای منطقی ترانزیستورهای کمتری داشته باشیم. از نقطه نظر دیگر، اگر بتوان به جای دو لایه فلز، سه لایه فلزی(TLM) برای تراشه تعبیه نمود می توان کارآیی آن را تا حد قابل توجهی بهبود بخشید. به عنوان مثال خانواده FLEX 8000A ازشرکت Altera را در نظر بگیرید. این خانواده بر پایه تکنولوژی 0.6 میکرون و TLM ساخته شده است ساختمان سه بعدی اتصالات داخلی آن، سه لایه فلزی را طلب می کند. اگر بخواهید مثلاً 30/000 مربع را در یک تراشه جا دهید می توانید از یک ساختمان دو طبقه و در هر طبقه 15/000 مربع استفاده کنید و یا از یک ساختمان سه طبقه استفاده کنید که در هر طبقه آن 10/000 مربع جای گرفته است. واضح است که با تکنولوژی TLM حجم تراشه ثابت می ماند اما قسمت مرده تراشه به طور قابل توجهی کاهش پیدا می کند. با کم کردن قسمت مرده یک تراشه می توان به کارآیی یک تراشه افزود و در عین حال سبب پایین آمدن قیمت تمام شده آن شد. با کاهش اندازه ترانزیستور از 0.8 میکرون به 0.6 میکرون می توان قسمت مرده تراشه را کاهش داد. معمولاً قسمت مرده در FPGA ها ثابت است زیرا تا یک جای محدود می توان اندازه ترانزیستورها را کوچک نمود. (تعداد خیلی کمی از تکنولوژی TLM و 0.6 میکرون استفاده می کنند.)یک FPGA که از TLM استفاده می کند عملاً نمی تواند در لایه های بالایی کارآیی صد درصد داشته باشد و بیشتر حجم قابل استفاده FPGA ها در قسمت پایین آنها است اما در CPLD ها به دلیل ساختمان آنها این مشکل وجود ندارد. زبان توصیف سخت افزاری AHDL زبان توصیف سخت افزاری AHDL ، یک زبان سطح بالاست که توسط شرکت ALTERA به منظور برنامه ریزی تراشه های PLD ساخت همین شرکت طراحی شده است. در نرم افزار MUX+PLUSII امکان پیاده سازی طرح به زبان AHDL ، VHDL و همچنین طراحی به صورت شماتیک وجود دارد. هر برنامه AHDL در ساده ترین حالت، از دو قسمت Sub design و Logic تشکیل شده است. در قسمت Sub design ورودیها و خروجیهای مدار معرفی می شوند و در قسمت Logic ، عملکرد مدار توصیف می گردد.قسمت Logic با کلمه کلیدی Begin آغاز شده و با کلمه کلیدی End خاتمه می یابد. در قسمت Variable می توان متغیرهای محلی، NODE ها و یا نسخه هایی از مدارهای دیگر را برای استفاده تعریف نمود. مهمترین قسمت هر برنامه، دستوراتی است که در قسمت Logic قرار دارند و عملکرد مدار را تشریح می کنند. کلیه دستوراتی که بینBegin و End قرار دارند به موازات یکدیگر اجرا می شوند. بنابراین AHDL یک زبان همروند(Concurrent) است. ساختارهایی که درAHDL برای توصیف مدارها استفاده می شوند بسیار ساده هستند. دستورات ابتساب به منظور مقدار دهی به خروجی های مدار و یا متغیرهای میانی مورد استفاده قرار می گیرند. عملگرهای منطقی مورد استفاده شامل ,NOR ,NAND ,XOR ,OR ,XNOR AND و NOT می باشد. عملگرهای ریاضی مورد استفاده در این زبان جمع، تفریق و پیشمندهای مثبت و منفی برای مشخص کردن علامت اعداد محدود می شود. توسط عملگرهای مقایسه می توان حالتهای مساوی، نامساوی، بزرگتر کوچکتر، بزرگتر یا مساوی و کوچکتر یا مساوی را آزمایش نمود. یکی دیگر از ساختارهای مفید این زبان TABLE است که توسط آن می توان جدول درستی (صحت) را بدون نیاز به استخراج معادلات پیاده سازی نمود.دستورهای شرطی در این زبان IF-THEN- ELSE و CASE می با شند.به کمک این دستورات می توان از اجرای برخی دستورات اضافی جلوگیری نمود.لازم به ذکر است که دستورات حلقه در این زبان پیاده سازی نشده اند. توسط این زبان ماشین های حالت به سادگی پیاده سازی می شوند.برای پیاده سازی یک ماشین حالت،ابتدا باید آن را


دسته‌بندی نشده

سایت ما حاوی حجم عظیمی از مقالات دانشگاهی است . فقط بخشی از آن در این صفحه درج شده شما می توانید از گزینه جستجو متن های دیگری از این موضوع را ببینید 

کلمه کلیدی را وارد کنید :

دسته بندی: دسته‌بندی نشده

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب مرتبط

دسته‌بندی نشده

3 (1140)

واژه «شطرنج»تلفظ فارسی «چاتورانگا » است کلمه ای که در زبان سانسکریت برای نام گذاری این بازی به کار برده می شود،جایی که معمولاً از آن به عنوان نخستین زادگاه این بازی یاد می شود. اگر ادامه مطلب…

دسته‌بندی نشده

3 (1141)

بررسی تاریخ شناخت تاریخچه و علل پیدایش شهر شهر نیشابور مانند سایر شهرهای استان خراسان جزء اولین مراکز مسکونی است که اقوام آریایی پس از ورود به ایران در آن سکنی گزیدند. خراسان قدیم به ادامه مطلب…

دسته‌بندی نشده

3 (1142)

بنام خدا سازمان صنایع کوچک و شهرکهای صنعتی ایران شرکت شهرکهای صنعتی مازندران معاونت صنایع کوچک طرح امکان سنجی "پارچه بافی" پاییز 85 فهرست مطالب فصل اول بررسی بازار مطالعه و شناخت محصول...............................................................................................................................4 عوامل موثردر ادامه مطلب…

background