آموزش FPGA

دسته بندی: آموزش اینترنت اشیاء (IOT)

آموزش FPGA

آنچه در این صفحه می خوانید:

معرفی FPGA

Field-Programmable Gate Array یا به اختصار (FPGA) یک مدار مجتمع است که پس از ساخت توسط مشتری یا یک طراح تنظیم می شود، از این رو اصطلاح "قابل برنامه ریزی" برای آن تعریف می شود. پیکربندی FPGA معمولاً با استفاده از یک زبان توصیف سخت افزار (HDL)، مشابه آنچه برای یک مدار مجتمع برنامه-کاربردی (ASIC) به کار برده می شود، انجام می شود. Circuit diagrams قبلاً برای مشخص کردن پیکربندی مورد استفاده قرار می گرفتند، اما به دلیل ظهور ابزارهای اتوماسیون طراحی الکترونیکی، این امر به طور فزاینده ای نادر است.

FPGA شامل مجموعه ای از بلوک های منطقی قابل برنامه ریزی است و سلسله مراتبی از "اتصالات قابل تنظیم" که اجازه می دهد بلوک ها "به هم وصل شوند" مانند بسیاری از دروازه های منطقی که در پیکربندی های مختلف می توانند از یکدیگر سیم کشی شوند. بلوک های منطق می توانند برای انجام توابع پیچیده ترکیبی یا صرفاً دروازه های منطق ساده مانند AND و XOR تنظیم شوند. در اکثر FPGA ها، بلوک های منطقی شامل عناصر حافظه نیز هستند که ممکن است ساده یا بلوک های کامل تر از حافظه باشد. بسیاری از FPGA ها می توانند برای پیاده سازی توابع منطق مختلف، مجدداً برنامه ریزی شوند، اجازه می دهد تا محاسبات قابل تنظیم مجدد قابل انعطاف را در نرم افزارهای رایانه ای انجام دهند.

کاربرد FPGA

fpga

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

ویژگی های FPGA

عملکرد بهبود یافته

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

کاهش هزینه ها

مزیت دوم هزینه است. در مقایسه با هزینه های تولید ASIC ،FPGA ها بسیار مقرون به صرفه و نسبتاً ارزان هستند. این امر باعث می شود آنها برای تولید حجم کم و حجم متوسط مناسب باشند. ASIC نیاز به یک چرخه طراحی طولانی تر و NRE بالاتر (مجموعه ماسک، IP) و ابزار تولید دارد که می تواند بیش از 1 میلیون دلار هزینه داشته باشد. یک اشتباه طراحی کوچک در یک ASIC برای تولید یک تراشه جدید نیاز به چرخش دوباره دارد، در حالی که یک FPGA فقط می تواند یک برنامه جدید برای بارگذاری داشته باشد.

زمان کم برای ورود به بازار

قابلیت برنامه ریزی مجدد FPGAs یک مزیت بزرگ است به گونه ای که می توان از آن برای اهداف نمونه سازی استفاده کرد و طرح ها را می توان از طریق این FPGA ها آزمایش کرد یا تأیید کرد. FPGA به این واقعیت افزود که با توجه به موازی بودن آن و همچنین اینکه می توان آن را در هر مرحله از راه حتی در سایت مشتری (فروش و پس از فروش) بروزرسانی کرد و همچنین می توان چندین مرحله از توسعه را همزمان انجام داد.

انعطاف پذیر و قابل اطمینان

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

تعمیر و نگهداری کم

برخلاف ASIC ها، FPGA ها نیازی به بروزرسانی یا نگهداری به همان روش ندارند زیرا قابل برنامه ریزی هستند و بدون نیاز به زمان و سرمایه گذاری زیادی، برای پیکربندی مدارهای دائمی و سخت افزار، قابل ارتقا باشند.

تفاوت بین FPGA و ASIC

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

جریان طراحی

بخشی از دلیل وجود FPGA های کم هزینه NRE و زمان سریع تر برای بازار نهفته در این واقعیت است که جریان طراحی آن بسیار ساده است. قابلیت برنامه ریزی مجدد و انعطاف پذیری تراشه ها به همین دلیل جریان ساده است. ASIC ها، با همه این تفاسیر، دائمی هستند و از طراحی پیچیده تری نسبت به FPGA برخوردار هستند. در حقیقت، طراحی ASIC به ابزارهای اختصاصی EDA نیاز دارد که بسیار پرهزینه هستند.

