دسته بندی | کامپیوتر و IT |
فرمت فایل | 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 میباشد.
دسته بندی | علوم انسانی |
فرمت فایل | doc |
حجم فایل | 15 کیلو بایت |
تعداد صفحات فایل | 16 |
ترجمه مقاله بررسی تکنولوژی F.P.G.A در 16 صفحه ورد قابل ویرایش
since the beginning of the FPGA technology, Xilinx has pushed the boundaries of reconfiguration . In earlier FPGA families, it was only possible to reconfigure the whole FPGA. With the introduction of the Virtex FPGA families, it became possible to partially configure an FPGA. It is also now possible to reconfigure a remote FPGA via the internet using Xilinx internet Reconfigurable Logic (IRL) technology. However, only a few companies a few of all FPGA designs make use of IRL technology, because of the perception it is expensive, complicated, and mostly a proprietary solution.
What if we could securely reconfigure FPGAs in the field simply by sending an - email message? In this article. We will show you just how easu and cost- effective that can be.
Protocol stack
Xilinx IRL reconfiguration technology uses the same transmission protocols as everyday Internet e-mail:
CP/IP Transmission controls Protocol over Internet Protocol transports the e-mail. Over the Internet to its destination. SMTP Simple mail Transfer Protocol is used to deliver the message. POP 3 post office Protocol3 retrieves the messages. Each layer of the protocol stack is an abstraction level hiding details from other layers on top or below. For example, the network access layer does not need to know what kind of data it is carrying.
Figure 2- Basic design setup Fail- safe setup You can make the download more reliable by storing the downloaded bitstream into semipermanent memory (flash RAM) . The FPGA can then be reconfigure form the flash memory.
Figure3- safe download An even more secure solution is to work with two memories. A basic configuration can be loaded into the FPGA when it is shipped from the manufacture. During operation in the field, the microcontroller can connect to the Internet and download a new configuration into the second memory. The new configuration bitsrream would be downloaded into the FPGA at next boot.
When the download works, the new configuration will be used. If the new programming bistream fails, the microcontroller will l boots again from original memory.
Internet Microcontrollers Internet microcontrollers for FPGAs come in the MicroBlaze software and the hardware-embedded Power pc405 processor in Virtex- II pro device. (As a point of interest, the Virtex-II pro platform FPGA can be configured with both the MicroBlaze software and the Power PC 405 processor, but the is beyond the scope of this article).
While there are significant advantages of having microcontrollers onboard Virtex platform FPGAs, there are also factors, in this design case, that require special consideration.
In both cases of soft and hard microcontrolles, the Internet protocol stack must be programmed (ported) onto the FPGA. The FPGA must get a basic (possible partial) bitstream to download the microBlaze controlles, its memory and peripherals. The Power PC Virtex- II pro platform FPGA must have memory and peripherals downloaded before it s able to boot. The small control algorithm that was done in the previous description within the external microcontrollers must now be impleemented in a small CoolRunner CPLD.
Figure 4- Internal processor In either case, the first bitstream must contain the basic application of the FPGA. This way the system can operate as a standalone unit with out problems. However, during operation, the FPGA microcontroller can contact the internet and download new bitsreams as they became available.
The basic setup for external microcontrollers described above cannot be applied to internal microcontrollers, because the downloaded bitstream must be stored by the FPGA in some semipermanent (flash) memory. The final design of embedded microcontrollers can have different levels of fail-safe operation, depending on the system requirements.
از ابتدای تکنولوژی F.P.G.A شرکت xilinx مرزهای این تکنولوژی جدید را پیمود. در خانواده های قبلی F.P.G.A امکان تغییر ساختار فقط بطور کمی امکان پذیر بود. با معرفی خانواده virtex F.P.G.A امکان تغییر پیکربندی (ساختار) برای یک F.P.G.A بوجود آمد. هم کانون امکان برنامه ریزی (تغییر ساختار) یک F.P.G.A در مکان دور بوسیله اینترنت با بکارگیری تکنولوژی xilinx با نام منطق قابل بارگزاری اینترنتی (IRL) امکان پذیر است به هر ترتیب تکنولوژی IRL برای استفاده در بخش کمی از طراحی های F.P.G.A و شرکتها به طور محدود استفاده میشود زیرا این تکنولوژی قیمت بالایی دارد و تا حدود زیادی پیچیده و بیشتر یک راه حل اختصاصی است. چه میشود اگر می توانستیم بوسیله ارسال یک Email ساده یک F.P.G.A را به طور ایمنی تغییر دهیم. در این مقاله ما می خواهیم به شما نشان دهیم که این کار چقدر آسان است و از لحاظ هزینه نیز چه مقدار میتواند مؤثر باشد.
Protocol stack - پشته پروتکل
تکنولوژوی IRL شرکت xilinx همان پروتوکلی را استفاده میکند که همه روزه در Email های اینترنتی استفاده میشود.
CP/IP : پشته CP/IP یک پشته کنترل پروتکل (CP) بر روی پروتکل اینترنت (IP) است که Email ها در اینترنت به مقصد می رساند. SMTP پروتکل انتقال Email در اینترنت برای ارسال پیامها استفاده میشود. Pop3 یا پروتکل پشته اداری پیامها را دریافت میکند، هر لایه پشته پروتکل جزئیات را از لایه های دیگر زیرین یا بالایی خود پنهان میکند، بعنوان مثال لایه دسترسی به شبکه (Network Pilcess) نیاز ندارد که بداند چه نوع داده ای در حال جریان است داده ها تصویر است یا صدا ویا چیز دیگر است این مساله برای لایه دسترسی به شبکه بی اهمیت است.
- تنظیم طرح پایه - تنظیم ایمنی از خط - شما می توانید عمل پیاده سازی و بارگذاری را با ذخیره سازی جریان داده، در یک حافظه موقت مثل حافظه Flash مطمئن تر کنید. به این ترتیب FPGA میتواند بوسیله حافظه Flash دوباره تنظیم شده، یک پیاده سازی مطمئن از بکارگیری دو حافظه راه حل مطمئن تری میباشد. تنظیمات اصل در یک FPGA میتواند توسط سازنده صورت پذیرد یک فضای کاری جدید میکروکنترلر میتواند در راه اندازی مجدد دوباره FPGA بارگذاری و پیاده سازی شود وقتی که تنظیمات دریافتی کار میکند تنظیمات جدید میتواند به کار رود اگر برنامه جدید ناقص انجام شود میکروکنترلرهای داخلی - میکروکنترلرهای داخل برای FPGA ها میتواند به شکل نرم افزار microBlazse و سخت افزارهای جانبی power pc405 در دستگاه های uitex-Iiprc تبین شوند. (بعنوان یک موضوع جالب می تواند مساله تنظیم یک uitex-Iiprc در FPGA بوسیله نرم افزار microBlaze و پردازنده power PC405 باشد که این مساله از موضوع مقاله خارج است) .
تا زمانیکه مزایای عمده ای از داشتن میکروکنترلرهای داخلی در virtex platform FPGA وجود دارد در آغاز مرحله طراحی و عمل وجود دارند لازم است مسائل زیر مدنظر قرار گیرند: در هر دو حالت میکروکنترلرهای سخت و فرم بخش اصلی اطلاعات (بخش ممکن) تا برای بارگذاری در microBlaze و حافظه و سایر تجهیزات جانبی دریافت کند pow erpl-virtexII در FPGA می بایست حافظه و ابزار پیاده سازی ناقص راه اندازی مجدد داشته باشد. یک الگوریتم کنترل کوچک که دربخش قبل کنترلرهای بیرونی پیاده سازی شده می بایست در بخش codRunner دوباره پیاده سازی شود.
پردازنده دائمی - در هر حال اولین جریان اطلاعات می بایست شامل بخش اصلی برنامه FPGA باشد در این حالت سیستم میتواند همچون یک واحد مجزا و بدون مساله باشد. در هر حال در فصل انجام عمل میکروکنترلر FPGA میتواند به اینترنت متصل شود و اطلاعات جدید را در صورتی که آماده باشد دریافت کند.
روش بارگذاری پایه که در مورد میکروکنترلرهای بیرونی گفته شد نمی تواند در مورد میکروکنترلرهای داخلی به کار رود به این دلیل که بارگذاری داده ها می بایست بوسیله یک FPGA و در حافظه موقت آن (flash) ذخیره شود. طرح نهایی از اتصال میکروکنترلرها میتواند طرح متفاوت اطمینان و عمل را داشته باشد و وابستگی زیادی به نیازمندی های سیستم دارد.