FPGA یا Field Programmable Gate Array یک مدار مجتمع است که می توان آن را پس از اتمام فرآیند تولید، مطابق نیاز طراح برنامه ریزی نمود و روابط منطقی بین پایه های ورودی و خروجی را تغییر داد. این تراشه ها نیمه رساناهایی هستند که از تعداد زیادی جزء کوچک الکترونیکی یا سلول به نام بلوک منطقی (Logic Block) ساخته شدهاند. این سلول از نظر منطقی چیزی بین یک مدار الکترونیکی و یک میکروکنترلر است. در واقع، FPGA یک تراشه قابل برنامهریزی است. این تراشهها برای توسعه سخت افزارهای دیجیتالی پیچیده و اجتناب از ساخت بردهایی با تراشههای گسسته به وجود آمدهاند. با استفاده از تراشههای FPGA بردهایی که قبلاً با تعداد زیادی از تراشههای دیجیتال ساخته میشدند، در یک تراشه FPGA با سرعت بالاتر و امکان بهروزرسانی کردن سخت افزار پیادهسازی میشوند.
هدف از دوره آموزشی FPGA چیست؟
FPGA ها برای ایجاد سیستمهایی با انعطاف پذیری بالا مورد استفاده قرار میگیرند. FPGAها با ارائه یک معماری برنامهپذیر، قیمت پایین و زمان راهاندازی اندک و مهمتر از همه، ایجاد امکان پردازش موازی مشکلات متعدد مهندسین و طراحان مدارات دیجیتال را رفع نمودهاند.
از دیگر مزایای استفاده از FPGA ها در طراحی ها، میتوان به سرعت بالای پردازش و فرکانس کاری بسیار بالای آنها اشاره کرد. FPGA ها در حوزههای گستردهای از جمله پردازش سیگنال، پردازش تصویر، فیلترهای دیجیتال، سیستمهای انتقال دیتاهای دیجیتال، سیستمهای مخابراتی و سیستمهای مختلف کنترلی به کار برده میشوند.
هدف از دوره آموزشی FPGA مقدماتی آشنایی با معماری داخلی FPGAها، نحوه برنامهریزی و استفاده از آنها، بهینهسازی برنامهها، شبیهسازی برنامهها، معرفی ابزارهای مورد استفاده جهت کار با تراشه های FPGA و استفاده از تراشهها در پروژههای جدی با نرخ بالا و حجم پردازش سنگین است.
دوره آموزش FPGA مقدماتی مناسب چه کسانی است؟
این دوره برای کسانی که علاقمند به کار در حوزههای الکترونیکی و فضاهای مرتبط آن در ایران و یا خارج از کشور هستند، مناسب است. همچنین دانشجویانی که در زمینههای تحقیقاتی مشغول هستند، میتوانند از مفاهیم گفته شده استفاده نمایند.
به طورکلی، یکی از قدرتمندترین تراشههایی که امروزه در کاربردهای مختلف الکترونیکی، مخابراتی و کنترل مورد استفاده شرکتهای بزرگ دنیا و ایران میباشد ، تراشههای FPGA است که با فراهم آوردن بسترهایی برای پردازش سیگنال، و با بهبود قابلیتهای پردازندهها و … در بسیاری از کاربردها مورد استفاده قرار گرفتهاند.
بعد از فراگیری دوره آموزش FPGA مقدماتی در مکتب خونه چه مهارتهایی کسب خواهید کرد؟
این دوره آموزشی در دو دوره مقدماتی و پیشرفته ارائه میشود که شما پس از گذراندن دوره مقدماتی با مفاهیم اساسی مربوط به معماری FPGAها، مقایسه آنها با دیگر پردازندهها، ساختارهای برنامه نویسی موجود برای FPGAها، فرآیند شبیهسازی و پیادهسازی آنها آشنا میشوید و با انجام پروژههای درنظر گرفته شده، در این مباحث به تسلط خوبی خواهید رسید.
FPGA چیست؟
FPGA مخفف Field-Programmable Gate Array است و میتواند به عنوان یک تراشه سختافزاری تعریف شود که برای انجام عملیات منطقی استفاده میشود. FPGA از یک شبکه یکپارچه یا مجموعهای از بلوکهای منطقی که در یک تراشه قرار گرفتهاند، تشکیل شدهاند. که در آن مدارها گیتهای منطقی قابل برنامهریزی هستند. FPGAها از بلوکهای منطقی قابل تنظیم جداگانه یا CLB تشکیل شدهاند که از طریق اتصالات قابل برنامهریزی به هم متصل میشوند.
همانطور که از نام فنآوری نیمه هادی نشان داده شده است، مزایای FPGA به دلیل توانایی آنها برای برنامهریزی در هنگام پیادهسازی در زمینه در مقابل انواع دیگر تراشههای نیمه هادی مانند ASIC شناخته شده است. بنابراین میتوان گفت که آموزش FPGA مقدماتی دارای اهمیت ویژه ای است. ما در مکتبخونه دوره آموزش FPGA مقدماتی را ارائه می دهیم. در ادامه به بررسی این موضوع می پردازیم.
مزایای آموزش FPGA مقدماتی
برای بیان مزایای آموزش FPGA مقدماتی مکتبخونه لازم است نمونههایی را مثال بزنیم. برای مثال یک ASIC یا یک مدار مجتمع خاص برنامه برای انجام یک کار خاص طراحی شده است. به این ترتیب، تنها یک عملکرد را انجام میدهد و نمیتوان آن را به چیز دیگری تغییر داد، همچنین نمیتوان آن را پاک کرد و بازنویسی کرد تا دوباره از تراشه استفاده شود.
از سوی دیگر، یک FPGA را میتوان دوباره برنامهریزی کرد و دوباره مورد استفاده قرار داد و در مورد سفارشیسازی و شخصیسازی بسیار انعطاف پذیرتر است، به خصوص زمانی که در این زمینه مستقر شود. این امر باعث میشود FPGA نسبت به ASIC در برنامههای خاص بسیار مناسبتر و ارجحتر باشد.
با کمک یک FPGA میتوانید برنامهای بنویسید که بر روی یک تراشه سیلیکونی بارگذاری و عملکردها آن اجرا شود. اگر میخواهید یک تراشه را بهینه کنید تا با حجم کاری خاصی متناسب باشد، میتوانید از یک تراشه FPGA استفاده کنید. FPGAها میتوانند با نیازهای مدرن از پیچیدگی بالا و دستگاههای با کارایی بالا خود را مطابقت دهند. آنها همچنین چگالی منطقی بیشتر، پردازندههای تعبیهشده، بلوکهای DSP و کلاک را از دیگر ویژگیهای برجسته ارائه میدهند.
FPGA برای سیستمهاییایدهآل است که در آن بهروزرسانیهای مداوم الزامی است. اگر یک پردازنده نیاز به تغییراتی داشته باشد، تراشههای FPGA میتوانند در صورت نصب آنها را برای ایجاد این تغییرات مورد استفاده قرار دهند و نیاز به خرید سختافزار جدید را از بین ببرند.
اگر از تراشههای FPGA در خودروها استفاده میشود، میتوان با کمک این تراشهها حتی پس از فروختن آنها را بهروزرسانی کرد. این تراشهها همچنین اغلب توسط مشاغل سازمانی استفاده میشوند، زیرا میتوان آنها را با استفاده از مسیر دادهای که با تجزیه و تحلیل دادهها، استنتاج تصویر و حتی فشردهسازی مطابقت دارد، دوباره برنامهریزی کرد.
هدف اصلی از ساخت FPGA
در ابتدا، هدف اصلی یک تراشه FPGA، نمونهسازی اولیه ASICها بود. مزیت استفاده از FPGA برای این منظور این است که میتوان آن را بارها و بارها برنامهریزی کرد، تا زمانی که یک طرح نهایی شود و هیچ اشکالی در طراحی پیدا نشود. به طور مثال، اینتل که یک نام بزرگ در صنعت فناوری اطلاعات است، از FPGA برای نمونهسازی اولیه تراشههای دائمی جدید استفاده میکند تا از کیفیت، عملکرد و یکپارچگی آنها اطمینان حاصل کند.
با در نظر گرفتن ویژگیهای مفید مختلف تراشههای FPGA، میتوان انواع مختلفی از برنامهها را نام برد که استفاده از FPGAها برای آنها مناسبتر هستند. FPGAها معمولاً برای پروژههای با حجم کم و پیچیدگی بالا استفاده میشوند، زیرا سفارشیسازی را ارائه میدهند.
کاربردهای اصلی FPGAها را میتوان در برنامههای پزشکی، پردازش تصویر و تصویر، مخابرات و دیتاکام، سرور و ابر و دفاع و فضا جستجو کرد. کاربردهای گسترده FPGA ها سبب شده است تا آموزش FPGA مقدماتی برای افراد با تخصص متنوع مفید باشد.
برنامههای کاربردی آموزش FPGA مقدماتی
تراشههای FPGA هم در ارتباطات سیمی و هم در ارتباطات بیسیم استفاده میشوند. در ارتباطات سیمی در بک پلنهای سریال و ارتباطات بیسیم برای راه حلهای شبکه و آدرس دهی استانداردهای وایمکس و ۵G/۶G و HSDPA استفاده میشود. همچنین FPGA در بخش زیرساخت استفاده میشود و به خرد کردن دادهها با سرعت بالا کمک میکند.
در زمینه کاربردهای پزشکی نیز، از تراشههای FPGA برای اهداف تشخیصی و نظارتی استفاده میشود. آنها در تجهیزات پزشکی برای پردازش دادهها استفاده میشوند.
در زمینه هوافضا و کاربردهای دفاعی، کاربرد تراشههای FPGA را میتوان در برای پردازش تصویر، پیکربندی مجدد جزئی برای SDRها و همچنین برای تولید شکل موج جستجو کرد.
FPGA برای بهبود زمان عرضه به بازار محصولات مختلف تکنولوژیکی و کاهش هزینههای کلی مهندسی که در تعدادی از فرآیندها از جمله اتوماسیون صنعتی و نظارت انجام میشود، از دیگر کاربردهای FPGAها است.
از آنجایی که FPGA برای پیکربندی مجدد و هماهنگی با تغییرات استفاده میشود، هزینه نگهداری طولانی مدت لازم برای یک سیستم را کاهش میدهد.
از جمله اصلیترین کابردهای FPGAها میتوان به توسعه شبکههای عصبی عمیق یا DNN اشاره داشت که در نهایت منجر به تولید و نگهداری سیستمهای هوشمند مصنوعی میشود. FPGAهای با کارایی بالا در مقایسه با GPUها میتوانند حتی بیشتر به یک برنامه کاربردی کمک کنند و بنابراین برای اهداف توسعه فناوری یادگیری ماشین ترجیح داده میشوند. علاوه بر این موارد فناوری FPGA به شرکتهای ASIC فرصت نمونهسازی سریع را میدهد.
به طور مثال در زمینه کاربردهای پزشکی، از تراشههای FPGA برای اهداف تشخیصی و نظارتی استفاده میشود. آنها در تجهیزات پزشکی برای پردازش دادهها استفاده میشوند. FPGAها در MRI، CT اسکن، سونوگرافی، سیستم هایمانیتورینگ بیمار ECG استفاده میشوند.
آموزش FPGA مقدماتی برای چه کسانی مناسب است؟
FPGAها همچنین برای مشاغل سازمانی مفید هستند زیرا میتوانند به صورت پویا با یک مسیر داده که دقیقاً با یک حجم کاری خاص مطابقت دارد، مانند تجزیه و تحلیل داده، استنتاج تصویر، رمزگذاری یا فشردهسازی مجدد برنامهریزی شوند. FPGAهای بهینهسازی شده نیز نسبت به اجرای بارهای کاری معادل روی یک CPU از نظر مصرف انرژی کارآمدتر هستند.
این FPGA ترکیبی از تطبیقپذیری، کارایی و عملکرد، یک بسته جذاب برای کسب و کارهای مدرنی ارائه میدهند که به دنبال پردازش دادههای بیشتر با هزینه کل مالکیت کمتر (TCO) هستند. پس باید آموزش FPGA مقدماتی را به عنوان امری مناسب برای بهینه سازی فعالیتهای مشاغل سازمانی در نظر گرفت.
مرز جدید برای FPGAها: هوش مصنوعی
شبکههای عصبی عمیق (DNN) که برای هوش مصنوعی( AI) استفاده میشوند، زمینه جدیدی از کاربردهای FPGAها به شمار میروند که در حال حاضر مورد توجه است.
اجرای مدلهای استنتاج DNN قدرت پردازش قابل توجهی را میطلبد. واحدهای پردازش گرافیکی (GPU) اغلب برای تسریع پردازش استنتاج استفاده میشوند، اما در برخی موارد، FPGA با کارایی بالا ممکن است در تجزیه و تحلیل مقادیر زیادی از دادهها برای یادگیری ماشین، عملکرد بهتری از GPU داشته باشند.
مایکروسافت در حال حاضر از قابلیت تطبیقپذیری Intel FPGA را برای تسریع هوش مصنوعی بهره میبرد. Project Brainwave مایکروسافت از طریق خدمات ابری Microsoft Azure دسترسی به FPGAهای Intel Stratix را برای مشتریان فراهم میکند.
سرورهای ابری مجهز به این FPGAها به طور خاص برای اجرای مدلهای یادگیری عمیق پیکربندی شدهاند. سرویس مایکروسافت به توسعهدهندگان این امکان را میدهد تا از قدرت تراشههای FPGA بدون خرید و پیکربندی سختافزار و نرمافزار تخصصی استفاده کنند.
درعوض، توسعهدهندگان میتوانند با ابزارهای متنباز رایج مانند Microsoft Cognitive Toolkit یا چارچوب توسعه هوش مصنوعی TensorFlow کار کنند. بنابراین بیراه نیست اگر بگوییم که آموزش FPGA پیشرفته میتواند چشم اندازهای جدیدی برای آینده شغلی و تحصیلی شما محیا کند.
پیش نیازهای دوره آموزش FPGA مقدماتی
دانش اولیه زبانهای توصیف سختافزار مانند Verilog یا VHDL از جمله اصلیترین پیش نیازهای دوره آموزش FPGA مقدماتی به شمار میروند.
سایت مکتبخونه علاوه بر ارائه آموزش FPGA مقدماتی، از دوره ها و مقالات معتبر و مفیدی برخوردار است که مطمئنا برای شما مفید خواهد بود. از اینکه تا پایان این مطلب ما را همراهی کردید، سپاس گزارم.
دوره آموزش FPGA
آیا تا به حال پیش آمده که از قدرت پردازش کامپیوتر خود احساس نارضایتی کنید؟ شاید نرم افزارهای سنگین سرعت سیستم شما را پایین آوردهاند و یا به دنبال راه حلی برای انجام محاسبات خاص و با کارایی بالا هستید. در اینجاست که دنیای هیجان انگیز FPGA به میان میآید، که ما با این مقاله به آموزش fpga و کارایی آن خواهیم پرداخت.
FPGA چیست؟
ماتریس دروازه قابل برنامه ریزی میدان (Field-Programmable Gate Array) یا به اختصار FPGA یک مدار مجتمع با قابلیت برنامه ریزی مجدد است. این بدان معناست که شما میتوانید پیکربندی داخلی آن را تغییر دهید تا وظایف خاصی را انجام دهد. برخلاف CPU های سنتی که برای انجام مجموعه دستورالعملهای از پیش تعیین شده طراحی شدهاند، FPGA ها را میتوان برای اجرای الگوریتمهای خاص به صورت سخت افزاری برنامه ریزی کرد.
چرا باید آموزش FPGA را فرا بگیرید؟
دلایل متعددی برای یادگیری FPGA وجود دارد. در اینجا به چند مورد از مهمترین آنها اشاره میکنیم:
- سرعت و کارایی بالا: FPGA ها میتوانند محاسبات را بسیار سریعتر از CPU های سنتی انجام دهند، زیرا آنها برای انجام وظایف خاص طراحی شدهاند. این امر آنها را برای کاربردهایی مانند پردازش سیگنال، رمزنگاری و هوش مصنوعی ایده آل میکند.
- انعطاف پذیری: همانطور که گفته شد، FPGA ها را میتوان برای انجام انواع کارها برنامه ریزی کرد. این انعطاف پذیری آنها را برای طیف گستردهای از پروژهها مفید میکند.
- کنترل دقیق سخت افزار: با برنامه ریزی FPGA، کنترل دقیقی بر سخت افزار خود به دست میآورید. این امر به شما امکان میدهد تا عملکرد سیستم خود را بهینه کنید.
با FPGA چه کارهایی میتوان انجام داد؟
کاربردهای FPGA بسیار متنوع است. در اینجا چند نمونه ذکر شده است:
- پردازش سیگنال: FPGA ها اغلب در تجهیزات مخابراتی، تجهیزات پزشکی و سیستمهای راداری برای انجام محاسبات با کارایی بالا استفاده میشوند.
- بینایی ماشین: FPGA ها را میتوان برای تسریع الگوریتمهای بینایی ماشین استفاده کرد که در کاربردهایی مانند تشخیص چهره و رباتیک استفاده میشوند.
- شبکههای عصبی مصنوعی: با محبوبیت روزافزون هوش مصنوعی، FPGA ها به طور فزایندهای برای اجرای شبکههای عصبی مصنوعی استفاده میشوند.
- کنترل کنندههای سفارشی: FPGA ها را میتوان برای ایجاد کنترل کنندههای سفارشی برای انواع ماشین آلات و تجهیزات استفاده کرد.
ابزارهای مورد نیاز برای یادگیری FPGA
برای شروع یادگیری و آموزش FPGA به چند ابزار کلیدی نیاز دارید:
- برد آموزشی FPGA: بردهای آموزشی مختلفی با قیمتهای متفاوت در بازار موجود است. این بردها شامل یک FPGA و سایر اجزای لازم برای شروع کار میشوند.
- نرم افزار طراحی سخت افزار: برای برنامه ریزی FPGA به نرم افزار طراحی سخت افزار (EDA) نیاز دارید. این نرم افزار به شما امکان میدهد تا مدارهای منطقی خود را طراحی کرده و آنها را روی FPGA پیاده سازی کنید. برخی از نرم افزارهای محبوب EDA عبارتاند از Xilinx Vivado و Intel Quartus.
- زبان سخت افزار: برای برنامه ریزی FPGA نیاز به یادگیری یک زبان سخت افزار مانند VHDL یا Verilog دارید. این زبانها شبیه به زبانهای برنامه نویسی سنتی هستند، اما برای توصیف سخت افزار طراحی شدهاند.
منابع آموزشی FPGA
منابع مختلفی برای یادگیری FPGA در دسترس است، از جمله:
- دورههای آموزشی آنلاین: وب سایتهای آموزشی آنلاین متعددی دورههای مقدماتی و پیشرفته FPGA را ارائه میدهند. این دورهها اغلب شامل آموزشهای ویدیویی، پروژههای عملی و آزمونها هستند.
- کتابهای آموزش FPGA: کتابهای آموزشی متعددی در مورد FPGA وجود دارد که اصول اولیه و موضوعات پیشرفته را پوشش میدهند.
- آموزشگاههای FPGA: برخی از آموزشگاهها دورههای حضوری یا آنلاین FPGA را ارائه میدهند. این دورهها میتوانند راهی عالی برای کسب دانش عملی و برطرف کردن سؤالات شما باشند.
مراحل یادگیری FPGA
یادگیری FPGA یک فرآیند گام به گام است. در اینجا مراحل کلی که باید دنبال کنید آورده شده است:
1. آشنایی با مفاهیم پایه: اولین قدم این است که در مورد مفاهیم اساسی طراحی دیجیتال مانند گیتهای منطقی، فلیپ فلاپها و مدارهای ترکیبی و ترتیبی دانش کسب کنید.
2. انتخاب برد آموزشی و نرم افزار EDA: پس از آشنایی با مفاهیم پایه، باید یک برد آموزشی FPGA و نرم افزار EDA مناسب را انتخاب کنید. برد آموزشی باید با نیازها و بودجه شما مطابقت داشته باشد و نرم افزار EDA باید استفاده از آن آسان و دارای ویژگیهای کافی باشد.
3. یادگیری زبان سخت افزار: در مرحله بعد باید یک زبان سخت افزار مانند VHDL یا Verilog را یاد بگیرید. این زبانها برای توصیف مدارهای منطقی و پیاده سازی آنها روی FPGA استفاده میشوند.
4. شروع با پروژههای ساده: پس از یادگیری زبان سخت افزار، میتوانید با پروژههای ساده شروع کنید. این پروژهها به شما کمک میکند تا مفاهیم کلیدی را درک کرده و مهارتهای خود را تمرین کنید.
5. به تدریج به سمت پروژههای پیچیده تر بروید: با افزایش مهارت خود، میتوانید به سراغ پروژههای پیچیده تر بروید. این پروژهها به شما کمک میکند تا دانش و مهارت خود را در زمینهٔ FPGA به چالش بکشید و ارتقا دهید.
6. از منابع آموزش fpga موجود استفاده کنید: منابع آموزشی مختلفی مانند دورههای آنلاین، کتابها و آموزشگاهها برای کمک به شما در یادگیری FPGA در دسترس است. از این منابع برای تکمیل دانش و مهارتهای خود استفاده کنید.
7. با جامعه FPGA ارتباط برقرار کنید: جامعه FPGA فعال و حمایتی است. میتوانید با پیوستن به انجمنهای آنلاین و حضور در رویدادهای FPGA با سایر علاقهمندان به FPGA ارتباط برقرار کنید. این امر میتواند به شما در یادگیری، اشتراک گذاری ایدهها و رفع چالشها کمک کند.
8. صبور باشید و به تمرین ادامه دهید: یادگیری FPGA یک فرآیند زمان بر است. صبور باشید و به تمرین ادامه دهید. با تلاش و پشتکار میتوانید به یک متخصص FPGA تبدیل شوید.
FPGA چه تفاوتی با CPU دارد؟
FPGA ها در مقایسه با CPU ها مزایای متعددی دارند. FPGA ها میتوانند محاسبات را سریعتر انجام دهند، انعطاف پیرتر باشند و کنترل دقیق تری بر سخت افزار به شما ارائه دهند. با این حال، CPU ها برای اجرای برنامههای عمومی مناسب تر هستند و برنامه نویسی آنها آسانتر است.
یادگیری FPGA چقدر سخت است؟
یادگیری FPGA به زمان و تلاش نیاز دارد، اما با منابع و راهنمایی مناسب، میتواند برای افراد با پیشینههای مختلف قابل دسترس باشد.
بهترین راه برای یادگیری FPGA چیست؟
بهترین راه برای یادگیری FPGA ترکیبی از یادگیری تئوری، انجام پروژههای عملی و استفاده از منابع آموزشی موجود است.
چه نوع شغلهایی با FPGA وجود دارد؟
مهندسان FPGA در طیف گستردهای از صنایع از جمله مخابرات، دفاع، هوافضا، پزشکی و محاسبات علمی کار میکنند.
دوره آموزش FPGA مقدماتی مکتب خونه مناسب چه کسانی است و چه چیزی یاد میگیرید؟
دوره آموزش FPGA مقدماتی برای افرادی مناسب است که به دنبال یادگیری اصول طراحی و برنامه نویسی FPGA هستند. این دوره برای افراد با پیشینههای مختلف از جمله دانشجویان مهندسی برق و کامپیوتر، مهندسان سخت افزار و علاقهمندان به یادگیری مهارتهای جدید مناسب است.
در دوره آموزش fpga، شما با مفاهیم زیر آشنا خواهید شد:
پردازندهها و قابلیتهای آنها
در این دوره آموزش fpga، شما با انواع پردازندهها و عملکرد آنها آشنا خواهید شد. شما همچنین در مورد مزایا و معایب استفاده از FPGA ها در مقایسه با پردازندههای سنتی خواهید آموخت.
آشنایی با FPGA ها
در این دوره آموزش fpga، شما با معماری FPGA ها، بلوکهای ساختمانی آنها و نحوه برنامه ریزی آنها آشنا خواهید شد. شما همچنین در مورد ابزارها و نرم افزارهای مورد استفاده برای طراحی FPGA ها خواهید آموخت.
آشنایی با کلیات زبانهای توصیف سخت افزار، بدنههای ترکیبی و ترتیبی
در این دوره آموزش fpga، شما با زبانهای توصیف سخت افزار HDL مانند VHDL و Verilog آشنا خواهید شد. شما همچنین در مورد بدنههای ترکیبی و ترتیبی که بلوکهای ساختمانی اساسی طراحی FPGA هستند، خواهید آموخت.
ماشین حالت و برنامههای کنترل داده، فراخوانیهای مکرر، زیربرنامه ها و توابع در VHDL
در این دوره آموزش fpga، شما با مفهوم ماشین حالت و نحوه استفاده از آنها برای طراحی مدارهای کنترل آشنا خواهید شد. شما همچنین در مورد فراخوانیهای مکرر، زیربرنامه ها و توابع در VHDL خواهید آموخت.
ملاحظات برنامههای تست و مطالب مرتبط با پیاده سازی سخت افزاری
در این دوره آموزش fpga، شما با ملاحظات مربوط به تست و اشکال زدایی برنامههای FPGA آشنا خواهید شد. شما همچنین در مورد فرآیند پیاده سازی یک طراحی FPGA بر روی یک برد واقعی خواهید آموخت.
پس از اتمام این دوره، شما قادر خواهید بود:
- اصول طراحی و برنامه نویسی FPGA را درک کنید.
- از زبانهای HDL مانند VHDL و Verilog برای طراحی مدارهای دیجیتال استفاده کنید.
- مدارهای دیجیتال ساده را با استفاده از FPGA ها طراحی و پیاده سازی کنید.
- برنامههای FPGA را تست و اشکال زدایی کنید.
این دوره برای چه کسانی مفید است؟
- دانشجویان مهندسی برق و کامپیوتر: این دوره میتواند به دانشجویان مهندسی برق و کامپیوتر در درک اصول طراحی دیجیتال و نحوه استفاده از FPGA ها برای پیاده سازی مدارهای دیجیتال کمک کند.
- مهندسان سخت افزار: این دوره میتواند به مهندسان سخت افزار در یادگیری مهارتهای جدید درزمینهٔ طراحی FPGA کمک کند.
- علاقهمندان به یادگیری مهارتهای جدید: این دوره برای هر کسی که علاقهمند به یادگیری اصول طراحی و برنامه نویسی FPGA است مفید است.
دوره آموزش FPGA مقدماتی یک دوره جامع است که به شما اصول طراحی و برنامه نویسی FPGA را آموزش میدهد. این دوره برای افراد با پیشینههای مختلف از جمله دانشجویان مهندسی، مهندسان و علاقهمندان به یادگیری مهارتهای جدید مناسب است. همچنین در مکتب خونه انواع دوره آموزش برنامه نویسی و آموزش سخت افزار و غیره به عنوان مکمل و پیش نیاز این دوره موجود است.
سرفصل های دوره آموزش FPGA مقدماتی در مکتب خونه چیست؟
در فصل اول از دوره آموزش FPGA مقدماتی در مکتب خونه با پردازندهها و قابلیتهای آنها آشنا خواهید شد. در بخش اول از این فصل، کلیات میکروکنترلرها و میکروپروسسورها معرفی میشود و در بخش های دوم و سوم نیز، به معرفی معماری کلی پردازندهها و پردازندههای DSP پرداخته میشود. تمرین پایان این فصل، بررسی معماری پردازندههای جدید و روشهای مورد استفاده برای افزایش سرعت در آنها میباشد.
فصل دوم دوره آشنایی با FPGAهاست. در بخش اول آن تفاوت پردازنده ها، ASIC و FPGA بیان میشود. در بخش دوم، به معرفی شرکتهای معروف سازنده FPGA، بخش سوم، معرفی سایتهای مرتبط با تراشه های Xilinx، Intel و Actel در بخش چهارم، به معماری داخلی FPGA، بخش CLB و پردازندههای داخلی پرداخته میگردد. پس از پایان بخش چهارم، نوبت به تمرین دوم میرسد که مقایسه LUTها و دلیل انتخاب ورودیهای 4، 5 و 6 برای آنها با آن انجام میگیرد. بخش پنجم این فصل، به حافظه های BRAM در FPGA و معرفی چند بورد نمونه FPGA اختصاص دارد. در بخش ششم نیز مقایسه تعدادی از تراشههای FPGA از شرکت Xilinx مورد بررسی قرار میگیرد. در پایان این فصل، تمرین سوم آورده شده است که معماری FPGAهای Zynq، سری RFSoC و MPSoC را در آن بررسی میکنیم و برای تثبیت آموختهها یک کوییز نیز از علاقمندان گرفته میشود.
در فصل سوم از دوره آموزش FPGA به آشنایی با کلیات زبانهای توصیف سختافزار، بدنههای ترکیبی و ترتیبی پرداخته میشود. در بخش اول این فصل کلیات زبانهای مورد استفاده برای برنامه نویسی و کار با FPGA بررسی و مرور میشوند. در بخش دوم، کار با نرمافزار ISE را شروع میکنیم و در بخش سوم، یک برنامه ساده گیت منطقی NOT در محیط ISE سنتز و شبیهسازی میشود. در پروژه اول این فصل، برنامه f=a.b را با استفاده از گیت AND و با استفاده از مالتیپلکسر مینویسیم. بعد از پایان پروژه بخش چهارم این فصل آغاز میشود، در این بخش کتابخانهها و نوع متغیرها در VHDL تعریف میشوند.
در بخش پنجم، با ساختارهای dataflow، structural و behavioral آشنا میشویم و در بخش ششم، از بدنههای ترکیبی در زبان VHDL مثالهایی آورده میشود. بعد از آن پروژه دوم، یعنی برنامه ضربکننده دو عدد 2-بیتی بدون علامت را مورد بررسی قرار میدهیم. در بخش هفتم از فصل دوم دوره آموزش FPGA با Language Template در نرم افزار ISE آشنا میشویم و در بخش هشتم، برنامه یک جمع کننده 4 بیتی با فراخوانی Full-Adderها در ISE آموزش داده میشود.
بعد از این بخش، پروژه سوم این فصل یعنی برنامه مرتب کننده 4 عدد بدون علامت را آموزش خواهیم دید. در بخشهای نهم، دهم، یازدهم، دوازدهم و سیزدهم به مثالهایی از ساختارهای منطقی ترتیبی مانند Latch، فلیپ فلاپ، رجیسترها و …، شیفت رجیستر، شمارندهها، LFSR و کاربردهای آن، مثالهایی ازکدنویسی در ISE، نوشتن برنامه یک شمارنده در ISE و مثالی از بدنههای ترکیبی و ترتیبی، حافظه ROM، تفاوت signal و variable پرداخته میشود. در پایان، این فصل با پروژه برنامه تقریب تکه خطی یک تابع ریاضی به انتها میرسد و کوییز دوم نیز برگزار میشود.
فصل چهارم از دوره آموزش FPGA در مورد ماشین حالت و برنامههای کنترل داده، فراخوانیهای مکرر، زیربرنامهها و توابع در VHDL است. در بخش اول این فصل قسمت اول از ماشین حالت و در بخش دوم، قسمت دوم ماشین حالت معرفی میشود. پس از آن، پروژه پنجم این دوره آموزشی یعنی برنامه انکدر CRC انجام میشود. در بخش سوم استفاده از for-generate را میآموزیم. در بخش چهارم Package، Function و Procedure معرفی میشوند. در بخش پنجم، برنامه محاسبه بزرگترین مضرب مشترک دو عدد نوشته میشود و در بخش ششم، برنامه Funnel Shifter آموزش داده میشود. سپس پروژه ششم یعنی برنامه ضربکننده Baugh-Wooly آموزش داده میشود.
در بخش هفتم این فصل، برنامه تابع ضربکننده و استفاده از Package معرفی میشود. در بخشهای هشتم و نهم، مثالهایی از برنامه نویسی VHDL آورده میشود. پس از آن پروژه هفتم یعنی برنامه ضرب دو ماتریس 3×3 آموزش داده میشود و مجدداً برای تعمیق و تثبیت آموختهها، کوییز سوم برگزار میشود.
در فصل پنجم به ملاحظات برنامههای تست و مطالب مرتبط با پیادهسازی سخت افزاری پرداخته میشود. در بخش اول از این فصل، اصول کلی برنامههای تست، در بخش دوم، ساخت سیگنالهای متناوب، استفاده از Record و استفاده از دستور Assert آموزش داده میشود. در بخش سوم و بخشهای چهارم و پنجم، برای تست برنامه، کار با فایلها، برنامه محاسبه فیلتر میانه و ادامه برنامه محاسبه فیلتر میانه آموزش داده میشود. سپس، پروژه هشتم یعنی برنامه مولد اعداد گوسی مورد بررسی قرار میدهیم.
در بخش ششم، گزارشگیری Timing در نرمافزار ISE معرفی میشود. بخش هفتم، به گزارشگیری توان مصرفی در نرمافزار ISE پرداخته میشود. در بخشهای هشتم و نهم، نحوه مشخص کردن پینها و پیکربندی FPGA و همینطور آشنایی با محیط Vivado و نحوه کار در این محیط بررسی میگردد. در پایان، پروژه نهم یعنی برنامه محاسبه جذر، لگاریتم و پروژه دهم یعنی برنامه محاسبه هیستوگرام یک تصویر انجام میگیرد و در خاتمه دوره نیز، کوییز چهارم برگزار میشود.
دکتر مهدی آیت دانشآموخته دکترای رشته برق الکترونیک از دانشگاه علم و صنعت ایران میباشد. ایشان از سال 1387 بطور تخصصی مشغول به کار در حوزههای راداری، جنگ الکترونیک، مخابرات ماهواره و … هستند. از جمله فعالیتهای کاری ایشان، انجام یک سری فعالیتهای تحقیقاتی در حوزههای مخابراتی، همکاری با چند موسسه برای تدریس مباحث پیشرفته پردازش سیگنال، مخابرات و FPGA، مشاوره و همکاری با چند شرکت معتبر در پروژههای ساخت رادار، جنگ الکترونیک و ماهواره و همچنین طراحی این سیستمها میباشد.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.