عملکرد و کارآیی

ASIC ها، به دلیل کمبود توان مصرفی و قابلیت های مختلف مختلفی که می توان روی یک تراشه منفرد قرار داد، از عملکرد FPGA استفاده می کنند. FPGA از ساختار داخلی سفت و سختی برخوردار است در حالی که می توان ASIC را برای افزایش سرعت یا مصرف برق طراحی کرد.

هزینه

علیرغم هزینه بالاترNRE ،ASIC ها مقرون به صرفه تر از همه چیزهایی هستند که در مقایسه با FPGA ها در نظر گرفته شده اند که تنها در مقادیر کمتری تولید می شوند.

مصرف برق

FPGA یک تراشه پر مصرف است و مصرف بالاتری نسبت به ASIC ها دارند و از این رو ، یک راه حل عالی برای محصولات با منبع دائم، ساخته است.

اندازه

واحد واحد تراشه FPGA نسبت به واحد تراشه ASIC نسبتاً بزرگتر خواهد بود. از آنجا که FPGA دارای ساختار داخلی و اندازه مشخصی است که قابل تغییر نیست، در حالی که ASIC دقیقاً از مقدار دروازه های مورد نیاز برای برنامه مورد نظر تشکیل شده است.

زمان خرید

FPGA زمان سریعتر از ASIC را به بازار عرضه می کند. در مقایسه با ASIC، دارای چرخه طراحی کوتاه تری است زیرا آنها با نیاز به چیدمان یا فرآیندهای بک اند همراه نیستند که عموماً هنگام توسعه ASIC زمان بیشتری را می گیرند. ASIC ها همچنین پیچیده تر و وقت گیر هستند زیرا نیاز به دستیابی به تأیید پیشرفته دارند، در حالی که دستگاه های FPGA معمولاً از قبل تأیید شده اند و محتوای اطلاعات مربوطه به سادگی باید روی آنها قرار بگیرد.

پیکربندی

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

مانع ورود

در واقع مانع ورود به این معنی است که دستیابی و شروع به کار با این فناوری ها چقدر دشوار است. هنگامی که صحبت از ASIC ها می شود، با توجه به هزینه های بالای NRE، پیچیدگی عملیات و سایر سرمایه گذاری های لازم در رابطه با آن، مانع ورود بسیار زیاد است. اما در جاهایی که توسعه ASIC می تواند هر از گاهی به میلیون ها دلار صعود کند، توسعه FPGA با مبلغی زیر 5000 دلار آغاز می شود و این امر باعث می شود مسیر سرمایه گذاری آسان تر شود.

بهای واحد

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

فرکانس عامل

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

طرح های آنالوگ

در حالی که FPGA ها قابل تنظیم هستند، نمی توان از آنها برای ساختن طرح های آنالوگ مانند ASIC استفاده کرد که می تواند از سخت افزارهای آنالوگ مانند مبدل های آنالوگ به دیجیتال، بلوک های RF (بلوتوث، WiFi) و موارد دیگر استفاده کند.

انواع FPGA

FPGA به سه نوع طبقه بندی می شوند.

انواع FPGA

Low-End FPGAs

این نوع FPGA ها برای مصرف کم انرژی، چگالی منطق کم و پیچیدگی کم در هر تراشه طراحی شده اند. نمونه هایی از FPGA های Low-End عبارتند از خانواده Cyclone از Altera، خانواده Spartan از Xilinx، خانواده fusion از Microsemi و Mach XO / ICE40 از Lattice semiconductor.

Mid-Range FPGAs

این نوع FPGA ها راه حل بهینه بین FPGA کم و سطح بالا هستند و این ها به عنوان تعادل بین عملکرد و هزینه ایجاد می شوند. نمونه هایی از FPGA های میان رده Arria از Altera، سری Artix-7 / Kintex-7 از Xilinx ،IGL002 از Microsemi و سری ECP3 و ECP5 از نیمه هادی Lattice هستند.

High-End FPGAs

این نوع FPGA ها برای تراکم منطق و کارایی بالا توسعه یافته اند. نمونه هایی از FPGA های سطح بالا یک خانواده Stratix از Altera، خانواده Virtex از Xilinx، خانواده Speedster 22i از Achronix و خانواده ProASIC3 از میکروسیمی هستند.

آیا این نوشته را دوست داشتید؟