![آموزش |صنعت Head of FPGA training chapters](https://patc.ir/wp-content/uploads/2024/02/Head-of-FPGA-training-chapters3.webp)
FPGA ها برای ایجاد یک سیستم با انعطاف پذیری بالا و کارایی مورد نیاز می باشند. FPGA ها با ارائه یک معماری برنامه پذیر، قیمت پایین و زمان راه اندازی اندک و مهم تر از همه ، ایجاد امکان پردازش موازی مشکلات متعدد مهندسین و طراحان مدارات دیجیتال را رفع نموده اند. از دیگر مزایای استفاده از FPGA ها در طراحی ها ، می توان به سرعت بالای پردازش و فرکانس کاری بسیار بالای آن ها اشاره کرد .FPGA ها در حوزه های گسترده ای از جمله پردازش سیگنال ، پردازش تصویر ، فیلترهای دیجیتال ، سیستم های انتقال دیتاهای دیجیتال ، سیستم های مخابراتی و سیستم های مختلف کنترلی به کار برده می شوند.
سرفصل آموزشی دوره FPGA مقدماتی
معرفی FPGA و CPLD – خانواده ها و شرکت های سازنده
مقایسه بین FPGA و انواع میکروکنترلرها
بررسی ساختار داخلی FPGA
معرفی VHDL و مقایسه با زبان های برنامه نویسی مرسوم
آشنایی با ساختار کدنویسی در VHDL
آشنایی با نرم افزار ISE
بررسی مفاهیم سنتز ، PLACE AND ROUTE
عملگرهای رابطه ای و محاسباتی
تعریف ثوابت و generic ها
بررسی عبارات مختلف پیاده سازی همزمان
طراحی یک مالتی پلکسر – انکدر اولویت
آشنایی با IP Core Clock DCM
نوشتن شمارنده با ریست سنکرون و آسنکرون
طراحی ماژول PWM کنترل سرعت موتور DC
طراحی یک مقسم فرکانس
بررسی تاثیرات تاخیر دلتا در پروسس – دیاگرام کلاک دیتا
ایجاد یک شکل موج سینوسی و نمونه برداری از آن در MATLAB
آشنایی با IP Core ROM
راه اندازی DAC جهت ایجاد یک شکل موج سینوسی
پیاده سازی ماژول Debouncer
راه اندازی LCD کاراکتری
راه اندازی 7Segment توسط FPGA
آشنایی و شبیه سازی با نرم افزار modelsim
انواع ماشین های حالت
روش استاندارد و بهینه نوشتن ماشین های حالت
پیاده سازی ماژول Sequence Finder
پیاده سازی واسط ارتباطی SPI
پیاده سازی شیفت رجیستر با ورودی موازی و خروجی موازی
پیاده سازی Moving Average Filter
پیاده سازی Stepper Motor Driver
راه اندازی ADC
برقراری ارتباط سریال UART با FPGA
راه اندازی USART
پیاده سازی واسط ارتباطی I2C
راه اندازی Keyboard Scanner (PS2)
آشنایی با IP Core RAM و پیاده سازی DPRAM
آشنایی با IP Core RAM و پیاده سازی SPRAM
پیاده سازی ماژول ارتباط با SRAM خارجی
آشنایی با IP Core multiplier
پیاده سازی واسط ارتباط VGA
ارسال و دریافت دیتا با استفاده از ماژولهای HM/TR
شرکت در دوره FPGA برای افرادی که علاقه مند به فعالیت در حوزه های دیجیتال و طراحی سخت افزارهای دیجیتالی هستند سودمند خواهد بود و چشم انداز تازه ایی را برای علاقه مندان به فعالیت در حوزه های پیشرفته تر همچون پردازش سیگنال ( signal processing ) ، رباتیک ، محاسبات حجیم (high performance computing) Embedded System و … پیش روی علاقه مندان خواهد گشود و بالطبع نوید بخش دور نمایی بهتر و موفقتر در آینده علمی و شغلی آنان خواهد بود.
آینده شغلی دوره FPGA مقدماتی
تراشه های FPGA دارای قدرت و سرعت بالا در انجام محاسبات پیچیده و همچنین توان مصرفی پایین هستند اما به دلیل اینکه مانند میکروکنترلر ها واحدهای جانبی متعددی رادر اختیار کاربر قرارنمی دهند استفاده از آن ها هزینه بر بوده و دارای قیمت بالایی نیز هستند.
معمولادر صنایع و شرکت هایی که به تولید محصولات برق و الکترونیک می پردازند، هزینه تمام شده محصول اولویت بیشتری نسبت به سرعت و کارایی دارد بنابراین از میکروکنترلرهای رایجی چون AVR ، ARM و PIC استفاده می شود. اما در کاربردهای نظامی همچون مخابرات، هوا فضا و … این سرعت و کارایی سیستم است که حرف اول را می زند و هزینه اهمیت چندانی ندارد. بنابراین این صنایع عمدتا از FPGA استفاده می کنند. پس مسلما این صنایع نیازمند متخصصین با دانش کافی در حوزه FPGA جهت انجام پروژه های مختلف خواهند بود.
البته این بدان معنی نیست که این دو بخش مختلف صرفا از تراشه های های معرفی شده استفاده کنند بلکه هر صنعت و شرکتی با توجه به نیازها و اهداف اصلی خود، بهترین گزینه را انتخاب می کند. بنابراین یادگیری راه اندازی و کار با تمامی تراشه های های متداول و مورد استفاده تمامی صنایع باعث می شود تا یک مهندس با قابلیت های تمامی آنها آشنا شده و در مواقع لزوم بهترین و مناسب ترین گزینه را برای کار انتخاب نماید.
روش برگزاری دوره FPGA مقدماتی
هدف دوره FPGA آموزش و آشنایی با ساختارها و اجزاء تشکیل دهنده زبان VHDL به منظور طراحی با FPGA می باشد. علاوه بر این ، دانشجو در طی دوره با FPGA و ساختارهای داخلی آن آشنا شده و همچنین کار با نرم افزارهای لازم جهت طراحی و شبیه سازی با FPGA را خواهد آموخت . دانشجویان پس از گذراندن این دوره قادر به توصیف انواع واحد های سخت افزاری دیجیتالی و پیاده سازی و شبیه سازی نتایج خواهند بود. تمرکز اصلی این دوره بر روی پیاده سازی انواع ساختارهای ترکیبی و ترتیبی دیجیتالی و ارتباطات میان آنها و سایر سخت افزارهای مرتبط خواهد بود.
در بخش نرم افزاری این دوره، پروژه ها در نرم افزار ISE ساخته شده و روی برد آموزشی شرکت نیراسیستم که به تعداد کافی در اختیار دانشجویان قرار می گیرد به صورت سخت افزاری پیاده سازی خواهند شد. هسته مرکزی این برد Spartan3 و از خانواده Xilinx بوده و دارای امکانات و واحدهای مختلف جهت راه اندازی در این دوره می باشد.
توانایی دانشجو در پایان دوره FPGA مقدماتی
شما پس از آموزش FPGA ها در این دوره می توانید :
با ساختار داخلی FPGA ، CPLD و تفاوت آنها با ساختارهای میکروپروسوری و میکروکنترلری آشنا شوید.
با نرم افزار Xilinx ISE و Vivado و شبیه سازی در نرم افزارهای Modelsim آشنا شوید.
با پیاده سازی و طراحی دیجیتال به کمک زبان VHDL ، در انواع FPGA آشنا شوید.
با پیاده سازی انواع مدارهای دیجیتالی ترتیبی و ترکیبی آشنا شوید.
پیاده سازی ارتباطات با سایر واحد های سخت افزاری از قبیل ADC ، DAC ، SDRAM ، LCD ، DC/Stepper Motor ، PS2 ، VGA Controller و پیاده سازی Digital Filter .
پیاده سازی انواع واسط های ارتباطی SPI ، UART ، I2C .
با IP Core ها و طریقه بکار گیری آنها در طراحی آشنا شوید.
سوالات متداول دانشجویان
برای شرکت در دوره FPGA چه پیش نیازی باید داشته باشم ؟
برای یادگیری طراحی مدارهای دیجیتال مبتنی بر FPGA نیاز به دانش اصول مدارهای دیجیتال و یا مدارمنطقی می باشد. دانش برنامه نویسی نیز از ضروریات شرکت در این دوره هست چرا که در این الگوریتم برنامه نویسی آموزش داده نمی شود و صرفا دستورات کاربردی مبتنی بر زبان برنامه نویسی vhdl آموزش داده می شود .
هم چنین کار با مدارهای الکترونیک دیجیتال در هر حوزه ای از جمله میکروکنترلر نیز می تواند به فراگیران این مهارت کمک کند .
آیا برای یادگیری FPGA نیاز به توانمندی برنامه نویسی میکروکنترلر می باشد ؟
برای شروع یادگیری طراحی مدارهای دیجیتال مبتنی بر FPGA نیاز به سابقه کار با میکروکنترلر ضروری نیست . اما با تجربه ای که در این سالیان بدست آمده افرادی که سابقه کار با میکروکنترلرها را دارند به صورت مفیدتر و مناسب تری در دوره عمل می کنند و کیفیت یادگیری ایشان نسبت به سایرین بالاتر است .
چه خانواده ای از FPGA تدریس میشه و آیا فرقی داره ؟
در ایران خانواده های Xilinx و Altera بسیار محبوب هستن و در صنایع نظامی و شرکت های مختلف الکترونیکی از هر دو برند استفاده می شود . نکته مهم در فراگیری FPGA این هست که ساختار طراحی مدارهای دیجیتال مبتنی بر FPGA حائز اهمیت است و به صورت کلی می توان گفت با یادگیری هر یک از برندهای نام برده شده می توان به برند دیگر هم رجوع کرد و نیازی به یادگیری مجدد نیست . ضمن اینکه به دلیل استقبال بیشتر مخاطبین از برند Xilinx دوره های این برند به تعداد بیشتری در نیراسیستم تشکیل می شود .
به نظر شما فردی که تسلط زیادی به مبانی دیجیتال ندارد بهتر است برای یادگیری میکرو ARM را انتخاب کند یا FPGA ؟
به صورت کلی حوزه میکروکنترلر و FPGA دو مقوله جداگانه هستند و حتی میشود هر دو مهارت را به صورت موازی پیگیری کرد. هر دو حوزه بسیار خوب هستند و میتوانند از نظر شغلی به شما کمک زیادی کنند. اما توجه شود که برای یادگیری میکروکنترلرها و هم چنین FPGA تسلط به مدارمنطقی بسیار حائز اهمیت است .
از چه نرم افزاری برای آموزش استفاده می شود ؟
در دوره های Xilinx از نرم افزار ISE و در دوره های Altera از نرم افزار Quartus استفاده می شود .
یادگیری FPGA با کدام زبان برنامه نویسی مناسب تر است ؟
برای پیادهسازی طراحی دیجتیال با استفاده از FPGA ابتدا باید یک زبان توصیف سختافزاری را به خوبی یاد بگیرید و به آن مسلط شوید. هر کدام از زبانهای VHDL و Verilog برای این کار مناسب هستند و هیچ تفاوتی از لحاظ قدرت پیادهسازی ندارند.
آیا در طول دوره از سخت افزار هم جهت یادگیری استفاده می شود؟
بله؛ باتوجه به اینکه دوره های نیراسیستم به صورت کاملا عملی برگزار می شوند، برد آموزشی و سخت افزارهای FPGA موردنیاز نیز در اختیار دانشجویان قرارداده می شود و دانشجویان در طول دوره پروژه های متعددی را توسط بردهای آموزشی انجام می دهند.
آیا برای استفاده از سخت افزار و بردهای آموزشی باید هزینه جداگانه ای پرداخت کرد؟
خیر؛ بردهای آموزشی در طول دوره و جهت استفاده در کلاس به صورت رایگان در اختیار دانشجویان قرار می گیرد.
آیا امکان تهیه برد آموزشی برای استفاده خارج از کلاس نیز وجود دارد؟
بله؛ در صورتی که دانشجو جهت انجام تمرینات خارج از کلاس و انجام پروژه های شخصی نیازمند برد آموزشی باشد می تواند برد مورد نیاز را از مرکز آموزش نیراسیستم خریداری نماید اما هیچ اجباری در این خصوص وجود ندارد.