معرفی چیپ های FPGA

ارسال شده در: FPGA | 0

به نام خدا

معرفی چیپ های FPGA

FPGA چیست ؟

اگر بخواهیم بدون مقدمه به توضیح FPGA بپردازیم باید گفت FPGA یا Field-Programmable Gate Array ( آرایه گیت های قابل برنامه ریزی ) یک مدار مجتمع است که می توان آن را پس از اتمام فرآیند تولید ، مطابق نیاز طراح برنامه ریزی نمود و روابط منطقی بین پایه های ورودی و خروجی را تغییر داد از این رو به این تراشه ها قابل برنامه ریزی می گویند. روابط منطقی درون این تراشه ها را اغلب با زبان توصیف سخت افزار ( HDL یا Hardware Description Language ) مشخص می کنند ( علاوه بر HDL از طراحی شماتیک ، State Diagram و برنامه نویسی به زبان های دیگر مانند C نیز می توان استفاده کرد که توسط برنامه ای که بواسطه آن طراحی را انجام می دهید به کد HDL تبدیل می گردد ) . به دلیل استفاده مستقیم از گیت ها در انجام عملیات ها ، این تراشه ها دارای سرعت و دقت بسیار بالا هستند.

ممکن است این سوال برای شما پیش بیاید که وقتی میکروکنترلر هایی مانند AVR و ARM در دسترس ما هستند به چه دلیلی باید سراغ FPGA برویم ؟ در پاسخ باید گفت هرگز سعی نکنید در پروژه های غیر تحقیقاتی ، میکروکنترلر را با FPGA مقایسه کنید یا این دو را به جای یکدیگر استفاده کنید ، دلیل این ادعا نیز کاملا مشخص است.

مقایسه FPGA و میکروکنترلر :

میکروکنترلر ها دارای CPU و جافظه های جانبی و … هستند . میکروکنترلر ها برای کاربرد مشخصی ساخته نشده اند و هر طراح می تواند برنامه دلخواه خود را درون آنها برنامه ریزی کند ، منابع و دستور العمل های اجرایی یک میکروکنترلر مشخص همواره ثابت است در حالی که می تواند حاوی هزاران برنامه مختلف را روی خود جای دهد اما در مورد FPGA ها چنین نیست ، در یک FPGA هیچ CPU پیشفرضی وجود ندارد که شما عملیات های مورد نیازتان را با آن انجام دهید ، بلکه شما باید بلوک های مختلف مورد نیاز خود را در داخل FPGA پیاده سازی کنید و در نهایت از آنها برای رسیدن به نتیجه دلخواهتان استفاده کنید. به عنوان مثال برای اینکه بتوانید در FPGA چند عدد را جمع کنید باید بوسیله ی گیت ها یک بلوک جمع کننده طراحی کنید و از آن پس می توانید در سایر بلوک ها از آن استفاده نمایید.

FPGA ها به دلیل داشتن بلوک های منطقی خاص برای انجام هر عملیات و انجام پردازش های موازی ، با سرعت بسیار بالا عملیات های مورد نظر را انجام می دهد و از نظر سرعت و دقت نمی توان FPGA را با میکروکنترلر ها مقایسه کرد. از نظر هزینه اجرا نیز اغلب پروژه های FPGA گرانتر و هزینه بر تر از پروژه های میکروکنترلر هستند و در صورتی که بخواهید کارهایی را که با یک میکروکنترلر انجام می دادید با FPGA انجام دهید ، باید وقت و هزینه بیشتری صرف اجرا کنید از این رو معمولا FPGA و میکروکنترلر هر کدام کاربرد های خاص خود را دارند و به جای یکدیگر استفاده نمیشوند.

 

