هدف از دوره آموزشی FPGA چیست؟

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

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

همچنین از نظر میکروکنترلرها، انرژی کمتری نسبت به FPGA مصرف می کنند. FPGA بسیار پرهزینه شناخته شده است و هنگام ساخت هر دستگاهی به هزینه بیشتری نسبت به میکروکنترلر نیاز دارد. در حالی که میکروکنترلرها برای برنامه های خاص به راحتی ساخته شده اند، تنظیم FPGA بسیار بیشتر زمان می برد.

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

کاربرد FPGA چیست

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

همچنین میکروکنترلرها می توانند کارهای محدودی را انجام دهند زیرا آنها توام با دستورالعمل ها و مدارهایشان هستند. یک برنامه نویس باید هنگام ایجاد کد، محدودیت ها را رعایت کند. بنابراین در این موارد FPGA ها نیز دارای مزیت هستند.

با این حال، در مورد میکروکنترلرها، پردازنده از یک کد به کد دیگر تغییر می کند تا به سطحی از موازات برسد. نوشتن کدها در میکروکنترلرها نسبت به FPGA راحت تر است. قابلیت پردازش موازی FPGA ها؛ شما را قادر می سازد تا با استفاده از ماشین های حالت محدود (FSM) وقفه ها را به صورتی کارآمد کنترل کنید.

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

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

برنامه نویسی FPGA توسط HDL ها (زبانهای توصیف سخت افزار) انجام می شود. در اینجا چندین HDL موجود است اما VHDL و Verilog به طور گسترده ای از HDL استفاده می کنند. حتی اگر شباهت زیادی بین کد HDL و زبان برنامه نویسی نرم افزار سطح بالا وجود دارد اما این دو تفاوت اساسی دارند.

کدهای نرم افزار دنباله ای از عملیات هستند و پردازش را به ترتیب انجام می دهند در حالی که کد HDL قیاسی است که از متن برای معرفی اجزا و ایجاد اتصالات با پردازش موازی استفاده می کند.

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

زبان ها و ابزار های برنامه نویسی FPGA

همانطور که در بالا ذکر شد، چندین زبان برنامه نویسی و ابزار برای برنامه نویسی و اشکال زدایی FPGA در دسترس است، اما بیشترین استفاده آنها از VHDL و Verilog است. VHDL و Verilog کاملاً تثبیت شده اند و از HDL های گسترده ای پشتیبانی می کنند.

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

ابزارهای توسعه دهنده FPGA زیادی وجود دارند مانند :

بطور کل یکی از قدرتمندترین تراشه‌هایی که امروزه در کاربردهای مختلف الکترونیکی، مخابراتی و کنترل مورد استفاده شرکت های بزرگ دنیا و ایران است، تراشه­‌های FPGA است که با فراهم آوردن بسترهایی برای پردازش سیگنال، قابلیت‌های مورد استفاده در پردازنده‌­ها و… در بسیاری از کاربردها مورد استفاده قرار گرفته‌اند.

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

خروج از نسخه موبایل