آموزش FPGA مقدماتی

FPGA یا Field Programmable Gate Array یک مدار مجتمع است که می ­توان آن را پس از اتمام فرآیند تولید، مطابق نیاز طراح برنامه ­ریزی نمود و روابط منطقی بین پایه ­های ورودی و خروجی ... ادامه

برگزارکننده:  مکتب‌خونه  مکتب‌خونه
مدرس دوره:
3.5 (11 رای)
سطح: مقدماتی
 پلاس
  
زمان مورد نیاز برای گذارندن دوره:  40 ساعت
مجموع محتوای آموزشی:  13 ساعت ویدئو - 27 ساعت تمرین و پروژه
 (قابل دانلود نمی‌باشد)
مهلت دوره:  9 هفته
  
حد نصاب قبولی در دوره:  80 نمره
فارغ‌التحصیل شدن در این دوره نیاز به ارسال تمرین‌ها و پروژه‌های الزامی دارد. 
organization-pic  گواهینامه این دوره توسط مکتب‌خونه ارائه می‌شود.
course-feature   گواهی‌نامه مکتب‌خونه course-feature   خدمات منتورینگ course-feature   پروژه محور course-feature   تمرین و آزمون course-feature   تالار گفتگو course-feature   تسهیل استخدام

سرفصل‌های دوره آموزش FPGA مقدماتی

فصل1- پردازنده‌ها و قابلیت‌های آن‌ها

در این فصل معماری داخلی پردازنده­‌ها بصورت کلی مورد بررسی قرار می­‌گیرد. در ابتدا به بررسی تفاوت میکروپروسسورها و میکروکنترلرها پرداخته می­‌شود و بعد از آن امکانات داخلی مهم آنها تبیین می‌­شود. پس از مرور امکانات داخلی، DSPها به عنوان یک نوع پردازنده مختص الگوریتم‌های پردازش سیگنال بررسی می‌­شود. در این فصل، به برخی از ضعف‌های پردازنده­‌ها در موازی­‌سازی الگوریتم‌ها اشاره می­‌شود و روال‌هایی که برای بهبود این ضعف ارائه شده بیان می‌­شود.

  معرفی کلیات میکروکنترلرها و میکروپروسسورها
"16:03  
  معماری کلی پردازنده‌ها
"22:03  
  معرفی پردازنده‌های DSP
"18:14  
  تمرین شماره1- بررسی معماری پردازنده‌های جدید و روش‌های مورد استفاده برای افزایش سرعت در آن‌ها (الزامی)
 100%    
"60:00  
  اسلایدهای دوره
"00:04  
فصل2- آشنایی با FPGAها

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

  تفاوت پردازنده‌ها، ASIC و FPGA
"19:26  
  معرفی شرکت‌های معروف سازنده FPGA
"09:17  
  معرفی سایت‌های مرتبط با تراشه‌های Xilinx، Intel و Actel
"09:44  
  معماری داخلی FPGA، بخش CLB و پردازنده‌های داخلی
"17:06  
  تمرین شماره2- مقایسه LUTها و دلیل انتخاب ورودی‌های 4، 5 و 6 برای آن‌ها (الزامی)
 22.2%    
"60:00  
  حافظه‌های BRAM در FPGA، معرفی چند بورد نمونه FPGA
"28:08  
  مقایسه تعدادی از تراشه‌های FPGA از شرکت Xilinx
"11:39  
  تمرین شماره3- بررسی معماری FPGAهای Zynq، سری RFSoC و MPSoC (الزامی)
 33.3%    
"60:00  
  کوییز شماره 1
 44.4%    
"30:00  
فصل3- آشنایی با کلیات زبان‌های توصیف سخت‌افزار، بدنه‌های ترکیبی و ترتیبی

در این فصل در ابتدا مروری بر زبان‌های توصیف سخت­‌افزار و قابلیت‌های آن‌ها صورت می­‌گیرد. سپس قواعد کلی در استفاده از زبان VHDL بیان می‌­شود. نحوه تعریف ورودی-خروجی و انواع داده­‌های موجود در VHDL توضیح داده می­‌شود. برنامه‌­هایی برای مدارات ترکیبی و ترتیبی نوشته می­‌شود و دستوراتی که برای نوشتن این برنامه‌­ها مورد نیاز است ذکر می­‌شود. ساختارهای هم‌روند و ترتیبی و دستورات مرتبط با هر یک توضیح داده می­‌شود. به انواع متغیر قابل تعریف در VHDL پرداخته می­‌شود. با آوردن مثال‌های متعدد سعی می‌­شود مفاهیم مورد نظر به خوبی ملکه ذهن شود.

  مرور کلیات زبان‌های مورد استفاده برای برنامه‌نویسی و کار با FPGA
