موضوعات وبسایت : دانلود جزوه

آموزش fpga دانشگاه شریف

نویسنده : میترا نادری | زمان انتشار : 07 اسفند 1400 ساعت 00:22

معرفی دوره:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

معرفی Constraint ها

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

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

معرفی طراحی Hardwired

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

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

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

جلسه اول:

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

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

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

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

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

جلسه دوم:

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

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

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

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

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

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

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

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

جلسه سوم:

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

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

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

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

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

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

جلسه چهارم:

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

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

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

جلسه پنجم:

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

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

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

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

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

جلسه ششم:

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

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

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

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

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

جلسه ششم:

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

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

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

معرفی موتورهای 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

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




ارسال نظر

نام


ایمیل


نظر