کارگاه آموزش FPGA و زبان VHDL

کارگاه آموزش FPGA و زبان VHDL

FPGA and VHDL workshop

زمان شروع دوره: تابستان 1400

روزها و ساعت های برگزاری دوره: متعاقبا اعلام میگردد

محل برگزاری دوره: کارگاه برق دانشگاه صنعتی شریف

برای اطلاع از نحوه ثبت نام در این دوره به ثبت نام در دوره های فناورسرا مراجعه فرمایید.

پیش نیاز های دوره:

مدارات منطقی دیجیتال

اصول سیستم های دیجیتال.

 

استاد: دکتر محمد جوادیان

دارای دکترای برق از دانشگاه صنعتی شریف

دارای بیش از 16 سال سابقه تدریس در دانشگاه های دولتی، آزاد، پایم نور، علمی کاربردی، و فنی حرفه ای

دارای مقام رباتیک خوارزمی و ایران اپن، و دارای سالها سابقه کار در زمینه طراحی الکترونیک، میکروکنترلر و برق صنعتی

دارای سالها سابقه تدریس درس کنترل کننده های PLC و کارگاه برق صنعتی و ساختمان در دانشگاه ها.

 

مدرک پایان دوره:

اعطای گواهینامه معتبر دو زبانه پایان دوره 

 

مدت دوره:

48 ساعت

 

مخاطبین:

تمامی دانشجویان و فارغ التحصیلان رشته مهندسی برق با گرایش الکترونیک، مخابرات، قدرت، و مهندسین کامپیوتر با گرایش سخت افزار و علاقه مندان به فعالیت در حوزه های دیجیتال و طراحی سخت افزارهای دیجیتالی، علاقه مندان به فعالیت در حوزه های پیشرفته تر همچون پردازش سیگنال ( signal processing )، رباتیک، محاسبات حجیم، سیستمهای نهفته (Embedded System)، سیستمهای زمان حقیقی (Real Time) و بحثهای high performance computing و طراحی مدارات مجتمع فشرده

 

کاربرد ها، مهارت ها و توانایی های اکتسابی پس از گذراندن دوره:

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

در انتهای دوره آموزشی دانشپذیر قادر به طراحی یک سیستم دیجیتال بر روی FPGA خواهد بود

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

 

معرفی دوره:

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

FPGA  یک سخت افزار خام است که شما می­توانید هر سخت افزاری را بر روی آن قرار دهید (دانلود کنید)، بطوریکه از آن لحظه به بعد کار همان سخت افزار را انجام میدهد. این سخت افزار میتواند یک گیت NAND مانند IC7400 باشد تا یک میکروکنترلر (مثلا AVR). اما در عمل سخت افزارهایی که IC آنها وجود ندارد را بر روی FPGA پیاده سازی میکنند. در واقع FPGA یک بستری برای پیاده سازی مدارات ASIC(Application Specific Integrated Circuit) (مدارات خاص منظوره) است که بیشتر در صنایع نظامی، پزشکی، فیلترهای دیجیتال، سیستم های انتقال دیتاهای دیجیتال، سیستم های مخابراتی و سیستم های مختلف کنترلی در مواردی که سرعت پردازشی بالا، هزینه پایین، تعداد کم و زمان طراحی و توسعه کم مورد نیاز است استفاده میگردد. در صورتیکه هزینه مهم نباشد یا تعداد زیاد برای تولید مد نظر باشد دیگر از FPGA استفاده نمیشود و IC جدیدی برای آن منظور طراحی میگردد.

