FPGA

بررسی کلی تراشه های FPGA

نکات برگزیده مقاله

  • تاریخچه FPGA
  • کارکردها، کاربردها، مزایا و معایب FPGA
  • مقایسه FPGA و میکروکنترلر
  • بررسی نمونه های مختلف FPGA

نگاهی کلی به تاریخچه و سازندگان اولیه تراشه های FPGA

راس فریمن در شبه جزیره فوقانی میشیگان در ۲۶ ژوئیه سال ۱۹۴۸ به دنیا آمد. فریمن در سال ۱۹۶۹ لیسانس فیزیک را از دانشگاه ایالتی میشیگان و کارشناسی ارشد را از دانشگاه ایلینویز در سال ۱۹۷۱ کسب کرد. وی یکی از بهترین مهندسان برق و مخترعان زمان خود بود، به دلیل هوش و نبوغی که داشت به شرکت Teletype معرفی شد تا یک مدار PMOS سفارشی را طراحی کند.

فریمن در سال ۱۹۸۴ با کمک اشخاصی به نام Bernard Vonderschmitt و James V Barnett کمپانی Xilinx را تاسیس و حدودا یک سال بعد اولین فیلد قابل برنامه ریزی Gate Array را اختراع کرد.  از ویژگی های این تراشه، اضافه کردن قابلیت های جدید به آن مطابق ساختار و استانداردهای موجود می باشد. سال ها بعد از فوت راس فریمن این کمپانی توانست از تراشه های جدیدی به نام FPGA رونمایی کند. ویژگی های FPGA موجب شد تا این شرکت در تعداد بالا FPGA ها را تولید کرده و Xilinx به دلیل فروش بالا و درآمدهای میلیاردی تبدیل به یکی از مطرح ترین کمپانی ها در سطح جهانی شد. بعد از مدتی کمپانی Xilinx توانست شعبه های را در کشورهای آسیایی (چین، استرالیا و هند) و آمریکایی به ثبت برساند.

اهداف ابتدایی این کمپانی برای ساختن تراشه هایی مثل FPGA و Gate Array، این بود که بتوانند متناسب با موارد استفاده در پروژه های گوناگون با نوشتن برنامه های جدید تغییراتی را درون آنها ایجاد کنند (برخلاف ICها که عملکردی مشخص داشتند). ایده های اولیه و دور از دسترس آن روزها بعد از زمان نه چندان طولانی به تحقق پیوست و اکنون این کمپانی توانسته نمونه های مختلفی از تراشه های FPGA را بسازد و برای مشتریان خود این محصول را به بازار عرضه کند. تولید تراشه FPGA کمک بسیاری به طراحی مدارهای پیچیده (آنالوگ و دیجیتال) کرده است، از این رو شرکت های رقیب نیز در این راستا در تلاشند بطوری که بعد از کمپانی Xilinx، کمپانی اینتل یکی از تولید کنندگان اصلی این تراشه ها می باشد.

FPGA

توضیحی درمورد چگونگی کاردکرد تراشه های FPGA

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

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

تراشه FPGA

FPGA ها با میکروکنترلرها چه تفاوتی دارند؟

میکروکنترلرها IC هایی هستند که می توان آنها را برنامه ریزی کرد و عملکرد مشخص و معینی ندارند. با اینکه دستورات برنامه نویسی آنها یکسان است اما با همین دستورات می توان برنامه های کاربردی متفاوتی را پیاده سازی کرد. هر میکروکنترلر دارای اجزای مختلفی ساخته شده که عبارتند از:

  • CPU (واحدی برای پردازش اطلاعات و داده های ورودی و خروجی)
  • ALU (واحد انجام محاسبات)
  • رابط های ورودی و خروجی
  • RAM (بخش اصلی حافظه میکروکنترلر)
  • ROM (بخش از حافظه برای ذخیره سازی برنامه)
  • تایمر (برای کنترل کردن زمان)
  • و غیره.

در مقابل تراشه های FPGA قرار دارند که هم از لحاظ ساختاری و هم از لحاظ عمکرد با میکروکنترلرها متفاوت هستند. ساختار FPGA به گونه ای است که CPU برای آن طراحی نشده تا کار پردازش را برای تراشه انجام دهد. برای پردازش اطلاعات باید طراحان پروژه متناسب با نیازشان بلوک هایی را طراحی و اجرا کنند. مثلاً برای انجام عملیات جمع (یا تفریق، ضرب، تقسیم) باید بلوکی را برای این عمل در نظر گرفت و در مواردی که به این عملیات نیاز است به کار گرفته شوند. FPGA ها نسبت به میکروها سریع تر بوده ولی به دلیل هزینه های بالا و زمان بر بودن پیاده سازی نمی توان برای هر پروژه ای این تراشه ها را جایگزین میکروکنترلر کرد.