"19:09  
  شروع کار با نرم‌افزار ISE
"16:36  
  سنتز و شبیه‌سازی یک برنامه ساده گیت منطقی NOT در محیط ISE
"14:12  
  پروژه میانی اول- نوشتن برنامه f=a.b با استفاده از گیت AND و با استفاده از مالتی‌پلکسر (الزامی)
 8.7%    
"60:00  
  تعریف کتابخانه‌ها و نوع متغیرها در VHDL
"21:52  
  آشنایی با ساختارهای dataflow، structural و behavioral
"27:19  
  مثال‌هایی از بدنه‌های ترکیبی در زبان VHDL
"19:53  
  پروژه میانی دوم- برنامه ضرب‌کننده دو عدد 2-بیتی بدون علامت (الزامی)
 17.4%    
"90:00  
  آشنایی با Language Template در نرم‌افزار ISE
"25:01  
  برنامه یک جمع‌کننده 4 بیتی با فراخوانی Full-Adderها در ISE
"22:57  
  پروژه میانی سوم- برنامه مرتب‌کننده 4 عدد بدون علامت (الزامی)
 21.7%    
"90:00  
  مثال‌هایی از ساختارهای منطقی ترتیبی مانند Latch، فلیپ فلاپ، رجیسترها و ...
"23:50  
  شیفت رجیستر، شمارنده‌ها، LFSR و کاربردهای آن
"33:54  
  مثال‌هایی ازکدنویسی در ISE
"18:04  
  نوشتن برنامه یک شمارنده در ISE
"20:33  
  مثالی از بدنه‌های ترکیبی و ترتیبی، حافظه ROM، تفاوت signal و variable
"19:01  
  پروژه میانی چهارم- برنامه تقریب تکه‌خطی یک تابع ریاضی (الزامی)
 30.4%    
"120:00  
  کوییز شماره 2
 21.7%    
"30:00  
فصل4- ماشین حالت و برنامه‌های کنترل داده، فراخوانی‌های مکرر، زیربرنامه‌ها و توابع در VHDL

در این فصل در ابتدا به نحوه نوشتن کنترل­‌کننده در VHDL پرداخته می‌­شود. انواع ماشین‌های حالت و نحوه کدنویسی آن‌ها در چند مثال بررسی می­‌شود. نحوه فراخوانی برنامه­‌های از قبل نوشته شده و نحوه برنامه‌­نویسی ساختارهای تکراری مرور می­‌شود. زیربرنامه­‌ها و توابع در VHDL معرفی می­‌شود. همچنین نحوه ساخت Package توضیح داده می­‌شود. در انتها هم برای هر کدام از موارد فوق­‌الذکر مثال‌های متعددی آورده می­‌شود تا نحوه عملکرد این بخش‌ها به خوبی جا بیفتد.

  ماشین حالت- قسمت اول
"17:38  
  ماشین حالت- قسمت دوم
"24:38  
  پروژه میانی پنجم- برنامه انکدر CRC (الزامی)
 25%    
"120:00  
  استفاده از for-generate
"22:14  
  معرفی Package، Function و Procedure
"22:16  
  برنامه محاسبه بزرگترین مضرب مشترک دو عدد
"16:12  
  برنامه Funnel Shifter
"22:29  
  پروژه میانی ششم- برنامه ضرب‌کننده Baugh-Wooly (الزامی)
 27.8%    
"180:00  
  برنامه تابع ضرب‌کننده و استفاده از Package
"15:40  
  مثال‌هایی از برنامه‌نویسی VHDL
"26:23  
  مثال‌هایی از برنامه‌نویسی VHDL
"10:27  
  پروژه میانی هفتم- برنامه ضرب دو ماتریس 3×3 (الزامی)
 38.9%    
"240:00  
  کوییز شماره 3
 8.3%    
"14:00  
فصل5- ملاحظات برنامه‌های تست و مطالب مرتبط با پیاده‌سازی سخت‌افزاری