در طراحی FPGA به این علت که کل سخت افزار را طراح طراحی میکند میتواند برای رسیدن به محدودیتهای توان یا زمان به راحتی و هرجا که نیاز باشد از pipeline (خط لوله) یا parallel processing (پردازش موازی) استفاده نماید. همچنین میتواند از هر معماری سخت افزاری که مدنظرش باشد برای پیاده سازی سخت افزار استفاده نماید. این مورد مزیت بالایی نسبت به استفاده از IC های آماده با کارایی ثابت و از پیش مشخص میباشد. بعنوان مثال کارها و پردازشهایی را که میتوان با FPGA انجام داد را حتی با قویترین میکروکنترلرهای موجود نیز نمیتوان انجام داد. زیرا این میکروکنترلرهای کاراییشان ثابت و سیم بندی شده است، مثلا باس دیتا 64 بیت ثابت، اما در FPGA درصورت نیاز میتوان باس داده 1024 بیتی را نیز داشته و حتی میتوان روی همه این بیتها بصورت موازی پردازش انجام داد. در بحث موازی سازی نیز قدرت FPGA میتواند بسیار بیشتر از کارتهای گرافیک کامپیوتری باشد زیرا در FPGA تعداد واحدهای پردازشگر موازی را خود طراح تعیین میکند در حالیکه در کارتهای گرافیک این تعداد ثابت هستند.

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

 

نحوه اجرا: بصورت کاملا عملی و پروژه محور

 

امکان تهیه برد آموزشی با مبلغ 850 هزار تومان با هزینه پستی رایگان

 

سرفصل کلی دوره:

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

معرفی FPGA، انواع آنها و شرکتهای سازنده

آموزش زبان VHDL بطور کامل از مقدماتی تا پیشرفته

آموزش نرم افزار Xilinx ISE

کار با نرم افزار Chipscope به منظور دیباگ کردن کد

کار عملی در هر جلسه با بورد FPGA

معرفی منابع داخلی FPGA

معرفی منابع کلاک

معرفی پایپلاین (خط لوله) و انجام تمرین و پروژه

معرفی Constraint ها

تحلیل سرعت، سطح و توان در FPGA