برد الکترونیکی با FPGA

FPGA ها در صنایع چه کاربردی دارند؟

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

  • کاربردهای صنعتی: یکی از مهم ترین خصوصیت FPGA ها در ارتباط با ابزارها و تجهیزات در صنایع می باشد. از این تراشه ها می توان برای هماهنگی و کنترل کردن موتورها، فرآیندها، پردازش تصویر، ربات ها و بسیاری موارد دیگر استفاده کرد.
  • حوزه نظامی: همان طور که در بالا اشاره کردیم تراشه های FPGA دقت بالایی داشته و عملیات های گوناگون را به سرعت انجام می دهند. این ویژگی سبب شده تا از آنها در حوزه نظامی نیز به کار گرفته شود چرا که از لحاظ امنیتی قابل تأیید می باشند. یکی دیگر از قابلیت ها، سازگاری این تراشه ها برای استفاده در دماهای زیاد است همچنین به دلیل وجود DSPها در FPGA، در تجهیزات نظامی همچون رادار، هدایت موشکها و غیره استفاده زیادی دارد.
  • FPGA در زمینه پزشکی: حوزه پزشکی یکی دیگر از مواردی است که این تراشه ها در آن کاربرد فراوانی دارد. قدرت پردازش در تصویربرداری در بخش هایی مثل رادیولوژی، آندوسکوپی، سونوگرافی و … نمونه هایی از این کاربردها می باشد.
  • در وسایل حمل و نقل و ناوبری: تراشه های FPGA این توانایی را دارد تا در دماهای بالا آسیبی به آن نرسد. علاوه بر اینها دلایلی دیگری چون سرعت، موجب شده تا FPGA ها برای طراحی و ساخت سامانه ناوبری، مکان نما، هدایت اتوماتیک مناسب باشد.

کابل فلت

تراشه های FPGA با CPLD ها چه شباهت ها و تفاوت هایی دارند؟

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

اما CPLDها نمونه ساده ای از تراشه های قابل برنامه ریزی همان شرکت (XILINX) است. از نظر اندازه و کاربرد نسبت به نمونه پیچیده تراشه FPGA، ساده تر بوده و ابعاد کوچک تری (حدودا صد گیت) دارد. برای طراحی و ساخت آنها نیاز به استفاده از فیوز می باشد و همین امر باعث شده تا هنگام ذخیره کردن کدها و بارگذاری آنها نیازی به وجود حافظه نداشته باشند. تراشه منطقی CPLD، با توجه به ابعادش تنها برای پروژه هایی مناسب خواهد بود که برای طراحی نیاز به مدارهای منطقی با ابعاد کوچک دارند. این تراشه ورودی ها و خروجی هایشان به سرعت عمل کرده و از آنجایی که مصرف کمی دارد از نظر اقتصادی مقرون به صرفه هستند. در یک دسته بندی، شرکت سازنده CPLDها را در سه سری تولید کرده است که عبارتند از:

  • CPLDهای XC9500XL
  • CPLDهای CoolRunnerII
  • CPLDهای XA CoolRunner-II

CPLD

بررسی نمونه های مختلف تراشه های FPGA

این تراشه ها دارای نمونه های مختلفی بوده که برخی از این نمونه ها از این قرار هستند:

  • مدل Spartan (در دو نمونه ۴۵ و ۲۸ نانو متری)
  • مدل Artix (بیست و هشت نانو متری)
  • مدل Virtex ( دارای سه نمونه ۱۶، ۲۰ و ۲۸ نانو متری)
  • مدل Kintex ( دارای سه نمونه ۱۶، ۲۰ و ۲۸ نانو متری)

بررسی گروه Spartan: این یکی از مدل های تراشه FPGA است که نسبت به سایر نمونه ها قیمت کمتری دارد. این گروه شامل سه نوع اسپارتان ۶، اسپارتان ۷ و اسپارتان ۳ می باشد. اسپارتان ۳ برخلاف اسپارتان ۶ توسط سازندگان شرکت ساخته نمی شوند و اینکه در آینده بخواهند آنها را به بازار عرضه کنند معلوم نیست، چرا که این سری از محصولات پشتیبانی لازم (از لحاظ نرم افزاری) از این تراشه را نمی کند (نرم افزار طراحی برای اسپارتان ها ISE بوده که از ۲۰۱۴ به بعد آپدیت نشد).