در این فصل در ابتدا نحوه نوشتن یک برنامه تست توضیح داده می­‌شود. ساختارها و دستورات متداول مورد استفاده برای برنامه‎‌­های تست مورد بررسی قرار می­‌گیرد. کار با فایل در برنامه تست تشریح می­‌شود. به نحوه استفاده از یک برنامه سطح بالا مانند MATLAB در فرآیند تست پرداخته می­‌شود. سپس برخی از مفاهیم مورد نیاز برای پیاده‌­سازی‌های عملی مرور می­‌شود. به نحوه استخراج تایمینگ در یک برنامه نوشته شده پرداخته می­‌شود. نحوه تخمین توان مصرفی و سطح مصرفی بیان می­‌شود و در نهایت به کلیات نرم­‌افزار Vivado و قابلیت‌های آن پرداخته می‌­شود.

  اصول کلی برنامه‌های تست
"13:24  
  ساخت سیگنال‌های متناوب، استفاده از Record، استفاده از دستور Assert
"16:28  
  کار با فایل‌ها برای تست برنامه
"16:24  
  برنامه محاسبه فیلتر میانه
"14:55  
  ادامه برنامه محاسبه فیلتر میانه
"16:57  
  پروژه میانی هشتم- برنامه مولد اعداد گوسی (الزامی)
 31%    
"150:00  
  گزارش‌گیری Timing در نرم‌افزار ISE
"22:43  
  گزارش‌گیری توان مصرفی در نرم‌افزار ISE
"15:29  
  نحوه مشخص کردن پین‌ها و پیکربندی FPGA
"12:46  
  آشنایی با محیط Vivado و نحوه کار در این محیط
"17:27  
  پروژه میانی نهم- برنامه محاسبه جذر، لگاریتم و ... (الزامی)
 24.1%    
"120:00  
  پروژه پایانی- برنامه محاسبه هیستوگرام یک تصویر (الزامی)
 31%    
"180:00  
  کوییز شماره 4
 13.8%    
"19:00  

ویژگی‌های دوره

گواهی‌نامه مکتب‌خونه
گواهی‌نامه مکتب‌خونه

در صورت قبولی در دوره، گواهی نامه رسمی پایان دوره توسط مکتب‌خونه به اسم شما صادر شده و در اختیار شما قرار می گیرد.

مشاهده نمونه گواهینامه

ویژگی‌های دوره

خدمات منتورینگ
خدمات منتورینگ

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

ویژگی‌های دوره

پروژه محور
پروژه محور

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

ویژگی‌های دوره

تمرین و آزمون
تمرین و آزمون

با قرار گرفتن تمرین ها و آزمون های مختلف در طول دوره، محیطی تعاملی فراهم شده است تا بهره گیری از محتوا و یادگیری بهتر و عمیق تر شود.

ویژگی‌های دوره

تالار گفتگو
تالار گفتگو

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

ویژگی‌های دوره

تسهیل استخدام
تسهیل استخدام

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

بررسی فرصت‌های شغلی

درباره دوره

FPGA یا Field Programmable Gate Array یک مدار مجتمع است که می ­توان آن را پس از اتمام فرآیند تولید، مطابق نیاز طراح برنامه ­ریزی نمود و روابط منطقی بین پایه ­های ورودی و خروجی را تغییر داد. این تراشه­ ها نیمه رساناهایی هستند که از تعداد زیادی جزء کوچک الکترونیکی یا سلول  به نام بلوک منطقی (Logic Block) ساخته شده‌­اند. این سلول از نظر منطقی چیزی بین یک مدار الکترونیکی و یک میکروکنترلر است. در واقع، FPGA یک تراشه قابل برنامه‌ریزی است. این تراشه‌ها برای توسعه سخت افزارهای دیجیتالی پیچیده و اجتناب از ساخت بردهایی با تراشه­‌های گسسته به وجود آمده‌­اند. با استفاده از تراشه­‌های FPGA بردهایی که قبلاً با تعداد زیادی از تراشه‌های دیجیتال ساخته می­‌شدند، در یک تراشه FPGA با سرعت بالاتر و امکان به‌روزرسانی کردن سخت افزار پیاده‌سازی می‌­شوند.

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

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

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

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

دوره آموزش FPGA مقدماتی مناسب چه کسانی است؟

