دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 47 کیلو بایت |
تعداد صفحات فایل | 30 |
مقاله بررسی FPGA & CPLD زمان برنامه نویسی VHDL در 30 صفحه ورد قابل ویرایش
مقدمه ای درباره FPGA & CPLD
برای آنکه بتوان بخش بزرگی از یک طرح را داخل یک تراشه منتقل نمود و از زمان و هزینه مونتاژ و راهاندازی و نگهداری طرح کاست، ساخت تراشههای قابل برنامه ریزی مطرح شد از جمله مزایای استفاده از تراشههای قابل برنامه ریزی در طراحی پروژهها عبارتند از :
- کاهش ابعاد و حجم
- کاهش زمان و هزینه طرح
- افزایش اطمینان از سیستم
- حفاظت از طرح
- حفاظت در برابر نویز و اغتشاش
FPGA ها ابزار سخت افزاری قابل برنامه ریزی ارزان قیمت را جایگزین کاربردهای فعلی کنترلرهای داخلی (Embedded Controllers) نمودهاند. به همین دلیل بازار آنها رشد گستردهای داشته است. علاوه بر این به جهت ارائه راه حلهای مناسب برای IC های سفارشی با عملکرد بالا موفقیت زیادی به دست آوردهاند. در واقع به نظر میرسد که FPGAها با توجه به ارزان بودن، نسل فعلی تراشههای ASIC را از رده خارج کنند. همین مزیت هزینه و عملکرد توجه زیادی را درحوزه تحقیقات به خود معطوف کرده است.
ویژگی استفاده از قطعات منطقی قابل برنامه ریزی (PLD) و FPGA، ارزان بودن قیمت و سرعت ورود آنها به بازار است.
قطعات ASIC، هزینههای توسعه مهندسی غیر قابل برگشت بالاتری دارند و در نتیجه اغلب، قیمت این محصولات بالاتر است، اما اساساً کارایی بالاتری دارند. این شیوههای مختلف طراحی محیطهایی را با مجموعهای از متدولوژی و ابزاهای مختلف CAD پدید میآورند.
در طول یک دهه گذشته، انواع مختلفی از سخت افزارهای قابل برنامه ریزی به سرعت پیشرفت کردهاند. این قطعات نامهای مختلفی دارند مثل سخت افزار قابل آرایش مجدد، سخت افزار قابل آرایش، سخت افزار قابل برنامه ریزی مجدد.
ایده اصلی و زیر بنایی معماری FPGA و CPLD بسیار ساده است. به طوری کلی میتوان مدارهای ترکیبی و ترتیبی را مستقیماً روی بستر سیلیکون ایجاد کرد. تراشههای ASIC با اینکه کارایی بالایی دارند اما تنها میتوانند یک نوع عملیات را انجام دهند.
از آنجایی که امکان توزیع هزینه توسعه بین چند کاربر وجود ندارد، قیمت ASIC ها معمولاً بیش از سیستمهای مبتنی بر ریز پردازنده معمولی میشود.
تکنولوژی تراشههای قابل برنامهریزی
قابلیت برنامه ریزی شدن مدارات مختلف و اتصالات متفاوت بر روی PLD به دلیل سوئیچهای قابل برنامه ریزی است که در این تراشه وجود دارد، این سوئیچها میبایست علاوه بر اشغال فضای بسیار کم دارای کمترین تأخیر زمانی باشند بطور کلی سوئیچهای قابل برنامه ریزی در PLD با استفاده از سه نوع تکنولوژی قابل پیاده سازی است.
1-استفاده از Anti – Fuse
2-استفاده از سلولهای حافظه موقت Sram
3-استفاده از گیتهای شناور EEPROM یا EPROM
Anti – Fuse
خصوصیت اصلی Anti – Fuseها تنها یک بار قابلیت برنامهریزی بودن، اشغال فضای کم و بالا بودن فرکانس کاری، به دلیل پایین بودن اثر مقاومتی و ظرفیت خازنی آنها است.
عیب اصلی این روش نداشتن قابلیت برنامه ریزی مجدد است و زمانی که یک بار برنامهریزی گردد دیگر به حالت اولیه برنمیگردد و مزیت اصلی آن فرکانس کاری بالا و اشغال فضای کم آن است این نوع PLDها نسبت به انواع دیگر PLDها نسبتاً گرانتر هستند.
SRAM
در روش SRAM از سلولهای حافظه به دو طریق استفاده میشود، در روش اول از یک سلول حافظه برای کنترل روشن یا خاموش شدن یک ترانزیستور استفاده میگردد که در این حالت خروجی سلول حافظه به بیس ترانزیستور یا گیت فت متصل می شود، با روشن یا خاموش شدن ترانزیستور یک مسیر وصل یا قطع میشود. در روش دوم سلول حافظه به ورودیهای انتخاب مالتی پلکسر وصل میشود. در این حالت با صفر یا یک شدن سلول حافظه مسیر خطوط عوض میشود، مهمترین عیب این روش پاک شدن برنامه ریزی با قطع تغذیه میباشد، تراشههایی که با این روش برنامه ریزی میگردند، میبایست با استفاده از یک سیستم جانبی با هر بار وصل شدن تغذیه تراشه برنامه ریزی گردد، این روش نسبت به روش Anti – Fuse فضای بیشتری اشغال میکند و تأخیر زمانی نیز بیشتر است.
روش برنامه ریزی EEPROM یا EPROM
مهمترین مزیت این روش پاک نشدن برنامه ریزی با قطع برق مهمترین عیب آن اشغال فضای زیاد این نوع ساختار سوئیچ میباشد.
تقسیم بندی PLDها
PLDها شامل قطعات کم ظرفیت و پرظرفیت میباشند. PLDهای کم ظرفیت (ساده ) معمولاً کمتر از 600 گیت قابل استفاده دارند و شامل محصولاتی چون PALها و GALها میشوند.
PLDهای ساده شامل سوئیچهای EEPROM یا EPROM و Anti – Fuse میباشند.
(High – Capacity – PLD) HCPLD بیشتر از 600 گیت قابل استفاده دارند و شامل CPLD و FPGA میشوند.
FPGAها ساختمان اتصالات داخلی گسسته دارند، در حالیکه CPLDها دارای اتصالات داخلی پیوسته میباشند.
در ساخت HCPLD ها از تکنولوژی EEPROM , EPROM , Sram و Anti – Fuse استفاده شده است.
انواع تراشه های برنامه ریزی
(Programable read only memoey) PRom
اولین تراشههای قابل برنامهریزی که به بازار عرضه شد حافظه فقط خواندنی PRom بود، در این تراشه خطوط آدرس بعنوان ورودی و خطوط دیتا به عنوان خروجی تلقی میشوند.
PRom شامل دستهای از گیتهای and غیر قابل برنامه ریزی و یک آرایه OR قابل برنامه ریزی است. PRom در حد یک حافظه است و قابلیت برنامهریزی یک مدار منطقی را ندارد.
(Programable logic array) PLA
اولین تراشه قابل برنامه ریزی که برای پیاده سازی مدار منطقی آرایه برنامه پذیر and و یک آرایه برنامه پذیر OR میباشد. دو اشکال عمده، هزینه گران ساخت و سرعت پایین آن است .
(Programable array logic) PAL
تراشه Pal دارای یک آرایه and قابل برنامه ریزی و یک آرایه OR تثبیت شده است.
GAL
تراشه GAL دارای یک آرایه and قابل برنامه ریزی و یک آرایه OR تثبیت شده است. تراشه GAL دارای سرعت بیشتر نسبت به تراشه PAL میباشد.
بعد از تراشههای فوق MPGAها و FPGAها به بازار آمدند.
MPGA: Mask programable gate array
FPGA: Field programable gate array
ساختار FPGA
بطور کلی تا کنون سه نوع معماری برای FPGA ها توسط کارخانههای مختلف سازنده ارائه شده است که عبارتند از:
1-آرایه دو بعدی متقارن Symetric matrix
2-آرایههای سطری row based
3-دریایی از گیتها sea of gates
بلوکهای FPGA
1-بلوکهای منطقی (Logic array Block) LAB
2-بلوکهای کنترل کننده I/o
3-اتصالات قابل برنامهریزی PIA
(Programable Interconnect array)
بلوکهای منطقی
بلوکهای منطقی شرکتهای سازنده FPGA از نظر اندازه ومنطق به کار رفته در آنها با هم تفاوتهای بسیاری دارند.
این بلوکها در FPGAها و CPLDهای Altera به نام LAB شناخته میشوند.
هر LAB میتواند شامل سه زیر بلوک Macrocell و Interconnect local و term logic باشد.
-تأخیر انتقالی (transport)
سیگنالها از سیمها همانند ادوات سوئیچینگ با یک آهنگ معین عبور میکنند و با تأخیری متناسب با طول مسیر مواجه میشوند. اما سیمها بر خلاف ادوات سوئیچینگ نسبتاً اینرسی کمتری دارند. در نتیجه سیمها، سیگنالهای با عرض پالس بسیار کوچک را انتشار میدهند و ما میتوانیم سیمها را به عنوان محیط انتشار تغییرات در مقدار سیگنال مستقل از عرض پالس مدل کنیم. در فنآوریهای جدید با رشد کاهش ابعاد، تأخیرهای سیم نیز مطرح میشوند، از این رو باید در پی راههایی برای کاهش طول سیمها بود، زیرا در این مدارات تأخیر سیمها قابل اغماض نخواهد بود.
اپراتورهای VHDL
1-شیءهای داده 2- نوعهای داده 3-عملگرها
- شیءهای داده در VHDL:
در VHDL سه کلاس برای شیءها وجود دارد: سیگنال، متغیر، ثابت
سیگنالها:
سیگنال شیای است که مقدار فعلی و آتی یک شیء را نگه میدارد. از این منظر که VHDL یک زبان توصیف سخت افزار است، سیگنالها نقش سیم را ایفا میکنند. سیگنالها در توصیف درگاه به عنوان ورودی و خروجی، در توصیف ساختاری به عنوان سیگنال و در معماری به عنوان سیگنال ظاهر میشوند. معرفی سیگنال بصورت زیر انجام میشود:
Signal signal_ name : signal_ type: = initial_ value ;
متغیرها:
تفاوت سیگنالها با متغیرها در این است که سیگنالها را در شبیه سازی میتوان طوری زمان بندی کرد که در یک زمان معین،مقداری را بپذیرند، در حالیکه به متغیرها در هنگام اجرای عبارت نسبت دهی مقدار داده میشود. در هر زمان میتوان چندین مقدار را برای زمانهای آتی سیگنال زمان بندی کرد. در مقابل در هر زمان تنها میتوان یک مقدار به متغیر نسبت داد. به همین جهت پیاده سازی شیء سیگنال با سابقهای از مقادیر آن همراه است ودر نتیجه نسبت به متغیرها به حافظه بیشتری نیاز دارد و زمان اجرای بالاتری دارد.
متغیرها به طور کامل با آنچه در زبانهای برنامه نویسی متداول به کار میروند معادل هستند و برای محاسبات درون روالها، توابع، پروسسها بکار می روند. معرفی متغیر به صورت زیر انجام میشود:
variable variable_ name : signal_ type: = initial_ value ;
ثابتها:
ثابتها باید در ابتدای شبیه سازی معرفی شوند و مقدارشان مشخص شود و نمیتوانند در طول شبیهسازی تغییر کنند. ثابتها میتوانند از هر نوع مجاز VHDL باشند. معرفی ثابتها بصورت زیر انجام میشود:
Constant Constant_ name : Constant_ type: = initial_ value ;
نوعهای داده در VHDL
1-نوعهای داده استاندارد:
تعریف نوعهای استاندارد در بسته standard قرار دارند. بسته استاندارد را کلیه عرضه کنندگان ارا ئه میکنند. این بسته حاوی تعاریف نوعها و توابع از پیش تعریف شده زبان VHDL میباشد.