از FPGA اغلب برای ساخت دستگاه های مخابراتی پرسرعت ، دستگاه های صنعتی و تجاری خیلی حساس و سریع ، دستگاه های نظامی و مصارف این چنین بهره می برند. FPGA ها دارای چند هزار تا چند میلیون گیت در داخل خود هستند ، که تعداد گیت های یک FPGA بر قیمت آن تاثیر اساسی می گذارد. در هر پروژه ای شما باید بدانید از چه تراشه ای و با چه تعداد گیت استفاده کنید تا بهینه ترین حالت ممکن را بوجود آورید. شرکت های مختلفی تراشه های FPGA را تولید می کنند که شرکت Xilinx و Altera در ایران بیشتر شناخته شده اند.

 

آرایه گیت های برنامه پذیر بر اساس معماری داخلی ، پیچیدگی و تعداد گیت ها به دسته های متلفی مانند PAL,PLA,CPLD,FPGA و … تقسیم می شوند که هرکدام از این دسته ها برای مصارف خاصی مورد استفاده قرار می گیرد.

برخی از FPGA های پیشرفته امروزی علاوه بر گیت های منطقی دارای منابع داخلی دیگری مانند RAM , مبدل آنالوگ به دیجیتال ADC و مبدل دیجیتال به آنالوگ DAC نیز هستند که به کاربر کمک می کند تا در پروژه هایی که به این امکانات نیاز دارد ، از این منابع داخلی استفاده نماید و یک سیستم کامل را در داخل تراشه پیاده سازی نماید که به افزایش کارایی ، سرعت و دقت FPGA ها کمک می کند.

 

در مورد موارد کاربرد FPGA ها می توان اینطور گفت که FPGA ها را می توان برای تست طراحی های HDL به صورت عمل به کار برد و در صورت مطلوب بودن نتیجه تراشه ASIC آن را تولید نمود ( ASIC چیست؟ تراشه ASIC یا Application-Specific Integrated Circuit به تراشه ای گفته می شود که برای انجام عملیات خاصی طراحی و ساخته می شود ، اغلب ASIC ها با زبان HDL طراحی می شوند و سپس کارخانه های سازنده با تبدیل طراحی به گیت های منطقی NAND یا NOR آن را می سازند ) . تراشه های ASIC معمولا با تعداد بسیار بالا و هزینه پایین تولید می شود و در عین حال که قیمت تمام شده قطعه بسیار پایین می آید اما هزینه گزافی باید به علت تعداد بالا پرداخته شود بنابراین برای کارهایی مناسب ایت که قصد دارند تراشه را به تعداد انبوه استفاده کنند یا روانه بازار کنند ، اما معمولا زمانی که قصد تولید انبوه یک تراشه را نداریم و فقط می خواهیم تعداد مشخص و محدودی از یک تراشه سفارشی تولید کنیم ، بهترین گزینه استفاده از FPGA ها یا CPLD ها می باشد.

مزیت های FPGA :

