کارگاه آموزش پردازش سیگنال و تصویر در متلب و پیاده سازی در FPGA به زبان VHDL
کارگاه آموزش پردازش سیگنال و تصویر در متلب و پیاده سازی در FPGA به زبان VHDL
زمان شروع دوره: 1400/02/03
روزها و ساعت های برگزاری دوره: جمعه ها 8 الی 14
محل برگزاری دوره: کارگاه برق دانشگاه صنعتی شریف
برای اطلاع از نحوه ثبت نام در این دوره به مراجعه فرمایید.
پیش نیاز های دوره:
آشنایی با FPGA و زبان VHDL
گذراندن دوره کارگاه آموزش FPGA به زبان VHDL
مفاهیم مقدماتی و مورد نیاز مربوط به پردازش سیگنال و پردازش تصویر در کلاس درس در حد لازم توضیح داده خواهد شد.
استاد: دکتر محمد جوادیان
دارای دکترای برق از دانشگاه صنعتی شریف
دارای بیش از 16 سال سابقه تدریس در دانشگاه های دولتی، آزاد، پیام نور، علمی کاربردی، و فنی حرفه ای
دارای مقام رباتیک خوارزمی و ایران اپن، و دارای سالها سابقه کار در زمینه طراحی الکترونیک، میکروکنترلر، FPGA، هوش مصنوعی و برق صنعتی
دارای سالها سابقه تدریس میکروکنترلرها و ریزپردازنده ها، FPGA و VHDL در دانشگاه ها.
مدرک پایان دوره:
اعطای گواهینامه معتبر دو زبانه پایان دوره
مدت دوره:
حداقل 36 ساعت
مخاطبین:
این دوره برای کسانی که دوره " آموزش FPGA با زبان VHDL " را گذرانده اند و علاقه مند به انجام پروژه های پیشرفته تر در زمینه پردازش سیگنال و تصویر هستند مناسب خواهد بود.
مخاطبین دوره علاقه مندان به طراحی سیستمهای نهفته.
علاقه مندان به یادگیری مفاهیم پردازش سیگنال.
علاقه مندان به یادگیری مفاهیم پردازش تصویر.
علاقه مندان به آشنایی با بحث های پردازش سیگنال و پردازش تصویر در متلب.
علاقه مندان به یادگیری مباحث مربوط به fixed point و floating point.
علاقه مندان به یادگیری نحوه پیاده سازی الگوریتم های پردازش سیگنال و پردازش تصویر در FPGA.
علاقه مندان به یادگیری مفاهیم پردازش موازی در FPGA.
علاقه مندان به یادگیری مفاهیم نحوه پیاده سازی خط لوله Pipeline در FPGA.
علاقه مندان به یادگیری مفاهیم مربوط به HDL coders
علاقه مندان به یادگیری با میکروکنترلر نهفته میکروبلیز شرکت زایلینکس.
دانشجویان و افرادی که علاقمند به طراحی دیجیتال در حوزه بسیار گسترده و بدون محدودیت میباشند.
دانشجویان سطوح بالا ی تحصیلی, برای پیاده سازی و اجرای الگوریتم های پیشرفته دیجیتال, در زمینه مقالات و پایان نامه ها
افرادی که در زمینه نظامی و طراحی های زیر ساختی فعالیت دارند.
افرادی که در زمینه پردازش سیگنال، یا طراحی سیستمهای نهفته Embedded بصورت بیدرنگ فعالیت دارند.
افرادی که علاقه مند به انجام پروژه هایی در زمینه پردازش سیگنال و پردازش تصویر در FPGA هستند.
کاربرد ها، مهارت ها و توانایی های اکتسابی پس از گذراندن دوره:
افزایش درک سیستمی مخاطبین برای طراحی انواع الگوریتم ها بر روی FPGA.
آشنایی کامل با مباحث fixed point و floating point در متلب و در FPGA.
آشنایی با میکروبلیز میکرو کنترلر نهفته شرکت زایلینکس و برنامه نویسی آن.
آشنایی با نرم افزار vivadoo.
آشنایی با بحث های پردازش سیگنال و پردازش تصویر و الگوریتمهای مربوطه.
آشنایی با محیط سیمولینک و محیط کدنویسی متلب.
آشنایی با تولباکس پردازش تصویر متلب
وبسیاری مفاهیم و مباحث کاربردی دیگر مثل کار با حافظه ها، خط لوله، پردازش موازی و ...
پیاده سازی ارتباطات با سایر واحد های سخت افزاری از قبیل ADC ، DAC ، SDRAM ، VGA Controller و پیاده سازی Digital Filter
با IP Core ها و طریقه بکار گیری آنها در طراحی آشنا شود.
با پیاده سازی در محیط سیمولینک متلب و صحت سنجی مدار پیاده سازی شده در FPGA آشنا شود.
با بحث پردازش سیگنال در FPGA آشنایی پیدا کنند.
با بحث پردازش تصویر در FPGA آشنایی پیدا کنند.
با نرم افزار chip scop برای بررسی صحت سنجی سخت افزار طراحی شده آشنا شود.
بتوانند چند پروژه ساده را با استفاده از میکروکنترلر میکروبلیز طراحی و پیاده سازی نمایند.
در نهایت بتوانند به کمک روشها و تکنیکهای مهم آموزش دادهشده و تمرینات متعدد انجامشده در طول دوره، مدارات و سیستمهای دیجیتال را به کمک FPGA طراحی و پیادهسازی کرده و در پروژههای عملی بهکارگیرند.
معرفی دوره:
امروزه در پروژه های بسیاری نیاز به انجام پردازش ها و محاسبات سنگین و پیچیده مشاهده می شود که به دلایلی نظیر سرعت، دقت، کارایی و … استفاده از Processor و Microcontroller های عادی، برای انجام آن ها، لزوما انتخاب مناسبی نیست و باید به دنبال ابزار بهتری بود.
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 افزایش یافته است.
امروزه برای کسانیکه تمایل دارند در حوزه دیجیتال مشغول به کار و فعالیت شوند یادگیری یکی زبانهای توصیف سخت افزار (VHDL یا Verilog) اجتناب ناپذیر است. خصوصا در بازار امروز که روز به روز سرعت تبادل و انتقال داده ها افزایش یافته، تعداد دستگاه های ثبت داده از قبیل دوربینها و سنسورها بشدت افزایش یافته و همچنین ظرفیت دستگاه های ذخیره سازی داده در حال افزایش است و بحثهای مربوط به big data مطرح شده اند الگوریتمهای جدید و سفارشهای جدید و کاربردهای جدیدی را از طراحان سخت افزار خواستار هستند. بنابراین با توجه به تعداد کم متخصصین FPGA یادگیری دانش طراحی سخت افزار مبتنی بر FPGA میتواند یک زمینه کاری مناسب برای علاقمندان به حوزه سخت افزار باشد.
سرفصلهایی که ما برای دوره پردازش سیگنال و تصویر با FPGA درنظر گرفته ایم، بر اساس آموزش زبان توصیف سخت افزار VHDL میباشد و سعی کرده ایم تا همه جزئیات این زبان توصیف سخت افزار را در قالب پروژه و مثال هایی جذاب و کاربردی بیان نموده و مرورکنیم. همچنین شرکت کنندگان میتوانند این سخت افزارهای طراحی شده را در کلاس بر روی FPGA دانلود (پروگرام) کرده و خروجی را بطور عملی مشاهده نمایند. به همین منظور بردهای آموزشی ای تهیه شده است تا دانشجویان بتوانند تمرینها و مثالهای کلاسی را عملا بر روی FPGA پیاده سازی نمایند.
در نهایت لازم به ذکر است که این دوره به گونه ای طراحی شده است که بعد از اتمام آن شرکت کنندگان در کارگاه میتوانند با اعتماد به نفس کافی وارد بازار کار شوند زیرا سعی شده است که به بسیاری از مفاهیم مربوط به طراحی سخت افزار با FPGA در کلاس اشاره نماییم بطوریکه کارآموز مهارت لازم برای انجام پروژههای پیشرفته مرتبط را بدست اورده و بعدا میتواند در مواجهه با پروژه های واقعی به راحتی با اندک تلاشی اطلاعات تکمیلی را در شاخه کاری موردنظر بدست بیاورد. در انتهای دوره آموزشی دانشپذیر قادر به طراحی یک سیستم دیجیتال بر روی FPGA خواهد بود.
شرکت در این دوره برای افرادی که علاقه مند به فعالیت در حوزه های دیجیتال و طراحی سخت افزارهای دیجیتالی هستند سودمند خواهد بود و چشم انداز تازه ایی را برای علاقه مندان به فعالیت در حوزه های پیشرفته تر همچون پردازش سیگنال ( signal processing )، رباتیک، محاسبات حجیم (high performance computing) Embedded System و ... پیش روی علاقه مندان خواهد گشود و بالطبع نوید بخش دور نمایی بهتر و موفقتر در آینده علمی و شغلی آنان خواهد بود.
ما در این دوره از روش آموزش در قالب مثال استفاده میکنیم.
یعنی طرح درس را بگونه ای انجام داده ایم که همه مفاهیم را در قالب مثال بیان کنیم.
این کار باعث میشود تا مطالب هر جلسه در جلسه بعد نیز مرور شود.
مورد دیگری که قابل ذکر است روش تدریس بصورت کد نویسی در کلاس است، یعنی ما مثالها را از قبل در قالب کد بصورت آماده ذخیره نمیکنیم و در کلاس بصورت مستقیم هر مثال را از اول طراحی کرده و سپس توصیف سخت افزاری آن را مینویسیم.
این موضوع باعث میشود تا دانشجویان با نحوه صحیح طراحی در عمل و در هنگام مواجهه با مسائل دنیای واقعی بدانند که چطور به مساله ورود نمایند.
همچنین برای حل هر مثال بصورت گام به گام پیش میرویم و خطاهای عمدی موجود در کد را به مرور در کلاس مرتفع میکنیم. به این ترتیب دانشجو با انواع پیغامهای خطا و نحوه رفع هر یک آشنا میشود.
همچنین بعد از انجام هر مثال تمرینی به دانشجویان داده میشود تا با تغییر مختصری در کد نوشته شده بتوانند طراحی جدید را انجام داده و بصورت عملی بر روی بردهای موجود در کارگاه پیاده سازی نمایند.
توضیحات تکمیلی:
- همراه داشتن لپ تاپ الزامی می باشد.
- رعایت شئونات اسلامی الزامی می باشد.
- تمامی اطلاع رسانی ها از طریق کانال تلگرام t.me/fanavarsara انجام خواهد شد. جهت اطلاع به موقع از تغییرات و اطلاع رسانی ها در کانال فناورسرا عضو شوید.
- در صورت وجود هر گونه سوال، ابهام و یا مشکل به حساب تلگرام مربوط به شماره 09227250634
سرفصل های دوره:
جلسه اول:
بحثهای مربوط به fixed-point و floating-point در متلب
بحثهای مربوط به کوانتیزیشن و خطای کوانتیزیشن
بحثهای مربوط به مبدلهای ADC و DAC
خواندن ADC و ذخیره داده های نمونه برداری شده ADC
آموزش سیمولینک مقدماتی
معرفی واحدهای DSP48 در FPGA
ایجاد یک شکل موج سینوسی و نمونه برداری از آن در MATLAB
انواع روشهای ایجاد یک شکل موج سینوسی در FPGA
پیاده سازی مدولاتور AM در سیمولینک و FPGA مقایسه نتایج
جلسه دوم:
پیاده سازی Moving Average Filter
پیاده سازی فیلتر FIR با معماری های مختلف در سیمولینک و FPGA و صحت سنجی نتایج
پیاده سازی فیلتر بصورت Hard Wired
پیاده سازی فیلتر IIR با معماری های مختلف در سیمولینک و FPGA و صحت سنجی نتایج
پیاده سازی فیلتر بصورت Hard Wired
تکنیکهای افزایش راندمان و سرعت (موازیسازی، خطلوله، …)
بحثهای تحلیل توان و سرعت و منابع در FPGA
جلسه چهارم:
حافظه های توزیع شده و بلوکی در FPGA
طریقه تست مدار با chip scope
معرفی نحوه پیاده سازی الگوریتمها بصورت موازی در FPGA
پیاده سازی بخشی از گیرنده رادار SSR
جلسه پنجم:
معرفی پردازش تصویر در متلب
باز کردن تصویر، تغییر اندازه دادن تصویر، چرخش تصویر، ذخیره تصویر، برش تصویر
اعمال انواع فیلترهای مختلف بر روی تصویر
اضافه کردن نویز به تصویر، نویز زدایی از تصویر
آشکارسازی لبه های تصویر، تقویت لبه های تصویر
معرفی نحوه خواندن تصویر در FPGA
معرفی نحوه پیاده سازی چند نوع فیلتر مختلف بر روی FPGA
معرفی نحوه ذخیره تصویر پردازش شده
جلسه ششم:
راه اندازی DAC جهت ایجاد یک شکل موج سینوسی
آشنایی با IP Core ROM
راه اندازی ADC
آشنایی با IP Core RAM و پیاده سازی DPRAM
آشنایی با IP Core RAM و پیاده سازی SPRAM
پیاده سازی ماژول ارتباط با SRAM خارجی
پیاده سازی واسط ارتباط VGA
ارسال و دریافت دیتا با استفاده از ماژولهای HM/TR
آموزش و راه اندازی ماژول آلتراسونیک
جلسه هفتم:
آشنایی با پردازنده Embedded و میکروبلیز.
طراحی و پیاده سازی چند پروژه ساده با استفاده از میکروکنترلر میکروبلیز
جلسه هشتم:
آشنایی با HDL Coder محیط سیمولینک متلب و انجام چند پروژه
آشنایی با Vivadoo و طراحی بلوکی در محیط آن