این دوره­‌ برای کسانی که علاقمند به کار در حوزه‌­های الکترونیکی و فضاها‌ی مرتبط آن در ایران و یا خارج از کشور هستند، مناسب است. همچنین دانشجویانی که در زمینه‌­های تحقیقاتی مشغول هستند، می‌­توانند از مفاهیم گفته شده استفاده نمایند.

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

بعد از فراگیری دوره آموزش FPGA مقدماتی در مکتب خونه چه مهارت­هایی کسب خواهید کرد؟

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

FPGA چیست؟

FPGA مخفف Field-Programmable Gate Array است و می‌تواند به عنوان یک تراشه سخت‌افزاری تعریف شود که برای انجام عملیات منطقی استفاده می‌شود. FPGA  از یک شبکه یکپارچه یا مجموعه‌ای از بلوک‌های منطقی که در یک تراشه قرار گرفته‌اند، تشکیل شده‌اند. که در آن مدار‌ها گیت‌های منطقی قابل برنامه‌ریزی هستند. FPGA‌ها از بلوک‌های منطقی قابل تنظیم جداگانه یا CLB تشکیل شده‌اند که از طریق اتصالات قابل برنامه‌ریزی به هم متصل می‌شوند. 

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

مزایای آموزش FPGA مقدماتی

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

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

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

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

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

هدف اصلی از ساخت FPGA

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

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

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

برنامه‌های کاربردی آموزش FPGA مقدماتی

تراشه‌های FPGA هم در ارتباطات سیمی و هم در ارتباطات بی‌سیم استفاده می‌شوند. در ارتباطات سیمی در بک پلن‌های سریال و ارتباطات بی‌سیم برای راه حل‌های شبکه و آدرس دهی استاندارد‌های وایمکس و ۵G/۶G و HSDPA استفاده می‌شود. همچنین FPGA در بخش زیرساخت استفاده می‌شود و به خرد کردن داده‌ها با سرعت بالا کمک می‌کند.

در زمینه کاربرد‌های پزشکی نیز، از تراشه‌های FPGA برای اهداف تشخیصی و نظارتی استفاده می‌شود. آن‌ها در تجهیزات پزشکی برای پردازش داده‌ها استفاده می‌شوند.

در زمینه هوافضا و کاربرد‌های دفاعی، کاربرد تراشه‌های FPGA را می‌توان در برای پردازش تصویر، پیکربندی مجدد جزئی برای SDR‌ها و همچنین برای تولید شکل موج جستجو کرد.

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

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

از جمله اصلی‌ترین کابرد‌های FPGA‌ها می‌توان به توسعه شبکه‌های عصبی عمیق یا DNN اشاره داشت که در نهایت منجر به تولید و نگهداری سیستم‌های هوشمند مصنوعی می‌شود. FPGA‌های با کارایی بالا در مقایسه با GPU‌ها می‌توانند حتی بیشتر به یک برنامه کاربردی کمک کنند و بنابراین برای اهداف توسعه فناوری یادگیری ماشین ترجیح داده می‌شوند. علاوه بر این موارد فناوری FPGA به شرکت‌های ASIC فرصت نمونه‌سازی سریع را می‌دهد.

به طور مثال در زمینه کاربرد‌های پزشکی، از تراشه‌های FPGA برای اهداف تشخیصی و نظارتی استفاده می‌شود. آن‌ها در تجهیزات پزشکی برای پردازش داده‌ها استفاده می‌شوند. FPGA‌ها در MRI، CT اسکن، سونوگرافی، سیستم های‌مانیتورینگ بیمار ECG استفاده می‌شوند. 

آموزش FPGA مقدماتی برای چه کسانی مناسب است؟

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

این FPGA ترکیبی از تطبیق‌پذیری، کارایی و عملکرد، یک بسته جذاب برای کسب و کار‌های مدرنی ارائه می‌دهند که به دنبال پردازش داده‌های بیشتر با هزینه کل مالکیت کمتر  (TCO) هستند. پس باید آموزش FPGA مقدماتی را به عنوان امری مناسب برای بهینه سازی فعالیت‌های مشاغل سازمانی در نظر گرفت.

مرز جدید برای FPGA‌ها: هوش مصنوعی

شبکه‌های عصبی عمیق (DNN)  که برای هوش مصنوعی( AI)  استفاده می‌شوند، زمینه جدیدی از کاربرد‌های FPGA‌ها به شمار ‌می‌روند که در حال حاضر مورد توجه است.

