آشنایی مختصر با دوره FPGA پیشرفته

 

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

تحلیل بازار کار

 

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

معمولادر صنایع و شرکت هایی که به تولید محصولات برق و الکترونیک می پردازند، هزینه تمام شده محصول اولویت بیشتری نسبت به سرعت و کارایی دارد بنابراین از میکروکنترلرهای رایجی چون AVR ، ARM و PIC استفاده می شود. اما در کاربردهای نظامی همچون مخابرات، هوا فضا و ... این سرعت و کارایی سیستم است که حرف اول را می زند و هزینه اهمیت چندانی ندارد. بنابراین این صنایع عمدتا از FPGA استفاده می کنند. پس مسلما این صنایع نیازمند متخصصین با دانش کافی در حوزه FPGA جهت انجام پروژه های مختلف خواهند بود.

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

 

توانایی دانشجو پس از پایان دوره FPGA پیشرفته

 

• آشنایی با نرم افزار Xilinx EDK و پیاده سازی مبتنی بر اصول  Soc

• پیاده سازی و طراحی انواع Interface  دیجیتال به کمک زبان  VHDL , C / C++ در انواع FPGA

• آشنایی با ساختارهای fixed point  و float point و پیاده سازی محاسبات ریاضی در  FPGA

• آشنایی با پیاده سازی اعمال ریاضی بر روی اعداد مختلط در  FPGA

• پیاده سازی ارتباطات با سایر واحد های سخت افزاری از قبیل  USB و LAN و پیاده سازی DDS IP Core ، Cordic IP Core ، Complex Multiplier ، ِIQ Demodulator  و ... .

• پیاده سازی انواع واسط های ارتباطی Custom IP Core  ، UART ، GPIO در میکروبلیز

شیوه برگزاری کلاس

 

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

سرفصل دوره آموزشی  FPGA پیشرفته:

• آشنایی با مبانی منطقی اعداد علامت دار و اعشاری

• آشنایی با مبانی منطقی اعداد علامت دار

• آشنایی با مبانی منطقی اعداد اعشاری

• انجام محاسبات ریاضی بر روی اعداد علامت دار

• Over flow vs carry

• Overflow control Method

• نحوه Fixed point سازی اعداد اعشاری و علامت دار

• نمایش اعداد به روش مکمل ۲ در VHDL

• نحوه انجام محاسبات اعشاری برای نمایش اعداد علامت دار در VHDL

• آشنایی با روش Fixed point سازی

• جمع و ضرب اعداد Fixed point شده

• DDS IP Core

• ساخت (DDS (SineWave Generator

• پیاده سازی ابتدایی در نرم افزار MATLAB

• پیاده ساری Music KeyBoard

• معرفی Cordic IP Core

• پیاده سازی توابع مثلثاتی در FPGA

• آموزش اشکال زدایی طرح با ChipScope

• پیاده سازی ChipScope

• محاسبات اعداد مختلط در FPGA

• Complex Multiplier IP Cores

• پیاده سازی Demodulator  IQ

• معرفی پروتکل USB

• نحوه راه اندازي مبدل CY7C68013A USB

• آموزش Xilinx EDK

• معرفی انواع Bus ، قابل استفاده در MicroBlaze

• ساختار و روند طراحی در پیاده سازی Soc

• پیاده سازی MicroBlaze - راه اندازی GPIO

• پیاده سازی MicroBlaze - راه اندازی UART

• پیاده سازی MicroBlaze - راه اندازی I2C

• پیاده سازی MicroBlaze - راه اندازی Custom IP Core 

• طراحی الگوریتم در MATLAB

• پیاده سازی الگوریتم متلب در FPGA

 

عناوین پروژه ها و تمرین های دوره آموزشی  FPGA پیشرفته:

• ساخت (DDS (SineWave Generator

• پیاده سازی ابتدایی در نرم افزار MATLAB

• پیاده ساری Music KeyBoard

• پیاده سازی توابع مثلثاتی در FPGA

• پیاده سازی ChipScope

• پیاده سازی Demodulator  IQ

• پیاده سازی MicroBlaze - راه اندازی GPIO

• پیاده سازی MicroBlaze - راه اندازی UART

• پیاده سازی MicroBlaze - راه اندازی I2C

• پیاده سازی MicroBlaze - راه اندازی Custom IP Core 

• طراحی الگوریتم در MATLAB

• پیاده سازی الگوریتم متلب در FPGA

 

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

در حال بروزرسانی

برای شرکت در دوره FPGA پیشرفته چه پیش نیازی باید داشته باشم ؟

شرایط اصلی پیش نیاز این دوره آشنایی با مدارات منطقی و نیز جبر بولی می باشد. علاوه بر این به علت کار با سخت افزارهای جانبی در طول دوره دانشجو می بایست دانش الکترونیک مورد نیاز جهت درک مفاهیم مرتبط را داشته باشد. علاوه بر این از دیگر پیش نیازهای اساسی دیگر میتوان به آشنایی با زبان C / C++  و میکروکنترلر ها اشاره نمود که در این دوره از اهمیت خاصی برخوردار است. لازم به ذکر است که اولین شرط اساسی ورود به این دوره ، گذراندن دوره مقدماتی است.

 

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

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

 

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

در ایران خانواده های Xilinx و Altera بسیار محبوب هستن و در صنایع نظامی و شرکت های مختلف الکترونیکی از هر دو برند استفاده می شود . نکته مهم در فراگیری FPGA این هست که ساختار طراحی مدارهای دیجیتال مبتنی بر FPGA حائز اهمیت است و به صورت کلی می توان گفت با یادگیری هر یک از برندهای نام برده شده می توان به برند دیگر هم رجوع کرد و نیازی به یادگیری مجدد نیست . ضمن اینکه به دلیل استقبال بیشتر مخاطبین از برند Xilinx دوره های این برند به تعداد بیشتری در نیراسیستم تشکیل می شود .

 

به نظر شما فردی که تسلط زیادی به مبانی دیجیتال ندارد بهتر است برای یادگیری میکرو ARM  را انتخاب کند یا FPGA ؟

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

 

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

در دوره های Xilinx از نرم افزار ISE و در دوره های Altera از نرم افزار Quartus استفاده می شود .

 

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

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

 

آیا در طول دوره از سخت افزار هم جهت یادگیری استفاده می شود؟

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

 

آیا برای استفاده از سخت افزار و بردهای آموزشی باید هزینه جداگانه ای پرداخت کرد؟

خیر؛ بردهای آموزشی در طول دوره و جهت استفاده در کلاس به صورت رایگان در اختیار دانشجویان قرار می گیرد.

 

آیا امکان تهیه برد آموزشی برای استفاده خارج از کلاس نیز وجود دارد؟

بله؛ در صورتی که دانشجو جهت انجام تمرینات خارج از کلاس و انجام پروژه های شخصی نیازمند برد آموزشی باشد می تواند برد مورد نیاز را از مرکز آموزش نیراسیستم خریداری نماید اما هیچ اجباری در این خصوص وجود ندارد.

 

آیا در انتهای دوره برای شرکت کنندگان گواهینامه صادر می شود؟

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

 

نحوه برگزاری آزمون پایانی دوره به چه صورت است؟

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

 

آیا برای این دوره جزوه یا کتاب خاصی باید خریداری شود ؟

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