آموزش FPGA از صفر تا صد
اصول FPGA
مزیت بزرگ و اصلی FPGA این است که در آن تراشه کاملاً قابل برنامهریزی بوده و میتوان آن را دوباره برنامهریزی کرد. به این ترتیب تراشه ما به یک مدار منطقی بزرگ تبدیل میشود که میتوان آن را بر اساس یک طراحی پیکربندی کرد و در صورت نیاز به تغییرات میتوان آن را با یک بهروزرسانی دوباره برنامهریزی کرد.بنابراین اگر مدار یا برد ساخته شدهای و حاوی یک FPGA بهعنوان بخشی از مدار باشد، در طول فرآیند تولید برنامهریزی میشود و بعداً میتواند دوباره برنامهریزی شود تا هر گونه تغییر را روی آن اعمال کرد.
در دوره آموزش FPGA کاربردی اصول FPGA و نحوه کار با آن به صورت کامل پوشش داده شده است و کاربران نگرانی خاصی از این بابت ندارند.اگرچه FPGA مزایای زیادی دارد، اما طبیعتاً معایبی نیز دارد. آنها نسبت به ASIC- های معادل (مدار مجتمع ویژه برنامه) یا سایر IC های معادل کندتر و علاوه بر این در برخی از شرایط گرانتر هستند.
این بدان معنا است که انتخاب استفاده از طراحی مبتنی بر FPGA باید در اوایل چرخه طراحی انجام شود و به مواردی مانند اینکه آیا تراشه نیاز به برنامهریزی مجدد دارد یا خیر، آیا میتوان عملکردی معادل را در جای دیگری به دست آورد یا خیر و بسیاری از موارد دیگر بستگی دارد.
قطعات داخلی FPGA
معماری داخلی FPGA کلید انعطافپذیری و در نتیجه موفقیت آن خواهد بود. اساساً یک FPGA از دو عنصر اساسی تشکیلشده است:
- بلوکهای منطقی: بلوک منطقی در یک FPGA میتواند به روشهای مختلفی پیاده سازی شود. پیاده سازی واقعی به سازنده و همچنین سری FPGA مورد استفاده بستگی دارد.
- مسیریابی داخلی FPGA: کانالهای مسیریابی در FPGA شامل سیمهایی هستند که میتوانند با استفاده از سوئیچهای قابل تنظیم الکتریکی به یکدیگر متصل شوند. به این ترتیب میتوان نقاط مختلف تراشه را به هم پیوند داد و در نتیجه بلوکهای منطق مشترک مختلف را به هر طریقی که لازم است به هم متصل کرد.
توسعه سیستمعامل FPGA
از آنجایی که FPGA یک آرایه منطقی قابل تنظیم است، پس باید برای برآوردن نیازهای سیستم تنظیم شود. با توجه به پیچیدگی FPGA ها، از نرمافزارهای خاصی برای طراحی عملکرد یک FPGA استفاده میشود. فرآیند طراحی FPGA توسط کاربر توسط یک زبان توصیف سختافزار (HDL) یا یک طرح شماتیک آغاز میشود.
HDL – های رایج عبارتاند از VHDL که در آن VHDL مخفف VHSIC Hardware Description Language) و (وریلوگ | – Verilogبا قابلیت شبیه سازی و کدنویسی مدارات است. هنگامی که این کار تکمیل شد و فرایند طراحی FPGA با استفاده از این زبانهای توصیف سختافزار انجام گرفت، مرحله بعدی در فرآیند طراحی FPGA، تولید یک NETLIST (نت لیست) برای خانواده خاص FPGA است که استفاده میشود. این نت لیست اتصال مورد نیاز در FPGA را توصیف میکند و با استفاده از یک ابزار اتوماسیون طراحی الکترونیک ایجاد میشود.
سپس با استفاده از فرآیندی به نام مکان و مسیر (place-and-route) که معمولاً توسط نرمافزار مکان و مسیر اختصاصی شرکت FPGA انجام میشود، میتوان نت لیست را به معماری واقعی FPGA متصل کرد. در طراحی مدار از یک نت لیست برای توصیف ارتباط بین اجزای مدار استفاده می شود.
به طور کلی، این یک فایل متنی است که از یک سینتکس نشانه گذاری (نحو کد نویسی) نسبتاً ساده پیروی می کند. در نهایت طراحی با استفاده از رویکرد FPGA انجام میشود و میتوان از آن در برد مدار الکترونیکی که برای آن در نظر گرفته شده است استفاده کرد.
نکته مهم در مورد برنامهنویسی FPGA:
FPGA – ها برای تنظیم و پیکربندی منطق درون یک تراشه نیاز به فریم ویو (firmwave) دارند. این فریم ویو را میتوان به روشهای مختلفی توسعه داد و چندین پلتفرم نرمافزاری مختلف وجود دارد که میتوان از آنها برای این هدف استفاده کرد.
رویکردهای برنامهنویسی FPGA
راههای مختلفی برای توسعه کد برای برنامهریزی یک FPGA وجود دارد. ابتدای پیداش آنها، FPGA ها به صورت دستی برنامهریزی میشدند. امروزه برای این هدف به یک برنامه نرمافزاری مورد نیاز است. چندین گزینه برای توسعه دهندگان FPGA وجود دارد که شامل موارد زیر خواهد بود:
- VHDL: VHDL مخفف VHSIC Hardware Description Language است که خود VHSIC مخفف Very High Speed Integrated Circuit به حساب می آید. این زبان برنامهنویسی FPGA توسط وزارت دفاع ایالات متحده آمریکا برای مستندسازی رفتار ASIC ها یا مدارهای مجتمع خاص برنامه توسعه داده شده است. بر اساس زبان برنامهنویسی Ada، VHDL یک زبان متنی است که سالها در برنامهنویسی FPGA بسیار موفق و محبوب بوده است.
- Verilog: Verilog اولین شکل از زبان توصیف سختافزار بود که توسعه یافت و هم اکنون این زبان بهعنوان IEEE 1364 استاندارد شده است.
- LabVIEW FPGA: LabVIEW FPGA از رابط گرافیکی اصلی LabVIEW استفاده میکند و از ابزارهای اضافی برای فعال سازی ارائه عملکرد مورد نیاز برای برنامهنویسی FPGA استفاده میکند.
زبانهای توصیف سختافزار با زبانهای برنامهنویسی معمولی تفاوت دارند زیرا میتوانند پارامترهایی از جمله تأخیر انتشار و همچنین قدرت سیگنال را در خود جای دهند.
همچنین لازم به ذکر است که Xilinx برترین فروشنده FPGA از نظر درآمد و پیشرو در صنعت در ارائه منابع برای مهندسین نرم افزار برای ایجاد برنامه های کاربردی FPGA است. با استفاده از نرم افزار Xilinx برای FPGA ها، می توانید توابع را در C، C++ و OpenCL برنامه ریزی کنید و آنها را روی سخت افزار ادغام کنید.
یکی از معروفترین نرم افزارهای این شرکت Xilinx IS است. Xilinx ISE یک ابزار نرمافزاری از شرکت Xilinx برای سنتز و تجزیه و تحلیل طرحهای HDL است که در درجه اول توسعه سیستم عامل تعبیه شده برای خانوادههای محصولات Xilinx FPGA و مدارهای مجتمع CPLD را هدف قرار میدهد.
تست FPGA
با توجه به پیچیدگی FPGA- ها، انجام آزمایشهای دقیق طراحی FPGA یک امر بسیار ضروری است. این آزمایش معمولاً در هر مرحله از فرآیند توسعه FPGA انجام میشود. در دوره آموزش اف پی جی ای کاربردی به صورت پیشرفته این آزمایشها مورد پوشش واقع شدهاند. این آزمایشها شامل شبیهسازی عملکردی و سایر روشهای راستیآزمایی مدار هستند.
پس از تکمیل فرآیند طراحی و آزمایش، فایل باینری تولید شده با استفاده از نرم افزار اختصاصی شرکت FPGA برای پیکربندی دستگاه FPGA استفاده میشود. اگر به فکر یادگیری FPGA هستید و دوست دارید در این زمینه متخصص شوید، هم اکنون با ثبت نام در دوره آموزش FPGA کاربردی اولین و مهمترین قدم این مسیر را بردارید.
پیش نیاز دوره آموزشی FPGA
متقاضیان ثبتنام در دوره آموزش FPGA باید اطلاعات نسبی در حوزه رشته برق و مدارات الکترونیکی داشته باشند. برخی از پیش نیازهای شرکت در آموزش FPGA عبارت است از:
- آشنایی با مفاهیم و انواع مدارات منطقی
- آشنایی با انواع گیتها و چگونگی عملکرد آن ها
- …