اجرای مدل‌های استنتاج DNN قدرت پردازش قابل توجهی را می‌طلبد. واحد‌های پردازش گرافیکی  (GPU) اغلب برای تسریع پردازش استنتاج استفاده می‌شوند، اما در برخی موارد، FPGA با کارایی بالا ممکن است در تجزیه و تحلیل مقادیر زیادی از داده‌ها برای یادگیری ماشین، عملکرد بهتری از GPU داشته باشند.

مایکروسافت در حال حاضر از قابلیت تطبیق‌پذیری Intel FPGA را برای تسریع هوش مصنوعی بهره می‌برد. Project Brainwave مایکروسافت از طریق خدمات ابری Microsoft Azure دسترسی به FPGA‌های Intel Stratix را برای مشتریان فراهم می‌کند.

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

درعوض، توسعه‌دهندگان می‌توانند با ابزار‌های متن‌باز رایج مانند Microsoft Cognitive Toolkit یا چارچوب توسعه هوش مصنوعی TensorFlow کار کنند. بنابراین بیراه نیست اگر بگوییم که آموزش FPGA پیشرفته می‌تواند چشم اندازهای جدیدی برای آینده شغلی و تحصیلی شما محیا کند. 

پیش نیاز‌های دوره آموزش FPGA مقدماتی

دانش اولیه زبان‌های توصیف سخت‌افزار مانند Verilog یا VHDL از جمله اصلی‌ترین پیش نیاز‌های دوره آموزش FPGA مقدماتی  به شمار ‌می‌روند.

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

درباره استاد

maktabkhooneh-teacher مهدی آیت

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

مشاهده پروفایل و دوره‌‌های استاد

نظرات کاربران