پس از مدتی مدل اسپارتان ۷ تولید شد. سازندگان آن در اوایل تولید قصد داشتند اسپارتان ۷ را با پکیج هایی شامل ۱۴۴ پایه به شکل TQG ارائه دهند که با کمک آن ها بتوانند در بردهای دولایه استفاده شده و به آسانی مونتاژ شوند اما بعد از تولیدشان این اتفاق رخ نداد و چنین پکیجی برای ۷ Spartan طراحی نشد. در میان گروه اسپارتان ها سری ۶ دارای دو نمونه در ابعاد و اندازه های خیلی کوچک است که عبارتند از: ۱.LX6 .2 ، LX9. هر دو نمونه نیز دارای پکیج های TQG بوده که سبب معروف شدن و خرید و فروش بالای این قطعه الکترونیکی در ایران شده است. مدل های دیگر تراشه های FPGA ، برد دو لایه ای ندارند و همه از نوع BGA می باشند. (BGAها فقط از یک لایه ساخته شده اند و ان موضوع کار مونتاژ را کمی دشوار خواهد کرد).

تراشه Spartan 6

بررسی نمونه های گروه ARTIX :Artixها از لحاظ قیمت خرید مناسب بوده و دارای توان مصرفی کمی می باشد. همچنین بالاترین نسبت Bandwidth را در میان تمام زایلینکس ها داراست. به عنوان نمونه در سایت این شرکت برای نشان دادن performance به watt، پروژه های ۶۴ کانال UltraSound و رادیو نرم افزاری را با این تراشه بارگذاری کرده اند. تراشه ARTIX برخلاف سایر نمونه های FPGA ، فقط نوع ۲۸ نانومتری را تولید کرده است.

تراشه Artix 7

بررسی مدل kintex :kintex ها یکی دیگر از تراشه های پر طرفدار و پرفروش می باشند چرا که آنها دارای توان مصرف پایین، قدرت پردازشی خوب و قیمت ارزان می باشند و همین ویژگی ها باعث شده تا برای پروژه های مختلف از نظر اقتصادی به صرفه تر باشند. از دیگر مزیت های به کارگیری آنها، طراحی در سه سری ۱۶، ۲۰ و ۲۸ نانومتری است. به عنوان مثال می توان از کاربرد آنها در گیرنده های مخابرات (۴G و ۳G) نام برد.

تراشه kintex 7

بررسی مدل virtex: این گروه از FPGA ها نسبت به سه دسته قبل سریع تر بوده و دارای بیشترین تراشه می باشند. virtex ها نیز مانند kintex ها در سه سری (۱۶، ۲۰ و ۲۸ نانو متری) ساخته شده اند. از جمله موارد استفاده آنها می توان به مدیریت و ساختن ابزارهای لازم برای شبکه ها، اشاره کرد. (این شبکه های مخابراتی بسیار سریع عمل می کنند)

 

استفاده از تراشه های FPGA ، چه مزایا و معایبی دارد؟

