بخشی از پاورپوینت
اسلاید 1 :
آرایه های دروازه ای قابل برنامه ریزی میدانی
Field Programmable Gate Arrays (FPGAs)
مباحث ویژه در الکترونیک
اسلاید 2 :
مقدمه
ASIC چیست؟
مخفف کلمات Application Specific Integrated IC است.
این واژه معمولا به مدارهای مجتمعی که صرفا برای کاربردهای خاص ساخته می شوند اطلاق می شود.
از این نوع مدارهای مجتمع در ساخت انواع میکروپروسسورها، انواع حافظه های خواندنی-نوشتنی (RAM) و فقط خواندنی (ROM) استفاده می شود.
مزایا
در صورتی که مدارهای با کاربرد خاص به صورت مدار مجتمع در آیند، کاهش قابل توجهی در اندازه مدار خواهیم داشت.
با کاهش اندازه مدار
یکپارچگی سیگنال ها در مدار افزایش می یابد.
سرعت مدار افزایش می یابد.
اسلاید 3 :
معایب
معمولا از زمان طراحی این مدار تا تولید آن توسط کارخانجات سازنده آی سی زمان نسبتا طولانی نیاز است.
به دلیل آن که تولید توسط کارخانجات تولید آی سی و در یک فرآیند خارج از روال آن انجام می شود، هزینه تمام شده بالایی دارند.
معمولا برای تولید انبوه استفاده می شوند و برای تعداد کم مقرون به صرفه نمی باشند.
اسلاید 4 :
FPGA چیست؟
مخفف کلمات Field Programmable Gate Array است.
این واژه معمولا به مدارهای مجتمعی که برای پیاده سازی مدارهای دیجیتال قابل برنامه ریزی هستند اطلاق می شود.
از این نوع مدارهای مجتمع در ساخت انواع میکروپروسسورها، انواع حافظه ها، مدارات ورودی-خروجی و پردازش تصویر استفاده می شود.
مزایا
در صورتی که مدارهای دیجیتال در یک FPGA قرار گیرد، کاهش قابل توجهی در اندازه مدار خواهیم داشت.
با کاهش اندازه مدار
یکپارچگی سیگنال ها در مدار افزایش می یابد.
سرعت مدار افزایش می یابد.
اسلاید 5 :
ظرفیت بالای فشرده سازی دارند.
قیمت تمام شده آنها بسیار پایین می باشد
زمان عرضه این آی سی ها به بازار بسیار کم می باشد.
امنیت مدار بالا رفته و امکان کپی کردن آن از بین می رود.
معایب
سطح سیلیکون FPGA به صورت بهینه مورد استفاده قرار نمی گیرد.
تاخیر و توان مصرفی آنها نسبت به مدارات ASIC بیشتر است.
کاربردها
اگرچه نمی توان محدوده خاصی برای کاربرد این مدارها تعیین کرد با این وجود برخی از کاربردهای آنها عبارتند از:
کارتهای ورودی-خروجی، فیلترهای دیجیتال، میکروکنترلر و میکروپروسسورهای خاص، پردازش سیگنال و تصویر، سیستم های مخابراتی و ابزار دقیق و سیستم های نظامی
اسلاید 6 :
شرکت های سازنده
مهم ترین شرکت های سازنده FPGA عباتند از:
Xilinx, Altera, Lattice, Actel
مهم ترین سهم شرکت های سازنده از بازار FPGA
تاریخچه آی سی های دو شرکت مهم تولید کننده
اسلاید 7 :
درباره زایلینکس (Xilinx)
این شرکت در سال 1984 تاسیس گردید.
بیش از 2600 کارمند دارد.
بیش از نیمی از محصولات FPGA مورد نیاز را در دنیا تامین می کند.
با سازندگان مهمی چون IBM، UMC و Seiko مشارکت دارد.
مهمترین نرم افزارهای شبیه سازی:
ISI, Fandation
درباره آلترا (Altera)
این شرکت در سال 1983 تاسیس گردید.
در سال 1992 ساختار جدول جستجو (Look Up Table) را معرفی نمود.
دومین شرکت تولید کننده آی سی های FPGA در دنیا است.
با شرکت TSMC مشارکت دارد.
مهمترین نرم افزارهای شبیه سازی:
Quartus II, Max Plus II
اسلاید 8 :
ساختار داخلی FPGA
چگونه می توان مدارهای دیجیتالی مختلف را درون یک FPGA پیاده سازی کرد؟
همانطور که می دانیم برای هر مدار دیجیتال با هر تعداد ورودی و خروجی می توان یک جدول درستی (Truth table) رسم نمود.
در جدول درستی تمامی حالت های ممکن ورودی به تصویر درآمده و به ازای هر یک از این حالات خروجی تعیین می گردد.
فرض کنید مدار مورد نظر 4 ورودی و 1 خروجی دارد.
در این حالت می توان این مدار را با یک RAM با 4 بیت ورودی آدرس و 1 بیت خروجی داده جایگزین نمود.
RAM مورد نظر دارای 16 آدرس مختلف، معادل 16 حالت ورودی جدول درستی است که در هر آدرس خروجی تابع مورد نظر نوشته می شود.
برای پیاده سازی مدارهای بزرگتر می توان از مجموعه ای از این بلوک های حافظه استفاده نمود.
بسته به این که ورود مدار چه باشد داده ذخیره شده در یکی از خانه های RAM در خروجی ذخیره می شود.
اسلاید 9 :
در این مدارها به دلیل استفاده از RAM، مدار ذخیره شده در FPGA فرار بوده و پس از قطع برق از بین می رود.
بنابراین پس از قطع برق، پیکربندی مجدد لازم است.
معمولا کل برنامه را درون یک PROM کپی می کنند تا پس از وصل برق، مجددا درون FPGA بارگذاری شود.
استفاده از RAM باعث افزایش انعطاف پذیری می گردد. یعنی هر زمان که بخواهیم می توانیم با پیکر بندی مجدد، مدار داخلی را عوض کنیم.
چهار بلوک زیر می تواند در ساختار داخلی FPGA به عنوان بلوک های پایه مورد استفاده قرار گیرد.
PROM (Anti fuse)
EEPROM
FLASH
RAM
سازندگان دنیای FPGA، به کوچکترین واحد تشکیل دهنده (یعنی هر یک از حافظه های مورد استفاده) اصطلاحا
LUT (Look Up Table)
می گویند.
اسلاید 10 :
یک مدار منطقی ثابت
مثالی از روش پیاده سازی یک منطق برنامه پذیر با 3 ورودی و یک خروجی با استفاده از آنتی فیوز
اسلاید 11 :
چگونه می توان مدارهای ترتیبی را درون یک FPGA پیاده سازی کرد؟
مدارهای ترتیبی (Sequential) نیز می توانند درون یک FPGA پیاده سازی شوند.
در FPGA، خروجی هر LUT به صورت مستقیم و همچنین از طریق یک فلیپ فلاپ به یک مالتی پلکسر وارد می شود.
بسته به ورودی کنترل MUX، مدار ترکیبی یا ترتیبی خواهد بود.
واحد پایه در FPGA
Xilinx:LC – Logic Cell
Altera:LE – Logic Element
از ترکیب دو سلول منطقی (Logic Cell) یک Slice به وجود می آید
اسلاید 12 :
یک Slice که از ترکیب دو LC تشکیل شده است.
هر Slice دارای 4 خروجی می باشد.
2 خروجی حافظه و 2 خروجی ترکیبی
از ترکیب 2 عدد Slice یک
Configurable Logic Block (CLB)
تشکیل می گردد.
CLB در واقع اصلی ترین بخش از هر FPGA است که توابع منطقی را پیاده سازی می کند.
در سری Stratix II خانواده Altera اصطلاحا
ALM (Adaptive Logic Module)
نامیده می شود.
در Slice مداری برای انتقال رقم نقلی نیز وجود دارد.
اسلاید 13 :
جمع بندی
اسلاید 14 :
ساختار داخلی یک FPGA معمول
اسلاید 15 :
در اغلب FPGA های جدید علاوه بر تعداد زیاد CLB، برخی امکانات دیگر نیز برای تسهیل در پیاده سازی مدارهای دیجیتال پیچیده تر وجود دارد.
یکی از مهم ترین این امکانات RAM داخلی غیر از نمونه های کوچک موجود در LUT ها است.
در صورتی که بخواهیم مداری با تعداد زیاد ورودی را پیاده سازی نماییم، به جای استفاده از تعداد زیاد CLB از بخشی از همین حافظه داخلی استفاده می کنیم.
به عنوان مثال، مدل اسپارتان 2 از شرکت زایلینکس، دارای بلوک های هر کدام با ظرفیت 4096 بیت است.
جدول نحوه استفاده از حافظه داخلی اسپارتان 2
اسلاید 16 :
ضرب کننده
در بعضی محصولات جدید شرکت های Xilix, Altera بلوک های ضرب کننده وجود دارد.
عمل ضرب در این محصولات را می توان توسط ضرب کننده های داخلی 18 بیتی نیز با سرعت بالاتر انجام داد.
این ضرب کننده ها معمولا در کارهای پردازش سیگنال کاربرد دارند.
میکروپروسسور داخلی
در بعضی محصولات جدید شرکت های Xilix, Altera مثل Virtex-II Pro یک میکروپروسسور داخلی وجود دارد.
این FPGA کاملا تخصصی است و برای کاربردهای تخصصی استفاده می شود.
PowerPC در واقع یک میکروپروسسور داخلی است که توسط شرکت IBM داخل FPGA قرار داده شده است.
اسلاید 17 :
مراحل مختلف ساخت یک FPGA
طراحی ابتدایی
در این مرحله باید مدار مورد نظر خود را طراحی نماییم.
روش معمول برای پیاده سازی مدار استفاده از برنامه های سطح بالا برای برنامه ریزی مدار است.
البته در بسیاری از نرم افزارهای شبیه ساز، امکان این که شماتیک مدار را رسم کرد نیز وجود دارد.
این نرم افزارها قادرند خروجی متنی برنامه را نیز به زبان های مرسوم تولید کنند.
HDL Designer (HDS) یکی از این نرم افزارهاست.
البته این امکان معمولا نیاز به دانستن یک زبان برنامه نویسی را برای کارهای پیچیده تر منتفی نمی کند.
اسلاید 18 :
دو زبان اصلی برنامه نویسی FPGA عبارتند از:
VHDL, Verilog
برخلاف برنامه های مرسوم که معمولا به صورت خط به خط اجرا می شوند، این برنامه ها بر اساس رخدادها (Cuncurrent) اجرا می شوند. به همین دلیل معمولا از کلمه ((کد)) به جای ((برنامه)) استفاده می شود.
VHDL: Very High Speed Description Language
زبان توصیفی با سرعت خیلی بالا
در این مرحله، معمولا کد VHDL را در یک فایل با پسوند .vhd ذخیره می کنند.
از آنجای که هر طرح پیاده شده با کد VHDL را بعدا می توان به صورت پکیج آماده در سایر طرح ها نیز استفاده کرد، معمولا نام فایل را همان موجودیت (entity) مورد استفاده در کد قرار می دهیم.
اسلاید 19 :
شبیه سازی
برنامه هایی وجود دارند که کد مورد نظر ما را گرفته و عملکرد مدار را برای ما شبیه سازی می کنند.
به این ترتیب که ما شکل ورودی های مدار را برای آنها تعیین کرده و این نرم افزارها، خروجی های مختلف را به ما می دهند.
به وسیله این نرم افزارها می توانیم از عملکرد مدار خود به ازای حالت های مختلف ورودی، قبل از پیاده سازی آن بر روی FPGA مطمئن شویم.
دو نرم افزار معروف برای شبیه سازی عملکرد کدهای VHDL و Verilog عبارتند از:
ModelSim از شرکت Model Technology
LDV از شرکت Cadence
اسلاید 20 :
برای شبیه سازی عملکرد مدار، معمولا لازم است که غیر از برنامه اصلی یک برنامه دیگر نوشته شود.
این برنامه که صرفا برای تست مدار می باشد، test fixture (برای برنامه Verilog) و test bench (برای برنامه VHDL) نامیده می شود.
معمولا برنامه تست به این صورت است که شکل موج های مختلف که حاوی تمام حالات ممکن ورودی می باشد تولید می شود.
معمولا در نوشتن برنامه test bench، طراح به بسیاری از نکات منفی و حالت هایی که در طراحی مدار اصلی از آن غافل شده است پی می برد.