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

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

گواهی‌نامه
3.8 (31 امتیاز)
1,970 دانشجو
مقدماتی
محتوای دوره
درباره دوره
نظرات کاربران
درباره استاد

محتوای دوره

5 فصل 40 جلسه 13 ساعت ویدیو
فصل1- پردازنده‌ها و قابلیت‌های آن‌ها
فصل2- آشنایی با FPGAها
فصل3- آشنایی با کلیات زبان‌های توصیف سخت‌افزار، بدنه‌های ترکیبی و ترتیبی
فصل4- ماشین حالت و برنامه‌های کنترل داده، فراخوانی‌های مکرر، زیربرنامه‌ها و توابع در VHDL
فصل5- ملاحظات برنامه‌های تست و مطالب مرتبط با پیاده‌سازی سخت‌افزاری

درباره دوره

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 مقدماتی، از دوره ها و مقالات معتبر و مفیدی برخوردار است که مطمئنا برای شما مفید خواهد بود. از اینکه تا پایان این مطلب ما را همراهی کردید، سپاس گزارم.

دوره آموزش FPGA

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

FPGA چیست؟

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

چرا باید آموزش FPGA را فرا بگیرید؟

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

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

با FPGA چه کارهایی می‌توان انجام داد؟

کاربردهای FPGA بسیار متنوع است. در اینجا چند نمونه ذکر شده است:

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

ابزارهای مورد نیاز برای یادگیری FPGA

برای شروع یادگیری و آموزش FPGA به چند ابزار کلیدی نیاز دارید:

  • برد آموزشی FPGA: بردهای آموزشی مختلفی با قیمت‌های متفاوت در بازار موجود است. این بردها شامل یک FPGA و سایر اجزای لازم برای شروع کار می‌شوند.
  • نرم افزار طراحی سخت افزار: برای برنامه ریزی FPGA به نرم افزار طراحی سخت افزار (EDA) نیاز دارید. این نرم افزار به شما امکان می‌دهد تا مدارهای منطقی خود را  طراحی کرده و آن‌ها را روی FPGA پیاده سازی کنید. برخی از نرم افزارهای محبوب EDA عبارت‌اند از Xilinx Vivado و Intel Quartus.
  • زبان سخت افزار: برای برنامه ریزی FPGA نیاز به یادگیری یک زبان سخت افزار مانند VHDL یا Verilog دارید. این زبان‌ها شبیه به زبان‌های برنامه نویسی سنتی هستند، اما برای توصیف سخت افزار طراحی شده‌اند.

منابع آموزشی FPGA

منابع مختلفی برای یادگیری FPGA در دسترس است، از جمله:

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

مراحل یادگیری FPGA

یادگیری FPGA یک فرآیند گام به گام است. در اینجا مراحل کلی که باید دنبال کنید آورده شده است:

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

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

4. شروع با پروژه‌های ساده: پس از یادگیری زبان سخت افزار، می‌توانید با پروژه‌های ساده شروع کنید. این پروژه‌ها به شما کمک می‌کند تا مفاهیم کلیدی را درک کرده و مهارت‌های خود را تمرین کنید.

5. به تدریج به سمت پروژه‌های پیچیده تر بروید: با افزایش مهارت خود، می‌توانید به سراغ پروژه‌های پیچیده تر بروید. این پروژه‌ها به شما کمک می‌کند تا دانش و مهارت خود را در زمینهٔ FPGA به چالش بکشید و ارتقا دهید.

6. از منابع آموزش fpga موجود استفاده کنید: منابع آموزشی مختلفی مانند دوره‌های آنلاین، کتاب‌ها و آموزشگاه‌ها برای کمک به شما در یادگیری FPGA در دسترس است. از این منابع برای تکمیل دانش و مهارت‌های خود استفاده کنید.

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

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

FPGA چه تفاوتی با CPU دارد؟

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

یادگیری FPGA چقدر سخت است؟

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

بهترین راه برای یادگیری FPGA چیست؟

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

چه نوع شغل‌هایی با FPGA وجود دارد؟

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

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

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

در دوره آموزش fpga، شما با مفاهیم زیر آشنا خواهید شد:

پردازنده‌ها و قابلیت‌های آن‌ها

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

آشنایی با FPGA ها

در این دوره آموزش fpga، شما با معماری FPGA ها، بلوک‌های ساختمانی آن‌ها و نحوه برنامه ریزی آن‌ها آشنا خواهید شد. شما همچنین در مورد ابزارها و نرم افزارهای مورد استفاده برای طراحی FPGA ها خواهید آموخت.

آشنایی با کلیات زبان‌های توصیف سخت افزار، بدنه‌های ترکیبی و ترتیبی