تا کنون نظری برای این دوره ثبت نشده است. برای ثبت نظر باید ابتدا در دوره ثبت نام کرده و دانشجوی دوره باشید.
امیرحسین چاوشی 1400-07-22
برای دوستانی که قصد ثبت نام دارند یک سری توضیحات عرض می کنم که کمک کننده باشه . این دوره کاملا نرم افزاری می باشد و تسلط استاد هم کامل است و به میزان مناسبی به نرم افزار ise و زبان برنامه نویسی vhdl مسلط می شوید که این تسلط برای یادگیری نرم افزار vivado هم برای شما بسیار کمک کننده است و زمان یادگیری ویوادو رو کاهش می دهد. بهتر است پروژه ها رو کاملا انجام بدید و تحقیق و ریسرچ هم فراموش نشه و در ضمن طبیعتا برای یادگیری کامل تر بهتره که به صورت سخت افزاری هم پیاده سازی کنید . از نقاط ضعف دوره هم میشه به عدم فیدبک مناسب و در اختیار نگذاشتن اسلاید ها عدم آموزش تنظیمات impact اشاره کرد. در کل برای شروع بسیار مناسب است و تشکر می کنم .
محمدامین سلطانیان 1400-06-27
دوره بسیار خوبی هست استاد به کل مطلب کاملا مسلط هستن نحوه بیان وبقیه موارد هم به نظرم خوب هست با تشکر از مکتبخونه برای این دوره مفید
علی فتح اللهی 1400-01-30
به نظر میاد اولین نفری هستم که توی این دوره ثبت نام کردم باقدرت بریم که ببینیم چه میکنیم
ندا حیدری 1401-02-23
دوره بسیار خوبی هست مشخصه که استاد تجربه خوبی دارن چون کاملا کاربردی و روان تدریس میکنن نکته عجیبی داشت دوره، استاد هرگز از قلم یا پوینتر استفاده نکردن و بعضی جاها فقط با گفتن کلمه "این" خیلی سخت بود متوجه بشیم دقیقا به کجای صفحه اشاره دارن. ممنون از سایت فوق العاده مکتب خونه و جناب آقای آیت.
منص خال 1402-10-05
خب ضمن تشکر از استاد و موسسه محترم باید بگویم که این دوره مخلوطی بود ازfpga, vhdl, ise, vivado که 90 درصدvhdl بود بهتر بود نام این دوره را vhdl می گذاشتید این دوره به دانش من افزود اما به توانایی من جیزی نیفزود. حتی نکات اصلی دانشی هم فقظ در جلسه اخر به انها اشاره شد. کوییزها بیشتر جنبه ملا لغتی داشتند تا مفهومی.پروژه ها اموزنده بودند اما وقت گیر و در حد مدار منطقی دو ، نا گفته نماند که استاد مسلط بود اما توقع من که کارعملی با fpga بود که براورده نشد و هنوز نمی توانم بگویم fpga بلدم. شک دارم در دوره پیشرفته آن هم این توقع براورده شود. امیدوارم این انتقاد سازنده باشد.
علی خسروی 1401-05-08
سلام استاد کامل به موضوع مسلط هستند اما در بیان و ارائه مقداری ضعف وجود داره.
مجتبی اسکندری حصاری 1401-05-21
نحوه بیان استاد واقعا ضعیفه هر وقت میام نگاه کنم از شدت ضعف بیان خوابم میگیره،مخصوصاً موقع اشاره به متن یا موضوعی از کلمه "این" استفاده میکنه و روی مانیتور هم مووس دیده نمیشه و معلوم نیست منظورش از این کجاست.
مکتب‌خونه
همراه عزیز؛ با سپاس از نظر شما، موارد مطرح شده جهت بررسی به بخش مربوطه ارسال شد. در صورت نیاز به پیگیری بیشتر با شما در ارتباط خواهیم بود.
محمدرضا خواجه وندی 1402-10-19
یادمه وقتی دانشجو بودم توی فضای مجازی برای خنده عکس و تصویر کاریکاتور مانندی میذاشتن از اینکه ، چیزی که استاد درس میده ، چیزی که امتحان میگیره متاسفانه در این آموزش ضعف بسیار هست و این کاریکاتور برام تداعی میشه هر بار اول اینکه استاد هنگام تدریس به جای اینکه با ماوس نشون بده از کجاها صحبت میکنه و به چه سطرهایی اشاره میکنه فقط میگه "اینو" ، "اونو" "این" "از این" و دانشجو باید معمای "اینو" و "اون" استاد رو وسط درس حل کنه. دوم اینکه با توجه به توانمندی استاد در این دوره متاسفانه باید بگم که ، چندین تا اسلاید آماده شده ؛ و فقط از روی اونا استاد روخوانی میکنه و رد میشه لااقل تا فصل 3 که اینطور بوده من دیدم انتظار منه دانشجو این بوده که استاد با توضیحاتی که از روی اونا روزنامه وار رد میشه ، در محیط ISE مثال حل کنه توی محیط ISE بیاد توضیح بده بعد بره روی اسلاید نشون بده .تدریس به شدت ضعیف است ، اگر کیفیت تدریس بالاتر بود و هزینه هم بالاتر بود مشکلی نبود ولی الان اصلا از دوره راضی نیستم یه شیفت رجیستر کد نزد استاد یه مدار درست و درمون تا فصل 3 ندیدم قشنگ توضیح بدن و حل کنن. مدارات ساده رو که خودمون با کمی تلاش و تمرین میتونیم حل کنیم ، جل کردن سختا رو تمرین دادن. اصلا جزو سیلابس های درسی بچه های الکترونیک هست این درس، آسونا رو میشه کدش رو زد، سخت ها رو از روی اسلاید روزنامه وار خوندن و رد شدن به شدت ضعیف و به شدت ضعیف به شدت ضعیف الان کتاب پدرونی رو دانلود کنم میتونم کلی کد داخلش ببینم و خیلی شیک و تر و تمیز هم نوشته و توضیحات انگلیسی داده شده ولی بنده چون ضعف داشتم و دوست داشتم یکی بهم آموزش بده و به علمم اضافه تر بشهو نکاتی که توی اون کتاب پنهان بوده رو یک استاد بهم میگه و من در چالش آموزش و حل تمرین و کار با نرم افزار میفتم و سعی در یادگیری خواهم داشت ، به همین خاطر این دوره رو انتخاب کردم
1402-05-29
دوره اصلا بدرد نمی خوره عناوین اشاره شده در پروژه ها در واقع تعرف پروژه برای دانشجو هستش و انجام نمیشن و فقط 14 ساعت آموزشه اون 60 ساعت باقی مونده در واقع زمان تحویل پروژست
مکتب‌خونه
همراه عزیز؛ در قسمت اطلاعات دوره محتوای آموزشی 13 ساعت ویدیو می باشد و 27 ساعت زمان تقریبی محاسبه شده توسط مکتب خونه جهت انجام پروژه و تمرین ها دوره می باشد.

دوره‌های پیشنهادی

سوالات پرتکرار

