FPGA مخفف Field Programmable Gate Array است که معنای عام فارسی آن آرایه گیت قابل برنامهریزی است. به زبانی سادهتر میتوان گفت که FPGA مدار مجتمع طراحیشده برای پیکربندی یا برنامهریزی پس از قرار گرفتن ...
آموزش FPGA
آموزش FPGA کاربردی
آموزش FPGA پروژه محور
آشنایی کامل با FPGA
FPGA مخفف Field Programmable Gate Array است که معنای عام فارسی آن آرایه گیت قابل برنامهریزی است. به زبانی سادهتر میتوان گفت که FPGA مدار مجتمع طراحیشده برای پیکربندی یا برنامهریزی پس از قرار گرفتن در مدار برای قطعات دیجیتال است تا امکان بهروزرسانی یا تغییر عملکرد آنها را فراهم کند. این دوره آموزش FPGA کاربردی مربوط به این مدار مجتمع و آموزش جنبههای مختلف آن خواهد بود که در 26 جلسه آموزشی به صورت رایگان برای کاربران در پلت فرم مکتب خونه قرار داده شده است.
قبل از اینکه به معرفی دوره آموزش FPGA کاربردی بپردازیم ابتدا بهتر است کمی در رابطه با جنبههای مختلف این مدار مجتمع و ماهیت آن صحبت کنیم.
Field Programmable Gate Array یا FPGA یک دستگاه منطقی قابل برنامهریزی (یک نوع مدار مجتمع) است که با استفاده از این مدار مجتمع میتوان مدارات پیچیدهتری مانند میکرو کنترلر، پروسسور تصویر و صدا، بخشی از گیرنده مدارات و سیستمهای مخابراتی و غیره را با قیمت نسبی کم طراحی کرد. امروزه بیشتر شرکتهای تولید قطعات مانند سیسوگ از فنّاوری FPGA در مدارات خود استفاده میکنند.
اجزای FPGA یا بلوکهای منطقی آن، ممکن است از هر چیزی از گیتهای منطقی گرفته تا عناصر حافظه یا بلوکهای حافظه یا تقریباً هر عنصری تشکیل شوند. این ویژگی FPGA میزان قابل توجهی از انعطافپذیری را فراهم میکند و قابلیت طراحی و توسعه را بسیار آسان خواهد کرد که در دوره آموزش FPGA کاربردی به این موضوع اشاره شده است.
FPGA در بسیاری از برنامهها استفاده میشود. با توجه به هزینهای که دارند، اف پی جی ها در محصولات ارزان قیمت با مصرف بالا استفاده نمیشوند، اما در عوض FPGA- ها در صنایع و حوزههای مختلفی کاربرد پیدا میکنند که ممکن است به مدارهای منطقی پیچیده نیاز باشد. یا در شرایطی که پیش بینی شود که در آینده تغییراتی برای این مدارها لازم باشد از FPGA استفاده خواهد شد. برنامههای کاربردی FPGA طیف وسیعی از حوزهها را از تجهیزات ویدئویی و تصویربرداری گرفته تا مدارات هوافضا و کاربردهای نظامی و همچنین الکترونیک برای پردازشهای تخصصی و موارد دیگر را پوشش میدهد.
ماهیت قابل تنظیم مجدد FPGA به این معنی است که میتوان از آن در تعداد زیادی از برنامههای مختلف استفاده کرد که دوتا از بارزترین این کاربردهای FPGA شامل موارد زیر هستند:
دوره آموزش FPGA کاربردی یکی از بهترین دورههای آموزشی برای آموزش مفاهیم FPGA کاربردی بهحساب میآید که هم اکنون در پلت فرم مکتب خونه برای کاربران قرار داده شده است. این دوره آموزش دوره آموزش FPGA کاربردی شامل 26 جلسه آموزشی – کاربردی خواهد بود که به صورت تخصصی و عملی به مفاهیم حول FPGA میپردازد.
این دوره با هدف آشنایی متقاضیان با FPGA و طراحی مدارهای پویا با زبان انگلیسی از صفر تاصد ارائه شده است و میتواند نقطه شروع خوبی برای ورود به بازار کار FPGA باشد.
از آنجاکه این دوره به زبان انگلیسی ضبط و ارائه شده است برای درک مفاهیم این دوره آموزش کاربردی اف پی جی آی به صورت کامل لازم خواهد بود که کاربران به زبان انگلیسی تسلط نسبی داشته باشند و بتوانند مفاهیم بیان شده را درک کنند. همچنین از پیشنیازهای دوره آموزش FPGA کاربردی آشنایی به زبانهای توصیف سختافزار مانند: VHDL و Verilog.
است. لازم به ذكر است که دورههای آموزشی این دو زبان توصیف سختافزار نیز در پلتفرم مکتب خونه قرار داده شدهاند.
مزیت بزرگ و اصلی FPGA این است که در آن تراشه کاملاً قابل برنامهریزی بوده و میتوان آن را دوباره برنامهریزی کرد. به این ترتیب تراشه ما به یک مدار منطقی بزرگ تبدیل میشود که میتوان آن را بر اساس یک طراحی پیکربندی کرد و در صورت نیاز به تغییرات میتوان آن را با یک بهروزرسانی دوباره برنامهریزی کرد.
بنابراین اگر مدار یا برد ساخته شدهای و حاوی یک FPGA بهعنوان بخشی از مدار باشد، در طول فرآیند تولید برنامهریزی میشود و بعداً میتواند دوباره برنامهریزی شود تا هر گونه تغییر را روی آن اعمال کرد. در دوره آموزش FPGA کاربردی اصول FPGA و نحوه کار با آن به صورت کامل پوشش داده شده است و کاربران نگرانی خاصی از این بابت ندارند.
اگرچه FPGA مزایای زیادی دارد، اما طبیعتاً معایبی نیز دارد. آنها نسبت به ASIC- های معادل (مدار مجتمع ویژه برنامه) یا سایر IC های معادل کندتر و علاوه بر این در برخی از شرایط گرانتر هستند. این بدان معنا است که انتخاب استفاده از طراحی مبتنی بر 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 وجود دارد که شامل موارد زیر خواهد بود:
زبانهای توصیف سختافزار با زبانهای برنامهنویسی معمولی تفاوت دارند زیرا میتوانند پارامترهایی از جمله تأخیر انتشار و همچنین قدرت سیگنال را در خود جای دهند.
همچنین لازم به ذکر است که 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 کاربردی اولین و مهمترین قدم این مسیر را بردارید.
اطلاعات بیشتر
یکی از محبوب ترین اساتید دانشگاه کرنل، بورس لند، او حدود 40 سال در این دانشگاه مشغول درس دادن و درس خواندن است. زمینه علاقهی ابتدایی او هوش مصنوعی، بیولوژی و سیستمهای عصبی مصنوعی و طبیعی بود. بعدها او به سمت مهندسی برق کشیده شد و هم اکنون در بایوالکترونیک مشغول فعالیت است. کلاسهای او به دلیل کار عملی حرفهای فراوان همواره مورد استقبال دانشجویان بوده است.
اطلاعات بیشتر