در این دوره آموزش fpga، شما با زبان‌های توصیف سخت افزار HDL مانند VHDL و Verilog آشنا خواهید شد. شما همچنین در مورد بدنه‌های ترکیبی و ترتیبی که بلوک‌های ساختمانی اساسی طراحی FPGA هستند، خواهید آموخت.

ماشین حالت و برنامه‌های کنترل داده، فراخوانی‌های مکرر، زیربرنامه ها و توابع در VHDL

در این دوره آموزش fpga، شما با مفهوم ماشین حالت و نحوه استفاده از آن‌ها برای طراحی مدارهای کنترل آشنا خواهید شد. شما همچنین در مورد فراخوانی‌های مکرر، زیربرنامه ها و توابع در VHDL خواهید آموخت.

ملاحظات برنامه‌های تست و مطالب مرتبط با پیاده سازی سخت افزاری

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

پس از اتمام این دوره، شما قادر خواهید بود:

  • اصول طراحی و برنامه نویسی FPGA را درک کنید.
  • از زبان‌های HDL مانند VHDL و Verilog برای طراحی مدارهای دیجیتال استفاده کنید.
  • مدارهای دیجیتال ساده را با استفاده از FPGA ها طراحی و پیاده سازی کنید.
  • برنامه‌های FPGA را تست و اشکال زدایی کنید.

این دوره برای چه کسانی مفید است؟

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

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

سرفصل­ های دوره آموزش 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 و نحوه کار در این محیط بررسی می­‌گردد. در پایان، پروژه نهم یعنی برنامه محاسبه جذر، لگاریتم و پروژه دهم یعنی برنامه محاسبه هیستوگرام یک تصویر انجام می‌­گیرد و در خاتمه دوره نیز، کوییز چهارم برگزار می‌­شود. 

 

اطلاعات بیشتر

امتیاز و نظرات کاربران

3.8

از مجموع 31 امتیاز

9 نظر

3 سال پیش

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

امیرحسین چاوشی

امیرحسین چاوشی

3 سال پیش

دوره بسیار خوبی هست استاد به کل مطلب کاملا مسلط هستن نحوه بیان وبقیه موارد هم به نظرم خوب هست با تشکر از مکتبخونه برای این دوره مفید

محمدامین سلطانیان

محمدامین سلطانیان

2 سال پیش

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

ندا حیدری

ندا حیدری

10 ماه پیش

خب ضمن تشکر از استاد و موسسه محترم باید بگویم که این دوره مخلوطی بود ازfpga, vhdl, ise, vivado که 90 درصدvhdl بود بهتر بود نام این دوره را vhdl می گذاشتید این دوره به دانش من افزود اما به توانایی من جیزی نیفزود. حتی نکات اصلی دانشی هم فقظ در جلسه اخر به انها اشاره شد. کوییزها بیشتر جنبه ملا لغتی داشتند تا مفهومی.پروژه ها اموزنده بودند اما وقت گیر و در حد مدار منطقی دو ، نا گفته نماند که استاد مسلط بود اما توقع من که کارعملی با fpga بود که براورده نشد و هنوز نمی توانم بگویم fpga بلدم. شک دارم در دوره پیشرفته آن هم این توقع براورده شود. امیدوارم این انتقاد سازنده باشد.

منص خال

منص خال

2 سال پیش

سلام استاد کامل به موضوع مسلط هستند اما در بیان و ارائه مقداری ضعف وجود داره.

علی خسروی

علی خسروی

2 سال پیش

نحوه بیان استاد واقعا ضعیفه هر وقت میام نگاه کنم از شدت ضعف بیان خوابم میگیره،مخصوصاً موقع اشاره به متن یا موضوعی از کلمه "این" استفاده میکنه و روی مانیتور هم مووس دیده نمیشه و معلوم نیست منظورش از این کجاست.

مجتبی اسکندری حصاری

مجتبی اسکندری حصاری

نظرات بیشتر

گواهی‌نامه

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

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

قابل اشتراک‌گذاری در

linkdin

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

این دوره در کدام مسیرهای یادگیری است؟

درباره استاد

مهدی آیت
مهدی آیت
2 دوره
2,445 دانشجو

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

اطلاعات بیشتر

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

آیا در صورت خرید دوره، گواهی نامه آن به من تعلق می گیرد؟

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

آیا گواهی‌نامه‌های دانشگاهی به صورت رسمی و توسط دانشگاه مربوطه صادر می‌شود؟

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

حداقل و حداکثر زمانی که می توانم یک دوره را بگذرانم چقدر است؟

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

در صورت قبولی در دوره، آیا امکان دریافت نسخه فیزیکی گواهی نامه دوره را دارم؟

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

پس از سپری شدن زمان دوره، به محتوای دوره دسترسی خواهم داشت؟

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