FPGA ها در پیاده سازی توابع نسبتا پیچیده و پیچیده دیجیتال به کار می روند که نیاز به سرعت پردازش بالایی دارند. علاوه بر این کاهش سخت افزار مورد نیاز و همچنین برنامه نویسی ساده و استاندارد نیز از دیگر مزیت های استفاده از FPGA است. آنچه که قابلیت و توانایی FPGA ها را بالا برده است توانایی­هایی است که پاره­ای از آنها در زیر آمده است:
  • کاربرد اصلی FPGA در ایجاد هسته های پردازشی می باشد.
  • مدارهای دیجیتال پیچیده به آسانی در آنها پیاده سازی می شوند.
  • تست مدار سریع است.
  • برای تولیدات با تیراژ پایین ارزان تمام می شود .
  • متناسب با نیاز، تغییرات لازم را در طراحی می توان انجام داد و مجدا FPGA را با ساختار جدید برنامه ریزی نمود.
  • قابل برنامه ریزی توسط کاربر است.
  • می توان چند تا هسته پردازشی داخل یک FPGA تعریف کرد تا در یک زمان واحد چندتا کار را باهم انجام بدهد مثلا شما می توانید با یک FPGA معمولی حدود ۲۰۰ تا هسته atmega32 تعریف کنید و ۲۰۰ تا کار را همزمان انجام بدهید.
  • میکروکنترلرها و DSP ها و میکروپروسسورها به صورت سریال دستورالعمل اجرا می­کنند و قابلیت پردازش بصورت موازی در آنها وجود ندارد، اما در FPGA قابلیت پردازش موازی وجود دارد و قابلیت انجام عملیات بصورت همزمان را دارد.
  • كاربردهای FPGA خیلی تخصصی می­باشد ودر اكثر موارد به عنوان پردازشگر در مدارات پردازشی استفاده می­شود. سرعت بالای FPGAها آنها را مساعد کارهای پردازشی سنگین مثل پردازش تصویر و پردازش صدا می کند و سرعت این پردازش نسبت به سیستم­های دیگر خیلی بالاتراست.
  •  FPGA ها در پیاده سازی توابع پیچیده­ی دیجیتالی به کار می­روند که نیاز به سرعت پردازش بالایی دارد.
  • کاهش سخت­افزار مورد نیاز و همچنین برنامه­نویسی ساده و استاندارد نیز از دیگر مزیت­های استفاده از FPGA است.
  • سرعت اجرای توابع منطقی در FPGA ها بسیار بالا و در حد نانو ثانیه است.
  • امکان تعریف هر یک از پایه های IC به صورت ورودی یاخروجی یا هر دو
  • امکان تعریف وضعیت عملکرد هر پایه در هنگام استفاده یا عدم استفاده.به عنوان مثال عملکردHIGH امپدانس(Z)در هنگام عدم استفاده و یا قرار گرفتن در یک وضعیت منطقی صفر یا یک در هنگام عدم استفاده.
  • امکان تشخیص تغیبیرات سطوح یا لبه های پایین رونده یا بالا رونده منطقی اعمال شده به هر پایه.
  • امکان تغییر متناوب معمار ی داخلی با استفاده از سری های Bootable که نقشه معماری آنها در یک حافظه خارجی نگهداری شده و با تغییر آدرس برنامه ریزی می توان IC را بامعماری جدید Boot کرده و از آن استفاده کرد.
  • امکان برنامه ریزی در مدار (ISP)که این قابلیت را به وجود می آورد تا بدون اعمال تغییراتی که سخت­افزاری هستند و تنها از طریق پورت برنامه ریزی jTAG، معماری داخلی IC را تغییر داد .
  • کاهش حیرت انگیز حجم مدار و مجتمع سازی در ابعادی تنها به مساحت چند سانتی متر مربع.
  • کاهش یکسان سازی عناصر طراحی و از میان بردن تمامی مشکلات ناشی از عدم تطابق استاندارد های مختلف(LS,HC,s,AS,…).
  • از میان بردن تمامی نویز های ناشی از وجود قطعات مختلف و مجزا در مدار.
  • کاهش چشمگیر توان مصرفی و اتلاف توان.
  • افزایش سرعت پردازش و خطاهای انتشار به دلیل استفاده از فناوری پیشرفته و دستیابی به خطاهای انتشار تا ۴ns و فرکانس کلاک فرارتر از ۱۷۸ مگاهرتز.
  • کار با دو سطح ولتاژ ۵v و ۳٫۳v جهت استفاده از آنها در دستگاه های قابل حمل مانند گوشی­های موبایل
  • ضریب ایمنی صد در صد به دلیل عدم امکان دستیابی به محتوای داخلی و عدم توان توصیف محتوای داخلی به دلیل انجام ساده­سازی و فشرده­سازی بسیار پیچیده.

برای آشنایی بیشتر و مفهمومی درباره FPGA ها می توانید فایل زیر را دانلود کنید .

دانلود فایل

 

برای دیدن فیلم های آموزشی این موضوع به لینک زیر مراجعه نمایید .

فیلم آموزشی

 

دیدگاهی بنویسید