آیا در صورت خرید دوره، گواهی نامه آن به من تعلق می گیرد؟
خیر؛ شما با خرید دوره می توانید در آن دوره شرکت کنید و به محتوای آن دسترسی خواهید داشت. در صورتی که در زمان تعیین شده دوره را با نمره قبولی بگذرانید، گواهی نامه دوره به نام شما صادر خواهد شد.

سوالات پرتکرار

آیا گواهی‌نامه‌های دانشگاهی به صورت رسمی و توسط دانشگاه مربوطه صادر می‌شود؟
بله؛ گواهی نامه ها توسط دانشگاه مربوطه و با امضای رئیس دانشگاه یا مسئول مربوطه که حق امضای گواهی نامه ها را دارد صادر می شود و گواهی نامه معتبر دانشگاه است که به اسم هر فرد صادر می شود.

سوالات پرتکرار

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

سوالات پرتکرار

در صورت قبولی در دوره، آیا امکان دریافت نسخه فیزیکی گواهی نامه دوره را دارم؟
خیر، به دلیل مسائل زیست محیطی و کاهش قطع درختان، فقط نسخه الکترونیکی گواهی‌نامه در اختیار شما قرار می‌گیرد

سوالات پرتکرار

پس از سپری شدن زمان دوره، به محتوای دوره دسترسی خواهم داشت؟
بله؛ پس از سپری شدن مدت زمان دوره شما به محتوای دوره دسترسی خواهید داشت و می توانید از ویدئوها، تمارین، پروژه و دیگر محتوای دوره در صورت وجود استفاده کنید ولی امکان تصحیح تمارین توسط پشتیبان و دریافت گواهی نامه برای شما وجود نخواهد داشت.

سرفصل­ های دوره آموزش FPGA مقدماتی در مکتب خونه چیست؟

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

 

فصل دوم دوره آشنایی با FPGAهاست. در بخش اول آن تفاوت پردازنده ­ها، ASIC و FPGA بیان می­‌شود. در بخش دوم، به معرفی شرکت­‌های معروف سازنده FPGA، بخش سوم، معرفی سایت­‌های مرتبط با تراشه ­های Xilinx، Intel و Actel در بخش چهارم، به معماری داخلی FPGA، بخش CLB و پردازنده­‌های داخلی پرداخته­ می­‌گردد. پس از پایان بخش چهارم، نوبت به تمرین دوم می‌­رسد که مقایسه LUTها و دلیل انتخاب ورودی‌های 4، 5 و 6 برای آن­ها با آن انجام می­‌گیرد. بخش پنجم این فصل، به حافظه های BRAM در FPGA و معرفی چند بورد نمونه FPGA اختصاص دارد. در بخش ششم نیز مقایسه تعدادی از تراشه­‌های FPGA از شرکت Xilinx مورد بررسی قرار می­‌گیرد. در پایان این فصل، تمرین سوم آورده شده­ است که معماری FPGAهای Zynq، سری RFSoC و MPSoC را در آن بررسی می‌­کنیم و برای تثبیت آموخته‌ها یک کوییز نیز از علاقمندان گرفته می­‌شود. 

 

در فصل سوم از دوره آموزش FPGA به آشنایی با کلیات زبان­‌های توصیف سخت‌­افزار، بدنه‌های ترکیبی و ترتیبی پرداخته می‌­شود. در بخش اول این فصل کلیات زبان­‌های مورد استفاده برای برنامه ­نویسی و کار با FPGA بررسی و مرور می­‌شوند. در بخش دوم، کار با نرم­‌افزار ISE را شروع می‌­کنیم و در بخش سوم، یک برنامه ساده گیت منطقی NOT در محیط ISE سنتز و شبیه‌­­سازی می­‌شود. در پروژه اول این فصل، برنامه f=a.b را با استفاده از گیت AND و با استفاده از مالتی‌­پلکسر می‌­نویسیم. بعد از پایان پروژه بخش چهارم این فصل آغاز می‌­شود، در این بخش  کتابخانه‌­ها و نوع متغیرها در VHDL تعریف می‌­شوند.