این تراشه ها همانند سایر تجهیزات الکترونیکی، یک سری مزایا و معایبی را با خود به همراه دارد. از جمله محاسن به کارگیری آنها در طراحی پروژه های مختلف به شرح زیر است:

  • سرعت طراحی و ساخت این تراشه بالاست و در کمترین زمان ممکن می تواند آن را به بازار عرضه کرد چون نیازی به ترتیب بندی، ایجاد پوشش برای تراشه و مراحل دیگر ندارد و Readymade برایشان در دسترس می باشد.
  • ابزارهای طراحی تراشه های FPGA ، ارزان هستند.
  • چرخه طراحی ساده ای دارند و این به دلیل وجود نرم افزاری است که بخش اعظمی از مسیریابی، قرارگیری و زمان بندی را در اختیار دارد. مداخله دستی در آنها کمتر است و جریان طراحی FPGA ، باعث از بین رفتن برنامه ریزی کف، پیچیدگی و وقت گیر بودن مکان و مسیر تحلیل زمان بندی می شود.
  • چرخه انجام پروژه قابل پیش بینی است. روند طراحی FPGA می تواند دوباره چرخش بالقوه، ظرفیت wafer و غیره را از بین ببرد زیرا منطق طراحی این تراشه قبلا مورد تأیید قرار گرفته است.
  • آنها این قابلیت را دارند که مجددا برنامه ریزی شوند. همچنین می توان برنامه ها را از راه دور و با سرعت بالا و مستقیم در تراشه بارگذاری کرد.
  • هزینه های FPGA بسته به ویژگی های سخت افزاری از چند دلار شروع شده امکان دارد تا چند صد دلار و یا بیشتر نیز باشد.
  • قابلیت استفاده مجدد از FPGA مهمترین مزیت آنها است. نمونه اولیه این طرح را می توان در تراشه پیاده سازی کرده که بتواند تأییدیه را گرفته و در نهایت بتوان آن را در ASIC پیاده سازی کرد.
  • یک CPU عمومی قادر به انجام پردازش موازی نیست، امّا FPGA ها این قابلیت را دارند. یعنی این تراشه می تواند با پردازش و محاسبه به صورت موازی، محاسبات را در سریع ترین حالت انجام دهد.
  • FPGA ها برای نمونه سازی و تولید محدود مناسب هستند.
  • به طور کلی FPGA ها برای سرعت کمتر ، پیچیدگی کمتر و طراحی حجم کم استفاده می شود. اما FPGA های امروزی حتی با عملکرد ۵۰۰ مگاهرتز نیز کار می کنند. با افزایش تراکم منطق بی سابقه و بسیاری از ویژگی های دیگر مانند پردازنده های جاسازی شده، بلوک های DSP، کلاک کاری و سریال پر سرعت، با قیمت همیشه پایین، این تراشه تقریبا برای هر نوع طراحی مناسب است.
  • برخلاف ASIC ها ، FPGA ها از سخت افزارهای خاصی مانند Block-RAM، ماژول های DCM ، MAC، حافظه و ریز I/O، پردازنده داخلی و غیره ساخته شده اند که می تواند از آنها برای عملکرد بهتر استفاده شود. FPGA های مدرن مملو از ویژگی های خوب هستند. FPGA های پیشرفته معمولاً با حلقه های قفل شده با فاز، سیگنال دیفرانسیل ولتاژ پایین، بازیابی اطلاعات ساعت، مسیریابی داخلی بیشتر، سرعت زیاد، ضرب کننده های های سخت افزاری برای DSP ها، حافظه، I/O قابل برنامه ریزی، هسته های IP و هسته های ریز پردازنده همراه هستند.
  • سنتز FPGA بسیار راحت تر از ASIC است.

در کنار مزیت های این تراشه، طراحی و استفاده از آنها می تواند معایبی نیز داشته باشد. مثلا:

  • مصرف برق در FPGA ، بیشتر است. شما هیچ کنترلی بر بهینه سازی نیرو ندارید. به همین علت ASIC می تواند گزینه مناسب تری باشد تا برق و انرژی کمتری استفاده کرده و هزینه های مربوط به آن را کاهش دهید.
  • شما باید از منابع موجود در این تراشه ها استفاده کنید. بنابراین تراشه های FPGA ، اندازه طراحی را محدود می کند.

 

نتیجه گیری

همان طور که در این مقاله در مورد تفاوت ها، ویژگی ها و کاربردهای میکروکنترلرها، پردازنده ها (CPU  و DSP) و FPGA ها گفته شد، می توان نتیجه گرفت که تمام این قطعات الکترونیکی علاوه بر محاسن دارای یک سری مشکلات و محدودیت هستند و این بدان معناست که برای پیاده سازی در هر پروژه ای مناسب نخواهند بود و یا اگر قابل استفاده باشند به کارگیری آنها، به مراتب هزینه های بالاتری خواهد داشت. پس در بعضی از پروژه ها بهتر است ترکیبی از آنها را به کار گرفت تا کارایی و بهره وری افزایش یابد.

امتیاز کاربران: اولین نفر باشید!
برچسب ها
نمایش بیشتر

محسن چهرازی

من محسن چهرازی، دانش آموخته رشته مهندسی برق- الکترونیک هستم. در زمینه های کنترل تابلو فرمان آسانسور، برنامه نویسی میکروکنترلرها (زبان C) و MATLAB، کدنویسی VHDL برای FPGA ها و تا حدودی نانو الکترونیک تخصص دارم. این وبسایت رو درست کردم تا با هم یاد بگیریم تحلیلی به مسائل الکترونیک نگاه کنیم و کمی از بخاطر سپردن دریای فرمول ها فاصله بگیریم.

دیدگاه خود را بنویسید. (این مقاله بر اساس نظرات شما به روز رسانی خواهد شد.)

avatar
  مشترک شدن  
اطلاع رسانی کن

همچنین ببینید

بستن
دکمه بازگشت به بالا
بستن
بستن