انجام پروژه های مختلف (کار با LCD، کار با کلید، کار با کیبورد، کار با 7segments، کار با LED، کار با پروتکل سریال UART؛ کار با برخی از پروتکل های دیگر

معرفی طراحی Hardwired

معرفی انواع مقالات مبتنی بر FPGA و نحوه انجام کار تحقیقاتی در این زمینه

و مباحث تکمیلی دیگر

 

سرفصل کلی دوره به تفکیک جلسات:

جلسه اول:

معرفی انواع روشهای طراحی سخت افزارهای دیجیتال

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

آشنایی با زبان VHDL

نصب نرم­افزار

نوشتن و شبیه سازی و پیاده سازی یک مثال بطور کامل بصورت کارگاهی در کلاس  بر روی بردهای FPGA

 

جلسه دوم:

مروری بر ساختار زبان VHDL

انواع تایپ داده های تک بیتی و چند بیتی

معرفی روشهای طراحی ساختاری و رفتاری

نحوه استفاده از ماژولها و کامپوننتهای طراحی شده در یک طرح جدید

پیاده سازی یک تمام جمع کننده بصورت عملی (دریافت ورودی ها از دیپ سوئیچ و نمایش حاصلجمع روی LED)

نحوه نوشتن فایل UCF برای معرفی پایه های ورودی و خروجی

بحثهای مربوط به قوانین ارجاع

طریقه نوشتن تست بنچ بصورت کامل (تولید کلاک، دستورات wait، تولید عدد تصادفی و ...)

 

جلسه سوم:

معرفی دستورات محیط concurrent و sequential

پیاده سازی مدارات ترکیبی در  محیط Concurrent و sequential

پیاده سازی مالتی پلکسر، دیمالتی پلکسر، انکدر، دیکدر، ALU، بافر 3 حالته، باس،

پیاده سازی جمع کننده BCD بصورت رفتاری و ساختاری

نمایش بر روی 7segment با انواع دستورات محیط concurrent و sequential

خواندن کلید Dip Switch و نمایش عدد ورودی بر روی 7_segment بصورت کارگاهی و عملی در کلاس

 

جلسه چهارم:

طراحی و پیاده سازی ALU به طرق مختلف

معرفی IP و نحوه استفاده از IP ها در طراحی

طراحی و پیاده سازی ALU با استفاده از IP ها

 

جلسه پنجم:

پیاده سازی ALU طراحی شده بر روی برد و تست مدار با استفاده از نرم افزار chipscope قسمت VIO

مدارات ترتیبی

پیاده سازی فلیپ فلاپ، رجیستر، شمارنده، شیف رجیستر

پیاده سازی پروژه کامل جمع کننده سریال

طراحی شمارنده و استفاده از ILA در chipscope

 

جلسه ششم:

ماشینهای حالت و مدارات میلی و مور

خواندن کلید push button و حذف debounce کلید با استفاده از ماشین های حالت

طراحی تایمر و نمایش ثانیه و دقیقه بر روی 7segment مالتی پلکس شده

راه اندازی ADC توسط FPGA و ماشین های حالت

نمایش بر روی نمایشگر LCD کاراکتری

 

جلسه ششم:

پیاده سازی پروتکل ارتباطی UART

معرفی انواع انکدر برای شمارش دور موتور و تعیین زاویه چرخش

طراحی شمارنده و نمایش تعداد پالسهای انکدر افزایش بر روی 7segment

معرفی موتورهای stepper motor و راه اندازی آن

معرفی موتورهای DC و servo motor ها

کنترل موتور DC و servo motor با پالسهای PWM تولید شده توسط FPGA

 

جلسه هفتم:

بررسی نکات مربوط به کد نویسی قابل سنتز با زبان VHDL

معرفی pipeline و نحوه پیاده سازی pipeline در FPGA

منابع کلاک در FPGA

بحثهای تحلیل توان و سرعت و منابع در FPGA

استفاده از constraint ها در FPGA

معرفی سایر بخشهای نرم افزار Xilinx ISE

 

جلسه هشتم:

انواع حافظه در FPGA (حافظه­ های توزیع شده و Block RAM ها و نحوه استفاده از آنها)

برنامه ­ریزی حافظه Flash مربوط به برد FPGA

پیاده سازی برخی پروتکلهای ارتباطی دیگر

 

جلسه نهم:

خواندن کیبورد ماتریسی

طراحی ماشین حساب دیجیتالی با استفاده از کیبرد و LCD

طراحی ضرب کننده ماتریسی

طراحی بصورت Hard Wired

 

جلسه دهم:

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

مباحث تکمیلی دیگر

آموزش های مرتبط

آموزش کاربردی میکروکنترلرهای ARM STM32، مقدماتی مدرس: دکتر محمد جوادیان مدت دوره: 50 ساعت
۳,۹۰۰,۰۰۰ تومان ۳,۵۰۰,۰۰۰ تومان
آموزش کاربردی میکروکنترلرهای ARM STM32، پیشرفته مدرس: دکتر محمد جوادیان مدت دوره: 36
۵,۸۰۰,۰۰۰ تومان ۵,۴۰۰,۰۰۰ تومان
کارگاه طراحی سیستمهای نهفته مبتنی بر بردهای سیستم عامل دار مانند رزبری پای مدرس: دکتر محمد جوادیان مدت دوره: 48 ساعت
۴,۲۰۰,۰۰۰ تومان ۳,۸۰۰,۰۰۰ تومان
کارگاه آموزش پردازش سیگنال و تصویر در متلب و پیاده سازی در FPGA به زبان VHDL مدرس: دکتر محمد جوادیان مدت دوره: 48 ساعت
۴,۲۰۰,۰۰۰ تومان ۳,۸۰۰,۰۰۰ تومان
کارگاه آموزش FPGA و زبان VHDL مدرس: دکتر محمد جوادیان مدت دوره: 55 ساعت (11 جلسه 5 ساعته)
۳,۹۰۰,۰۰۰ تومان ۳,۵۰۰,۰۰۰ تومان
طراحی بردهای مدار چاچی (PCB) با استفاده از نرم افزار آلتیوم دیزاینر (Altium Designer) مدرس: دکتر محمد جوادیان مدت دوره: 12 ساعت (4 جلسه سه ساعته)
۸۰۰,۰۰۰ تومان ۵۰۰,۰۰۰ تومان

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

09210217546

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

doctorjavadian@gmail.com

صفحات رسمی ما

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

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

طراحی وب سایت

ورود به سایت

رمز عبور خود را فراموش کرده اید؟
هنوز در سایت ثبت نام نکرده‌اید؟