در بخش پنجم، با ساختارهای dataflow، structural و behavioral آشنا می‌­شویم و در بخش ششم، از بدنه‌­های ترکیبی در زبان VHDL مثال­‌هایی آورده می‌­شود. بعد از آن پروژه دوم، یعنی برنامه ضرب­‌کننده دو عدد 2-بیتی بدون علامت را مورد بررسی قرار می­‌دهیم. در بخش هفتم از فصل دوم دوره آموزش FPGA با Language Template در نرم­ افزار ISE آشنا می‌­شویم و در بخش هشتم، برنامه یک جمع ­کننده 4 بیتی با فراخوانی Full-Adderها در ISE آموزش داده می‌­شود.

بعد از این بخش، پروژه سوم این فصل یعنی برنامه مرتب­ کننده 4 عدد بدون علامت را آموزش خواهیم دید. در بخش‌های نهم، دهم، یازدهم، دوازدهم و سیزدهم به مثال‌­هایی از ساختارهای منطقی ترتیبی مانند Latch، فلیپ فلاپ، رجیسترها و ...، شیفت رجیستر، شمارنده­‌ها، LFSR و کاربردهای آن، مثال­‌هایی ازکدنویسی در ISE، نوشتن برنامه یک شمارنده در ISE و مثالی از بدنه‌های ترکیبی و ترتیبی، حافظه ROM، تفاوت signal و variable پرداخته می­‌شود. در پایان، این فصل با  پروژه برنامه تقریب تکه ­خطی یک تابع ریاضی به انتها می‌­رسد و کوییز دوم نیز برگزار می‌­شود. 

فصل چهارم از دوره آموزش FPGA در مورد ماشین حالت و برنامه­‌های کنترل داده، فراخوانی­‌های مکرر، زیربرنامه­‌ها و توابع در VHDL است. در بخش اول این فصل قسمت اول از ماشین حالت و در بخش دوم، قسمت دوم ماشین حالت معرفی می‌شود. پس از آن، پروژه پنجم این دوره آموزشی یعنی برنامه انکدر CRC انجام می‌­شود. در بخش سوم استفاده از for-generate را می‌­آموزیم. در بخش چهارم Package، Function و Procedure معرفی می‌­شوند. در بخش پنجم، برنامه محاسبه بزرگترین مضرب مشترک دو عدد نوشته می‌­شود و در بخش ششم، برنامه Funnel Shifter آموزش داده می‌­شود. سپس پروژه ششم یعنی برنامه ضرب‌­کننده Baugh-Wooly آموزش داده می­‌شود. 

در بخش هفتم این فصل، برنامه تابع ضرب­‌کننده و استفاده از Package معرفی می‌­شود. در بخش‌­های هشتم و  نهم، مثال‌هایی از برنامه­ نویسی VHDL آورده می‌­شود. پس از آن پروژه هفتم یعنی برنامه ضرب دو ماتریس 3×3 آموزش داده می‌­شود و مجدداً برای تعمیق و تثبیت آموخته‌ها، کوییز سوم برگزار می‌­شود. 

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

در بخش ششم، گزارش‌­گیری Timing در نرم­‌افزار ISE معرفی می­‌شود. بخش هفتم، به گزارش­‌گیری توان مصرفی در نرم‌­افزار ISE پرداخته می­‌شود. در بخش­‌های هشتم و نهم، نحوه مشخص کردن پین‌­ها و پیکربندی FPGA و همینطور آشنایی با محیط Vivado و نحوه کار در این محیط بررسی می­‌گردد. در پایان، پروژه نهم یعنی برنامه محاسبه جذر، لگاریتم و پروژه دهم یعنی برنامه محاسبه هیستوگرام یک تصویر انجام می‌­گیرد و در خاتمه دوره نیز، کوییز چهارم برگزار می‌­شود. 

 

poster
  
برگزار کننده:  مکتب‌خونه
  
زمان مورد نیاز برای گذارندن دوره:  40 ساعت
مجموع محتوای آموزشی:  13 ساعت ویدئو - 27 ساعت تمرین و پروژه
 (قابل دانلود نمی‌باشد)
مهلت دوره:  9 هفته
  
حد نصاب قبولی در دوره:  80 نمره
فارغ‌التحصیل شدن در این دوره نیاز به ارسال تمرین‌ها و پروژه‌های الزامی دارد. 
organization-pic  گواهینامه این دوره توسط مکتب‌خونه ارائه می‌شود.
course-feature   گواهی‌نامه مکتب‌خونه course-feature   خدمات منتورینگ course-feature   پروژه محور course-feature   تمرین و آزمون course-feature   تالار گفتگو course-feature   تسهیل استخدام